diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php
index b5f4701a..741f9c3c 100644
--- a/app/Controllers/LeadsController.php
+++ b/app/Controllers/LeadsController.php
@@ -1211,7 +1211,8 @@ class LeadsController extends BaseController
//Construct excel file and save the file to the folder and return file path
public function constructExcelToSaveTemp($lead_id, $type, $propsal_and_insurer = null)
- {
+ {
+ helper('excel_util_helper');
$rfq_data = $this->RFQModel->getRFQTableDataWithLeadIDAndType($lead_id, $type);
$is_placement = false;
@@ -1229,7 +1230,7 @@ class LeadsController extends BaseController
'No of Dependents' => $rfq_data['incept_dept_count'],
'Total Lives' => $rfq_data['incept_no_of_lives'],
- 'Period of Insurance ' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d/m/Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d/m/Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
+ 'Period of Insurance ' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d-m-Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d-m-Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
// 'Policy Run Days' => $rfq_data['policy_run_days'],
];
} else if (in_array( $rfq_data['policy_type_id'], [1, 6, 7])) {
@@ -1237,7 +1238,7 @@ class LeadsController extends BaseController
'Insured' => $rfq_data['client_name'],
'No of Employees at Inception' => $rfq_data['incept_emp_count'],
'Total Sum Insured at Inception ' => $rfq_data['total_si_at_incept'],
- 'Policy Period' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d/m/Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d/m/Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
+ 'Policy Period' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d-m-Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d-m-Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
'Policy Type' => $this->leadType[$rfq_data['lead_type']] ?? "",
];
}
@@ -1261,22 +1262,22 @@ class LeadsController extends BaseController
'No of Dependents at Renewal' => $rfq_data['renewal_dept_count'],
'Total Lives at Renewal ' => $rfq_data['renewal_no_of_lives'],
- 'Period of Insurance ' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d/m/Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d/m/Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
+ 'Period of Insurance ' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d-m-Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d-m-Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
'Policy Run Days' => $rfq_data['policy_run_days'],
- 'Inception Premium' => $rfq_data['premium_at_inception'],
- 'Premium as on (Date - DD MM YYYY should be entered based on the claims dump report)' => $rfq_data['premium_date'],
+ 'Inception Premium' => formatIndianCurrency($rfq_data['premium_at_inception']),
+ 'Premium as on ('.date('d-m-Y', strtotime($rfq_data['premium_date'])).')' => formatIndianCurrency($rfq_data['premium_amount']),
'Earned Premium' => $rfq_data['earned_premium'],
- 'Incurred Claims as on (Date - DD MM YYYY should be entered based on the claims dump report)' => $rfq_data['incurred_claims_date'],
- 'Annualised Claims' => $rfq_data['annualised_claims'],
- 'Incurred Claims Ratio' => $rfq_data['incurred_claims_ratio'],
- 'Earned Claims Ratio' => $rfq_data['earned_claims_ratio'],
+ 'Incurred Claims as on ('.date('d-m-Y', strtotime($rfq_data['incurred_claims_date'])).')' => formatIndianCurrency($rfq_data['incurred_claims']),
+ 'Annualised Claims' => formatIndianCurrency($rfq_data['annualised_claims']),
+ 'Incurred Claims Ratio' => $rfq_data['incurred_claims_ratio']." %",
+ 'Earned Claims Ratio' => $rfq_data['earned_claims_ratio']." %",
];
} else if (in_array( $rfq_data['policy_type_id'], [1, 6, 7])) {
$lead_data = [
'Insured' => $rfq_data['client_name'],
'No of Employees at Renewal' => $rfq_data['renewal_emp_count'],
'Total Sum Insured at Renewal ' => $rfq_data['total_si_at_renewal'],
- 'Policy Period' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d/m/Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d/m/Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
+ 'Policy Period' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d-m-Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d-m-Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
'Policy Type' => $this->leadType[$rfq_data['lead_type']] ?? "",
'Existing Insurer' => $rfq_data['insurer_name'],
'TPA ' => $rfq_data['tpa_name'],
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index d5c162b5..6622d0fa 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -461,9 +461,10 @@ class PolicyTransactionController extends BaseController
$insurer_id = null;
}
- if($data['bro_payable_by'] == 1){
- $cop_amt = isset($data['co_premium'][$index]) && ($data['co_premium'][$index] != "0.00" || !empty($data['co_premium'][$index]) ) ? $data['co_premium'][$index] : ($data['base_premium'][$index] ?? 0);
- }else{
+ if ($data['bro_payable_by'] == 1) {
+ $cop_amt = isset($data['co_premium'][$index]) && ($data['co_premium'][$index] != "0.00" && !empty($data['co_premium'][$index])) ? $data['co_premium'][$index] : ($data['base_premium'][$index] ?? 0);
+ // print_r($cop_amt);die();
+ } else {
$cop_amt = $data['co_premium'][$index] ?? 0;
}
@@ -1098,13 +1099,19 @@ class PolicyTransactionController extends BaseController
$data['endorsement_data_list'] = $this->policyTransactionModel->getEndorsementTranctionListData($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
$data['client'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
$data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
// $data['tpa'] = $this->tpaModel->where('is_active', 1)->findAll();
$data['insurer_branch'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
$data['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames();
+ list($policyList, $policyListByClient) = $this->getPolicyForEndorsment();
+ $data['endorsementPolicies'] = $policyList;
+ $data['endorsementPolicyListByClient'] = $policyListByClient;
+
+ // dd($data);
+ // print_r($data['endorsementPolicies']);die();
$this->loadLayout('policy_transaction_endorsement_list', $data);
}
@@ -2821,11 +2828,9 @@ class PolicyTransactionController extends BaseController
try {
$bdsInstallmentData = $this->BdsPlacementModel->getClientInstallmentDetails();
-
- }catch (Exception $e) {
+ } catch (Exception $e) {
$this->myLogger->logme('error', 'Exception: ' . $e->getMessage() . 'Page: ' . $e->getFile() . ' Line: ' . $e->getLine());
-
}
$this->myLogger->logme("error", "Data for BDS Installment " . json_encode($bdsInstallmentData));
// dd($bdsInstallmentData);
@@ -2905,17 +2910,17 @@ class PolicyTransactionController extends BaseController
'message' => $message,
'subject' => $subject
];
-
} catch (Exception $e) {
$this->myLogger->logme('error', 'Exception: ' . $e->getMessage() . 'Page: ' . $e->getFile() . ' Line: ' . $e->getLine());
}
}
- public function getMoreInfo() {
+ public function getMoreInfo()
+ {
$pt_id = $this->request->getPost("pt_id");
- $data_to_send['bds_data'] = $this->BdsPlacementModel->where("is_active",1)->where("pt_id",$pt_id)->findAll();
+ $data_to_send['bds_data'] = $this->BdsPlacementModel->where("is_active", 1)->where("pt_id", $pt_id)->findAll();
foreach ($data_to_send['bds_data'] as &$data) {
@@ -2924,23 +2929,23 @@ class PolicyTransactionController extends BaseController
if (!empty($data_to_send)) {
- return $this->respond(['status' => true , "data" => $data_to_send],200);
- }else {
+ return $this->respond(['status' => true, "data" => $data_to_send], 200);
+ } else {
- return $this->respond(['status' => false,"No Data Found For the Policy Transaction"],404);
+ return $this->respond(['status' => false, "No Data Found For the Policy Transaction"], 404);
}
-
}
- public function saveInstallment() {
-
+ public function saveInstallment()
+ {
+
$installments = $this->request->getPost('installments');
-
+
if (!$installments || !is_array($installments)) {
return $this->respond(['status' => false, 'message' => 'No data received'], 400);
}
- $this->myLogger->logme("error",json_encode($installments));
+ $this->myLogger->logme("error", json_encode($installments));
// die();
foreach ($installments as &$row) {
@@ -2957,6 +2962,49 @@ class PolicyTransactionController extends BaseController
return $this->respond(['status' => true, 'message' => 'Data saved successfully'], 200);
}
+ protected function getPolicyForEndorsment()
+ {
+
+ $policyList = [];
+ $policyListByClient = [];
+ $clients = $this->clientModel
+ ->select("*, DATE_FORMAT(dob, '%d-%m-%Y') as dob")
+ ->where('is_active', 1)
+ ->findAll();
+
+ $clientIds = array_column($clients, 'id');
+
+ $policies = $this->clientPolicyModel
+ ->select("
+ client_policy.*,
+ policy_type.policy_type,
+ policy_type.ebp,
+ policy_type.etp,
+ policy_type.iep,
+ policy_type.itp,
+ policy_type.bap,
+ policy_type.allocg,
+ DATE_FORMAT(client_policy.policy_start_date, '%d/%m/%Y') as policy_start_date,
+ DATE_FORMAT(client_policy.policy_end_date, '%d/%m/%Y') as policy_end_date
+ ")
+ ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+ ->join('policy_transaction pt', 'pt.client_policy_id = client_policy.id and pt.action_type = "inception" and pt.is_active = 1 and pt.client_policy_id is not null')
+ ->whereIn('client_policy.client_id', $clientIds)
+ ->where('client_policy.is_active', 1)
+ ->findAll();
+
+ foreach ($policies as $policy) {
+ $policyList[$policy['client_branch_id']][] = $policy;
+ $policyListByClient[$policy['client_id']][] = $policy;
+ if (isset($policyCount[$policy['client_id']])) {
+ $policyCount[$policy['client_id']]++;
+ } else {
+ $policyCount[$policy['client_id']] = 1;
+ }
+ }
+
+ return [$policyList, $policyListByClient];
+ }
}
diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index fbaa1193..70aad242 100755
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -2008,4 +2008,30 @@ if (!function_exists('generate_family_floater_key')) {
return $relation;
}
-}
\ No newline at end of file
+}
+
+if (!function_exists('formatIndianCurrency')) {
+ function formatIndianCurrency($amount)
+ {
+ $amount = (string) $amount;
+ $decimal = '';
+
+ // Split decimal part if exists
+ if (strpos($amount, '.') !== false) {
+ list($amount, $decimal) = explode('.', $amount);
+ $decimal = '.' . substr($decimal, 0, 2); // Limit to 2 decimal places
+ }
+
+ $lastThree = substr($amount, -3);
+ $rest = substr($amount, 0, -3);
+
+ if ($rest != '') {
+ $rest = preg_replace("/\B(?=(\d{2})+(?!\d))/", ",", $rest);
+ $formatted = $rest . ',' . $lastThree;
+ } else {
+ $formatted = $lastThree;
+ }
+
+ return $formatted . $decimal;
+ }
+}
diff --git a/app/Views/policy_transaction_endorsement_form.php b/app/Views/policy_transaction_endorsement_form.php
index 91e024f1..eaab26ee 100644
--- a/app/Views/policy_transaction_endorsement_form.php
+++ b/app/Views/policy_transaction_endorsement_form.php
@@ -121,8 +121,8 @@
-
-
+
+
@@ -560,7 +560,10 @@ $(document).ready(function(){
if(policyListByClient != '') {
// console.log(branch_list[client_id]);
let data = policyListByClient[client_id];
+ if (data) {
appendPolicies(data);
+
+ }
}
})
diff --git a/app/Views/policy_transaction_endorsement_list.php b/app/Views/policy_transaction_endorsement_list.php
index c6b285c8..52eb4fea 100644
--- a/app/Views/policy_transaction_endorsement_list.php
+++ b/app/Views/policy_transaction_endorsement_list.php
@@ -445,10 +445,11 @@ document.addEventListener("DOMContentLoaded", function () {