diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index a685eb1f..9adc88fb 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -426,14 +426,14 @@ $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
$routes->get("remove/(:any)", "PolicyTransactionController::removeCDMaster/$1");
});
- $routes->group("report", ["filter" => "authMVC"], function ($routes) {
- $routes->match(['get', 'post'],"list", "PolicyTransactionController::reportBDSNew");
- $routes->match(['get', 'post'],"listNew", "PolicyTransactionController::reportBDSNew");
- $routes->get("report-varience-list", "PolicyTransactionController::reportVarience");
- $routes->get("report-business-list", "PolicyTransactionController::reportBusinessList");
- $routes->get("report-finance-list", "PolicyTransactionController::reportFinanceList");
- $routes->get("report-outstanding-list", "PolicyTransactionController::reportOutstanding");
- });
+ $routes->group("report", ["filter" => "authMVC"], function ($routes) {
+ $routes->match(['get', 'post'],"list", "PolicyTransactionController::reportBDSNew");
+ $routes->match(['get', 'post'],"listNew", "PolicyTransactionController::reportBDSNew");
+ $routes->get("report-varience-list", "PolicyTransactionController::reportVarience");
+ $routes->get("report-business-list", "PolicyTransactionController::reportBusinessList");
+ $routes->get("report-finance-list", "PolicyTransactionController::reportFinanceList");
+ $routes->get("report-outstanding-list", "PolicyTransactionController::reportOutstanding");
+ });
$routes->group("statement", ["filter" => "authMVC"], function ($routes) {
$routes->get("list", "PolicyTransactionController::statementList");
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index bf508a48..2719ae7f 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -1,1483 +1,894 @@
myLogger = \Config\Services::mylogger();
+ use ResponseTrait;
- $this->clientModel = new ClientModel();
- $this->clientBranchModel = new ClientBranchModel();
- $this->policyTypeModel = new PolicyTypeModel();
- $this->clientDepositModel = new ClientDepositModel();
- $this->clientPolicyModel = new ClientPolicyModel();
- $this->insurerBranchModel = new InsurerBranchModel();
- $this->insurerModel = new InsurerModel();
- $this->policyTransactionModel = new PolicyTransactionModel();
- $this->policyTransactionStatusModel = new PolicyTransactionStatusModel();
- $this->kycEntityTypeModel = new KYCEntityTypeModel();
- $this->clientKYCDocsModel = new ClientKYCDocsModel();
- $this->tpaBranchModel = new TPABranchModel();
- $this->tpaModel = new TPAModel();
- $this->PTFileModel = new PTFileModel();
- $this->PTCOShareDetailsModel = new PTCOShareDetailsModel();
- $this->employeeModel = new EmployeeModel();
- $this->userTeamsModel = new UserTeamsModel();
- $this->userModel = new UserModel();
- $this->employeePolicyModel = new EmployeePolicyModel();
- $this->insurerStatements = new InsurerStatements();
- $this->invPaymentDetailsModel = new InvPaymentDetailsModel();
- $this->batchFileModel = new BatchFileModel();
- $this->filesModel = new FileModel();
- $this->coShareStmtDetailsModel = new COShareStmtDetailsModel();
- $this->BdsPlacementModel = new BdsPlacementModel();
- $this->nhanceBranchModel = new NhanceBranchModel();
- $this->invoiceStatus = [
- 'pending' => 'Pending',
- 'generated' => 'Generated',
- 'sent' => 'Sent',
- 'payment_received' => 'Payment
Received',
- ];
- }
+ protected $myLogger;
+ protected $policyTransactionModel;
+ protected $policyTransactionStatusModel;
+ protected $clientModel;
+ protected $clientPolicyModel;
+ protected $clientBranchModel;
+ protected $clientDepositModel;
+ protected $policyTypeModel;
+ protected $insurerBranchModel;
+ protected $insurerModel;
+ protected $kycEntityTypeModel;
+ protected $clientKYCDocsModel;
+ protected $tpaBranchModel;
+ protected $tpaModel;
+ protected $PTFileModel;
+ protected $PTCOShareDetailsModel;
+ protected $employeeModel;
+ protected $userTeamsModel;
+ protected $userModel;
+ protected $employeePolicyModel;
+ protected $insurerStatements;
+ protected $invoiceStatus;
+ protected $invPaymentDetailsModel;
+ protected $batchFileModel;
+ protected $filesModel;
+ protected $coShareStmtDetailsModel;
+ protected $BdsPlacementModel;
+ protected $nhanceBranchModel;
- // Policy Transaction Inception
- public function viewInception()
- {
- $bds_edit_pt_id = $this->request->getGet('pt_id') ?? null;
- $data['tab_name'] = 'Policy';
- $data['page_name'] = 'Policy';
+ public function __construct()
+ {
+ set_session_context('Policy Tranction');
+ $this->myLogger = \Config\Services::mylogger();
- // Static arrays for dropdowns
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['issuer_branch'] = $this->nhanceBranchModel->where('is_active', 1)->findAll();
- $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
- $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
- $data['policy_status'] = [
- 'under_process' => 'Under Process',
- 'client_pending' => 'Client Pending',
- 'insurer_pending' => 'Insurer Pending',
- 'co_insurer_pending' => 'Co-Insurer Pending',
- 'tpa_pending' => 'TPA Pending',
- 'validated' => 'Validated',
- 'cancelled' => 'Cancelled',
- 'instalment_pending' => 'Instalment Pending',
- 'completed' => 'Completed',
- 'lost' => 'Lost',
- ];
- $data['invoice_status_array'] = [
- 'yet_to_generate' => 'Pending',
- 'generated' => 'Generated',
- 'send' => 'Sent',
- 'recived' => 'Payment Received',
- ];
- // $data['vehicle_type'] = [
- // 'two_wheeler' => 'Two Wheeler',
- // 'four_wheeler' => 'Four Wheeler',
- // 'truck' => 'Truck',
- // 'bus' => 'Bus',
- // 'van' => 'Van',
- // 'suv' => 'SUV',
- // 'motorcycle' => 'Motorcycle',
- // 'bicycle' => 'Bicycle'
- // ];
- $data['vehicle_type'] = db_connect()->table('vehicle_type')->where('is_active', 1)->get()->getResultArray();
- $data['rto_details'] = db_connect()->table('rto_master')->where('is_active', 1)->get()->getResultArray();
+ $this->clientModel = new ClientModel();
+ $this->clientBranchModel = new ClientBranchModel();
+ $this->policyTypeModel = new PolicyTypeModel();
+ $this->clientDepositModel = new ClientDepositModel();
+ $this->clientPolicyModel = new ClientPolicyModel();
+ $this->insurerBranchModel = new InsurerBranchModel();
+ $this->insurerModel = new InsurerModel();
+ $this->policyTransactionModel = new PolicyTransactionModel();
+ $this->policyTransactionStatusModel = new PolicyTransactionStatusModel();
+ $this->kycEntityTypeModel = new KYCEntityTypeModel();
+ $this->clientKYCDocsModel = new ClientKYCDocsModel();
+ $this->tpaBranchModel = new TPABranchModel();
+ $this->tpaModel = new TPAModel();
+ $this->PTFileModel = new PTFileModel();
+ $this->PTCOShareDetailsModel = new PTCOShareDetailsModel();
+ $this->employeeModel = new EmployeeModel();
+ $this->userTeamsModel = new UserTeamsModel();
+ $this->userModel = new UserModel();
+ $this->employeePolicyModel = new EmployeePolicyModel();
+ $this->insurerStatements = new InsurerStatements();
+ $this->invPaymentDetailsModel = new InvPaymentDetailsModel();
+ $this->batchFileModel = new BatchFileModel();
+ $this->filesModel = new FileModel();
+ $this->coShareStmtDetailsModel = new COShareStmtDetailsModel();
+ $this->BdsPlacementModel = new BdsPlacementModel();
+ $this->nhanceBranchModel = new NhanceBranchModel();
+ $this->invoiceStatus = [
+ 'pending' => 'Pending',
+ 'generated' => 'Generated',
+ 'sent' => 'Sent',
+ 'payment_received' => 'Payment
Received',
+ ];
+ }
- $data['vehicle_des'] = [
- 'commercial' => 'Commercial',
- 'private' => 'Private',
- ];
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- ];
+ // Policy Transaction Inception
+ public function viewInception()
+ {
+ $bds_edit_pt_id = $this->request->getGet('pt_id') ?? null;
+ $data['tab_name'] = 'Policy';
+ $data['page_name'] = 'Policy';
- // Filter data
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
- $status = $this->request->getGet('status');
+ // Static arrays for dropdowns
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['issuer_branch'] = $this->nhanceBranchModel->where('is_active', 1)->findAll();
+ $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+ $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
+ $data['policy_status'] = [
+ 'under_process' => 'Under Process',
+ 'client_pending' => 'Client Pending',
+ 'insurer_pending' => 'Insurer Pending',
+ 'co_insurer_pending' => 'Co-Insurer Pending',
+ 'tpa_pending' => 'TPA Pending',
+ 'validated' => 'Validated',
+ 'cancelled' => 'Cancelled',
+ 'instalment_pending' => 'Instalment Pending',
+ 'completed' => 'Completed',
+ 'lost' => 'Lost',
+ ];
+ $data['invoice_status_array'] = [
+ 'yet_to_generate' => 'Pending',
+ 'generated' => 'Generated',
+ 'send' => 'Sent',
+ 'recived' => 'Payment Received',
+ ];
+ // $data['vehicle_type'] = [
+ // 'two_wheeler' => 'Two Wheeler',
+ // 'four_wheeler' => 'Four Wheeler',
+ // 'truck' => 'Truck',
+ // 'bus' => 'Bus',
+ // 'van' => 'Van',
+ // 'suv' => 'SUV',
+ // 'motorcycle' => 'Motorcycle',
+ // 'bicycle' => 'Bicycle'
+ // ];
+ $data['vehicle_type'] = db_connect()->table('vehicle_type')->where('is_active', 1)->get()->getResultArray();
+ $data['rto_details'] = db_connect()->table('rto_master')->where('is_active', 1)->get()->getResultArray();
- // Handle null or empty values
- $start_date = empty($start_date) ? 0 : $start_date;
- $end_date = empty($end_date) ? 0 : $end_date;
- $client_id = empty($client_id) ? 0 : $client_id;
- $insurer_id = empty($insurer_id) ? 0 : $insurer_id;
- $policy_type_id = empty($policy_type_id) ? 0 : $policy_type_id;
- $date_type = empty($date_type) ? 0 : $date_type;
- $issuer = empty($issuer) ? 0 : $issuer;
- $status = empty($status) ? 0 : $status; // Corrected from `$issuer`
+ $data['vehicle_des'] = [
+ 'commercial' => 'Commercial',
+ 'private' => 'Private',
+ ];
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ ];
- if(empty($bds_edit_pt_id)){
- if ($this->request->is('get')) {
+ // Filter data
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+ $status = $this->request->getGet('status');
- // Fetch inception data list
- $data['inception_data_list'] = $this->policyTransactionModel->getInceptionTranctionListData(
- $start_date,
- $end_date,
- $client_id,
- $insurer_id,
- $policy_type_id,
- $date_type,
- $issuer,
- $status
- );
+ // Handle null or empty values
+ $start_date = empty($start_date) ? 0 : $start_date;
+ $end_date = empty($end_date) ? 0 : $end_date;
+ $client_id = empty($client_id) ? 0 : $client_id;
+ $insurer_id = empty($insurer_id) ? 0 : $insurer_id;
+ $policy_type_id = empty($policy_type_id) ? 0 : $policy_type_id;
+ $date_type = empty($date_type) ? 0 : $date_type;
+ $issuer = empty($issuer) ? 0 : $issuer;
+ $status = empty($status) ? 0 : $status; // Corrected from `$issuer`
+
+ if(empty($bds_edit_pt_id)){
+ if ($this->request->is('get')) {
+
+ // Fetch inception data list
+ $data['inception_data_list'] = $this->policyTransactionModel->getInceptionTranctionListData(
+ $start_date,
+ $end_date,
+ $client_id,
+ $insurer_id,
+ $policy_type_id,
+ $date_type,
+ $issuer,
+ $status
+ );
+ } else {
+
+ $ids = $this->request->getPost('ids');
+ $ids = array_filter(explode(',', $ids));
+ $data['inception_data_list'] = $this->policyTransactionModel->getInceptionTranctionListData(
+ $start_date = 0,
+ $end_date = 0,
+ $client_id = 0,
+ $insurer_id = 0,
+ $policy_type_id = 0,
+ $date_type = 0,
+ $issuer = 0,
+ $status = 0,
+ $ids
+ );
+ }
+ }else{
+ $data['inception_data_list'] = [];
+ }
+
+
+
+ // Fetch additional data
+ $data['client'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['client_branch'] = $this->clientBranchModel->where('is_active', 1)->findAll();
+ $data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['entity'] = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['insurer_branch'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
+ $data['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames();
+
+ // Fetch PP Teams Data
+ $data['ppTeamsData'] = $this->userModel
+ ->where('is_active', 1)
+ ->findAll();
+
+ // Fetch Sales Team
+ $data['salse_team'] = $this->userModel
+ ->select('user_profiles.*')
+ ->join('user_teams', 'user_profiles.id = user_teams.user_id')
+ ->where('user_teams.team_id', 5)
+ ->where('user_teams.is_active', 1)
+ ->where('user_profiles.is_active', 1)
+ ->findAll();
+
+ // Fetch ACM
+ $data['ACM'] = $this->userModel
+ ->where('role', 3) // Assuming `role` is in `user_profiles`
+ ->where('is_active', 1)
+ ->findAll();
+ // echo '
';
+ // print_r($data['ppTeamsData']); die;
+
+ // dd($data);
+
+ // Load view
+ $this->loadLayout('policy_transaction_inception_list', $data);
+ }
+
+ // policy Transaction Create function start
+ public function createInceptionPolicy()
+ {
+ $post_data = $this->request->getPost() ?? [];
+ $this->myLogger->logme('error', 'Policy Trancaction form data : '. json_encode($post_data));
+
+ $id = $this->request->getPost('id');
+ $data = $this->preparePolicyData();
+ $data['cd_ac_pk'] = $this->request->getPost('cd_ac_no');
+ $data['issuer'] = 2;
+ $data['status'] = 'completed';
+ $this->myLogger->logme('error', 'Policy Trancaction modified form data ( insert data ) : '. json_encode($data));
+
+
+ if (!$id) {
+ return $this->insertInceptionPolicy($data);
} else {
-
- $ids = $this->request->getPost('ids');
- $ids = array_filter(explode(',', $ids));
- $data['inception_data_list'] = $this->policyTransactionModel->getInceptionTranctionListData(
- $start_date = 0,
- $end_date = 0,
- $client_id = 0,
- $insurer_id = 0,
- $policy_type_id = 0,
- $date_type = 0,
- $issuer = 0,
- $status = 0,
- $ids
- );
- }
- }else{
- $data['inception_data_list'] = [];
- }
-
-
-
- // Fetch additional data
- $data['client'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['client_branch'] = $this->clientBranchModel->where('is_active', 1)->findAll();
- $data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['entity'] = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['insurer_branch'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
- $data['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames();
-
- // Fetch PP Teams Data
- $data['ppTeamsData'] = $this->userModel
- ->where('is_active', 1)
- ->findAll();
-
- // Fetch Sales Team
- $data['salse_team'] = $this->userModel
- ->select('user_profiles.*')
- ->join('user_teams', 'user_profiles.id = user_teams.user_id')
- ->where('user_teams.team_id', 5)
- ->where('user_teams.is_active', 1)
- ->where('user_profiles.is_active', 1)
- ->findAll();
-
- // Fetch ACM
- $data['ACM'] = $this->userModel
- ->where('role', 3) // Assuming `role` is in `user_profiles`
- ->where('is_active', 1)
- ->findAll();
- // echo '';
- // print_r($data['ppTeamsData']); die;
-
- // dd($data);
-
- // Load view
- $this->loadLayout('policy_transaction_inception_list', $data);
- }
-
- // policy Transaction Create function start
- public function createInceptionPolicy()
- {
- $post_data = $this->request->getPost() ?? [];
- $this->myLogger->logme('error', 'Policy Trancaction form data : '. json_encode($post_data));
-
- $id = $this->request->getPost('id');
- $data = $this->preparePolicyData();
- $data['cd_ac_pk'] = $this->request->getPost('cd_ac_no');
- $data['issuer'] = 2;
- $data['status'] = 'completed';
- $this->myLogger->logme('error', 'Policy Trancaction modified form data ( insert data ) : '. json_encode($data));
-
-
- if (!$id) {
- return $this->insertInceptionPolicy($data);
- } else {
- return $this->updateInceptionPolicy($id, $data);
- }
- }
-
- private function preparePolicyData()
- {
- $data = $this->request->getPost();
-
- // print_r($data); die;
-
- if (empty($data['policy_issue_date'])) {
- $data['policy_issue_date'] = null;
- }
-
- if (empty($data['policy_start_date'])) {
- $data['policy_start_date'] = null;
- }
-
- if (empty($data['policy_end_date'])) {
- $data['policy_end_date'] = null;
- }
-
- if (empty($data['renewal_date'])) {
- $data['renewal_date'] = null;
- }
-
- if (empty($data['rollover_date'])) {
- $data['rollover_date'] = null;
- }
-
- if (empty($data['last_action_date'])) {
- $data['last_action_date'] = null;
- } else {
- $data['last_action_date'] = change_date_format($data['last_action_date']);
- }
-
- // Separate Insurer and TPA Branch IDs and IDs
- if (isset($data['insurer_id']) && !empty($data['insurer_id'])) {
- list($data['insurer_branch_id'], $data['insurer_id']) = explode('-', $data['insurer_id']);
- if (isset($data['tpa']) && !empty($data['tpa'])) {
- list($data['tpa_branch_id'], $data['tpa_id']) = explode('-', $data['tpa']);
+ return $this->updateInceptionPolicy($id, $data);
}
}
- $data['tsi'] = generate_tsi_code($data['issue_type']);
- $data['action_type'] = 'inception';
+ private function preparePolicyData()
+ {
+ $data = $this->request->getPost();
- if (!isset($data['co_share'])) {
- $data['co_share'] = 0;
- } elseif ($data['co_share']) {
- $data['co_share'] = 1;
- }
+ // print_r($data); die;
- if (!isset($data['bro_payable_by'])) {
- $data['bro_payable_by'] = 0;
- } elseif ($data['bro_payable_by']) {
- $data['bro_payable_by'] = 1;
- }
+ if (empty($data['policy_issue_date'])) {
+ $data['policy_issue_date'] = null;
+ }
- if (!isset($data['same_as_proposer'])) {
- $data['same_as_proposer'] = 0;
- } elseif ($data['same_as_proposer']) {
- $data['same_as_proposer'] = 1;
- }
+ if (empty($data['policy_start_date'])) {
+ $data['policy_start_date'] = null;
+ }
- if (!isset($data['policy_with_corr'])) {
- $data['policy_with_corr'] = 0;
- } elseif ($data['policy_with_corr']) {
- $data['policy_with_corr'] = 1;
- }
+ if (empty($data['policy_end_date'])) {
+ $data['policy_end_date'] = null;
+ }
- $data['is_cd_reduce_from_bds'] = ($data['policy_type_id'] > 7 && $data['client_type'] == 1) ? 1 : 0;
+ if (empty($data['renewal_date'])) {
+ $data['renewal_date'] = null;
+ }
+ if (empty($data['rollover_date'])) {
+ $data['rollover_date'] = null;
+ }
- if ($data['ct_type'] == "") {
- $data['ct_type'] = 1;
- }
+ if (empty($data['last_action_date'])) {
+ $data['last_action_date'] = null;
+ } else {
+ $data['last_action_date'] = change_date_format($data['last_action_date']);
+ }
- // $month = '01-'.(string)$this->request->getPost('month');
- // $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month));
-
- // Determine $is_addon value
- $data['is_addon'] = in_array($data['policy_type_id'], [1, 2, 6, 7]) ? 1 : (in_array($data['policy_type_id'], [4, 5]) ? 2 : ($data['policy_type_id'] == 3 && isset($data['base_policy']) ? 3 : 1));
-
- // print_r($data); die;
-
- return $data;
- }
-
- private function insertInceptionPolicy($data)
- {
- // print_r($data); die;
-
- $insert = $this->policyTransactionModel->insert($data);
-
- if ($insert) {
-
- $this->insertTransactionStatus($insert, $data, 1);
- $emp_data = $this->processInsertIndividualMemberInEmpTable($data);
-
- if (isset($data['follow_insurer_id']) && !empty($data['follow_insurer_id'][0])) {
-
- $pt_co_share_details = $this->insertOrUpdateCoShareDetails($data, $insert);
-
- $client_policy_id = null;
- if ($data['ct_type'] == 2) {
- $client_policy_insert_data = $this->prepareClientPolicyInsertData($data);
- $client_policy_id = $this->clientPolicyModel->insert($client_policy_insert_data);
- $this->policyTransactionModel->update($insert, ['client_policy_id' => $client_policy_id]);
- $emp_policy_insert = $this->InsertIndividualEmpPolicyTable($emp_data, $client_policy_id);
- }
-
- if ($data['client_type'] == 1 && $data['status'] == 'completed' && $data['is_cd_reduce_from_bds'] == 1) {
- $this->processCompletedStatus($data, $client_policy_id, $data['insurer_id'], $insert);
+ // Separate Insurer and TPA Branch IDs and IDs
+ if (isset($data['insurer_id']) && !empty($data['insurer_id'])) {
+ list($data['insurer_branch_id'], $data['insurer_id']) = explode('-', $data['insurer_id']);
+ if (isset($data['tpa']) && !empty($data['tpa'])) {
+ list($data['tpa_branch_id'], $data['tpa_id']) = explode('-', $data['tpa']);
}
}
- $client_data = $this->clientModel->where('id', $data['client_id'])->first();
- $data['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $data['client_id'])->findAll();
-
- $clientController = new ClientController();
- $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']);
- $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']);
- $data['entity_type_id'] = $client_data['entity_type_id'];
+ $data['tsi'] = generate_tsi_code($data['issue_type']);
+ $data['action_type'] = 'inception';
- return $this->respondSuccess($insert, "Policy transaction created successfully", $data);
+ if (!isset($data['co_share'])) {
+ $data['co_share'] = 0;
+ } elseif ($data['co_share']) {
+ $data['co_share'] = 1;
+ }
+
+ if (!isset($data['bro_payable_by'])) {
+ $data['bro_payable_by'] = 0;
+ } elseif ($data['bro_payable_by']) {
+ $data['bro_payable_by'] = 1;
+ }
+
+ if (!isset($data['same_as_proposer'])) {
+ $data['same_as_proposer'] = 0;
+ } elseif ($data['same_as_proposer']) {
+ $data['same_as_proposer'] = 1;
+ }
+
+ if (!isset($data['policy_with_corr'])) {
+ $data['policy_with_corr'] = 0;
+ } elseif ($data['policy_with_corr']) {
+ $data['policy_with_corr'] = 1;
+ }
+
+ $data['is_cd_reduce_from_bds'] = ($data['policy_type_id'] > 7 && $data['client_type'] == 1) ? 1 : 0;
+
+
+ if ($data['ct_type'] == "") {
+ $data['ct_type'] = 1;
+ }
+
+ // $month = '01-'.(string)$this->request->getPost('month');
+ // $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month));
+
+ // Determine $is_addon value
+ $data['is_addon'] = in_array($data['policy_type_id'], [1, 2, 6, 7]) ? 1 : (in_array($data['policy_type_id'], [4, 5]) ? 2 : ($data['policy_type_id'] == 3 && isset($data['base_policy']) ? 3 : 1));
+
+ // print_r($data); die;
+
+ return $data;
}
- return $this->respondError("Failed to create policy transaction");
- }
+ private function insertInceptionPolicy($data)
+ {
+ // print_r($data); die;
- private function updateInceptionPolicy($id, $data)
- {
- // print_r($data); die;
- $old_pt_data = $this->policyTransactionModel->where('is_active', 1)->where("id", $id)->first();
- $old_pt_co_share_data = $this->PTCOShareDetailsModel->where('is_active', 1)->where("id", $id)->first();
- if ($this->policyTransactionModel->update($id, $data)) {
+ $insert = $this->policyTransactionModel->insert($data);
- $this->insertTransactionStatus($id, $data, 1);
- $emp_data = $this->processInsertIndividualMemberInEmpTable($data);
+ if ($insert) {
- if (isset($data['follow_insurer_id']) && !empty($data['follow_insurer_id'][0])) {
+ $this->insertTransactionStatus($insert, $data, 1);
+ $emp_data = $this->processInsertIndividualMemberInEmpTable($data);
- $this->insertOrUpdateCoShareDetails($data, $id);
+ if (isset($data['follow_insurer_id']) && !empty($data['follow_insurer_id'][0])) {
- if ($data['ct_type'] == 1) {
- $this->policyTransactionModel->update($id, ['client_policy_id' => $data['client_policy_id']]);
- }
-
- if (empty($data['client_policy_id']) || $data['client_policy_id'] == 0) {
+ $pt_co_share_details = $this->insertOrUpdateCoShareDetails($data, $insert);
+ $client_policy_id = null;
if ($data['ct_type'] == 2) {
$client_policy_insert_data = $this->prepareClientPolicyInsertData($data);
$client_policy_id = $this->clientPolicyModel->insert($client_policy_insert_data);
- $this->policyTransactionModel->update($id, ['client_policy_id' => $client_policy_id]);
- $this->InsertIndividualEmpPolicyTable($emp_data, $client_policy_id);
+ $this->policyTransactionModel->update($insert, ['client_policy_id' => $client_policy_id]);
+ $emp_policy_insert = $this->InsertIndividualEmpPolicyTable($emp_data, $client_policy_id);
}
- } else {
- if (isset($data['emp_policy_id']) && !empty($data['emp_policy_id'][0])) {
- $this->InsertIndividualEmpPolicyTable($emp_data, $data['client_policy_id']);
+
+ if ($data['client_type'] == 1 && $data['status'] == 'completed' && $data['is_cd_reduce_from_bds'] == 1) {
+ $this->processCompletedStatus($data, $client_policy_id, $data['insurer_id'], $insert);
}
}
- // if($old_pt_data['status'] != "completed"){
- // if ($data['status'] == 'completed' && $data['ct_type'] == 2) {
- // if ($data['client_type'] == 1 && $data['is_cd_reduce_from_bds'] == 1) {
- // $this->processCompletedStatus($data, $data['client_policy_id'], $data['insurer_id'], $id);
- // }
- // }
- // }
-
- $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $id)->where('is_active', 1)->findAll();
- }
-
- if(isset($data['cd_amt_changed']) && !empty($data['cd_amt_changed'])){
- $policy_data = $this->policyTransactionModel->where('is_active', 1)->where('id', $id)->first();
- $this->cdCorrection($policy_data, $data['cd_amt_changed'], $id);
- }
-
- $client_data = $this->clientModel->where('id', $data['client_id'])->first();
- $data['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $data['client_id'])->findAll();
-
- $clientController = new ClientController();
- $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']);
- $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']);
-
- $data['entity_type_id'] = $client_data['entity_type_id'];
-
- return $this->respondSuccess($id, "Policy transaction updated successfully", $data);
- }
-
- return $this->respondError("Failed to update policy transaction");
- }
-
- private function insertOrUpdateCoShareDetails($data, $pt_id)
- {
- // Prepare data for insertion and updating
- $coShareDetails = [];
- if (isset($data['co_share_id']) && !empty($data['co_share_id'])) {
- $this->removePtCoShareRecords($data['co_share_id'], $pt_id);
- }
-
- if (isset($data['follow_insurer_id'])) {
-
- foreach ($data['follow_insurer_id'] as $index => $insurer) {
-
- // Separate the insurer and insurer branch
- if (isset($insurer) && !empty($insurer)) {
- list($insurer_branch_id, $insurer_id) = explode('-', $insurer);
- } else {
- $insurer_branch_id = null;
- $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);
- // print_r($cop_amt);die();
- } else {
- $cop_amt = $data['co_premium'][$index] ?? 0;
- }
-
- // Prepare each co-share detail entry
- $coShareDetails[] = [
- 'pt_id' => $pt_id,
- 'insurer_id' => $insurer_id ?? 0,
- 'insurer_branch_id' => $insurer_branch_id ?? 0,
- 'co_share_type' => $data['co_share_type'][$index] ?? 1,
- 'co_share_per' => $data['co_share_per'][$index] ?? 0,
- 'bp_amt' => $data['base_premium'][$index] ?? 0,
- 'bp_gst_amt' => $data['gst_amount'][$index] ?? 0,
- 'bp_igst' => $data['igst'][$index] ?? 0,
- 'bp_sgst' => $data['sgst'][$index] ?? 0,
- 'bp_cgst' => $data['cgst'][$index] ?? 0,
- 'tp_amt' => $data['tp_premium'][$index] ?? 0,
- 'tep_amt' => $data['ter_premium'][$index] ?? 0,
- 'cotp_amt' => $data['co_tp_premium'][$index] ?? 0,
- 'cotep_amt' => $data['co_ter_premium'][$index] ?? 0,
- 'agreed_amt' => $data['agreed_amount'][$index] ?? 0,
- 'agreed_bp_per' => $data['agreed_bp'][$index] ?? 0,
- 'agreed_tp_per' => $data['agreed_tp'][$index] ?? 0,
- 'agreed_tep_per' => $data['agreed_ter'][$index] ?? 0,
- 'standerd_bp_per' => $data['standard_bp'][$index] ?? 0,
- 'standerd_tp_per' => $data['standard_tp'][$index] ?? 0,
- 'standerd_tep_per' => $data['standard_ter'][$index] ?? 0,
- 'actual_bp_amt' => $data['actual_bp_amt'][$index] ?? 0,
- 'actual_tp_amt' => $data['actual_tp_amt'][$index] ?? 0,
- 'actual_tep_amt' => $data['actual_tep_amt'][$index] ?? 0,
- 'actual_bp_per' => $data['actual_bp_per'][$index] ?? 0,
- 'actual_tp_per' => $data['actual_tp_per'][$index] ?? 0,
- 'actual_tep_per' => $data['actual_tep_per'][$index] ?? 0,
- 'actual_bp_brokerage_amt' => $data['actual_bp_brokerage_amt'][$index] ?? 0,
- 'actual_tp_brokerage_amt' => $data['actual_tp_brokerage_amt'][$index] ?? 0,
- 'actual_tep_brokerage_amt' => $data['actual_tep_brokerage_amt'][$index] ?? 0,
- 'exp_amt' => isset($data['exp_amt'][$index]) && !empty($data['exp_amt'][$index]) ? $data['exp_amt'][$index] : expected_amount_calc($data, $index),
- 'amount' => $data['total'][$index] ?? 0,
- 'stamp_duty' => $data['stamp_duty'][$index] ?? 0,
- 'cop_amt' => $cop_amt,
- 'variance' => $data['variance'][$index] ?? 0,
- 'reward' => $data['reward'][$index] ?? null,
- 'created_by' => get_session_userid() ?? null,
- 'updated_by' => get_session_userid() ?? null,
- 'id' => $data['co_share_id'][$index] ?? null, // Assuming this is the ID to identify existing records
- 'follower_policy_no' => $data['follower_policy_no'][$index] ?? null,
- 'non_comm_per_amt' => $data['non_comm_per_amt'][$index] ?? null,
- ];
- }
-
- // print_r($pt_id);
- // print_r($coShareDetails);
- // die;
-
- // Separate data into insert and update batches
- $insertData = array_filter($coShareDetails, function ($detail) {
- return empty($detail['id']); // Only insert new records
- });
-
- $updateData = array_filter($coShareDetails, function ($detail) {
- return !empty($detail['id']); // Only update existing records
- });
-
- // Insert new records
- if (!empty($insertData)) {
- $this->PTCOShareDetailsModel->insertBatch($insertData);
- }
-
- // Update existing records
- if (!empty($updateData)) {
- $this->PTCOShareDetailsModel->updateBatch($updateData, 'id'); // Assuming 'id' is the unique identifier
- }
-
- // print_r($this->PTCOShareDetailsModel->getLastQuery()); die;
- // print_r($coShareDetails);
- // die;
-
- return true;
- }
-
- // print_r($data);
- // die;
- }
-
- private function prepareClientPolicyInsertData($data)
- {
- return [
- 'client_id' => $data['client_id'] ?? null,
- 'insurer_id' => $data['insurer_id'] ?? null,
- 'insurer_branch_id' => $data['insurer_branch_id'] ?? null,
- 'tpa_id' => $data['tpa_id'] ?? null,
- 'tpa_branch_id' => $data['tpa_branch_id'] ?? null,
- 'policy_type_id' => $data['policy_type_id'] ?? null,
- 'policy_start_date' => $data['policy_start_date'] ?? null,
- 'policy_end_date' => $data['policy_end_date'] ?? null,
- 'policy_status' => 1,
- 'is_addon' => $data['is_addon'] ?? null,
- 'base_policy' => $data['base_policy'] ?? 0,
- 'created_by' => get_session_userid(),
- 'policy_no' => $data['policy_no'] ?? null,
- 'client_branch_id' => $data['client_branch_id'] ?? 0,
- 'cd_ac_pk' => $data['cd_ac_no'] ?? null,
- 'gst' => 18,
- 'policy_entry_from' => 2,
- ];
- }
-
- private function insertTransactionStatus($policyTranId, $data, $statusType)
- {
- $statusData = [
- 'policy_tran_id' => $policyTranId,
- 'status' => $data['status'],
- 'last_action_date' => $data['last_action_date'],
- 'status_type' => $statusType,
- 'created_by' => get_session_userid(),
- ];
- $this->policyTransactionStatusModel->insert($statusData);
- }
-
- private function processCompletedStatus($data, $client_policy_id, $insurer_id, $policyTranId)
- {
- $totalAmount = (int)$data['total'][0] ?? 0;
- $description = 'The following amount of Rs. ' . $totalAmount . '/- has been debited for the ' . $data['emp_count'] . ' employees at Inception (BDS).';
-
- $cdTransactionData = [
- 'amount' => $totalAmount,
- 'sub_type_id' => 4,
- 'client_id' => $data['client_id'],
- 'client_policy_id' => $client_policy_id ?? 0,
- 'endorsement_no' => null,
- 'cd_ac_no' => $data['cd_ac_no'] ?? null,
- 'insurer_id' => $insurer_id,
- 'description' => $description,
- 'transaction_type' => 'Debit',
- 'updated_by' => get_session_userid(),
- 'event_name' => 'inception',
- 'is_active' => 1,
- 'cd_ac_pk' => $data['cd_ac_pk'],
- 'pt_id' => $policyTranId ?? null,
- ];
-
- $result = DepositHelper::saveDeposit($cdTransactionData, get_session_userid());
-
- if(isset($result) && $result['success'] == true){
- $update_data['ct_tran_id'] = $result['insert_id'];
- $this->policyTransactionModel->where('id', $policyTranId)->set($update_data)->update();
- }
- }
-
- private function cdCorrection($data, $amt, $policyTranId)
- {
- $totalAmount = (int)($amt ?? 0);
- $description = 'The following amount of Rs. ' . $totalAmount . '/- has been debited towards the difference arising from the change in the BDS base premium.';
-
- $cdTransactionData = [
- 'amount' => abs($totalAmount),
- 'sub_type_id' => 4,
- 'client_id' => $data['client_id'],
- 'client_policy_id' => $data['client_policy_id'] ?? 0,
- 'endorsement_no' => null,
- 'cd_ac_no' => $data['cd_ac_no'] ?? null,
- 'insurer_id' => $data['insurer_id'],
- 'description' => $description,
- 'transaction_type' => $totalAmount < 0 ? 'Credit' : 'Debit',
- 'updated_by' => get_session_userid(),
- 'event_name' => 'inception',
- 'is_active' => 1,
- 'cd_ac_pk' => $data['cd_ac_pk'],
- 'pt_id' => $policyTranId ?? null,
- ];
-
- DepositHelper::saveDeposit($cdTransactionData, get_session_userid());
- }
-
- private function processInsertIndividualMemberInEmpTable($data)
- {
- // print_r($data);
- if (isset($data['family_name']) && !empty($data['family_name'])) {
-
- $emp_data = [];
- $emp_ids = [];
- $random_code = generateRandomCode(); // Generate random code once
-
- foreach ($data['family_name'] as $index => $val) {
-
- // Determine the gender based on the relationship
- $relationship = $data['relationship'][$index] ?? '';
- $gender = 'M'; // Default to Male
-
- // Set gender based on relationship
- if (in_array($relationship, ['Mother', 'Daughter', 'Mother in law', 'Spouse'])) {
- $gender = 'F';
- }
-
- $emp_data[] = [
- 'client_id' => $data['client_id'] ?? 0,
- 'client_branch_id' => $data['client_branch_id'] ?? 0,
- 'name' => $val,
- 'relationship' => $relationship,
- 'gender' => $gender,
- 'emp_status' => 'active',
- 'created_by' => get_session_userid(),
- 'emp_code' => $random_code, // Use the same random code for all
- 'id' => $data['emp_id'][$index] ?? null
- ];
-
- $emp_ids[] = $data['emp_id'][$index] ?? 0;
- }
-
-
- // print_r($emp_data); die;
-
- // Separate data into insert and update batches
- $insertData = array_filter($emp_data, function ($detail) {
- return empty($detail['id']); // Only insert new records
- });
-
- $updateData = array_filter($emp_data, function ($detail) {
- return !empty($detail['id']); // Only update existing records
- });
-
- // Insert new records
- if (!empty($insertData)) {
- $this->employeeModel->insertBatch($insertData);
- }
-
- // Update existing records
- if (!empty($updateData)) {
- $this->employeeModel->updateBatch($updateData, 'id'); // Assuming 'id' is the unique identifier
- }
-
- return $emp_ids;
- }
- }
-
- private function InsertIndividualEmpPolicyTable($emp_ids, $client_policy_id)
- {
- if (!empty($emp_ids)) {
-
- $emp_policy_data = [];
-
- foreach ($emp_ids as $index => $emp_id) {
-
- $emp_policy_data[] = [
- 'employee_id' => $emp_id ?? 0,
- 'client_policy_id' => $client_policy_id ?? 0,
- 'created_by' => get_session_userid(),
- 'status' => 'active',
- ];
- }
-
- // print_r($emp_policy_data); die;
-
- // Insert new records
- if (!empty($emp_policy_data)) {
- $this->employeePolicyModel->insertBatch($emp_policy_data);
- }
-
-
- return true;
- }
- }
-
- private function respondSuccess($id, $message, $data)
- {
- return $this->respond(['status' => true, 'pt_id' => $id, 'message' => $message, 'data' => $data], 200);
- }
-
- private function respondError($message)
- {
- return $this->respond(['status' => false, 'message' => $message], 200);
- }
- // policy Transaction Create function End
-
- // Get the Single Inception Tranction data for edit
- public function getInceptionDataForEdit($id)
- {
- $data = $this->policyTransactionModel
- ->select('
- policy_transaction.*,
- clients.short_name as client_short_name,
- clients.client_type,
- clients.entity_type_id,
- policy_type.policy_type,
- client_policy.tpa_id as master_tpa_id,
- client_policy.tpa_branch_id as master_tpa_branch_id,
- client_policy.policy_type_id as master_policy_type_id,
- client_policy.is_addon,
- client_policy.base_policy,
- (
- select last_action_date
- from policy_transaction_status
- where policy_tran_id = policy_transaction.id
- and status = policy_transaction.status
- order by id desc
- limit 1
-
- ) as last_action_date
- ')
- ->join('clients', 'clients.id = policy_transaction.client_id')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
- ->where('policy_transaction.id', $id)
- ->where('policy_transaction.is_active', 1)
- ->first();
-
- $data['created_at'] = (isset($data['created_at']) && $data['created_at'] !== null && $data['created_at'] !== '')
- ? date('d/m/Y h:i:s A', strtotime($data['created_at']))
- : null;
-
- $data['updated_at'] = (isset($data['updated_at']) && $data['updated_at'] !== null && $data['updated_at'] !== '')
- ? date('d/m/Y h:i:s A', strtotime($data['updated_at']))
- : null;
-
-
- if (!empty($data['policy_issue_date'])) {
- $data['policy_issue_date'] = change_date_format($data['policy_issue_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['policy_start_date'])) {
- $data['policy_start_date'] = change_date_format($data['policy_start_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['policy_end_date'])) {
- $data['policy_end_date'] = change_date_format($data['policy_end_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['renewal_date'])) {
- $data['renewal_date'] = change_date_format($data['renewal_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['rollover_date'])) {
- $data['rollover_date'] = change_date_format($data['rollover_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['endorse_eff_date'])) {
- $data['endorse_eff_date'] = change_date_format($data['endorse_eff_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['last_action_date'])) {
- $data['last_action_date'] = change_date_format($data['last_action_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['month'])) {
- $data['month'] = change_date_format($data['month'], 'Y-m-d', 'M/Y');
- } else {
- $data['month'] = null;
- }
-
- // print_r($data); die;
-
- $data['renewal_policy'] = $this->clientPolicyModel
- ->select('client_policy.*, policy_type.policy_type')
- ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
- ->where('client_policy.client_id', $data['client_id'])
- ->where('client_policy.client_branch_id', $data['client_branch_id'])
- ->where('client_policy.is_active', 1)
- ->findAll();
-
- $data['base_policy_data'] = $this->clientPolicyModel
- ->select('client_policy.*, policy_type.policy_type')
- ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
- ->where('client_policy.client_id', $data['client_id'])
- ->where('client_policy.client_branch_id', $data['client_branch_id'])
- ->whereIn('client_policy.policy_type_id', [2, 3])
- ->where('client_policy.is_active', 1)
- ->findAll();
-
- $pt_bp_amt = $this->PTCOShareDetailsModel
- ->select('bp_amt, amount')
- ->where('pt_id', $id)
- ->where('co_share_type', 1)
- ->where('is_active', 1)
- ->first();
-
- // dd(db_connect()->getLastQuery() ,$pt_bp_amt);
- $data['base_cd_amount'] = $pt_bp_amt['amount'] ?? null;
-
-
- $ptFileQuery = $this->PTFileModel
- ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id')
- ->where('pt_files.pt_id', $id)
- ->where('pt_files.is_active', 1);
-
- if (!in_array(get_role_id(), [1, 5]) && empty(array_intersect(user_team(), [MANAGEMENT_TEAM_ID, FINANCE_TEAM_ID, BUSINESS_TEAM_ID]))) {
-
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $ptFileQuery->where('pt_files.created_by', get_session_userid());
- }
- }
-
- $data['pt_files'] = $ptFileQuery->findAll();
-
-
-
- $data['pt_co_share_details'] = $this->PTCOShareDetailsModel
- ->select("
- pt_co_share_details.*,
-
- (
- SELECT
- COUNT(*)
- FROM
- co_share_stmt_details
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- ) AS record_count,
-
- (
- SELECT
- SUM(actual_bp_amt)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_bp_amount,
-
- (
- SELECT
- SUM(actual_tp_amt)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_tp_amount,
-
- (
- SELECT
- SUM(actual_tep_amt)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_tep_amount,
-
- (
- SELECT
- SUM(actual_bp_per)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_bp_percentage,
-
- (
- SELECT
- SUM(actual_tp_per)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_tp_percentage,
-
- (
- SELECT
- SUM(actual_tep_per)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_tep_percentage,
-
-
- (
- SELECT
- SUM(actual_bp_brokerage_amt)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_bp_brokerage_amount,
-
-
- (
- SELECT
- SUM(actual_tp_brokerage_amt)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_tp_brokerage_amount,
-
-
- (
- SELECT
- SUM(actual_tep_brokerage_amt)
- FROM
- co_share_stmt_details
- WHERE
- co_share_id = pt_co_share_details.id
- AND is_active = 1
-
- ) AS actual_tep_brokerage_amount
-
- ")
- ->where('pt_id', $id)
- ->where('is_active', 1)
- ->orderBy('id', 'asc')
- ->findAll();
-
- $data['emp_data'] = $this->employeeModel
- ->select('employees.*, employee_polices.id as emp_policy_id')
- ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left')
- ->where('employees.client_id', $data['client_id'])
- ->where('employees.is_active', 1)->findAll();
- // $data['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $data['client_id'])->findAll();
-
- $clientController = new ClientController();
- $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']);
- $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']);
-
- $data['vehicle_docs'] = $this->clientKYCDocsModel
- ->where('client_id', $data['client_id'])
- ->where('vehicle_id', $data['vehicle_id'])
- ->findAll();
-
- // print_r( $data['pt_co_share_details']); die;
- // return $data;
- if ($data) {
- return $this->respond(['status' => true, 'data' => $data], 200);
- } else {
- return $this->respond(['status' => false], 200);
- }
- }
-
- public function removePolicyTransaction($id, $type = 0)
- {
- if ($id) {
- $data['is_active'] = 0;
- $policy_transaction_data = $this->policyTransactionModel->where('id', $id)->first();
- if($policy_transaction_data['policy_type_id'] > 7 && $type == 0){
-
- $this->policyTransactionModel->where('id', $id)->set($data)->update();
- $this->PTCOShareDetailsModel->where('pt_id', $id)->set($data)->update();
- $this->clientPolicyModel->where('id', $policy_transaction_data['client_policy_id'])->set($data)->update();
- $this->policyTransactionModel->where('client_policy_id', $policy_transaction_data['client_policy_id'])->set($data)->update();
-
- $cd_transaction_model = new ClientDepositModel();
- $cd_transaction_model->where('policy_transaction_id', $id)->set($data)->update();
-
- }else{
- $this->policyTransactionModel->where('id', $id)->set($data)->update();
- $this->PTCOShareDetailsModel->where('pt_id', $id)->set($data)->update();
+ $client_data = $this->clientModel->where('id', $data['client_id'])->first();
+ $data['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $data['client_id'])->findAll();
- $cd_transaction_model = new ClientDepositModel();
- $cd_transaction_model->where('policy_transaction_id', $id)->set($data)->update();
+ $clientController = new ClientController();
+ $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']);
+ $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']);
+ $data['entity_type_id'] = $client_data['entity_type_id'];
+ return $this->respondSuccess($insert, "Policy transaction created successfully", $data);
}
- return $this->respond(['status' => true, 'code' => 200, 'message' => 'Policy Transaction removed successfully'], 200);
- } else {
- return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove policy transaction'], 200);
- }
- }
-
- //function for soft delete for pt_co_share_details records
- public function removePtCoShareRecords($primaryKeys, $pt_id)
- {
- if (empty($primaryKeys)) {
- return false;
+ return $this->respondError("Failed to create policy transaction");
}
- // Convert array to a comma-separated string of placeholders for query binding
- $placeholders = implode(',', array_fill(0, count($primaryKeys), '?'));
+ private function updateInceptionPolicy($id, $data)
+ {
+ // print_r($data); die;
+ $old_pt_data = $this->policyTransactionModel->where('is_active', 1)->where("id", $id)->first();
+ $old_pt_co_share_data = $this->PTCOShareDetailsModel->where('is_active', 1)->where("id", $id)->first();
+ if ($this->policyTransactionModel->update($id, $data)) {
- // Prepare the query with proper binding
- $sql = "UPDATE pt_co_share_details SET is_active = 0 WHERE pt_id = ? AND id NOT IN ($placeholders)";
+ $this->insertTransactionStatus($id, $data, 1);
+ $emp_data = $this->processInsertIndividualMemberInEmpTable($data);
- // Merge pt_id with primary keys for binding
- $params = array_merge([$pt_id], $primaryKeys);
+ if (isset($data['follow_insurer_id']) && !empty($data['follow_insurer_id'][0])) {
- // Execute the query with bound parameters
- return db_connect()->query($sql, $params);
- }
+ $this->insertOrUpdateCoShareDetails($data, $id);
+ if ($data['ct_type'] == 1) {
+ $this->policyTransactionModel->update($id, ['client_policy_id' => $data['client_policy_id']]);
+ }
- //------------------------------------------------------------------------------------------------
+ if (empty($data['client_policy_id']) || $data['client_policy_id'] == 0) {
- // Policy Transaction Endorsement
- public function viewEndorsement()
- {
- // echo '';
- // !dd($this->getEndorsementDataForEdit(17));
- $bds_edit_pt_id = $this->request->getGet('pt_id') ?? null;
- $data['tab_name'] = 'Endorsement';
- $data['page_name'] = 'Endorsement';
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['issuer_branch'] = $this->nhanceBranchModel->where('is_active', 1)->findAll();
- $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+ if ($data['ct_type'] == 2) {
+ $client_policy_insert_data = $this->prepareClientPolicyInsertData($data);
+ $client_policy_id = $this->clientPolicyModel->insert($client_policy_insert_data);
+ $this->policyTransactionModel->update($id, ['client_policy_id' => $client_policy_id]);
+ $this->InsertIndividualEmpPolicyTable($emp_data, $client_policy_id);
+ }
+ } else {
+ if (isset($data['emp_policy_id']) && !empty($data['emp_policy_id'][0])) {
+ $this->InsertIndividualEmpPolicyTable($emp_data, $data['client_policy_id']);
+ }
+ }
- $data['policy_status'] = [
- 'under_process' => 'Under Process',
- 'client_pending' => 'Client Pending',
- 'insurer_pending' => 'Insurer Pending',
- 'co_insurer_pending' => 'Co-Insurer Pending',
- 'tpa_pending' => 'TPA Pending',
- 'validated' => 'Validated',
- 'cancelled' => 'Cancelled',
- 'instalment_pending' => 'Instalment Pending',
- 'completed' => 'Completed',
- ];
+ // if($old_pt_data['status'] != "completed"){
+ // if ($data['status'] == 'completed' && $data['ct_type'] == 2) {
+ // if ($data['client_type'] == 1 && $data['is_cd_reduce_from_bds'] == 1) {
+ // $this->processCompletedStatus($data, $data['client_policy_id'], $data['insurer_id'], $id);
+ // }
+ // }
+ // }
- $data['invoice_status'] = [
- 'yet_to_generate' => 'Pending',
- 'generated' => 'Generated',
- 'send' => 'Sent',
- 'recived' => 'Payment Received',
- ];
+ $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $id)->where('is_active', 1)->findAll();
+ }
- $data['action_type'] = [
- 'addition' => 'Addition',
- 'deletion' => 'Deletion',
- 'addition_deletion' => 'Addition & Deletion',
- 'si_enhancement' => 'SI Enhancement',
- 'combo_a_d_si' => 'Combo A, D & SI',
- 'correction' => 'Correction',
- 'baby_addition' => 'Baby Addition',
- 'policy_instalment' => 'Policy Instalment',
- 'addition_inception' => 'Addition-Inception',
- 'bds_correction' => 'BDS Correction',
- 'policy_correction' => 'Policy Correction',
- 'policy_cancellation' => 'Policy Cancellation',
- ];
+ if(isset($data['cd_amt_changed']) && !empty($data['cd_amt_changed'])){
+ $policy_data = $this->policyTransactionModel->where('is_active', 1)->where('id', $id)->first();
+ $this->cdCorrection($policy_data, $data['cd_amt_changed'], $id);
+ }
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- ];
+ $client_data = $this->clientModel->where('id', $data['client_id'])->first();
+ $data['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $data['client_id'])->findAll();
+
+ $clientController = new ClientController();
+ $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']);
+ $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']);
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
- $status = $this->request->getGet('status');
+ $data['entity_type_id'] = $client_data['entity_type_id'];
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
- $status = (!isset($issuer) || $status === '' || $status === null) ? 0 : $status;
-
- if($bds_edit_pt_id == null){
- $data['endorsement_data_list'] = $this->policyTransactionModel->getEndorsementTranctionListData($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
- }else{
- $data['endorsement_data_list'] = [];
- }
- $data['client'] = $this->clientModel->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);
- }
-
- public function createEndorsementPolicy()
- {
- $id = $this->request->getPost('id');
- $data = $this->preparePolicyTransactionData();
- $data['status'] = 'completed';
- // print_r($data); die;
-
- if (!$id) {
- return $this->insertEndorsementTransaction($data);
- } else {
- return $this->updateEndorsementTransaction($id, $data);
- }
- }
-
- private function preparePolicyTransactionData()
- {
- $data = $this->request->getPost();
-
- // echo '';
- // print_r($data);
- // die;
-
- if (!isset($data['policy_with_corr'])) {
- $data['policy_with_corr'] = 0;
- } elseif ($data['policy_with_corr']) {
- $data['policy_with_corr'] = 1;
- }
-
- // if (!isset($data['is_cd_reduce_from_bds'])) {
- // $data['is_cd_reduce_from_bds'] = 0;
- // } elseif ($data['is_cd_reduce_from_bds']) {
- // $data['is_cd_reduce_from_bds'] = 1;
- // }
-
- if (empty($data['data_received_date'])) {
- $data['data_received_date'] = null;
- } else {
- $data['data_received_date'] = change_date_format($data['data_received_date'], 'd/m/Y', 'Y-m-d');
- }
-
- if (empty($data['policy_issue_date'])) {
- $data['policy_issue_date'] = null;
- } else {
- $data['policy_issue_date'] = change_date_format($data['policy_issue_date'], 'd/m/Y', 'Y-m-d');
- }
-
- if (empty($data['endorse_eff_date'])) {
- $data['endorse_eff_date'] = null;
- } else {
- $data['endorse_eff_date'] = change_date_format($data['endorse_eff_date'], 'd/m/Y', 'Y-m-d');
- }
-
- if (empty($data['install_due_date'])) {
- $data['install_due_date'] = null;
- } else {
- $data['install_due_date'] = change_date_format($data['install_due_date'], 'd/m/Y', 'Y-m-d');
- }
-
- if (!empty($data['month'])) {
- $month = '01/' . $data['month'];
- $data['month'] = change_date_format($month, 'd/M/Y', 'Y-m-d');
- }
-
- if (empty($data['last_action_date'])) {
- $data['last_action_date'] = null;
- } else {
- $data['last_action_date'] = change_date_format($data['last_action_date']);
- }
-
- // print_r($data); die;
-
- // Separate Insurer and TPA Branch IDs and IDs
- if (isset($data['insurer_id']) && !empty($data['insurer_id'])) {
- list($data['insurer_branch_id'], $data['insurer_id']) = explode('-', $data['insurer_id']);
- if (isset($data['tpa']) && !empty($data['tpa'])) {
- list($data['tpa_branch_id'], $data['tpa_id']) = explode('-', $data['tpa']);
+ return $this->respondSuccess($id, "Policy transaction updated successfully", $data);
}
+
+ return $this->respondError("Failed to update policy transaction");
}
- $issue_type = $this->policyTransactionModel
- ->where('action_type', 'inception')
- ->where('client_id', $this->request->getPost('client_id'))
- // ->where('client_policy_id', $this->request->getPost('client_policy_id'))
- ->where('id', $this->request->getPost('client_policy_id'))
- ->where('policy_transaction.is_active', 1)
- ->first();
+ private function insertOrUpdateCoShareDetails($data, $pt_id)
+ {
+ // Prepare data for insertion and updating
+ $coShareDetails = [];
+ if (isset($data['co_share_id']) && !empty($data['co_share_id'])) {
+ $this->removePtCoShareRecords($data['co_share_id'], $pt_id);
+ }
- $data['tsi'] = generate_tsi_code($issue_type['issue_type'] ?? 1);
+ if (isset($data['follow_insurer_id'])) {
- if (!isset($data['client_branch_id']) || $data['client_branch_id'] == "") {
- $client_branch_id = $issue_type['client_branch_id'];
- }else{
- $client_branch_id = $data['client_branch_id'];
+ foreach ($data['follow_insurer_id'] as $index => $insurer) {
+
+ // Separate the insurer and insurer branch
+ if (isset($insurer) && !empty($insurer)) {
+ list($insurer_branch_id, $insurer_id) = explode('-', $insurer);
+ } else {
+ $insurer_branch_id = null;
+ $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);
+ // print_r($cop_amt);die();
+ } else {
+ $cop_amt = $data['co_premium'][$index] ?? 0;
+ }
+
+ // Prepare each co-share detail entry
+ $coShareDetails[] = [
+ 'pt_id' => $pt_id,
+ 'insurer_id' => $insurer_id ?? 0,
+ 'insurer_branch_id' => $insurer_branch_id ?? 0,
+ 'co_share_type' => $data['co_share_type'][$index] ?? 1,
+ 'co_share_per' => $data['co_share_per'][$index] ?? 0,
+ 'bp_amt' => $data['base_premium'][$index] ?? 0,
+ 'bp_gst_amt' => $data['gst_amount'][$index] ?? 0,
+ 'bp_igst' => $data['igst'][$index] ?? 0,
+ 'bp_sgst' => $data['sgst'][$index] ?? 0,
+ 'bp_cgst' => $data['cgst'][$index] ?? 0,
+ 'tp_amt' => $data['tp_premium'][$index] ?? 0,
+ 'tep_amt' => $data['ter_premium'][$index] ?? 0,
+ 'cotp_amt' => $data['co_tp_premium'][$index] ?? 0,
+ 'cotep_amt' => $data['co_ter_premium'][$index] ?? 0,
+ 'agreed_amt' => $data['agreed_amount'][$index] ?? 0,
+ 'agreed_bp_per' => $data['agreed_bp'][$index] ?? 0,
+ 'agreed_tp_per' => $data['agreed_tp'][$index] ?? 0,
+ 'agreed_tep_per' => $data['agreed_ter'][$index] ?? 0,
+ 'standerd_bp_per' => $data['standard_bp'][$index] ?? 0,
+ 'standerd_tp_per' => $data['standard_tp'][$index] ?? 0,
+ 'standerd_tep_per' => $data['standard_ter'][$index] ?? 0,
+ 'actual_bp_amt' => $data['actual_bp_amt'][$index] ?? 0,
+ 'actual_tp_amt' => $data['actual_tp_amt'][$index] ?? 0,
+ 'actual_tep_amt' => $data['actual_tep_amt'][$index] ?? 0,
+ 'actual_bp_per' => $data['actual_bp_per'][$index] ?? 0,
+ 'actual_tp_per' => $data['actual_tp_per'][$index] ?? 0,
+ 'actual_tep_per' => $data['actual_tep_per'][$index] ?? 0,
+ 'actual_bp_brokerage_amt' => $data['actual_bp_brokerage_amt'][$index] ?? 0,
+ 'actual_tp_brokerage_amt' => $data['actual_tp_brokerage_amt'][$index] ?? 0,
+ 'actual_tep_brokerage_amt' => $data['actual_tep_brokerage_amt'][$index] ?? 0,
+ 'exp_amt' => isset($data['exp_amt'][$index]) && !empty($data['exp_amt'][$index]) ? $data['exp_amt'][$index] : expected_amount_calc($data, $index),
+ 'amount' => $data['total'][$index] ?? 0,
+ 'stamp_duty' => $data['stamp_duty'][$index] ?? 0,
+ 'cop_amt' => $cop_amt,
+ 'variance' => $data['variance'][$index] ?? 0,
+ 'reward' => $data['reward'][$index] ?? null,
+ 'created_by' => get_session_userid() ?? null,
+ 'updated_by' => get_session_userid() ?? null,
+ 'id' => $data['co_share_id'][$index] ?? null, // Assuming this is the ID to identify existing records
+ 'follower_policy_no' => $data['follower_policy_no'][$index] ?? null,
+ 'non_comm_per_amt' => $data['non_comm_per_amt'][$index] ?? null,
+ ];
+ }
+
+ // print_r($pt_id);
+ // print_r($coShareDetails);
+ // die;
+
+ // Separate data into insert and update batches
+ $insertData = array_filter($coShareDetails, function ($detail) {
+ return empty($detail['id']); // Only insert new records
+ });
+
+ $updateData = array_filter($coShareDetails, function ($detail) {
+ return !empty($detail['id']); // Only update existing records
+ });
+
+ // Insert new records
+ if (!empty($insertData)) {
+ $this->PTCOShareDetailsModel->insertBatch($insertData);
+ }
+
+ // Update existing records
+ if (!empty($updateData)) {
+ $this->PTCOShareDetailsModel->updateBatch($updateData, 'id'); // Assuming 'id' is the unique identifier
+ }
+
+ // print_r($this->PTCOShareDetailsModel->getLastQuery()); die;
+ // print_r($coShareDetails);
+ // die;
+
+ return true;
+ }
+
+ // print_r($data);
+ // die;
}
- $data['is_cd_reduce_from_bds'] = (isset($issue_type['policy_type_id']) && $issue_type['policy_type_id'] > 7 && $data['client_type'] == 1) ? 1 : 0;
+ private function prepareClientPolicyInsertData($data)
+ {
+ return [
+ 'client_id' => $data['client_id'] ?? null,
+ 'insurer_id' => $data['insurer_id'] ?? null,
+ 'insurer_branch_id' => $data['insurer_branch_id'] ?? null,
+ 'tpa_id' => $data['tpa_id'] ?? null,
+ 'tpa_branch_id' => $data['tpa_branch_id'] ?? null,
+ 'policy_type_id' => $data['policy_type_id'] ?? null,
+ 'policy_start_date' => $data['policy_start_date'] ?? null,
+ 'policy_end_date' => $data['policy_end_date'] ?? null,
+ 'policy_status' => 1,
+ 'is_addon' => $data['is_addon'] ?? null,
+ 'base_policy' => $data['base_policy'] ?? 0,
+ 'created_by' => get_session_userid(),
+ 'policy_no' => $data['policy_no'] ?? null,
+ 'client_branch_id' => $data['client_branch_id'] ?? 0,
+ 'cd_ac_pk' => $data['cd_ac_no'] ?? null,
+ 'gst' => 18,
+ 'policy_entry_from' => 2,
+ ];
+ }
- // if($data['bro_payable_by'] == ""){
- // $data['bro_payable_by'] = $issue_type['bro_payable_by'];
- // }
+ private function insertTransactionStatus($policyTranId, $data, $statusType)
+ {
+ $statusData = [
+ 'policy_tran_id' => $policyTranId,
+ 'status' => $data['status'],
+ 'last_action_date' => $data['last_action_date'],
+ 'status_type' => $statusType,
+ 'created_by' => get_session_userid(),
+ ];
+ $this->policyTransactionStatusModel->insert($statusData);
+ }
- if (!$data['id']) {
+ private function processCompletedStatus($data, $client_policy_id, $insurer_id, $policyTranId)
+ {
+ $totalAmount = (int)$data['total'][0] ?? 0;
+ $description = 'The following amount of Rs. ' . $totalAmount . '/- has been debited for the ' . $data['emp_count'] . ' employees at Inception (BDS).';
- $data += [
- 'issuer' => 2,
- 'issuer_branch' => $data['issuer_branch'] ?? 1,
- 'client_type' => $data['client_type'] ?? $issue_type['client_type'] ?? null,
- 'policy_type_id' => $issue_type['policy_type_id'] ?? null,
- 'issue_type' => $issue_type['issue_type'] ?? null,
- 'source_client_policy_id' => $issue_type['source_client_policy_id'] ?? null,
- 'cd_ac_no' => isset($data['cd_ac_no']) && !empty($data['cd_ac_no']) ? $data['cd_ac_no'] : $issue_type['cd_ac_no'] ?? null,
- 'cd_ac_pk' => isset($data['cd_ac_pk']) && !empty($data['cd_ac_pk']) ? $data['cd_ac_pk'] : $issue_type['cd_ac_pk'] ?? null,
- // 'policy_issue_date' => $issue_type['policy_issue_date'] ?? null,
- 'policy_start_date' => $issue_type['policy_start_date'] ?? null,
- 'policy_end_date' => $issue_type['policy_end_date'] ?? null,
- 'revenue_type' => $issue_type['revenue_type'] ?? null,
- 'co_share' => $issue_type['co_share'] ?? 0,
- 'bro_payable_by' => $data['bro_payable_by'] == "" ? $issue_type['bro_payable_by'] ?? 0 : $data['bro_payable_by'],
- 'installment' => $issue_type['installment'] ?? null,
- 'installment_data' => $issue_type['installment_data'] ?? null,
- 'location' => $issue_type['location'] ?? null,
- 'links' => $issue_type['links'] ?? null,
- 'stage' => $issue_type['stage'] ?? null,
- 'etat' => $issue_type['etat'] ?? null,
- 'etat_band' => $issue_type['etat_band'] ?? null,
- 'edate' => $issue_type['edate'] ?? null,
- 'renewal_date' => $issue_type['renewal_date'] ?? null,
- 'rollover_date' => $issue_type['rollover_date'] ?? null,
- 'policy_holder_name' => $issue_type['policy_holder_name'] ?? null,
- 'same_as_proposer' => $issue_type['same_as_proposer'] ?? 1,
- 'ref' => $issue_type['ref'] ?? null,
- 'spl' => $issue_type['spl'] ?? null,
- 'fund_received' => $issue_type['fund_received'] ?? null,
- 'listed_insurers' => $issue_type['listed_insurers'] ?? null,
- 'ppteam' => $issue_type['ppteam'] ?? null,
- 'sales_generated_by' => $issue_type['sales_generated_by'] ?? null,
- 'serviced_by' => $issue_type['serviced_by'] ?? null
+ $cdTransactionData = [
+ 'amount' => $totalAmount,
+ 'sub_type_id' => 4,
+ 'client_id' => $data['client_id'],
+ 'client_policy_id' => $client_policy_id ?? 0,
+ 'endorsement_no' => null,
+ 'cd_ac_no' => $data['cd_ac_no'] ?? null,
+ 'insurer_id' => $insurer_id,
+ 'description' => $description,
+ 'transaction_type' => 'Debit',
+ 'updated_by' => get_session_userid(),
+ 'event_name' => 'inception',
+ 'is_active' => 1,
+ 'cd_ac_pk' => $data['cd_ac_pk'],
+ 'pt_id' => $policyTranId ?? null,
];
- $data['client_branch_id'] = $client_branch_id;
+ $result = DepositHelper::saveDeposit($cdTransactionData, get_session_userid());
+
+ if(isset($result) && $result['success'] == true){
+ $update_data['ct_tran_id'] = $result['insert_id'];
+ $this->policyTransactionModel->where('id', $policyTranId)->set($update_data)->update();
+ }
}
- // print_r($issue_type);
- // print_r($data);
- // die;
+ private function cdCorrection($data, $amt, $policyTranId)
+ {
+ $totalAmount = (int)($amt ?? 0);
+ $description = 'The following amount of Rs. ' . $totalAmount . '/- has been debited towards the difference arising from the change in the BDS base premium.';
- return $data;
- }
+ $cdTransactionData = [
+ 'amount' => abs($totalAmount),
+ 'sub_type_id' => 4,
+ 'client_id' => $data['client_id'],
+ 'client_policy_id' => $data['client_policy_id'] ?? 0,
+ 'endorsement_no' => null,
+ 'cd_ac_no' => $data['cd_ac_no'] ?? null,
+ 'insurer_id' => $data['insurer_id'],
+ 'description' => $description,
+ 'transaction_type' => $totalAmount < 0 ? 'Credit' : 'Debit',
+ 'updated_by' => get_session_userid(),
+ 'event_name' => 'inception',
+ 'is_active' => 1,
+ 'cd_ac_pk' => $data['cd_ac_pk'],
+ 'pt_id' => $policyTranId ?? null,
+ ];
- private function insertEndorsementTransaction($data)
- {
- $insert = $this->policyTransactionModel->insert($data);
-
- if ($insert) {
-
- $this->insertTransactionStatus($insert, $data, 1);
- $this->handleCompletedStatus($data, $insert);
- $this->insertOrUpdateCoShareDetails($data, $insert);
-
- return $this->respond(['status' => true, 'message' => 'Endorsement transaction created successfully'], 200);
+ DepositHelper::saveDeposit($cdTransactionData, get_session_userid());
}
- return $this->respond(['status' => false, 'message' => 'Endorsement transaction creation failed'], 400);
- }
+ private function processInsertIndividualMemberInEmpTable($data)
+ {
+ // print_r($data);
+ if (isset($data['family_name']) && !empty($data['family_name'])) {
- private function updateEndorsementTransaction($id, $data)
- {
- $old_endorse_data = $this->policyTransactionModel->where('id', $id)->where('is_active', 1)->first();
- $update = $this->policyTransactionModel->where('id', $id)->set($data)->update();
+ $emp_data = [];
+ $emp_ids = [];
+ $random_code = generateRandomCode(); // Generate random code once
- if ($update) {
+ foreach ($data['family_name'] as $index => $val) {
- $this->insertTransactionStatus($id, $data, 1);
- // if($old_endorse_data['status'] != "completed"){
- // $this->handleCompletedStatus($data, $id);
- // }
- $this->insertOrUpdateCoShareDetails($data, $id);
+ // Determine the gender based on the relationship
+ $relationship = $data['relationship'][$index] ?? '';
+ $gender = 'M'; // Default to Male
+
+ // Set gender based on relationship
+ if (in_array($relationship, ['Mother', 'Daughter', 'Mother in law', 'Spouse'])) {
+ $gender = 'F';
+ }
+
+ $emp_data[] = [
+ 'client_id' => $data['client_id'] ?? 0,
+ 'client_branch_id' => $data['client_branch_id'] ?? 0,
+ 'name' => $val,
+ 'relationship' => $relationship,
+ 'gender' => $gender,
+ 'emp_status' => 'active',
+ 'created_by' => get_session_userid(),
+ 'emp_code' => $random_code, // Use the same random code for all
+ 'id' => $data['emp_id'][$index] ?? null
+ ];
+
+ $emp_ids[] = $data['emp_id'][$index] ?? 0;
+ }
- return $this->respond(['status' => true, 'message' => 'Endorsement transaction updated successfully'], 200);
+ // print_r($emp_data); die;
+
+ // Separate data into insert and update batches
+ $insertData = array_filter($emp_data, function ($detail) {
+ return empty($detail['id']); // Only insert new records
+ });
+
+ $updateData = array_filter($emp_data, function ($detail) {
+ return !empty($detail['id']); // Only update existing records
+ });
+
+ // Insert new records
+ if (!empty($insertData)) {
+ $this->employeeModel->insertBatch($insertData);
+ }
+
+ // Update existing records
+ if (!empty($updateData)) {
+ $this->employeeModel->updateBatch($updateData, 'id'); // Assuming 'id' is the unique identifier
+ }
+
+ return $emp_ids;
+ }
}
- return $this->respond(['status' => false, 'message' => 'Endorsement transaction update failed'], 400);
- }
+ private function InsertIndividualEmpPolicyTable($emp_ids, $client_policy_id)
+ {
+ if (!empty($emp_ids)) {
- private function handleCompletedStatus($data, $policy_tran_id)
- {
- if ($data['client_type'] == 1 && $data['status'] == 'completed' && $data['is_cd_reduce_from_bds'] == 1) {
+ $emp_policy_data = [];
- $tolamt = (int) $data['total'][0] ?? 0;
+ foreach ($emp_ids as $index => $emp_id) {
- if(!empty($tolamt)){
- $description = 'The following amount of Rs. ' . round($tolamt, 2) . '/- has been' .
- ($data['action_type'] == 'deletion' ? ' Credit ' : ' Debit ') . 'from the policy transaction (BDS)';
-
- $cd_tranction_data = [
- 'amount' => abs($tolamt),
- 'sub_type_id' => $data['action_type'] == 'deletion' ? 3 : 4,
- 'client_id' => $data['client_id'],
- 'client_policy_id' => $data['client_policy_id'],
- 'endorsement_no' => null,
- 'cd_ac_no' => $data['cd_ac_no'] ?? null,
- 'insurer_id' => $data['insurer_id'],
- 'description' => $description,
- 'transaction_type' => $data['action_type'] == 'deletion' ? 'Credit' : 'Debit',
- 'updated_by' => get_session_userid(),
- 'event_name' => $data['action_type'],
- 'is_active' => 1,
- 'cd_ac_pk' => $data['cd_ac_pk'] ?? null,
- 'pt_id' => $policy_tran_id ?? null,
- ];
+ $emp_policy_data[] = [
+ 'employee_id' => $emp_id ?? 0,
+ 'client_policy_id' => $client_policy_id ?? 0,
+ 'created_by' => get_session_userid(),
+ 'status' => 'active',
+ ];
+ }
- $result = DepositHelper::saveDeposit($cd_tranction_data, get_session_userid());
+ // print_r($emp_policy_data); die;
- if(isset($result['success']) && $result['success']){
- $update_data['ct_tran_id'] = $result['insert_id'];
- $this->policyTransactionModel->where('id', $policy_tran_id)->set($update_data)->update();
+ // Insert new records
+ if (!empty($emp_policy_data)) {
+ $this->employeePolicyModel->insertBatch($emp_policy_data);
+ }
+
+
+ return true;
+ }
+ }
+
+ private function respondSuccess($id, $message, $data)
+ {
+ return $this->respond(['status' => true, 'pt_id' => $id, 'message' => $message, 'data' => $data], 200);
+ }
+
+ private function respondError($message)
+ {
+ return $this->respond(['status' => false, 'message' => $message], 200);
+ }
+ // policy Transaction Create function End
+
+ // Get the Single Inception Tranction data for edit
+ public function getInceptionDataForEdit($id)
+ {
+ $data = $this->policyTransactionModel
+ ->select('
+ policy_transaction.*,
+ clients.short_name as client_short_name,
+ clients.client_type,
+ clients.entity_type_id,
+ policy_type.policy_type,
+ client_policy.tpa_id as master_tpa_id,
+ client_policy.tpa_branch_id as master_tpa_branch_id,
+ client_policy.policy_type_id as master_policy_type_id,
+ client_policy.is_addon,
+ client_policy.base_policy,
+ (
+ select last_action_date
+ from policy_transaction_status
+ where policy_tran_id = policy_transaction.id
+ and status = policy_transaction.status
+ order by id desc
+ limit 1
+
+ ) as last_action_date
+ ')
+ ->join('clients', 'clients.id = policy_transaction.client_id')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
+ ->where('policy_transaction.id', $id)
+ ->where('policy_transaction.is_active', 1)
+ ->first();
+
+ $data['created_at'] = (isset($data['created_at']) && $data['created_at'] !== null && $data['created_at'] !== '')
+ ? date('d/m/Y h:i:s A', strtotime($data['created_at']))
+ : null;
+
+ $data['updated_at'] = (isset($data['updated_at']) && $data['updated_at'] !== null && $data['updated_at'] !== '')
+ ? date('d/m/Y h:i:s A', strtotime($data['updated_at']))
+ : null;
+
+
+ if (!empty($data['policy_issue_date'])) {
+ $data['policy_issue_date'] = change_date_format($data['policy_issue_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['policy_start_date'])) {
+ $data['policy_start_date'] = change_date_format($data['policy_start_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['policy_end_date'])) {
+ $data['policy_end_date'] = change_date_format($data['policy_end_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['renewal_date'])) {
+ $data['renewal_date'] = change_date_format($data['renewal_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['rollover_date'])) {
+ $data['rollover_date'] = change_date_format($data['rollover_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['endorse_eff_date'])) {
+ $data['endorse_eff_date'] = change_date_format($data['endorse_eff_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['last_action_date'])) {
+ $data['last_action_date'] = change_date_format($data['last_action_date'], 'Y-m-d', 'd/m/Y');
+ }
+
+ if (!empty($data['month'])) {
+ $data['month'] = change_date_format($data['month'], 'Y-m-d', 'M/Y');
+ } else {
+ $data['month'] = null;
+ }
+
+ // print_r($data); die;
+
+ $data['renewal_policy'] = $this->clientPolicyModel
+ ->select('client_policy.*, policy_type.policy_type')
+ ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+ ->where('client_policy.client_id', $data['client_id'])
+ ->where('client_policy.client_branch_id', $data['client_branch_id'])
+ ->where('client_policy.is_active', 1)
+ ->findAll();
+
+ $data['base_policy_data'] = $this->clientPolicyModel
+ ->select('client_policy.*, policy_type.policy_type')
+ ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+ ->where('client_policy.client_id', $data['client_id'])
+ ->where('client_policy.client_branch_id', $data['client_branch_id'])
+ ->whereIn('client_policy.policy_type_id', [2, 3])
+ ->where('client_policy.is_active', 1)
+ ->findAll();
+
+ $pt_bp_amt = $this->PTCOShareDetailsModel
+ ->select('bp_amt, amount')
+ ->where('pt_id', $id)
+ ->where('co_share_type', 1)
+ ->where('is_active', 1)
+ ->first();
+
+ // dd(db_connect()->getLastQuery() ,$pt_bp_amt);
+ $data['base_cd_amount'] = $pt_bp_amt['amount'] ?? null;
+
+
+ $ptFileQuery = $this->PTFileModel
+ ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id')
+ ->where('pt_files.pt_id', $id)
+ ->where('pt_files.is_active', 1);
+
+ if (!in_array(get_role_id(), [1, 5]) && empty(array_intersect(user_team(), [MANAGEMENT_TEAM_ID, FINANCE_TEAM_ID, BUSINESS_TEAM_ID]))) {
+
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $ptFileQuery->where('pt_files.created_by', get_session_userid());
}
}
- }
- }
+ $data['pt_files'] = $ptFileQuery->findAll();
- public function getEndorsementDataForEdit($id)
- {
- $data = $this->policyTransactionModel
- ->select('
- policy_transaction.*,
- clients.short_name as client_short_name,
- clients.client_type,
- (
- select last_action_date
- from policy_transaction_status
- where policy_tran_id = policy_transaction.id
- and status = policy_transaction.status
- order by id desc
- limit 1
- ) as last_action_date
- ')
- ->join('clients', 'clients.id = policy_transaction.client_id')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->where('policy_transaction.id', $id)
- ->where('policy_transaction.is_active', 1)
- ->orderBy('id', 'asc')
- ->first();
- $pt_id = null;
-
- if(!empty($data)){
- $inception_data = $this->policyTransactionModel
- ->where('policy_no', $data['policy_no'])
- ->where('client_id', $data['client_id'])
- ->where('action_type', 'inception')
- ->first();
- $pt_id = $inception_data['id'];
- }
-
- if (!empty($data['policy_start_date'])) {
- $data['policy_start_date'] = change_date_format($data['policy_start_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['policy_end_date'])) {
- $data['policy_end_date'] = change_date_format($data['policy_end_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['data_received_date'])) {
- $data['data_received_date'] = change_date_format($data['data_received_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['policy_issue_date'])) {
- $data['policy_issue_date'] = change_date_format($data['policy_issue_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['endorse_eff_date'])) {
- $data['endorse_eff_date'] = change_date_format($data['endorse_eff_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['install_due_date'])) {
- $data['install_due_date'] = change_date_format($data['install_due_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['last_action_date'])) {
- $data['last_action_date'] = change_date_format($data['last_action_date'], 'Y-m-d', 'd/m/Y');
- }
-
- if (!empty($data['month'])) {
- $data['month'] = change_date_format($data['month'], 'Y-m-d', 'M/Y');
- }
-
- // print_r($data); die;
-
- //get PT Co-Share Details
- $data['pt_co_share_details'] = $this->PTCOShareDetailsModel
-
- ->select("
+ $data['pt_co_share_details'] = $this->PTCOShareDetailsModel
+ ->select("
pt_co_share_details.*,
(
@@ -1489,7 +900,7 @@ class PolicyTransactionController extends BaseController
co_share_stmt_details.co_share_id = pt_co_share_details.id
AND co_share_stmt_details.is_active = 1
) AS record_count,
-
+
(
SELECT
SUM(actual_bp_amt)
@@ -1591,1702 +1002,2291 @@ class PolicyTransactionController extends BaseController
AND is_active = 1
) AS actual_tep_brokerage_amount
-
+
")
- ->where('pt_id', $id)
- ->where('is_active', 1)
- ->orderBy('id', 'asc')
- ->findAll();
+ ->where('pt_id', $id)
+ ->where('is_active', 1)
+ ->orderBy('id', 'asc')
+ ->findAll();
- // print_r($data['endorse_eff_date']); die;
+ $data['emp_data'] = $this->employeeModel
+ ->select('employees.*, employee_polices.id as emp_policy_id')
+ ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left')
+ ->where('employees.client_id', $data['client_id'])
+ ->where('employees.is_active', 1)->findAll();
+ // $data['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $data['client_id'])->findAll();
- $pt_bp_amt = $this->PTCOShareDetailsModel
- ->select('bp_amt, amount')
- ->where('pt_id', $id)
- ->where('co_share_type', 1)
- ->where('is_active', 1)
- ->first();
+ $clientController = new ClientController();
+ $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']);
+ $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']);
- // dd(db_connect()->getLastQuery() ,$pt_bp_amt);
- $data['base_cd_amount'] = $pt_bp_amt['amount'] ?? null;
+ $data['vehicle_docs'] = $this->clientKYCDocsModel
+ ->where('client_id', $data['client_id'])
+ ->where('vehicle_id', $data['vehicle_id'])
+ ->findAll();
- if ($data) {
- return $this->respond(['status' => true, 'data' => $data, 'pt_id' => $pt_id], 200);
- } else {
- return $this->respond(['status' => false], 200);
+ // print_r( $data['pt_co_share_details']); die;
+ // return $data;
+ if ($data) {
+ return $this->respond(['status' => true, 'data' => $data], 200);
+ } else {
+ return $this->respond(['status' => false], 200);
+ }
}
- }
- //------------------------------------------------------------------------------------------------
+ public function removePolicyTransaction($id, $type = 0)
+ {
+ if ($id) {
+ $data['is_active'] = 0;
+ $policy_transaction_data = $this->policyTransactionModel->where('id', $id)->first();
+ if($policy_transaction_data['policy_type_id'] > 7 && $type == 0){
- //file upload function
- public function uploadFile()
- {
- $GoogleDriveController = new GoogleDriveController();
- $files = $this->request->getFiles();
- $doc_name = $this->request->getPost('doc_name[]');
- $pt_id = $this->request->getPost('pt_id');
- $client_policy_id = $this->request->getPost('client_policy_id');
- $data = $this->request->getPost();
+ $this->policyTransactionModel->where('id', $id)->set($data)->update();
+ $this->PTCOShareDetailsModel->where('pt_id', $id)->set($data)->update();
+ $this->clientPolicyModel->where('id', $policy_transaction_data['client_policy_id'])->set($data)->update();
+ $this->policyTransactionModel->where('client_policy_id', $policy_transaction_data['client_policy_id'])->set($data)->update();
- $uploadFilePath = WRITEPATH . 'uploads/client_kyc_documents';
+ $cd_transaction_model = new ClientDepositModel();
+ $cd_transaction_model->where('policy_transaction_id', $id)->set($data)->update();
- $uploadData = [];
+ }else{
+ $this->policyTransactionModel->where('id', $id)->set($data)->update();
+ $this->PTCOShareDetailsModel->where('pt_id', $id)->set($data)->update();
+
+ $cd_transaction_model = new ClientDepositModel();
+ $cd_transaction_model->where('policy_transaction_id', $id)->set($data)->update();
- foreach ($data['doc_name'] as $key => $docName) {
+ }
+ return $this->respond(['status' => true, 'code' => 200, 'message' => 'Policy Transaction removed successfully'], 200);
+ } else {
- // Get the corresponding file for this document name
- $file = $files['file'][$key];
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove policy transaction'], 200);
+ }
+ }
- if (!empty($docName) && $file->isValid() && !$file->hasMoved()) {
+ //function for soft delete for pt_co_share_details records
+ public function removePtCoShareRecords($primaryKeys, $pt_id)
+ {
+ if (empty($primaryKeys)) {
+ return false;
+ }
- // Upload the file
- $uploadedFileName = file_Upload($file, $uploadFilePath);
+ // Convert array to a comma-separated string of placeholders for query binding
+ $placeholders = implode(',', array_fill(0, count($primaryKeys), '?'));
- if ($uploadedFileName) {
- // Prepare data for each document upload
- $docData = [
- 'pt_id' => $pt_id,
- 'doc_name' => $docName,
- 'file_name' => $uploadedFileName,
- 'created_by' => get_session_userid(),
+ // Prepare the query with proper binding
+ $sql = "UPDATE pt_co_share_details SET is_active = 0 WHERE pt_id = ? AND id NOT IN ($placeholders)";
+
+ // Merge pt_id with primary keys for binding
+ $params = array_merge([$pt_id], $primaryKeys);
+
+ // Execute the query with bound parameters
+ return db_connect()->query($sql, $params);
+ }
+
+
+ //------------------------------------------------------------------------------------------------
+
+ // Policy Transaction Endorsement
+ public function viewEndorsement()
+ {
+ // echo '';
+ // !dd($this->getEndorsementDataForEdit(17));
+ $bds_edit_pt_id = $this->request->getGet('pt_id') ?? null;
+ $data['tab_name'] = 'Endorsement';
+ $data['page_name'] = 'Endorsement';
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['issuer_branch'] = $this->nhanceBranchModel->where('is_active', 1)->findAll();
+ $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+
+ $data['policy_status'] = [
+ 'under_process' => 'Under Process',
+ 'client_pending' => 'Client Pending',
+ 'insurer_pending' => 'Insurer Pending',
+ 'co_insurer_pending' => 'Co-Insurer Pending',
+ 'tpa_pending' => 'TPA Pending',
+ 'validated' => 'Validated',
+ 'cancelled' => 'Cancelled',
+ 'instalment_pending' => 'Instalment Pending',
+ 'completed' => 'Completed',
+ ];
+
+ $data['invoice_status'] = [
+ 'yet_to_generate' => 'Pending',
+ 'generated' => 'Generated',
+ 'send' => 'Sent',
+ 'recived' => 'Payment Received',
+ ];
+
+ $data['action_type'] = [
+ 'addition' => 'Addition',
+ 'deletion' => 'Deletion',
+ 'addition_deletion' => 'Addition & Deletion',
+ 'si_enhancement' => 'SI Enhancement',
+ 'combo_a_d_si' => 'Combo A, D & SI',
+ 'correction' => 'Correction',
+ 'baby_addition' => 'Baby Addition',
+ 'policy_instalment' => 'Policy Instalment',
+ 'addition_inception' => 'Addition-Inception',
+ 'bds_correction' => 'BDS Correction',
+ 'policy_correction' => 'Policy Correction',
+ 'policy_cancellation' => 'Policy Cancellation',
+ ];
+
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ ];
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+ $status = $this->request->getGet('status');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+ $status = (!isset($issuer) || $status === '' || $status === null) ? 0 : $status;
+
+ if($bds_edit_pt_id == null){
+ $data['endorsement_data_list'] = $this->policyTransactionModel->getEndorsementTranctionListData($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
+ }else{
+ $data['endorsement_data_list'] = [];
+ }
+ $data['client'] = $this->clientModel->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);
+ }
+
+ public function createEndorsementPolicy()
+ {
+ $id = $this->request->getPost('id');
+ $data = $this->preparePolicyTransactionData();
+ $data['status'] = 'completed';
+ // print_r($data); die;
+
+ if (!$id) {
+ return $this->insertEndorsementTransaction($data);
+ } else {
+ return $this->updateEndorsementTransaction($id, $data);
+ }
+ }
+
+ private function preparePolicyTransactionData()
+ {
+ $data = $this->request->getPost();
+
+ // echo '';
+ // print_r($data);
+ // die;
+
+ if (!isset($data['policy_with_corr'])) {
+ $data['policy_with_corr'] = 0;
+ } elseif ($data['policy_with_corr']) {
+ $data['policy_with_corr'] = 1;
+ }
+
+ // if (!isset($data['is_cd_reduce_from_bds'])) {
+ // $data['is_cd_reduce_from_bds'] = 0;
+ // } elseif ($data['is_cd_reduce_from_bds']) {
+ // $data['is_cd_reduce_from_bds'] = 1;
+ // }
+
+ if (empty($data['data_received_date'])) {
+ $data['data_received_date'] = null;
+ } else {
+ $data['data_received_date'] = change_date_format($data['data_received_date'], 'd/m/Y', 'Y-m-d');
+ }
+
+ if (empty($data['policy_issue_date'])) {
+ $data['policy_issue_date'] = null;
+ } else {
+ $data['policy_issue_date'] = change_date_format($data['policy_issue_date'], 'd/m/Y', 'Y-m-d');
+ }
+
+ if (empty($data['endorse_eff_date'])) {
+ $data['endorse_eff_date'] = null;
+ } else {
+ $data['endorse_eff_date'] = change_date_format($data['endorse_eff_date'], 'd/m/Y', 'Y-m-d');
+ }
+
+ if (empty($data['install_due_date'])) {
+ $data['install_due_date'] = null;
+ } else {
+ $data['install_due_date'] = change_date_format($data['install_due_date'], 'd/m/Y', 'Y-m-d');
+ }
+
+ if (!empty($data['month'])) {
+ $month = '01/' . $data['month'];
+ $data['month'] = change_date_format($month, 'd/M/Y', 'Y-m-d');
+ }
+
+ if (empty($data['last_action_date'])) {
+ $data['last_action_date'] = null;
+ } else {
+ $data['last_action_date'] = change_date_format($data['last_action_date']);
+ }
+
+ // print_r($data); die;
+
+ // Separate Insurer and TPA Branch IDs and IDs
+ if (isset($data['insurer_id']) && !empty($data['insurer_id'])) {
+ list($data['insurer_branch_id'], $data['insurer_id']) = explode('-', $data['insurer_id']);
+ if (isset($data['tpa']) && !empty($data['tpa'])) {
+ list($data['tpa_branch_id'], $data['tpa_id']) = explode('-', $data['tpa']);
+ }
+ }
+
+ $issue_type = $this->policyTransactionModel
+ ->where('action_type', 'inception')
+ ->where('client_id', $this->request->getPost('client_id'))
+ // ->where('client_policy_id', $this->request->getPost('client_policy_id'))
+ ->where('id', $this->request->getPost('client_policy_id'))
+ ->where('policy_transaction.is_active', 1)
+ ->first();
+
+ $data['tsi'] = generate_tsi_code($issue_type['issue_type'] ?? 1);
+
+ if (!isset($data['client_branch_id']) || $data['client_branch_id'] == "") {
+ $client_branch_id = $issue_type['client_branch_id'];
+ }else{
+ $client_branch_id = $data['client_branch_id'];
+ }
+
+ $data['is_cd_reduce_from_bds'] = (isset($issue_type['policy_type_id']) && $issue_type['policy_type_id'] > 7 && $data['client_type'] == 1) ? 1 : 0;
+
+ // if($data['bro_payable_by'] == ""){
+ // $data['bro_payable_by'] = $issue_type['bro_payable_by'];
+ // }
+
+ if (!$data['id']) {
+
+ $data += [
+ 'issuer' => 2,
+ 'issuer_branch' => $data['issuer_branch'] ?? 1,
+ 'client_type' => $data['client_type'] ?? $issue_type['client_type'] ?? null,
+ 'policy_type_id' => $issue_type['policy_type_id'] ?? null,
+ 'issue_type' => $issue_type['issue_type'] ?? null,
+ 'source_client_policy_id' => $issue_type['source_client_policy_id'] ?? null,
+ 'cd_ac_no' => isset($data['cd_ac_no']) && !empty($data['cd_ac_no']) ? $data['cd_ac_no'] : $issue_type['cd_ac_no'] ?? null,
+ 'cd_ac_pk' => isset($data['cd_ac_pk']) && !empty($data['cd_ac_pk']) ? $data['cd_ac_pk'] : $issue_type['cd_ac_pk'] ?? null,
+ // 'policy_issue_date' => $issue_type['policy_issue_date'] ?? null,
+ 'policy_start_date' => $issue_type['policy_start_date'] ?? null,
+ 'policy_end_date' => $issue_type['policy_end_date'] ?? null,
+ 'revenue_type' => $issue_type['revenue_type'] ?? null,
+ 'co_share' => $issue_type['co_share'] ?? 0,
+ 'bro_payable_by' => $data['bro_payable_by'] == "" ? $issue_type['bro_payable_by'] ?? 0 : $data['bro_payable_by'],
+ 'installment' => $issue_type['installment'] ?? null,
+ 'installment_data' => $issue_type['installment_data'] ?? null,
+ 'location' => $issue_type['location'] ?? null,
+ 'links' => $issue_type['links'] ?? null,
+ 'stage' => $issue_type['stage'] ?? null,
+ 'etat' => $issue_type['etat'] ?? null,
+ 'etat_band' => $issue_type['etat_band'] ?? null,
+ 'edate' => $issue_type['edate'] ?? null,
+ 'renewal_date' => $issue_type['renewal_date'] ?? null,
+ 'rollover_date' => $issue_type['rollover_date'] ?? null,
+ 'policy_holder_name' => $issue_type['policy_holder_name'] ?? null,
+ 'same_as_proposer' => $issue_type['same_as_proposer'] ?? 1,
+ 'ref' => $issue_type['ref'] ?? null,
+ 'spl' => $issue_type['spl'] ?? null,
+ 'fund_received' => $issue_type['fund_received'] ?? null,
+ 'listed_insurers' => $issue_type['listed_insurers'] ?? null,
+ 'ppteam' => $issue_type['ppteam'] ?? null,
+ 'sales_generated_by' => $issue_type['sales_generated_by'] ?? null,
+ 'serviced_by' => $issue_type['serviced_by'] ?? null
+ ];
+
+ $data['client_branch_id'] = $client_branch_id;
+ }
+
+ // print_r($issue_type);
+ // print_r($data);
+ // die;
+
+ return $data;
+ }
+
+ private function insertEndorsementTransaction($data)
+ {
+ $insert = $this->policyTransactionModel->insert($data);
+
+ if ($insert) {
+
+ $this->insertTransactionStatus($insert, $data, 1);
+ $this->handleCompletedStatus($data, $insert);
+ $this->insertOrUpdateCoShareDetails($data, $insert);
+
+ return $this->respond(['status' => true, 'message' => 'Endorsement transaction created successfully'], 200);
+ }
+
+ return $this->respond(['status' => false, 'message' => 'Endorsement transaction creation failed'], 400);
+ }
+
+ private function updateEndorsementTransaction($id, $data)
+ {
+ $old_endorse_data = $this->policyTransactionModel->where('id', $id)->where('is_active', 1)->first();
+ $update = $this->policyTransactionModel->where('id', $id)->set($data)->update();
+
+ if ($update) {
+
+ $this->insertTransactionStatus($id, $data, 1);
+ // if($old_endorse_data['status'] != "completed"){
+ // $this->handleCompletedStatus($data, $id);
+ // }
+ $this->insertOrUpdateCoShareDetails($data, $id);
+
+
+ return $this->respond(['status' => true, 'message' => 'Endorsement transaction updated successfully'], 200);
+ }
+
+ return $this->respond(['status' => false, 'message' => 'Endorsement transaction update failed'], 400);
+ }
+
+ private function handleCompletedStatus($data, $policy_tran_id)
+ {
+ if ($data['client_type'] == 1 && $data['status'] == 'completed' && $data['is_cd_reduce_from_bds'] == 1) {
+
+ $tolamt = (int) $data['total'][0] ?? 0;
+
+ if(!empty($tolamt)){
+ $description = 'The following amount of Rs. ' . round($tolamt, 2) . '/- has been' .
+ ($data['action_type'] == 'deletion' ? ' Credit ' : ' Debit ') . 'from the policy transaction (BDS)';
+
+ $cd_tranction_data = [
+ 'amount' => abs($tolamt),
+ 'sub_type_id' => $data['action_type'] == 'deletion' ? 3 : 4,
+ 'client_id' => $data['client_id'],
+ 'client_policy_id' => $data['client_policy_id'],
+ 'endorsement_no' => null,
+ 'cd_ac_no' => $data['cd_ac_no'] ?? null,
+ 'insurer_id' => $data['insurer_id'],
+ 'description' => $description,
+ 'transaction_type' => $data['action_type'] == 'deletion' ? 'Credit' : 'Debit',
+ 'updated_by' => get_session_userid(),
+ 'event_name' => $data['action_type'],
+ 'is_active' => 1,
+ 'cd_ac_pk' => $data['cd_ac_pk'] ?? null,
+ 'pt_id' => $policy_tran_id ?? null,
];
- // $uploadFilePath = $uploadFilePath . '/' . $uploadedFileName;
+ $result = DepositHelper::saveDeposit($cd_tranction_data, get_session_userid());
- // $GoogleDriveController->uploadFiletoGdrive(client_policy_id: $client_policy_id, doc_type: 'POLICY', file_path: $uploadFilePath, file_name: $uploadedFileName);
-
- // Insert into database
- $insert = $this->PTFileModel->insert($docData);
-
- if ($insert) {
- $uploadData[] = $docData;
+ if(isset($result['success']) && $result['success']){
+ $update_data['ct_tran_id'] = $result['insert_id'];
+ $this->policyTransactionModel->where('id', $policy_tran_id)->set($update_data)->update();
}
}
+
}
}
- // print_r($uploadData); die;
+ public function getEndorsementDataForEdit($id)
+ {
+ $data = $this->policyTransactionModel
+ ->select('
+ policy_transaction.*,
+ clients.short_name as client_short_name,
+ clients.client_type,
+ (
+ select last_action_date
+ from policy_transaction_status
+ where policy_tran_id = policy_transaction.id
+ and status = policy_transaction.status
+ order by id desc
+ limit 1
- // $uploadData = uploadFilesToGoogleDrive($files['file'], $doc_name, $pt_id);
+ ) as last_action_date
+ ')
+ ->join('clients', 'clients.id = policy_transaction.client_id')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->where('policy_transaction.id', $id)
+ ->where('policy_transaction.is_active', 1)
+ ->orderBy('id', 'asc')
+ ->first();
- if (!empty($uploadData)) {
+ $pt_id = null;
- $ptFileQuery = $this->PTFileModel
- ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id')
- ->where('pt_files.pt_id', $pt_id)
- ->where('pt_files.is_active', 1);
+ if(!empty($data)){
+ $inception_data = $this->policyTransactionModel
+ ->where('policy_no', $data['policy_no'])
+ ->where('client_id', $data['client_id'])
+ ->where('action_type', 'inception')
+ ->first();
+ $pt_id = $inception_data['id'];
+ }
- if (!in_array(get_role_id(), [1, 5]) && empty(array_intersect(user_team(), [MANAGEMENT_TEAM_ID, FINANCE_TEAM_ID, BUSINESS_TEAM_ID]))) {
-
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $ptFileQuery->where('pt_files.created_by', get_session_userid());
- }
+ if (!empty($data['policy_start_date'])) {
+ $data['policy_start_date'] = change_date_format($data['policy_start_date'], 'Y-m-d', 'd/m/Y');
}
- $data['pt_files'] = $ptFileQuery->findAll();
-
- return $this->respond(['status' => true, 'message' => 'File uploaded successfully in G-Drive', 'data' => $data]);
- } else {
- return $this->respond(['status' => false, 'message' => 'Failed to upload file in G-Drive']);
- }
- }
-
- // update Invoice Status
- public function updateInvoiceStatus()
- {
- $ids = $this->request->getPost('ids');
- $ids = json_decode($ids);
-
- // var_dump($ids); die;
-
- $data['invoice_status'] = $this->request->getPost('invoice_status');
- if ($this->request->getPost('invoice_status') == 'generated') {
- $data['invoice_no'] = $this->request->getPost('invoice_no');
- }
-
-
- $update = $this->policyTransactionModel
- ->whereIn('id', $ids)
- ->set($data)
- ->update();
-
-
- if ($update) {
-
- return $this->respond(['status' => true, 'data' => $ids, 'message' => 'Invoice status updated successfully'], 200);
- } else {
- return $this->respond(['status' => true, 'data' => $ids, 'message' => 'Failed to update invoice status'], 200);
- }
- }
-
- public function removeCoShareData($id)
- {
- $this->myLogger->logme('error', 'PT Co Share Detailes Remove function called');
-
- $data = [
- 'updated_by' => get_session_userid(),
- 'is_active' => 0
- ];
-
- $update = $this->PTCOShareDetailsModel->where('id', $id)->set($data)->update();
-
- if ($update) {
- return $this->respond(['status' => true, 'code' => 200, 'message' => 'Data removed successfully'], 200);
- } else {
- return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove data'], 200);
- }
- }
-
- public function getPTCOShareCount($client_id, $client_policy_id)
- {
- $totalCount = $this->PTCOShareDetailsModel
- ->select("
- pt_co_share_details.*,
- policy_transaction.bro_payable_by,
- policy_transaction.cd_ac_pk,
- (
- select cd_ac_no
- from cd_master
- where id = policy_transaction.cd_ac_pk
- ) as cd_account_no,
- (
- select balance
- from cash_deposit
- where cd_ac_pk = policy_transaction.cd_ac_pk
- and is_active = 1
- order by id desc
- limit 1
- ) as cd_amount,
- ")
- ->join('policy_transaction', 'policy_transaction.id = pt_co_share_details.pt_id')
- ->where('policy_transaction.client_id', $client_id)
- // ->where('policy_transaction.client_policy_id', $client_policy_id)
- ->where('policy_transaction.id', $client_policy_id)
- ->where('policy_transaction.action_type', 'inception')
- ->where('policy_transaction.is_active', 1)
- ->findAll();
-
- $is_copay_yes = $this->policyTransactionModel
- ->where('client_id', $client_id)
- // ->where('client_policy_id', $client_policy_id)
- ->where('id', $client_policy_id)
- ->where('action_type', 'inception')
- ->where('is_active', 1)
- ->first();
-
- $cd_ac_no = db_connect()->table('cd_master')->where('id', $is_copay_yes['cd_ac_pk'] ?? null)->get()->getRowArray();
-
- if ($totalCount) {
- return $this->respond(['status' => true, 'code' => 200, 'data' => $totalCount, 'is_copay_yes' => $is_copay_yes, "cd_master_data" => $cd_ac_no], 200);
- } else {
- $insurer_data = $this->clientPolicyModel->where('id', $client_policy_id)->where('is_active', 1)->first();
- return $this->respond(['status' => false, 'code' => 404, 'message' => 'There is no policy inception data.'], 200);
- }
- }
-
- public function checkInvoiceStatus($pt_id)
- {
- $data = $this->policyTransactionModel
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id')
- ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id')
- ->where('policy_transaction.id', $pt_id)
- ->where('policy_transaction.is_active', 1)
- ->where('pt_co_share_details.is_active', 1)
- ->where('pt_co_share_details.statement_id IS NOT NULL')
- ->where('insurer_statements.invoice_no IS NOT NULL')
- ->countAllResults();
-
- if ($data) {
- return $this->respond(['status' => true, 'count' => $data, 'code' => 200], 200);
- } else {
- return $this->respond(['status' => false, 'count' => 0, 'message' => 'No Data Found', 'code' => 404], 200);
- }
- }
-
- public function getBasePolicy($client_id, $client_branch_id)
- {
- $data = $this->clientPolicyModel
- ->select('client_policy.*, policy_type.policy_type')
- ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
- ->where('client_policy.client_id', $client_id)
- ->where('client_policy.client_branch_id', $client_branch_id)
- ->whereIn('client_policy.policy_type_id', [2, 3])
- ->where('client_policy.is_active', 1)
- ->findAll();
-
- if ($data) {
- return $this->respond(['status' => true, 'data' => $data, 'code' => 200], 200);
- } else {
- return $this->respond(['status' => false, 'count' => 0, 'message' => 'No Data Found', 'code' => 404], 200);
- }
- }
-
- //---------------------------------------------------------------------------------------------------
-
- //get BDS Reports data old function
- public function reportBDSOld()
- {
- $data['tab_name'] = 'BDS Report';
- $data['page_name'] = 'BDS Report';
-
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
- $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
- $data['policy_status'] = [
- 'pending' => 'Pending',
- 'exported_to_insurer' => 'Exported to Insurer',
- 'imported_from_insurer' => 'Imported from Insurer',
- 'exported_to_tpa' => 'Exported to TPA',
- 'imported_from_tpa' => 'Imported from TPA',
- 'completed' => 'Completed'
- ];
- $data['invoice_status_array'] = [
- 'yet_to_generate' => 'Yet to Generate',
- 'generated' => 'Generated',
- 'send' => 'Send',
- 'recived' => 'Recived',
- ];
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- ];
-
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
-
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
-
-
- //Actual data for the list
- $data['report_list'] = $this->policyTransactionModel->getBDSReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
- // dd($data);
-
- $this->loadLayout('report_bds_filter', $data);
- }
-
- //get BDS Reports data New Function
- public function reportBDS()
- {
-
- $data['tab_name'] = 'BDS Report';
- $data['page_name'] = 'BDS Report';
-
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
- $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
- $data['policy_status'] = [
- 'pending' => 'Pending',
- 'exported_to_insurer' => 'Exported to Insurer',
- 'imported_from_insurer' => 'Imported from Insurer',
- 'exported_to_tpa' => 'Exported to TPA',
- 'imported_from_tpa' => 'Imported from TPA',
- 'completed' => 'Completed'
- ];
- $data['invoice_status_array'] = [
- 'yet_to_generate' => 'Yet to Generate',
- 'generated' => 'Generated',
- 'send' => 'Send',
- 'recived' => 'Recived',
- ];
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- 'statement_month' => 'Statement Month',
- ];
-
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['users'] = $this->userModel->where('is_active', 1)->findAll();
- $data['policy_count'] = $this->policyTransactionModel->where('is_active', 1)->countAllResults();
-
-
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
- $client_branch_id = $this->request->getGet('client_branch_id');
- $insurer_branch_id = $this->request->getGet('insurer_branch_id');
- $client_policy_id = $this->request->getGet('client_policy_id');
- $user_id = $this->request->getGet('user_id');
-
- if ($date_type == 'statement_month') {
- $start_date = (string)date('Y-m-01', strtotime($start_date));
- $end_date = (string)date('Y-m-31', strtotime($end_date));
- }
-
- // dd($start_date, $end_date, $date_type);
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
- $client_branch_id = (!isset($client_branch_id) || $client_branch_id === '' || $client_branch_id === null) ? 0 : $client_branch_id;
- $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
- $client_policy_id = (!isset($client_policy_id) || $client_policy_id === '' || $client_policy_id === null) ? 0 : $client_policy_id;
- $user_id = (!isset($user_id) || $user_id === '' || $user_id === null) ? 0 : $user_id;
- if ($this->request->is('post')) {
- $isFromDashboard = $this->request->getPost("is_dashboard");
-
- if (isset($isFromDashboard) && !empty($isFromDashboard) && $isFromDashboard == 1) {
- $ids = $this->request->getPost('ids');
-
- $ids = array_filter(explode(',', $ids));
-
- if (!empty($ids)) {
- $idsStr = implode(',', array_map('intval', $ids)); // sanitize IDs to be integers
- $where = "policy_transaction.id IN ($idsStr)";
- } else {
- $where = []; // No valid IDs, return empty result
- }
- }
- // dd($ids);
- }
- //Actual data for the list
- $data['report_list'] = $this->policyTransactionModel->getBDSReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $client_branch_id, $insurer_branch_id, $client_policy_id, $user_id, isset($where) ? $where : '');
- // dd($data);
-
- $this->loadLayout('report_bds_filter', $data);
- }
-
- public function reportVarience()
- {
- $data['tab_name'] = 'Variance Report';
- $data['page_name'] = 'Variance Report';
-
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- ];
-
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
- $client_branch_id = $this->request->getGet('client_branch_id');
- $insurer_branch_id = $this->request->getGet('insurer_branch_id');
- $client_policy_id = $this->request->getGet('client_policy_id');
-
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
-
- $client_branch_id = (!isset($client_branch_id) || $client_branch_id === '' || $client_branch_id === null) ? 0 : $client_branch_id;
- $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
- $client_policy_id = (!isset($client_policy_id) || $client_policy_id === '' || $client_policy_id === null) ? 0 : $client_policy_id;
-
-
- $data['varience_list'] = $this->policyTransactionModel->getVarienceReportLIst($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $client_branch_id, $insurer_branch_id, $client_policy_id);
- // !dd($data['varience_list']);
- $this->loadLayout('variance_report_list', $data);
- }
-
-
- public function reportBusinessList()
- {
- $data['tab_name'] = 'Business Report';
- $data['page_name'] = 'Business Report';
-
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- ];
-
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
-
-
- $data['business_list'] = $this->policyTransactionModel->getBusinessReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
- $this->loadLayout('business_team_list', $data);
- }
-
-
- public function reportFinanceList()
- {
- $data['tab_name'] = 'Finance Report';
- $data['page_name'] = 'Finance Report';
-
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- ];
-
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
-
-
-
- $data['finance_list'] = $this->policyTransactionModel->getFinanceReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
- $this->loadLayout('finance_team_list', $data);
- }
-
- public function reportOutstanding()
- {
- $data['tab_name'] = 'Outstanding Report';
- $data['page_name'] = 'Outstanding Report';
-
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- ];
-
- //filter datas
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $insurer_branch_id = $this->request->getGet('insurer_branch_id');
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : change_date_format($start_date, 'd-m-Y', 'Y-m-01');
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : change_date_format($end_date, 'd-m-Y', 'Y-m-31');
- // dd([$start_date,$end_date]);
-
-
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
-
- $data['outstanting_list'] = $this->policyTransactionModel->getOutstandingReportLIst($start_date, $end_date, $insurer_id, $insurer_branch_id);
- // dd($this->policyTransactionModel->getLastQuery());
- // dd($data);
- $this->loadLayout('outstanding_report_list', $data);
- }
-
- //---------------------------------------------------------------------------------------------------
-
- //insurer statement list page
- public function statementList()
- {
- // dd($this->updateInsurerStatement(['file_id' => 133])); // for check validateInsurerStatementfunction with hard coded file id always un command
- $data['insurers'] = $this->insurerModel->where('is_active',1)->findAll();
- $today = date('Y-m-d');
- $fromday = $from_date = date('Y-m-d', strtotime('-180 days', strtotime($today)));
- // echo $fromday;die();
- $data['invoice_status_array'] = $this->invoiceStatus;
- $data['insurers'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
-
- // dd( $data['insurers']);
- $data['insurer_statement_list'] = $this->insurerStatements
- ->select(
- 'insurer_statements.*,
- insurers.name AS insurer_name,
- insurers.short_name,
- user_profiles.first_name,
- insurer_branch.branch_code,
- (SELECT SUM(pt_co_share_details.exp_amt)
- FROM pt_co_share_details
- WHERE pt_co_share_details.is_active = 1
- AND pt_co_share_details.statement_id = insurer_statements.id
- ) AS exp_inv_amt,
- (SELECT SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds) + SUM(inv_payment_details.gst)
- FROM inv_payment_details
- WHERE inv_payment_details.is_active = 1
- AND inv_payment_details.statement_id = insurer_statements.id
- ) AS received_inv_amt'
- )
- ->join('insurers', 'insurer_statements.insurer_id = insurers.id')
- ->join('insurer_branch', 'insurer_statements.branch_id = insurer_branch.id')
- ->join('user_profiles', 'insurer_statements.created_by = user_profiles.id')
- ->where('insurer_statements.is_active', 1)
- // ->where('insurer_statements.file_status','success')
- ->where('date(insurer_statements.created_at) >= ', $from_date)
- ->where('date(insurer_statements.created_at) <= ', $today)
- ->orderBy('insurer_statements.id', 'DESC')
- ->findAll();
-
- // dd( $this->insurerStatements->getLastQuery());
- $data['tab_name'] = 'Statement Upload';
- $data['page_name'] = 'Statement Upload';
-
- $this->loadLayout('insurer_statement_list', $data);
- }
-
- // public function failedStatementList(){
- // $today = date('Y-m-d');
- // $fromday = $from_date = date('Y-m-d', strtotime('-180 days', strtotime($today)));
- // // echo $fromday;die();
- // $data['invoice_status_array'] = $this->invoiceStatus;
- // $data['insurers'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
-
- // // dd( $data['insurers']);
- // $data['insurer_statement_list'] = $this->insurerStatements
- // ->select('insurer_statements.*,
- // insurers.name AS insurer_name,
- // insurers.short_name,
- // user_profiles.first_name,
- // insurer_branch.branch_code,
- // (SELECT SUM(pt_co_share_details.exp_amt)
- // FROM pt_co_share_details
- // WHERE pt_co_share_details.is_active = 1
- // AND pt_co_share_details.statement_id = insurer_statements.id
- // ) AS exp_inv_amt,
- // (SELECT SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds) + SUM(inv_payment_details.gst)
- // FROM inv_payment_details
- // WHERE inv_payment_details.is_active = 1
- // AND inv_payment_details.statement_id = insurer_statements.id
- // ) AS received_inv_amt'
- // )
- // ->join('insurers', 'insurer_statements.insurer_id = insurers.id')
- // ->join('insurer_branch', 'insurer_statements.branch_id = insurer_branch.id')
- // ->join('user_profiles', 'insurer_statements.created_by = user_profiles.id')
- // ->where('insurer_statements.is_active', 1)
- // ->where('insurer_statements.file_status','failed')
- // ->where('date(insurer_statements.created_at) >= ', $from_date)
- // ->where('date(insurer_statements.created_at) <= ', $today)
- // ->orderBy('insurer_statements.id', 'DESC')
- // ->findAll();
- // if($data['insurer_statement_list']){
- // return $this->respond(['status' => true, 'code' => 200,'data'=>$data ], 200);
- // }else{
- // return $this->respond(['status'=>false,'message'=>'Data Not Fount'],404);
- // }
-
- // }
-
- public function uploadInsurerStatement()
- {
-
- //validate uploaded file
- $filename = '';
- $validated = $this->validate([
- 'statement' => [
- 'uploaded[statement]',
- 'mime_in[statement,application/vnd.ms-excel,application/vnd,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.spreadsheet]',
- 'max_size[statement,16384]',
- ],
- ]);
- // $this->createStatementFolder();
- if ($validated) {
- $avatar = $this->request->getFile('statement');
- if (!$avatar) {
- $this->myLogger->logme("error", 'Statement File not found');
- return $this->respond(['dataStatus' => false, 'code' => 400, 'message' => 'File not found'], 400);
+ if (!empty($data['policy_end_date'])) {
+ $data['policy_end_date'] = change_date_format($data['policy_end_date'], 'Y-m-d', 'd/m/Y');
}
- $is_moved = $avatar->move(WRITEPATH . 'uploads/statements/');
- if ($is_moved) {
- $filename = $avatar->getName();
- // Handle successful upload, e.g., log success or further processing
- $this->myLogger->logme("error", 'Statement File moved successful');
- } else {
- $this->myLogger->logme("error", 'Statement File move failed');
- return $this->respond(['dataStatus' => false, 'code' => 500, 'message' => 'File move failed'], 500);
+ if (!empty($data['data_received_date'])) {
+ $data['data_received_date'] = change_date_format($data['data_received_date'], 'Y-m-d', 'd/m/Y');
}
- } else {
- $this->myLogger->logme("error", 'Statement Upload failed Invalid file');
- return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'Invalid file'], 404);
- }
- //process post variable entry in file table
- $loggedInUserID = get_session_userid();
- // dd($loggedInUserID);
- // $loggedInUserID = 8;
-
- $insurer = $this->request->getPost('insurer');
-
- $insurer_id = explode('-', $insurer)[0];
- $branch_id = explode('-', $insurer)[1];
- // print_r($insurer_id);
- // print_r($branch_id);
- // die();
- $month = $this->request->getPost('statement_month');
- $month = $month . '-01';
- // print_r($month);die;
- $month = change_date_format($month, 'Y-M-d', 'Y-m-d');
- $stmt_sno = $this->request->getPost('statement_no');
- // print_r($month);die;
-
- $file_id = $this->insurerStatements->insert(['insurer_id' => $insurer_id, 'branch_id' => $branch_id, 'file_name' => $filename, 'month' => $month, 'created_by' => $loggedInUserID, 'stmt_sno' => $stmt_sno]); //here field policy_id have client_policy_id and not policy id from policy master
- $this->myLogger->logme("error", '{file_id} statement uploaded success', ['file_id' => $file_id]);
-
- //validate file
- $validation_result = $this->validateInsurerStatement(['file_id' => $file_id]);
- //update file content to DB
- if ($validation_result['status']) {
- $this->updateInsurerStatement(['file_id' => $file_id]);
- }
-
- if (!isset($file_id) || !$validation_result['status']) {
- return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'file not uploaded', 'error_data' => $validation_result['error_data'], 'error_code' => $validation_result['error_code']], 200);
- }
-
- if (isset($file_id) || $validation_result['status']) {
- $this->insurerStatements->where('id', $file_id)->set(['invoice_status' => 'pending'])->update();
- }
-
-
-
- return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'file upload success'], 200);
- }
-
- public function createStatementFolder()
- {
- $folderPath = WRITEPATH . 'uploads/statements/';
-
- // Check if the folder doesn't exist
- if (!file_exists($folderPath)) {
- // Create the folder
- if (mkdir($folderPath, 0777, true)) {
- $this->myLogger->logme('error', 'statement upload folder created successfully');
-
- // Set permissions to a+rwx (read, write, execute for all)
- chmod($folderPath, 0777);
- $this->myLogger->logme('error', 'Permissions set to a+rwx.');
- } else {
- // echo "Failed to create folder.";
- $this->myLogger->logme('error', 'Failed to create statement upload folder.');
+ if (!empty($data['policy_issue_date'])) {
+ $data['policy_issue_date'] = change_date_format($data['policy_issue_date'], 'Y-m-d', 'd/m/Y');
}
- } else {
- $this->myLogger->logme('error', 'upload folder exists.');
- }
- }
- public function validateInsurerStatement($params)
- {
- helper('excel_util_helper');
- //get file info
- $file_id = $params['file_id'];
- $file = $this->insurerStatements->find($file_id);
- // dd($file);
- $date = new \DateTime($file['month']);
+ if (!empty($data['endorse_eff_date'])) {
+ $data['endorse_eff_date'] = change_date_format($data['endorse_eff_date'], 'Y-m-d', 'd/m/Y');
+ }
- $month = $date->format('m');
- $year = $date->format('Y');
+ if (!empty($data['install_due_date'])) {
+ $data['install_due_date'] = change_date_format($data['install_due_date'], 'Y-m-d', 'd/m/Y');
+ }
- $error_data = ['error_code' => '', 'error_data' => []];
- $status = 'success';
- $ret_status = true;
- // dd($month.'-'.$year);
- $return = [];
- if (!isset($file)) {
- //file not found in DB
- return array('status' => false, 'msg' => 'statement file not found in DB');
- }
- $file_name_with_path = WRITEPATH . "/uploads/statements/" . $file['file_name'];
+ if (!empty($data['last_action_date'])) {
+ $data['last_action_date'] = change_date_format($data['last_action_date'], 'Y-m-d', 'd/m/Y');
+ }
- //check physical file
- if (!file_exists($file_name_with_path)) {
- //file not found update status and reason
- $message = "Physcial file not found";
- // echo $message;
- $this->myLogger->logme('error', ($message . ' for statement file id ' . $file_id));
- $this->insurerStatements->where('id', $file_id)->set(['file_status' => 'failed', 'reason' => json_encode(['error_code' => 0, 'error_data' => $message])])->update();
- return array('status' => false, 'error_code' => 0); //0 - Physcial file not found
- }
+ if (!empty($data['month'])) {
+ $data['month'] = change_date_format($data['month'], 'Y-m-d', 'M/Y');
+ }
- //get excel data to php array
- $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
- $sheet = $spreadsheet->getActiveSheet();
+ // print_r($data); die;
- $highestRowAndColumn = $sheet->getHighestRowAndColumn();
- // dd($highestRowAndColumn);
- $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
- unset($excel_data[0]);
- $excel_data = ExcelSanitizeHelper::sanitizeArrayData($excel_data);
- // Kint::dump($excel_data);die();
- //get no of line items and update in DB
- $line_items = 0;
- // get uploaded month transactions data
- $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
- // var_dump($source_data);die();
- // Kint::dump($source_data);die();
+ //get PT Co-Share Details
+ $data['pt_co_share_details'] = $this->PTCOShareDetailsModel
-
- // check policy no,insurer and etc in DB for this month
- // if all good return true, otherwise return false with messssage
- foreach ($excel_data as $excel_key => $excel_row) {
- $is_row_empty = check_row_is_empty_or_null($excel_row);
-
- if (!$is_row_empty) {
-
- // $excel_row = ExcelSanitizeHelper::sanitizeArrayData($excel_row);
- $is_source_found = 0;
- // Kint::dump($excel_key,$excel_row[1],$excel_row[2]);
- // $policy_start_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[4]); //policy_start_date from excel
- // $policy_end_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[5]); //policy_end_date from excel
-
- $policy_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[1]); //policy_end_date from excel
- $policy_no = preg_replace( '/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00A0}\x{200E}\x{200F}\x{202A}-\x{202E}]/u', '', $excel_row[1]); //policy_end_date from excel
-
- // $client_name = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[3]); //clientname from excel
-
- $endorsement_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[2]??''); //policy_end_date from excel
- $endorsement_no = preg_replace( '/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00A0}\x{200E}\x{200F}\x{202A}-\x{202E}]/u', '', $excel_row[2]??''); //policy_end_date from excel
-
- // Kint::dump($excel_key,$policy_no,$endorsement_no,$policy_start_date,$policy_end_date);//die();
- foreach ($source_data as $source_key => $source_row) {
- $source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
- // Kint::dump($source_row, $source_endorsement_no, $policy_no, $endorsement_no);
+ ->select("
+ pt_co_share_details.*,
- // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
- // {
- // $is_source_found = 1;
- // $line_items = $line_items + 1;
- // unset($source_data[$source_key]);
- // continue 2;
- // }
-
- if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no)
- {
- $is_source_found = 1;
- $line_items = $line_items + 1;
- unset($source_data[$source_key]);
- continue 2;
- }
- }
+ (
+ SELECT
+ COUNT(*)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ ) AS record_count,
+
+ (
+ SELECT
+ SUM(actual_bp_amt)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_bp_amount,
+
+ (
+ SELECT
+ SUM(actual_tp_amt)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_tp_amount,
+
+ (
+ SELECT
+ SUM(actual_tep_amt)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_tep_amount,
+
+ (
+ SELECT
+ SUM(actual_bp_per)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_bp_percentage,
+
+ (
+ SELECT
+ SUM(actual_tp_per)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_tp_percentage,
+
+ (
+ SELECT
+ SUM(actual_tep_per)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_tep_percentage,
+
+
+ (
+ SELECT
+ SUM(actual_bp_brokerage_amt)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_bp_brokerage_amount,
+
+
+ (
+ SELECT
+ SUM(actual_tp_brokerage_amt)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_tp_brokerage_amount,
+
+
+ (
+ SELECT
+ SUM(actual_tep_brokerage_amt)
+ FROM
+ co_share_stmt_details
+ WHERE
+ co_share_id = pt_co_share_details.id
+ AND is_active = 1
+
+ ) AS actual_tep_brokerage_amount
+
+ ")
+ ->where('pt_id', $id)
+ ->where('is_active', 1)
+ ->orderBy('id', 'asc')
+ ->findAll();
- if ($is_source_found == 0) {
- // echo $excel_key.'-'.$excel_row[1] . '- not found
';
- $error_data['error_code'] = 1; //match not found
- // $error_data['error_data'] = ($error_data['error_data'] ?? []);
- $error_data['error_data'] = array_merge($error_data['error_data'], [$excel_row[0]]); //match not found
- }
+ // print_r($data['endorse_eff_date']); die;
+
+ $pt_bp_amt = $this->PTCOShareDetailsModel
+ ->select('bp_amt, amount')
+ ->where('pt_id', $id)
+ ->where('co_share_type', 1)
+ ->where('is_active', 1)
+ ->first();
+
+ // dd(db_connect()->getLastQuery() ,$pt_bp_amt);
+ $data['base_cd_amount'] = $pt_bp_amt['amount'] ?? null;
+
+ if ($data) {
+ return $this->respond(['status' => true, 'data' => $data, 'pt_id' => $pt_id], 200);
+ } else {
+ return $this->respond(['status' => false], 200);
}
}
- // dd($error_data);
+ //------------------------------------------------------------------------------------------------
- if ($error_data['error_code']) {
- $status = 'failed';
- $ret_status = false;
- }
- //update in DB
- $this->insurerStatements->where('id', $file_id)->set(['line_items' => $line_items, 'file_status' => $status, 'reason' => json_encode($error_data)])->update();
- return array('status' => $ret_status, 'error_code' => $error_data['error_code'], 'error_data' => $error_data['error_data']);
- }
+ //file upload function
+ public function uploadFile()
+ {
+ $GoogleDriveController = new GoogleDriveController();
+ $files = $this->request->getFiles();
+ $doc_name = $this->request->getPost('doc_name[]');
+ $pt_id = $this->request->getPost('pt_id');
+ $client_policy_id = $this->request->getPost('client_policy_id');
+ $data = $this->request->getPost();
+ $uploadFilePath = WRITEPATH . 'uploads/client_kyc_documents';
- public function updateInsurerStatement($params)
- {
- helper('excel_util_helper');
- //get file info
- $file_id = $params['file_id'];
- $file = $this->insurerStatements->find($file_id);
- // dd($file);
- $date = new \DateTime($file['month']);
+ $uploadData = [];
- $month = $date->format('m');
- $year = $date->format('Y');
+ foreach ($data['doc_name'] as $key => $docName) {
- $error_data = ['error_code' => '', 'error_data' => []];
- $status = 'success';
- $ret_status = true;
- // dd($month.'-'.$year);
- $return = [];
- if (!isset($file)) {
- //file not found in DB
- return array('status' => false, 'msg' => 'statement file not found in DB');
- }
- $file_name_with_path = WRITEPATH . "/uploads/statements/" . $file['file_name'];
+ // Get the corresponding file for this document name
+ $file = $files['file'][$key];
- //check physical file
- if (!file_exists($file_name_with_path)) {
- //file not found update status and reason
- $message = "Physcial file not found";
- // echo $message;
- $this->myLogger->logme('error', ($message . ' for statement file id ' . $file_id));
- $this->insurerStatements->where('id', $file_id)->set(['file_status' => 'failed', 'reason' => json_encode(['error_code' => 0, 'error_data' => $message])])->update();
- return array('status' => false, 'error_code' => 0); //0 - Physcial file not found
- }
+ if (!empty($docName) && $file->isValid() && !$file->hasMoved()) {
- //get excel data to php array
- $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
- $sheet = $spreadsheet->getActiveSheet();
+ // Upload the file
+ $uploadedFileName = file_Upload($file, $uploadFilePath);
- $highestRowAndColumn = $sheet->getHighestRowAndColumn();
- // dd($highestRowAndColumn);
- $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
- unset($excel_data[0]);
- $excel_data = ExcelSanitizeHelper::sanitizeArrayData($excel_data);
- // dd($excel_data);
- //get no of line items and update in DB
- $line_items = count($excel_data);
- // get uploaded month transactions data
- $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
- // Kint::dump($source_data);//die;
- // Kint::dump($excel_data);
- // die;
- // check policy no,insurer and etc in DB for this month
- // if all good return true, otherwise return false with messssage
- $data_to_update = [];
- foreach ($excel_data as $excel_key => $excel_row) {
- $is_row_empty = check_row_is_empty_or_null($excel_row);
- if (!$is_row_empty) {
+ if ($uploadedFileName) {
+ // Prepare data for each document upload
+ $docData = [
+ 'pt_id' => $pt_id,
+ 'doc_name' => $docName,
+ 'file_name' => $uploadedFileName,
+ 'created_by' => get_session_userid(),
+ ];
- $is_source_found = 0;
- // $policy_start_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[4]); //policy_start_date from excel
- // $policy_end_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[5]); //policy_end_date from excel
- $policy_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[1]); //policy_end_date from excel
- $policy_no = preg_replace('/[\x{200C}\x{200B}]/u', '', $excel_row[1]); //
- // $client_name = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[3]); //clientname from excel
- $endorsement_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[2]); //policy_end_date from excel
+ // $uploadFilePath = $uploadFilePath . '/' . $uploadedFileName;
- foreach ($source_data as $source_key => $source_row) {
- // Kint::dump(change_date_format($excel_row[3],'d-m-Y','Y-m-d'));
- $source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
- // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) {
- if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no) {
- $is_source_found = 1;
+ // $GoogleDriveController->uploadFiletoGdrive(client_policy_id: $client_policy_id, doc_type: 'POLICY', file_path: $uploadFilePath, file_name: $uploadedFileName);
- //calculate percentage first
- $total_amt = 0;
+ // Insert into database
+ $insert = $this->PTFileModel->insert($docData);
- // $actual_bp_per = trim($excel_row[9]); //commented becoz this filed removed tfrom excel file
- $actual_bp_per = 0; //set default value 0 for maintaining existing code flow
- $actual_bp_brokerage = trim($excel_row[5]);
- $actual_bp_amt = trim($excel_row[3]);
-
- if (($actual_bp_brokerage && $actual_bp_brokerage != 0 && $actual_bp_brokerage != "")) {
- $total_amt += $actual_bp_brokerage;
- //percentage reverse calculation
- if (($actual_bp_per == 0 || $actual_bp_per == 0) && !empty($actual_bp_amt)) {
- $actual_bp_per = round(($actual_bp_brokerage / $actual_bp_amt) * 100, 2);
- }
- } else {
- $actual_bp_brokerage = $actual_bp_amt * ($actual_bp_per / 100);
- $total_amt += $actual_bp_brokerage;
+ if ($insert) {
+ $uploadData[] = $docData;
}
-
- // $actual_tp_per = trim($excel_row[10]);//commented becoz this filed removed tfrom excel file
- $actual_tp_per = 0;//set default value 0 for maintaining existing code flow
- $actual_tp_brokerage = trim($excel_row[6]);
- $actual_tp_amt = trim($excel_row[4]);
-
- if ($actual_tp_brokerage && $actual_tp_brokerage != 0 && $actual_tp_brokerage != "") {
- $total_amt += $actual_tp_brokerage;
- //percentage reverse calculation
- if (($actual_tp_per == 0 || $actual_tp_per == "") && !empty($actual_tp_amt)) {
- $actual_tp_per = ($actual_tp_brokerage / $actual_tp_amt) * 100;
- }
- } else {
- $actual_tp_brokerage = $actual_tp_amt * ($actual_tp_per / 100);
- $total_amt += $actual_tp_brokerage;
- }
-
- // $actual_tep_per = trim($excel_row[11]);
- // $actual_tep_brokerage = trim($excel_row[14]);
- // $actual_tep_amt = trim($excel_row[8]);
-
- $actual_tep_per = 0;
- $actual_tep_brokerage = 0;
- $actual_tep_amt = 0;
-
- if ($actual_tep_brokerage && $actual_tep_brokerage != 0 && $actual_tep_brokerage != "") {
- $total_amt += $actual_tep_brokerage;
- //percentage reverse calculation
- if (($actual_tep_per == 0 || $actual_tep_per == "") && !empty($actual_tep_amt)) {
- $actual_tep_per = ($actual_tep_brokerage / $actual_tep_amt) * 100;
- }
- } else {
- $actual_tep_brokerage = $actual_tep_amt * ($actual_tep_per / 100);
- $total_amt += $actual_tep_brokerage;
- }
-
- //find variance
- $variance_amt = $source_row['exp_amt'] - $total_amt;
-
- $data_to_update[] = ['co_share_id' => $source_row['id'], 'actual_bp_amt' => $actual_bp_amt, 'actual_tp_amt' => $actual_tp_amt, 'actual_tep_amt' => $actual_tep_amt, 'actual_bp_per' => $actual_bp_per, 'actual_tp_per' => $actual_tp_per, 'actual_tep_per' => $actual_tep_per, 'variance' => $variance_amt, 'actual_tep_brokerage_amt' => $actual_tep_brokerage, 'actual_tp_brokerage_amt' => $actual_tp_brokerage, 'actual_bp_brokerage_amt' => $actual_bp_brokerage, 'reward' => trim($excel_row[7]), 'statement_id' => $file_id];
-
- unset($source_data[$source_key]);
- continue 2;
}
}
}
+
+ // print_r($uploadData); die;
+
+ // $uploadData = uploadFilesToGoogleDrive($files['file'], $doc_name, $pt_id);
+
+ if (!empty($uploadData)) {
+
+ $ptFileQuery = $this->PTFileModel
+ ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id')
+ ->where('pt_files.pt_id', $pt_id)
+ ->where('pt_files.is_active', 1);
+
+ if (!in_array(get_role_id(), [1, 5]) && empty(array_intersect(user_team(), [MANAGEMENT_TEAM_ID, FINANCE_TEAM_ID, BUSINESS_TEAM_ID]))) {
+
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $ptFileQuery->where('pt_files.created_by', get_session_userid());
+ }
+ }
+
+ $data['pt_files'] = $ptFileQuery->findAll();
+
+ return $this->respond(['status' => true, 'message' => 'File uploaded successfully in G-Drive', 'data' => $data]);
+ } else {
+ return $this->respond(['status' => false, 'message' => 'Failed to upload file in G-Drive']);
+ }
}
- // dd($data_to_update);
- $this->coShareStmtDetailsModel->insertBatch($data_to_update, 'id');
- // dd($data_to_update);
- // if($error_data['error_code'])
- // {
- // $status = 'failed';
- // $ret_status = false;
+
+ // update Invoice Status
+ public function updateInvoiceStatus()
+ {
+ $ids = $this->request->getPost('ids');
+ $ids = json_decode($ids);
+
+ // var_dump($ids); die;
+
+ $data['invoice_status'] = $this->request->getPost('invoice_status');
+ if ($this->request->getPost('invoice_status') == 'generated') {
+ $data['invoice_no'] = $this->request->getPost('invoice_no');
+ }
+
+
+ $update = $this->policyTransactionModel
+ ->whereIn('id', $ids)
+ ->set($data)
+ ->update();
+
+
+ if ($update) {
+
+ return $this->respond(['status' => true, 'data' => $ids, 'message' => 'Invoice status updated successfully'], 200);
+ } else {
+ return $this->respond(['status' => true, 'data' => $ids, 'message' => 'Failed to update invoice status'], 200);
+ }
+ }
+
+ public function removeCoShareData($id)
+ {
+ $this->myLogger->logme('error', 'PT Co Share Detailes Remove function called');
+
+ $data = [
+ 'updated_by' => get_session_userid(),
+ 'is_active' => 0
+ ];
+
+ $update = $this->PTCOShareDetailsModel->where('id', $id)->set($data)->update();
+
+ if ($update) {
+ return $this->respond(['status' => true, 'code' => 200, 'message' => 'Data removed successfully'], 200);
+ } else {
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove data'], 200);
+ }
+ }
+
+ public function getPTCOShareCount($client_id, $client_policy_id)
+ {
+ $totalCount = $this->PTCOShareDetailsModel
+ ->select("
+ pt_co_share_details.*,
+ policy_transaction.bro_payable_by,
+ policy_transaction.cd_ac_pk,
+ (
+ select cd_ac_no
+ from cd_master
+ where id = policy_transaction.cd_ac_pk
+ ) as cd_account_no,
+ (
+ select balance
+ from cash_deposit
+ where cd_ac_pk = policy_transaction.cd_ac_pk
+ and is_active = 1
+ order by id desc
+ limit 1
+ ) as cd_amount,
+ ")
+ ->join('policy_transaction', 'policy_transaction.id = pt_co_share_details.pt_id')
+ ->where('policy_transaction.client_id', $client_id)
+ // ->where('policy_transaction.client_policy_id', $client_policy_id)
+ ->where('policy_transaction.id', $client_policy_id)
+ ->where('policy_transaction.action_type', 'inception')
+ ->where('policy_transaction.is_active', 1)
+ ->findAll();
+
+ $is_copay_yes = $this->policyTransactionModel
+ ->where('client_id', $client_id)
+ // ->where('client_policy_id', $client_policy_id)
+ ->where('id', $client_policy_id)
+ ->where('action_type', 'inception')
+ ->where('is_active', 1)
+ ->first();
+
+ $cd_ac_no = db_connect()->table('cd_master')->where('id', $is_copay_yes['cd_ac_pk'] ?? null)->get()->getRowArray();
+
+ if ($totalCount) {
+ return $this->respond(['status' => true, 'code' => 200, 'data' => $totalCount, 'is_copay_yes' => $is_copay_yes, "cd_master_data" => $cd_ac_no], 200);
+ } else {
+ $insurer_data = $this->clientPolicyModel->where('id', $client_policy_id)->where('is_active', 1)->first();
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'There is no policy inception data.'], 200);
+ }
+ }
+
+ public function checkInvoiceStatus($pt_id)
+ {
+ $data = $this->policyTransactionModel
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id')
+ ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id')
+ ->where('policy_transaction.id', $pt_id)
+ ->where('policy_transaction.is_active', 1)
+ ->where('pt_co_share_details.is_active', 1)
+ ->where('pt_co_share_details.statement_id IS NOT NULL')
+ ->where('insurer_statements.invoice_no IS NOT NULL')
+ ->countAllResults();
+
+ if ($data) {
+ return $this->respond(['status' => true, 'count' => $data, 'code' => 200], 200);
+ } else {
+ return $this->respond(['status' => false, 'count' => 0, 'message' => 'No Data Found', 'code' => 404], 200);
+ }
+ }
+
+ public function getBasePolicy($client_id, $client_branch_id)
+ {
+ $data = $this->clientPolicyModel
+ ->select('client_policy.*, policy_type.policy_type')
+ ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+ ->where('client_policy.client_id', $client_id)
+ ->where('client_policy.client_branch_id', $client_branch_id)
+ ->whereIn('client_policy.policy_type_id', [2, 3])
+ ->where('client_policy.is_active', 1)
+ ->findAll();
+
+ if ($data) {
+ return $this->respond(['status' => true, 'data' => $data, 'code' => 200], 200);
+ } else {
+ return $this->respond(['status' => false, 'count' => 0, 'message' => 'No Data Found', 'code' => 404], 200);
+ }
+ }
+
+ //---------------------------------------------------------------------------------------------------
+
+ //get BDS Reports data old function
+ public function reportBDSOld()
+ {
+ $data['tab_name'] = 'BDS Report';
+ $data['page_name'] = 'BDS Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+ $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
+ $data['policy_status'] = [
+ 'pending' => 'Pending',
+ 'exported_to_insurer' => 'Exported to Insurer',
+ 'imported_from_insurer' => 'Imported from Insurer',
+ 'exported_to_tpa' => 'Exported to TPA',
+ 'imported_from_tpa' => 'Imported from TPA',
+ 'completed' => 'Completed'
+ ];
+ $data['invoice_status_array'] = [
+ 'yet_to_generate' => 'Yet to Generate',
+ 'generated' => 'Generated',
+ 'send' => 'Send',
+ 'recived' => 'Recived',
+ ];
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ ];
+
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+
+
+ //Actual data for the list
+ $data['report_list'] = $this->policyTransactionModel->getBDSReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
+ // dd($data);
+
+ $this->loadLayout('report_bds_filter', $data);
+ }
+
+ //get BDS Reports data New Function
+ public function reportBDS()
+ {
+
+ $data['tab_name'] = 'BDS Report';
+ $data['page_name'] = 'BDS Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+ $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
+ $data['policy_status'] = [
+ 'pending' => 'Pending',
+ 'exported_to_insurer' => 'Exported to Insurer',
+ 'imported_from_insurer' => 'Imported from Insurer',
+ 'exported_to_tpa' => 'Exported to TPA',
+ 'imported_from_tpa' => 'Imported from TPA',
+ 'completed' => 'Completed'
+ ];
+ $data['invoice_status_array'] = [
+ 'yet_to_generate' => 'Yet to Generate',
+ 'generated' => 'Generated',
+ 'send' => 'Send',
+ 'recived' => 'Recived',
+ ];
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ 'statement_month' => 'Statement Month',
+ ];
+
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['users'] = $this->userModel->where('is_active', 1)->findAll();
+ $data['policy_count'] = $this->policyTransactionModel->where('is_active', 1)->countAllResults();
+
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+ $client_branch_id = $this->request->getGet('client_branch_id');
+ $insurer_branch_id = $this->request->getGet('insurer_branch_id');
+ $client_policy_id = $this->request->getGet('client_policy_id');
+ $user_id = $this->request->getGet('user_id');
+
+ if ($date_type == 'statement_month') {
+ $start_date = (string)date('Y-m-01', strtotime($start_date));
+ $end_date = (string)date('Y-m-31', strtotime($end_date));
+ }
+
+ // dd($start_date, $end_date, $date_type);
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+ $client_branch_id = (!isset($client_branch_id) || $client_branch_id === '' || $client_branch_id === null) ? 0 : $client_branch_id;
+ $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
+ $client_policy_id = (!isset($client_policy_id) || $client_policy_id === '' || $client_policy_id === null) ? 0 : $client_policy_id;
+ $user_id = (!isset($user_id) || $user_id === '' || $user_id === null) ? 0 : $user_id;
+ if ($this->request->is('post')) {
+ $isFromDashboard = $this->request->getPost("is_dashboard");
+
+ if (isset($isFromDashboard) && !empty($isFromDashboard) && $isFromDashboard == 1) {
+ $ids = $this->request->getPost('ids');
+
+ $ids = array_filter(explode(',', $ids));
+
+ if (!empty($ids)) {
+ $idsStr = implode(',', array_map('intval', $ids)); // sanitize IDs to be integers
+ $where = "policy_transaction.id IN ($idsStr)";
+ } else {
+ $where = []; // No valid IDs, return empty result
+ }
+ }
+ // dd($ids);
+ }
+ //Actual data for the list
+ $data['report_list'] = $this->policyTransactionModel->getBDSReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $client_branch_id, $insurer_branch_id, $client_policy_id, $user_id, isset($where) ? $where : '');
+ // dd($data);
+
+ $this->loadLayout('report_bds_filter', $data);
+ }
+
+ public function reportVarience()
+ {
+ $data['tab_name'] = 'Variance Report';
+ $data['page_name'] = 'Variance Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ ];
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+ $client_branch_id = $this->request->getGet('client_branch_id');
+ $insurer_branch_id = $this->request->getGet('insurer_branch_id');
+ $client_policy_id = $this->request->getGet('client_policy_id');
+
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+
+ $client_branch_id = (!isset($client_branch_id) || $client_branch_id === '' || $client_branch_id === null) ? 0 : $client_branch_id;
+ $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
+ $client_policy_id = (!isset($client_policy_id) || $client_policy_id === '' || $client_policy_id === null) ? 0 : $client_policy_id;
+
+
+ $data['varience_list'] = $this->policyTransactionModel->getVarienceReportLIst($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $client_branch_id, $insurer_branch_id, $client_policy_id);
+ // !dd($data['varience_list']);
+ $this->loadLayout('variance_report_list', $data);
+ }
+
+
+ public function reportBusinessList()
+ {
+ $data['tab_name'] = 'Business Report';
+ $data['page_name'] = 'Business Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ ];
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+
+
+ $data['business_list'] = $this->policyTransactionModel->getBusinessReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
+ $this->loadLayout('business_team_list', $data);
+ }
+
+
+ public function reportFinanceList()
+ {
+ $data['tab_name'] = 'Finance Report';
+ $data['page_name'] = 'Finance Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ ];
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+
+
+
+ $data['finance_list'] = $this->policyTransactionModel->getFinanceReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
+ $this->loadLayout('finance_team_list', $data);
+ }
+
+ public function reportOutstanding()
+ {
+ $data['tab_name'] = 'Outstanding Report';
+ $data['page_name'] = 'Outstanding Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ ];
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $insurer_branch_id = $this->request->getGet('insurer_branch_id');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : change_date_format($start_date, 'd-m-Y', 'Y-m-01');
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : change_date_format($end_date, 'd-m-Y', 'Y-m-31');
+ // dd([$start_date,$end_date]);
+
+
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
+
+ $data['outstanting_list'] = $this->policyTransactionModel->getOutstandingReportLIst($start_date, $end_date, $insurer_id, $insurer_branch_id);
+ // dd($this->policyTransactionModel->getLastQuery());
+ // dd($data);
+ $this->loadLayout('outstanding_report_list', $data);
+ }
+
+ //---------------------------------------------------------------------------------------------------
+
+ //insurer statement list page
+ public function statementList()
+ {
+ // dd($this->updateInsurerStatement(['file_id' => 133])); // for check validateInsurerStatementfunction with hard coded file id always un command
+ $data['insurers'] = $this->insurerModel->where('is_active',1)->findAll();
+ $today = date('Y-m-d');
+ $fromday = $from_date = date('Y-m-d', strtotime('-180 days', strtotime($today)));
+ // echo $fromday;die();
+ $data['invoice_status_array'] = $this->invoiceStatus;
+ $data['insurers'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
+
+ // dd( $data['insurers']);
+ $data['insurer_statement_list'] = $this->insurerStatements
+ ->select(
+ 'insurer_statements.*,
+ insurers.name AS insurer_name,
+ insurers.short_name,
+ user_profiles.first_name,
+ insurer_branch.branch_code,
+ (SELECT SUM(pt_co_share_details.exp_amt)
+ FROM pt_co_share_details
+ WHERE pt_co_share_details.is_active = 1
+ AND pt_co_share_details.statement_id = insurer_statements.id
+ ) AS exp_inv_amt,
+ (SELECT SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds) + SUM(inv_payment_details.gst)
+ FROM inv_payment_details
+ WHERE inv_payment_details.is_active = 1
+ AND inv_payment_details.statement_id = insurer_statements.id
+ ) AS received_inv_amt'
+ )
+ ->join('insurers', 'insurer_statements.insurer_id = insurers.id')
+ ->join('insurer_branch', 'insurer_statements.branch_id = insurer_branch.id')
+ ->join('user_profiles', 'insurer_statements.created_by = user_profiles.id')
+ ->where('insurer_statements.is_active', 1)
+ // ->where('insurer_statements.file_status','success')
+ ->where('date(insurer_statements.created_at) >= ', $from_date)
+ ->where('date(insurer_statements.created_at) <= ', $today)
+ ->orderBy('insurer_statements.id', 'DESC')
+ ->findAll();
+
+ // dd( $this->insurerStatements->getLastQuery());
+ $data['tab_name'] = 'Statement Upload';
+ $data['page_name'] = 'Statement Upload';
+
+ $this->loadLayout('insurer_statement_list', $data);
+ }
+
+ // public function failedStatementList(){
+ // $today = date('Y-m-d');
+ // $fromday = $from_date = date('Y-m-d', strtotime('-180 days', strtotime($today)));
+ // // echo $fromday;die();
+ // $data['invoice_status_array'] = $this->invoiceStatus;
+ // $data['insurers'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
+
+ // // dd( $data['insurers']);
+ // $data['insurer_statement_list'] = $this->insurerStatements
+ // ->select('insurer_statements.*,
+ // insurers.name AS insurer_name,
+ // insurers.short_name,
+ // user_profiles.first_name,
+ // insurer_branch.branch_code,
+ // (SELECT SUM(pt_co_share_details.exp_amt)
+ // FROM pt_co_share_details
+ // WHERE pt_co_share_details.is_active = 1
+ // AND pt_co_share_details.statement_id = insurer_statements.id
+ // ) AS exp_inv_amt,
+ // (SELECT SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds) + SUM(inv_payment_details.gst)
+ // FROM inv_payment_details
+ // WHERE inv_payment_details.is_active = 1
+ // AND inv_payment_details.statement_id = insurer_statements.id
+ // ) AS received_inv_amt'
+ // )
+ // ->join('insurers', 'insurer_statements.insurer_id = insurers.id')
+ // ->join('insurer_branch', 'insurer_statements.branch_id = insurer_branch.id')
+ // ->join('user_profiles', 'insurer_statements.created_by = user_profiles.id')
+ // ->where('insurer_statements.is_active', 1)
+ // ->where('insurer_statements.file_status','failed')
+ // ->where('date(insurer_statements.created_at) >= ', $from_date)
+ // ->where('date(insurer_statements.created_at) <= ', $today)
+ // ->orderBy('insurer_statements.id', 'DESC')
+ // ->findAll();
+ // if($data['insurer_statement_list']){
+ // return $this->respond(['status' => true, 'code' => 200,'data'=>$data ], 200);
+ // }else{
+ // return $this->respond(['status'=>false,'message'=>'Data Not Fount'],404);
+ // }
+
// }
- //update in DB
- $this->insurerStatements->where('id', $file_id)->set(['file_status' => $status, 'reason' => json_encode($error_data), 'invoice_status' => 'pending'])->update();
- return array('status' => $ret_status, 'error_code' => $error_data['error_code'], 'error_data' => $error_data['error_data']);
- }
- public function getInvoicePaymentDetails()
- {
- $statement_id = $this->request->getUri()->getSegment(4);
+ public function uploadInsurerStatement()
+ {
- $inv_details = $this->insurerStatements->find($statement_id);
- $inv_payment_details = $this->invPaymentDetailsModel
- ->where('statement_id', $statement_id)
- ->where('is_active', 1)
- ->get()
- ->getResultArray();
- if (!$inv_details['invoice_value']) {
- $stmt_level_value = $this->coShareStmtDetailsModel->select('sum(actual_tep_brokerage_amt) + sum(actual_tp_brokerage_amt) + sum(actual_bp_brokerage_amt) + sum(reward) as invoice_value')
+ //validate uploaded file
+ $filename = '';
+ $validated = $this->validate([
+ 'statement' => [
+ 'uploaded[statement]',
+ 'mime_in[statement,application/vnd.ms-excel,application/vnd,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.spreadsheet]',
+ 'max_size[statement,16384]',
+ ],
+ ]);
+ // $this->createStatementFolder();
+ if ($validated) {
+ $avatar = $this->request->getFile('statement');
+ if (!$avatar) {
+ $this->myLogger->logme("error", 'Statement File not found');
+ return $this->respond(['dataStatus' => false, 'code' => 400, 'message' => 'File not found'], 400);
+ }
+
+ $is_moved = $avatar->move(WRITEPATH . 'uploads/statements/');
+ if ($is_moved) {
+ $filename = $avatar->getName();
+ // Handle successful upload, e.g., log success or further processing
+ $this->myLogger->logme("error", 'Statement File moved successful');
+ } else {
+ $this->myLogger->logme("error", 'Statement File move failed');
+ return $this->respond(['dataStatus' => false, 'code' => 500, 'message' => 'File move failed'], 500);
+ }
+ } else {
+ $this->myLogger->logme("error", 'Statement Upload failed Invalid file');
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'Invalid file'], 404);
+ }
+
+ //process post variable entry in file table
+ $loggedInUserID = get_session_userid();
+ // dd($loggedInUserID);
+ // $loggedInUserID = 8;
+
+ $insurer = $this->request->getPost('insurer');
+
+ $insurer_id = explode('-', $insurer)[0];
+ $branch_id = explode('-', $insurer)[1];
+ // print_r($insurer_id);
+ // print_r($branch_id);
+ // die();
+ $month = $this->request->getPost('statement_month');
+ $month = $month . '-01';
+ // print_r($month);die;
+ $month = change_date_format($month, 'Y-M-d', 'Y-m-d');
+ $stmt_sno = $this->request->getPost('statement_no');
+ // print_r($month);die;
+
+ $file_id = $this->insurerStatements->insert(['insurer_id' => $insurer_id, 'branch_id' => $branch_id, 'file_name' => $filename, 'month' => $month, 'created_by' => $loggedInUserID, 'stmt_sno' => $stmt_sno]); //here field policy_id have client_policy_id and not policy id from policy master
+ $this->myLogger->logme("error", '{file_id} statement uploaded success', ['file_id' => $file_id]);
+
+ //validate file
+ $validation_result = $this->validateInsurerStatement(['file_id' => $file_id]);
+ //update file content to DB
+ if ($validation_result['status']) {
+ $this->updateInsurerStatement(['file_id' => $file_id]);
+ }
+
+ if (!isset($file_id) || !$validation_result['status']) {
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'file not uploaded', 'error_data' => $validation_result['error_data'], 'error_code' => $validation_result['error_code']], 200);
+ }
+
+ if (isset($file_id) || $validation_result['status']) {
+ $this->insurerStatements->where('id', $file_id)->set(['invoice_status' => 'pending'])->update();
+ }
+
+
+
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'file upload success'], 200);
+ }
+
+ public function createStatementFolder()
+ {
+ $folderPath = WRITEPATH . 'uploads/statements/';
+
+ // Check if the folder doesn't exist
+ if (!file_exists($folderPath)) {
+ // Create the folder
+ if (mkdir($folderPath, 0777, true)) {
+ $this->myLogger->logme('error', 'statement upload folder created successfully');
+
+ // Set permissions to a+rwx (read, write, execute for all)
+ chmod($folderPath, 0777);
+ $this->myLogger->logme('error', 'Permissions set to a+rwx.');
+ } else {
+ // echo "Failed to create folder.";
+ $this->myLogger->logme('error', 'Failed to create statement upload folder.');
+ }
+ } else {
+ $this->myLogger->logme('error', 'upload folder exists.');
+ }
+ }
+
+ public function validateInsurerStatement($params)
+ {
+ helper('excel_util_helper');
+ //get file info
+ $file_id = $params['file_id'];
+ $file = $this->insurerStatements->find($file_id);
+ // dd($file);
+ $date = new \DateTime($file['month']);
+
+ $month = $date->format('m');
+ $year = $date->format('Y');
+
+ $error_data = ['error_code' => '', 'error_data' => []];
+ $status = 'success';
+ $ret_status = true;
+ // dd($month.'-'.$year);
+ $return = [];
+ if (!isset($file)) {
+ //file not found in DB
+ return array('status' => false, 'msg' => 'statement file not found in DB');
+ }
+ $file_name_with_path = WRITEPATH . "/uploads/statements/" . $file['file_name'];
+
+ //check physical file
+ if (!file_exists($file_name_with_path)) {
+ //file not found update status and reason
+ $message = "Physcial file not found";
+ // echo $message;
+ $this->myLogger->logme('error', ($message . ' for statement file id ' . $file_id));
+ $this->insurerStatements->where('id', $file_id)->set(['file_status' => 'failed', 'reason' => json_encode(['error_code' => 0, 'error_data' => $message])])->update();
+ return array('status' => false, 'error_code' => 0); //0 - Physcial file not found
+ }
+
+ //get excel data to php array
+ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
+ $sheet = $spreadsheet->getActiveSheet();
+
+ $highestRowAndColumn = $sheet->getHighestRowAndColumn();
+ // dd($highestRowAndColumn);
+ $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
+ unset($excel_data[0]);
+ $excel_data = ExcelSanitizeHelper::sanitizeArrayData($excel_data);
+ // Kint::dump($excel_data);die();
+ //get no of line items and update in DB
+ $line_items = 0;
+ // get uploaded month transactions data
+ $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
+ // var_dump($source_data);die();
+ // Kint::dump($source_data);die();
+
+
+ // check policy no,insurer and etc in DB for this month
+ // if all good return true, otherwise return false with messssage
+ foreach ($excel_data as $excel_key => $excel_row) {
+ $is_row_empty = check_row_is_empty_or_null($excel_row);
+
+ if (!$is_row_empty) {
+
+ // $excel_row = ExcelSanitizeHelper::sanitizeArrayData($excel_row);
+ $is_source_found = 0;
+ // Kint::dump($excel_key,$excel_row[1],$excel_row[2]);
+ // $policy_start_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[4]); //policy_start_date from excel
+ // $policy_end_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[5]); //policy_end_date from excel
+
+ $policy_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[1]); //policy_end_date from excel
+ $policy_no = preg_replace( '/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00A0}\x{200E}\x{200F}\x{202A}-\x{202E}]/u', '', $excel_row[1]); //policy_end_date from excel
+
+ // $client_name = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[3]); //clientname from excel
+
+ $endorsement_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[2]??''); //policy_end_date from excel
+ $endorsement_no = preg_replace( '/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{00A0}\x{200E}\x{200F}\x{202A}-\x{202E}]/u', '', $excel_row[2]??''); //policy_end_date from excel
+
+ // Kint::dump($excel_key,$policy_no,$endorsement_no,$policy_start_date,$policy_end_date);//die();
+ foreach ($source_data as $source_key => $source_row) {
+ $source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
+ // Kint::dump($source_row, $source_endorsement_no, $policy_no, $endorsement_no);
+
+ // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
+ // {
+ // $is_source_found = 1;
+ // $line_items = $line_items + 1;
+ // unset($source_data[$source_key]);
+ // continue 2;
+ // }
+
+ if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no)
+ {
+ $is_source_found = 1;
+ $line_items = $line_items + 1;
+ unset($source_data[$source_key]);
+ continue 2;
+ }
+ }
+
+ if ($is_source_found == 0) {
+ // echo $excel_key.'-'.$excel_row[1] . '- not found
';
+ $error_data['error_code'] = 1; //match not found
+ // $error_data['error_data'] = ($error_data['error_data'] ?? []);
+ $error_data['error_data'] = array_merge($error_data['error_data'], [$excel_row[0]]); //match not found
+ }
+ }
+ }
+
+ // dd($error_data);
+
+ if ($error_data['error_code']) {
+ $status = 'failed';
+ $ret_status = false;
+ }
+ //update in DB
+ $this->insurerStatements->where('id', $file_id)->set(['line_items' => $line_items, 'file_status' => $status, 'reason' => json_encode($error_data)])->update();
+ return array('status' => $ret_status, 'error_code' => $error_data['error_code'], 'error_data' => $error_data['error_data']);
+ }
+
+
+ public function updateInsurerStatement($params)
+ {
+ helper('excel_util_helper');
+ //get file info
+ $file_id = $params['file_id'];
+ $file = $this->insurerStatements->find($file_id);
+ // dd($file);
+ $date = new \DateTime($file['month']);
+
+ $month = $date->format('m');
+ $year = $date->format('Y');
+
+ $error_data = ['error_code' => '', 'error_data' => []];
+ $status = 'success';
+ $ret_status = true;
+ // dd($month.'-'.$year);
+ $return = [];
+ if (!isset($file)) {
+ //file not found in DB
+ return array('status' => false, 'msg' => 'statement file not found in DB');
+ }
+ $file_name_with_path = WRITEPATH . "/uploads/statements/" . $file['file_name'];
+
+ //check physical file
+ if (!file_exists($file_name_with_path)) {
+ //file not found update status and reason
+ $message = "Physcial file not found";
+ // echo $message;
+ $this->myLogger->logme('error', ($message . ' for statement file id ' . $file_id));
+ $this->insurerStatements->where('id', $file_id)->set(['file_status' => 'failed', 'reason' => json_encode(['error_code' => 0, 'error_data' => $message])])->update();
+ return array('status' => false, 'error_code' => 0); //0 - Physcial file not found
+ }
+
+ //get excel data to php array
+ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
+ $sheet = $spreadsheet->getActiveSheet();
+
+ $highestRowAndColumn = $sheet->getHighestRowAndColumn();
+ // dd($highestRowAndColumn);
+ $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
+ unset($excel_data[0]);
+ $excel_data = ExcelSanitizeHelper::sanitizeArrayData($excel_data);
+ // dd($excel_data);
+ //get no of line items and update in DB
+ $line_items = count($excel_data);
+ // get uploaded month transactions data
+ $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
+ // Kint::dump($source_data);//die;
+ // Kint::dump($excel_data);
+ // die;
+ // check policy no,insurer and etc in DB for this month
+ // if all good return true, otherwise return false with messssage
+ $data_to_update = [];
+ foreach ($excel_data as $excel_key => $excel_row) {
+ $is_row_empty = check_row_is_empty_or_null($excel_row);
+ if (!$is_row_empty) {
+
+ $is_source_found = 0;
+ // $policy_start_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[4]); //policy_start_date from excel
+ // $policy_end_date = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[5]); //policy_end_date from excel
+ $policy_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[1]); //policy_end_date from excel
+ $policy_no = preg_replace('/[\x{200C}\x{200B}]/u', '', $excel_row[1]); //
+ // $client_name = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[3]); //clientname from excel
+ $endorsement_no = preg_replace('/^\p{Z}+|\p{Z}+$/u', '', $excel_row[2]); //policy_end_date from excel
+
+ foreach ($source_data as $source_key => $source_row) {
+ // Kint::dump(change_date_format($excel_row[3],'d-m-Y','Y-m-d'));
+ $source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
+ // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) {
+ if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no) {
+ $is_source_found = 1;
+
+ //calculate percentage first
+ $total_amt = 0;
+
+ // $actual_bp_per = trim($excel_row[9]); //commented becoz this filed removed tfrom excel file
+ $actual_bp_per = 0; //set default value 0 for maintaining existing code flow
+ $actual_bp_brokerage = trim($excel_row[5]);
+ $actual_bp_amt = trim($excel_row[3]);
+
+ if (($actual_bp_brokerage && $actual_bp_brokerage != 0 && $actual_bp_brokerage != "")) {
+ $total_amt += $actual_bp_brokerage;
+ //percentage reverse calculation
+ if (($actual_bp_per == 0 || $actual_bp_per == 0) && !empty($actual_bp_amt)) {
+ $actual_bp_per = round(($actual_bp_brokerage / $actual_bp_amt) * 100, 2);
+ }
+ } else {
+ $actual_bp_brokerage = $actual_bp_amt * ($actual_bp_per / 100);
+ $total_amt += $actual_bp_brokerage;
+ }
+
+ // $actual_tp_per = trim($excel_row[10]);//commented becoz this filed removed tfrom excel file
+ $actual_tp_per = 0;//set default value 0 for maintaining existing code flow
+ $actual_tp_brokerage = trim($excel_row[6]);
+ $actual_tp_amt = trim($excel_row[4]);
+
+ if ($actual_tp_brokerage && $actual_tp_brokerage != 0 && $actual_tp_brokerage != "") {
+ $total_amt += $actual_tp_brokerage;
+ //percentage reverse calculation
+ if (($actual_tp_per == 0 || $actual_tp_per == "") && !empty($actual_tp_amt)) {
+ $actual_tp_per = ($actual_tp_brokerage / $actual_tp_amt) * 100;
+ }
+ } else {
+ $actual_tp_brokerage = $actual_tp_amt * ($actual_tp_per / 100);
+ $total_amt += $actual_tp_brokerage;
+ }
+
+ // $actual_tep_per = trim($excel_row[11]);
+ // $actual_tep_brokerage = trim($excel_row[14]);
+ // $actual_tep_amt = trim($excel_row[8]);
+
+ $actual_tep_per = 0;
+ $actual_tep_brokerage = 0;
+ $actual_tep_amt = 0;
+
+ if ($actual_tep_brokerage && $actual_tep_brokerage != 0 && $actual_tep_brokerage != "") {
+ $total_amt += $actual_tep_brokerage;
+ //percentage reverse calculation
+ if (($actual_tep_per == 0 || $actual_tep_per == "") && !empty($actual_tep_amt)) {
+ $actual_tep_per = ($actual_tep_brokerage / $actual_tep_amt) * 100;
+ }
+ } else {
+ $actual_tep_brokerage = $actual_tep_amt * ($actual_tep_per / 100);
+ $total_amt += $actual_tep_brokerage;
+ }
+
+ //find variance
+ $variance_amt = $source_row['exp_amt'] - $total_amt;
+
+ $data_to_update[] = ['co_share_id' => $source_row['id'], 'actual_bp_amt' => $actual_bp_amt, 'actual_tp_amt' => $actual_tp_amt, 'actual_tep_amt' => $actual_tep_amt, 'actual_bp_per' => $actual_bp_per, 'actual_tp_per' => $actual_tp_per, 'actual_tep_per' => $actual_tep_per, 'variance' => $variance_amt, 'actual_tep_brokerage_amt' => $actual_tep_brokerage, 'actual_tp_brokerage_amt' => $actual_tp_brokerage, 'actual_bp_brokerage_amt' => $actual_bp_brokerage, 'reward' => trim($excel_row[7]), 'statement_id' => $file_id];
+
+ unset($source_data[$source_key]);
+ continue 2;
+ }
+ }
+ }
+ }
+ // dd($data_to_update);
+ $this->coShareStmtDetailsModel->insertBatch($data_to_update, 'id');
+ // dd($data_to_update);
+ // if($error_data['error_code'])
+ // {
+ // $status = 'failed';
+ // $ret_status = false;
+ // }
+ //update in DB
+ $this->insurerStatements->where('id', $file_id)->set(['file_status' => $status, 'reason' => json_encode($error_data), 'invoice_status' => 'pending'])->update();
+ return array('status' => $ret_status, 'error_code' => $error_data['error_code'], 'error_data' => $error_data['error_data']);
+ }
+
+ public function getInvoicePaymentDetails()
+ {
+ $statement_id = $this->request->getUri()->getSegment(4);
+
+ $inv_details = $this->insurerStatements->find($statement_id);
+ $inv_payment_details = $this->invPaymentDetailsModel
->where('statement_id', $statement_id)
- ->groupBy('statement_id')
+ ->where('is_active', 1)
->get()
->getResultArray();
- // print_r($stmt_level_value);
- if ($stmt_level_value && count($stmt_level_value) && isset($stmt_level_value[0])) {
- $inv_details['invoice_value'] = $stmt_level_value[0]['invoice_value'];
+ if (!$inv_details['invoice_value']) {
+ $stmt_level_value = $this->coShareStmtDetailsModel->select('sum(actual_tep_brokerage_amt) + sum(actual_tp_brokerage_amt) + sum(actual_bp_brokerage_amt) + sum(reward) as invoice_value')
+ ->where('statement_id', $statement_id)
+ ->groupBy('statement_id')
+ ->get()
+ ->getResultArray();
+ // print_r($stmt_level_value);
+ if ($stmt_level_value && count($stmt_level_value) && isset($stmt_level_value[0])) {
+ $inv_details['invoice_value'] = $stmt_level_value[0]['invoice_value'];
+ }
}
- }
- // ~dd($inv_details);
- $data = [
- 'invoice_status' => $inv_details['invoice_status'],
- 'gst_per' => isset($inv_details['gst_per']) ? $inv_details['gst_per'] : 18,
- 'invoice_value' => $inv_details['invoice_value'],
- 'gst_value' => $inv_details['gst_value'],
- 'invoice_no' => $inv_details['invoice_no'],
- 'invoice_amount' => $inv_details['invoice_amount'],
- 'invoice_date' => isset($inv_details['invoice_date']) ? change_date_format($inv_details['invoice_date'], 'Y-m-d', 'd/m/Y') : null
- ];
- $data['payments'] = $inv_payment_details;
- return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $data], 200);
- }
-
- public function saveInvoicePaymentDetails()
- {
- $jsonData = $this->request->getJSON();
- $jsonData = (array)$jsonData;
- // echo 'Hi';
- // print_r($jsonData);die();
-
- $invoiceStatus = $jsonData['invoice_status'];
- $hiddenStatementId = $jsonData['hidden_statement_id'];
- $invoiceNo = $jsonData['invoice_no'];
- $invoiceDate = change_date_format($jsonData['invoice_date'], 'd/m/Y', 'Y-m-d');
- $invoice_amount = $jsonData['invoice_amount'];
- $invoice_value = $jsonData['invoice_value'];
- $gst_per = $jsonData['invoice_gst_per'];
- $gst_value = $jsonData['invoice_gst'];
-
- //Update statement table
- $parentData = [
- 'invoice_status' => $invoiceStatus,
- 'invoice_no' => $invoiceNo,
- 'invoice_date' => $invoiceDate,
- 'invoice_amount' => $invoice_amount,
- 'gst_per' => $gst_per,
- 'gst_value' => $gst_value,
- 'invoice_value' => $invoice_value,
- 'updated_by' => get_session_userid()
- ];
-
-
-
- $this->insurerStatements->update($hiddenStatementId, $parentData);
-
- // Process child data
- $receivedAmounts = $jsonData['received_amount'];
- $utrNos = $jsonData['utr_no'];
- $tdsTotal = $jsonData['tds'];
- $gstTotal = $jsonData['gst_amount'];
- $paymentDates = $jsonData['payment_date'];
- $pks = $jsonData['pk'];
-
- foreach ($receivedAmounts as $index => $receivedAmount) {
- $pk = $pks[$index]; // Get the pk for the current record
- $utrNo = $utrNos[$index];
- $tds = $tdsTotal[$index];
- $gst = $gstTotal[$index];
- $paymentDate = $paymentDates[$index];
-
- if($utrNo == "" && $tds == "" && $gst == "" && $receivedAmount == "")
- {
- continue;
- }
- // Prepare data for insert/update
- $childData = [
- 'inv_amt' => $receivedAmount,
- 'utr_no' => $utrNo,
- 'tds' => $tds,
- 'gst' => $gst,
- 'received_date' => change_date_format($paymentDate, 'd/m/Y', 'Y-m-d'),
- 'statement_id' => $hiddenStatementId
+ // ~dd($inv_details);
+ $data = [
+ 'invoice_status' => $inv_details['invoice_status'],
+ 'gst_per' => isset($inv_details['gst_per']) ? $inv_details['gst_per'] : 18,
+ 'invoice_value' => $inv_details['invoice_value'],
+ 'gst_value' => $inv_details['gst_value'],
+ 'invoice_no' => $inv_details['invoice_no'],
+ 'invoice_amount' => $inv_details['invoice_amount'],
+ 'invoice_date' => isset($inv_details['invoice_date']) ? change_date_format($inv_details['invoice_date'], 'Y-m-d', 'd/m/Y') : null
];
- if ($pk) {
- $childData['updated_by'] = get_session_userid();
- $childData['id'] = (int)$pk;
- } else {
- $childData['created_by'] = get_session_userid();
- }
- // print_r($childData);
- // Insert or update
- $this->invPaymentDetailsModel->save($childData);
- // print_r($this->invPaymentDetailsModel->errors());
-
+ $data['payments'] = $inv_payment_details;
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $data], 200);
}
- return $this->respond(['dataStatus' => true, 'code' => 200], 200);
- //return $this->response->setJSON(['dataStatus' => 'true']);
- }
-
- public function deletePaymentEntry()
- {
- $payment_id = $this->request->getUri()->getSegment(4);
- //echo $payment_id;
- $this->invPaymentDetailsModel->update($payment_id, ['is_active' => 0]);
- return $this->respond(['dataStatus' => true, 'code' => 200], 200);
- }
-
- public function downloadSampleInsurerStatement()
- {
-
- $filePath = ROOTPATH . 'public/sample_excel/insurer_stament_sample.xlsx';
- // Check if the file exists
- if (file_exists($filePath)) {
-
- // Set the appropriate MIME type
- $mimeType = mime_content_type($filePath);
-
- // Send the file to the client for download
- return $this->response->download($filePath, null, $mimeType);
- } else {
- // File not found, show an error message or redirect
- echo view('errors/html/production');
- }
- }
-
- public function getFileErr()
- {
- $file_id = $this->request->getUri()->getSegment(4);
- $file = $this->insurerStatements->find($file_id);
- return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $file['reason']], 200);
- }
-
- public function dmsSearch()
- {
- // echo 'scbsc';die();
- if ($this->request->is('post')) {
- // $jsonData = (array)$this->request->getJSON();
- $customer_id = $this->request->getPost('customer_id');
- $policy_id = $this->request->getPost('policy_id');
- $cus_doc_name = $this->request->getPost('cus_doc_name');
- $policy_doc_name = $this->request->getPost('policy_doc_name');
- $pt_files = [];
- $kyc_files = [];
- $batch_files = [];
- $files = [];
+ public function saveInvoicePaymentDetails()
+ {
+ $jsonData = $this->request->getJSON();
+ $jsonData = (array)$jsonData;
+ // echo 'Hi';
// print_r($jsonData);die();
- if ($policy_id != "") {
- //get policy docs from policy transation related tables
- $pt_files = $this->PTFileModel->getPolicyDriveFilesIndex($policy_id, $policy_doc_name);
- $batch_files = $this->batchFileModel->getBatchFilesDataForDocumentSearch($policy_id, $policy_doc_name);
- $files = $this->filesModel->getFilesDataForDocumentSearch($policy_id, $policy_doc_name);
- // dd($files);
- // dd($this->PTFileModel->getLastQuery());
- // ~dd($pt_files);
- }
- if ($customer_id != "") {
- $kyc_files = $this->clientKYCDocsModel->getClientKYCDriveFilesIndex($customer_id, $cus_doc_name);
- // dd($this->clientKYCDocsModel->getLastQuery());
- // !dd($kyc_files);
+
+ $invoiceStatus = $jsonData['invoice_status'];
+ $hiddenStatementId = $jsonData['hidden_statement_id'];
+ $invoiceNo = $jsonData['invoice_no'];
+ $invoiceDate = change_date_format($jsonData['invoice_date'], 'd/m/Y', 'Y-m-d');
+ $invoice_amount = $jsonData['invoice_amount'];
+ $invoice_value = $jsonData['invoice_value'];
+ $gst_per = $jsonData['invoice_gst_per'];
+ $gst_value = $jsonData['invoice_gst'];
+
+ //Update statement table
+ $parentData = [
+ 'invoice_status' => $invoiceStatus,
+ 'invoice_no' => $invoiceNo,
+ 'invoice_date' => $invoiceDate,
+ 'invoice_amount' => $invoice_amount,
+ 'gst_per' => $gst_per,
+ 'gst_value' => $gst_value,
+ 'invoice_value' => $invoice_value,
+ 'updated_by' => get_session_userid()
+ ];
+
+
+
+ $this->insurerStatements->update($hiddenStatementId, $parentData);
+
+ // Process child data
+ $receivedAmounts = $jsonData['received_amount'];
+ $utrNos = $jsonData['utr_no'];
+ $tdsTotal = $jsonData['tds'];
+ $gstTotal = $jsonData['gst_amount'];
+ $paymentDates = $jsonData['payment_date'];
+ $pks = $jsonData['pk'];
+
+ foreach ($receivedAmounts as $index => $receivedAmount) {
+ $pk = $pks[$index]; // Get the pk for the current record
+ $utrNo = $utrNos[$index];
+ $tds = $tdsTotal[$index];
+ $gst = $gstTotal[$index];
+ $paymentDate = $paymentDates[$index];
+
+ if($utrNo == "" && $tds == "" && $gst == "" && $receivedAmount == "")
+ {
+ continue;
+ }
+ // Prepare data for insert/update
+ $childData = [
+ 'inv_amt' => $receivedAmount,
+ 'utr_no' => $utrNo,
+ 'tds' => $tds,
+ 'gst' => $gst,
+ 'received_date' => change_date_format($paymentDate, 'd/m/Y', 'Y-m-d'),
+ 'statement_id' => $hiddenStatementId
+ ];
+ if ($pk) {
+ $childData['updated_by'] = get_session_userid();
+ $childData['id'] = (int)$pk;
+ } else {
+ $childData['created_by'] = get_session_userid();
+ }
+ // print_r($childData);
+ // Insert or update
+ $this->invPaymentDetailsModel->save($childData);
+ // print_r($this->invPaymentDetailsModel->errors());
+
}
- $data['files'] = array_merge($pt_files, $kyc_files, $batch_files, $files);
- // dd($data['files']);
- }
- $data['tab_name'] = 'Documents Search';
- $data['page_name'] = 'Documents';
-
- $data['customers'] = $this->clientModel->select('id,client_name,short_name as display_value')->where('is_active', 1)->get()->getResultarray();
- $data['policies'] = $this->clientPolicyModel->select("client_policy.id,client_policy.policy_no,policy_type.policy_type,concat(policy_type.policy_type,' - ',client_policy.policy_no) as display_value")
- ->join('policy_type', 'client_policy.policy_type_id = policy_type.id')
- ->where('client_policy.is_active', 1)->get()->getResultarray();
- // dd($data);
- $this->loadLayout('dms_search', $data);
- }
-
- //---------------------------------------------------------------------------------------------------
-
- public function getCoShareStatementDetails($pt_id)
- {
- if (!$pt_id) {
- return $this->respond([
- 'status' => false,
- 'code' => 400,
- 'message' => 'No data found'
- ], 200);
+ return $this->respond(['dataStatus' => true, 'code' => 200], 200);
+ //return $this->response->setJSON(['dataStatus' => 'true']);
}
- // Fetch data from the database
- $data = db_connect()->table("co_share_stmt_details")
- ->select("
- co_share_stmt_details.*,
- insurer_statements.month,
- insurer_statements.invoice_status,
- insurer_statements.invoice_date,
- insurer_statements.invoice_no,
- insurer_statements.invoice_amount,
- insurer_statements.stmt_sno,
- (co_share_stmt_details.actual_bp_amt + co_share_stmt_details.actual_tp_amt + co_share_stmt_details.actual_tep_amt) AS sum_of_actual_amt
- ")
- ->join('insurer_statements', 'co_share_stmt_details.statement_id = insurer_statements.id')
- ->where([
- 'co_share_stmt_details.is_active' => 1,
- 'insurer_statements.is_active' => 1,
- 'co_share_stmt_details.co_share_id' => $pt_id
- ])
- ->get()
- ->getResultArray();
+ public function deletePaymentEntry()
+ {
+ $payment_id = $this->request->getUri()->getSegment(4);
+ //echo $payment_id;
+ $this->invPaymentDetailsModel->update($payment_id, ['is_active' => 0]);
+ return $this->respond(['dataStatus' => true, 'code' => 200], 200);
+ }
- // Check if data exists before formatting
- if ($data) {
+ public function downloadSampleInsurerStatement()
+ {
- foreach ($data as &$row) {
- // Check if invoice_date is not null before formatting
- $row['invoice_date'] = $row['invoice_date'] ? change_date_format($row['invoice_date'], 'Y-m-d', 'd/m/Y') : null;
+ $filePath = ROOTPATH . 'public/sample_excel/insurer_stament_sample.xlsx';
+ // Check if the file exists
+ if (file_exists($filePath)) {
- // Check if month is not null before formatting
- $row['month'] = $row['month'] ? change_date_format($row['month'], 'Y-m-d', 'M-Y') : null;
+ // Set the appropriate MIME type
+ $mimeType = mime_content_type($filePath);
+
+ // Send the file to the client for download
+ return $this->response->download($filePath, null, $mimeType);
+ } else {
+ // File not found, show an error message or redirect
+ echo view('errors/html/production');
+ }
+ }
+
+ public function getFileErr()
+ {
+ $file_id = $this->request->getUri()->getSegment(4);
+ $file = $this->insurerStatements->find($file_id);
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $file['reason']], 200);
+ }
+
+ public function dmsSearch()
+ {
+ // echo 'scbsc';die();
+ if ($this->request->is('post')) {
+ // $jsonData = (array)$this->request->getJSON();
+ $customer_id = $this->request->getPost('customer_id');
+ $policy_id = $this->request->getPost('policy_id');
+ $cus_doc_name = $this->request->getPost('cus_doc_name');
+ $policy_doc_name = $this->request->getPost('policy_doc_name');
+ $pt_files = [];
+ $kyc_files = [];
+ $batch_files = [];
+ $files = [];
+ // print_r($jsonData);die();
+ if ($policy_id != "") {
+ //get policy docs from policy transation related tables
+ $pt_files = $this->PTFileModel->getPolicyDriveFilesIndex($policy_id, $policy_doc_name);
+ $batch_files = $this->batchFileModel->getBatchFilesDataForDocumentSearch($policy_id, $policy_doc_name);
+ $files = $this->filesModel->getFilesDataForDocumentSearch($policy_id, $policy_doc_name);
+ // dd($files);
+ // dd($this->PTFileModel->getLastQuery());
+ // ~dd($pt_files);
+ }
+ if ($customer_id != "") {
+ $kyc_files = $this->clientKYCDocsModel->getClientKYCDriveFilesIndex($customer_id, $cus_doc_name);
+ // dd($this->clientKYCDocsModel->getLastQuery());
+ // !dd($kyc_files);
+ }
+
+ $data['files'] = array_merge($pt_files, $kyc_files, $batch_files, $files);
+ // dd($data['files']);
+ }
+ $data['tab_name'] = 'Documents Search';
+ $data['page_name'] = 'Documents';
+
+ $data['customers'] = $this->clientModel->select('id,client_name,short_name as display_value')->where('is_active', 1)->get()->getResultarray();
+ $data['policies'] = $this->clientPolicyModel->select("client_policy.id,client_policy.policy_no,policy_type.policy_type,concat(policy_type.policy_type,' - ',client_policy.policy_no) as display_value")
+ ->join('policy_type', 'client_policy.policy_type_id = policy_type.id')
+ ->where('client_policy.is_active', 1)->get()->getResultarray();
+ // dd($data);
+ $this->loadLayout('dms_search', $data);
+ }
+
+ //---------------------------------------------------------------------------------------------------
+
+ public function getCoShareStatementDetails($pt_id)
+ {
+ if (!$pt_id) {
+ return $this->respond([
+ 'status' => false,
+ 'code' => 400,
+ 'message' => 'No data found'
+ ], 200);
}
- return $this->respond([
- 'status' => true,
- 'code' => 200,
- 'data' => $data
- ], 200);
- } else {
- return $this->respond([
- 'status' => false,
- 'code' => 400,
- 'message' => 'No data found'
- ], 200);
- }
- }
+ // Fetch data from the database
+ $data = db_connect()->table("co_share_stmt_details")
+ ->select("
+ co_share_stmt_details.*,
+ insurer_statements.month,
+ insurer_statements.invoice_status,
+ insurer_statements.invoice_date,
+ insurer_statements.invoice_no,
+ insurer_statements.invoice_amount,
+ insurer_statements.stmt_sno,
+ (co_share_stmt_details.actual_bp_amt + co_share_stmt_details.actual_tp_amt + co_share_stmt_details.actual_tep_amt) AS sum_of_actual_amt
+ ")
+ ->join('insurer_statements', 'co_share_stmt_details.statement_id = insurer_statements.id')
+ ->where([
+ 'co_share_stmt_details.is_active' => 1,
+ 'insurer_statements.is_active' => 1,
+ 'co_share_stmt_details.co_share_id' => $pt_id
+ ])
+ ->get()
+ ->getResultArray();
- public function getClientPolicyDataBasedOnClientAndInsuer()
- {
+ // Check if data exists before formatting
+ if ($data) {
- $client_id = $this->request->getGet('client_id') ?? 0;
- $client_branch_id = $this->request->getGet('client_branch_id') ?? 0;
- $insurer_id = $this->request->getGet('insurer_id') ?? 0;
- $insurer_branch_id = $this->request->getGet('insurer_branch_id') ?? 0;
- $policy_type_id = $this->request->getGet('policy_type_id') ?? 0;
+ foreach ($data as &$row) {
+ // Check if invoice_date is not null before formatting
+ $row['invoice_date'] = $row['invoice_date'] ? change_date_format($row['invoice_date'], 'Y-m-d', 'd/m/Y') : null;
- $builder = db_connect()->table("client_policy")
- ->select("
- client_policy.*,
- policy_type.policy_type,
- ")
- ->join('policy_type', 'client_policy.policy_type_id = policy_type.id')
- ->where([
- 'client_policy.is_active' => 1,
- ]);
+ // Check if month is not null before formatting
+ $row['month'] = $row['month'] ? change_date_format($row['month'], 'Y-m-d', 'M-Y') : null;
+ }
- if (!empty($client_id)) {
- $builder->where('client_policy.client_id', $client_id);
- }
- if (!empty($client_branch_id)) {
- $builder->where('client_policy.client_branch_id', $client_branch_id);
- }
- if (!empty($insurer_id)) {
- $builder->where('client_policy.insurer_id', $insurer_id);
- }
- if (!empty($insurer_branch_id)) {
- $builder->where('client_policy.insurer_branch_id', $insurer_branch_id);
- }
- if (!empty($policy_type_id)) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
+ return $this->respond([
+ 'status' => true,
+ 'code' => 200,
+ 'data' => $data
+ ], 200);
+ } else {
+ return $this->respond([
+ 'status' => false,
+ 'code' => 400,
+ 'message' => 'No data found'
+ ], 200);
+ }
}
- $result = $builder->get()->getResultArray();
+ public function getClientPolicyDataBasedOnClientAndInsuer()
+ {
- if ($result) {
- return $this->respond(['status' => true, 'code' => 200, 'data' => $result, 'getData' => $this->request->getGet()], 200);
- } else {
- return $this->respond(['status' => false, 'code' => 400, 'message' => 'No data found'], 200);
- }
- }
+ $client_id = $this->request->getGet('client_id') ?? 0;
+ $client_branch_id = $this->request->getGet('client_branch_id') ?? 0;
+ $insurer_id = $this->request->getGet('insurer_id') ?? 0;
+ $insurer_branch_id = $this->request->getGet('insurer_branch_id') ?? 0;
+ $policy_type_id = $this->request->getGet('policy_type_id') ?? 0;
- public function checkCDAmountForBasePremium()
- {
- $base_premium = $this->request->getGet('base_premium') ?? 0;
- $cd_ac_no = $this->request->getGet('cd_ac_no') ?? 0;
+ $builder = db_connect()->table("client_policy")
+ ->select("
+ client_policy.*,
+ policy_type.policy_type,
+ ")
+ ->join('policy_type', 'client_policy.policy_type_id = policy_type.id')
+ ->where([
+ 'client_policy.is_active' => 1,
+ ]);
- // Validate inputs
- if (empty($cd_ac_no)) {
- return $this->respond(['status' => false, 'code' => 400, 'message' => 'CD Account Number is required'], 200);
+ if (!empty($client_id)) {
+ $builder->where('client_policy.client_id', $client_id);
+ }
+ if (!empty($client_branch_id)) {
+ $builder->where('client_policy.client_branch_id', $client_branch_id);
+ }
+ if (!empty($insurer_id)) {
+ $builder->where('client_policy.insurer_id', $insurer_id);
+ }
+ if (!empty($insurer_branch_id)) {
+ $builder->where('client_policy.insurer_branch_id', $insurer_branch_id);
+ }
+ if (!empty($policy_type_id)) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ $result = $builder->get()->getResultArray();
+
+ if ($result) {
+ return $this->respond(['status' => true, 'code' => 200, 'data' => $result, 'getData' => $this->request->getGet()], 200);
+ } else {
+ return $this->respond(['status' => false, 'code' => 400, 'message' => 'No data found'], 200);
+ }
}
- // Build query
- $db = db_connect();
- $builder = $db->table("cash_deposit")
- ->where('cd_ac_pk', $cd_ac_no)
- ->where('is_active', 1)
- ->orderBy('id', 'desc')
- ->limit(1);
+ public function checkCDAmountForBasePremium()
+ {
+ $base_premium = $this->request->getGet('base_premium') ?? 0;
+ $cd_ac_no = $this->request->getGet('cd_ac_no') ?? 0;
- $result = $builder->get()->getRowArray();
+ // Validate inputs
+ if (empty($cd_ac_no)) {
+ return $this->respond(['status' => false, 'code' => 400, 'message' => 'CD Account Number is required'], 200);
+ }
- if ($result) {
- // Check if base premium exceeds balance
- $base_premium_greater_than_balance = $base_premium > $result['balance'];
+ // Build query
+ $db = db_connect();
+ $builder = $db->table("cash_deposit")
+ ->where('cd_ac_pk', $cd_ac_no)
+ ->where('is_active', 1)
+ ->orderBy('id', 'desc')
+ ->limit(1);
- return $this->respond([
- 'status' => true,
- 'code' => 200,
- 'data' => $result,
- 'base_premium' => $base_premium,
- 'cd_ac_no' => $cd_ac_no,
- 'base_premium_greater_than_balance' => $base_premium_greater_than_balance,
- ], 200);
+ $result = $builder->get()->getRowArray();
+
+ if ($result) {
+ // Check if base premium exceeds balance
+ $base_premium_greater_than_balance = $base_premium > $result['balance'];
+
+ return $this->respond([
+ 'status' => true,
+ 'code' => 200,
+ 'data' => $result,
+ 'base_premium' => $base_premium,
+ 'cd_ac_no' => $cd_ac_no,
+ 'base_premium_greater_than_balance' => $base_premium_greater_than_balance,
+ ], 200);
+ }
+
+ return $this->respond(['status' => false, 'code' => 400, 'message' => 'No data found for this CD'], 200);
}
- return $this->respond(['status' => false, 'code' => 400, 'message' => 'No data found for this CD'], 200);
- }
+ public function getInsurerStatementMonth()
+ {
+ $insurer_id = $this->request->getGet('insurer_id');
+ $month = $this->request->getGet('month');
+ // echo $month;
+ $insurer_branch_id = explode('-', $insurer_id)[1];
+ $insurer_id = explode('-', $insurer_id)[0];
+ $month = $month . '-01';
+ $month = change_date_format($month, 'Y-M-d', 'Y-m-d');
+ // echo $month;
- public function getInsurerStatementMonth()
- {
- $insurer_id = $this->request->getGet('insurer_id');
- $month = $this->request->getGet('month');
- // echo $month;
- $insurer_branch_id = explode('-', $insurer_id)[1];
- $insurer_id = explode('-', $insurer_id)[0];
- $month = $month . '-01';
- $month = change_date_format($month, 'Y-M-d', 'Y-m-d');
- // echo $month;
+ $res_data = $this->insurerStatements
+ ->where('insurer_id', $insurer_id)
+ ->where('branch_id', $insurer_branch_id)
+ ->where('month', $month)
+ ->where('is_active', 1)
+ ->where('file_status', 'success')
+ ->findAll();
- $res_data = $this->insurerStatements
- ->where('insurer_id', $insurer_id)
- ->where('branch_id', $insurer_branch_id)
- ->where('month', $month)
- ->where('is_active', 1)
- ->where('file_status', 'success')
- ->findAll();
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $res_data], 200);
+ }
- return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $res_data], 200);
- }
+ public function deleteStatement($id)
+ {
+ // echo $id;die();
+ $this->coShareStmtDetailsModel->where('statement_id', $id)
+ ->set(['is_active' => 0])
+ ->update();
+ $this->invPaymentDetailsModel->where('statement_id', $id)
+ ->set(['is_active' => 0])
+ ->update();
+ $this->insurerStatements->where('id', $id)
+ ->set(['is_active' => 0])
+ ->update();
+ return $this->respond(['dataStatus' => true, 'code' => 200], 200);
+ }
- public function deleteStatement($id)
- {
- // echo $id;die();
- $this->coShareStmtDetailsModel->where('statement_id', $id)
- ->set(['is_active' => 0])
- ->update();
- $this->invPaymentDetailsModel->where('statement_id', $id)
- ->set(['is_active' => 0])
- ->update();
- $this->insurerStatements->where('id', $id)
- ->set(['is_active' => 0])
- ->update();
- return $this->respond(['dataStatus' => true, 'code' => 200], 200);
- }
+ public function sendInstallmentRemainderMail()
+ {
- public function sendInstallmentRemainderMail()
- {
-
- $this->myLogger->logme("error", "Cron Job For Send Installment Remainder Mail Started");
-
- try {
+ $this->myLogger->logme("error", "Cron Job For Send Installment Remainder Mail Started");
try {
- $bdsInstallmentData = $this->BdsPlacementModel->getClientInstallmentDetails();
+ try {
+
+ $bdsInstallmentData = $this->BdsPlacementModel->getClientInstallmentDetails();
+ } 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);
+
+ if (empty($bdsInstallmentData)) {
+
+ $this->myLogger->logme("error", "No Client Installment is Due in the 15th Day");
+
+ return false;
+ }
+
+ foreach ($bdsInstallmentData as $installmentData) {
+
+ $mailData = $this->PrepareBDSMailData($installmentData);
+ $to_mail = $mailData['to_mail'];
+ $message = $mailData['message'];
+ $subject = $mailData['subject'];
+
+ $this->myLogger->logme("error", "Installment Pending for" . $subject);
+
+ $common = ['mail_type' => 'installment_amount_due_remainder_mail'];
+
+ $res = MailHelper::send_email(['mail' => $to_mail, 'subject' => $subject, 'message' => $message, 'common' => $common]);
+
+ $res = json_decode($res);
+ $this->myLogger->logme('error', 'res: ' . json_encode($res));
+
+ if ($res->status == 'success') {
+ return true;
+ } else {
+ return false;
+ }
+ }
} 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);
+ }
- if (empty($bdsInstallmentData)) {
+ protected function PrepareBDSMailData($data)
+ {
- $this->myLogger->logme("error", "No Client Installment is Due in the 15th Day");
+ try {
- return false;
+ $installment_amount = $data['installment_amount'];
+ $payment_date = date('d-m-Y', strtotime($data['payment_date']));
+ $client = $data['client_name'];
+ $branch = $data['branch_name'];
+ $sales_person_mail = $data['sales_person'];
+ $heads = $data['heads'];
+ $admins = $data['admins'];
+ $buisness_team = $data['buisness_team'];
+ $policy_no = $data['policy_no'];
+ $client_short_name = isset($data['short_name']) && $data['short_name'] != null ? $data['short_name'] : $data['client_name'];
+
+ $subject = "Installment Amount Due For Client - {$client_short_name} - Policy NO({$policy_no}) is Due On - {$payment_date}";
+
+ $message = "Policy Installment for Client - {$client}, Branch - {$branch} is Due on {$payment_date}
+ with amount of {$installment_amount}.
+ Policy No : {$policy_no}";
+
+
+ $to_mail = array_merge(
+ array_column($heads, 'email'),
+ array_column($admins, 'email'),
+ array_column($buisness_team, 'email'),
+ [$sales_person_mail]
+ );
+
+ $to_mail = array_unique($to_mail);
+
+ $this->myLogger->logme("error", "Selected To Address : " . json_encode($to_mail));
+
+ // dd($to_mail);
+ return [
+ 'to_mail' => $to_mail,
+ 'message' => $message,
+ 'subject' => $subject
+ ];
+ } catch (Exception $e) {
+
+ $this->myLogger->logme('error', 'Exception: ' . $e->getMessage() . 'Page: ' . $e->getFile() . ' Line: ' . $e->getLine());
+ }
+ }
+
+ 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();
+
+ foreach ($data_to_send['bds_data'] as &$data) {
+
+ $data['payment_date'] = (new \DateTime($data['payment_date']))->format('d-m-Y');
}
- foreach ($bdsInstallmentData as $installmentData) {
+ if (!empty($data_to_send)) {
- $mailData = $this->PrepareBDSMailData($installmentData);
- $to_mail = $mailData['to_mail'];
- $message = $mailData['message'];
- $subject = $mailData['subject'];
+ return $this->respond(['status' => true, "data" => $data_to_send], 200);
+ } else {
- $this->myLogger->logme("error", "Installment Pending for" . $subject);
+ return $this->respond(['status' => false, "No Data Found For the Policy Transaction"], 404);
+ }
+ }
- $common = ['mail_type' => 'installment_amount_due_remainder_mail'];
+ public function saveInstallment()
+ {
- $res = MailHelper::send_email(['mail' => $to_mail, 'subject' => $subject, 'message' => $message, 'common' => $common]);
+ $installments = $this->request->getPost('installments');
- $res = json_decode($res);
- $this->myLogger->logme('error', 'res: ' . json_encode($res));
+ if (!$installments || !is_array($installments)) {
+ return $this->respond(['status' => false, 'message' => 'No data received'], 400);
+ }
- if ($res->status == 'success') {
- return true;
- } else {
- return false;
+ $this->myLogger->logme("error", json_encode($installments));
+ // die();
+
+ foreach ($installments as &$row) {
+ // Convert date from d-m-Y to Y-m-d
+ if (!empty($row['payment_date'])) {
+ $date = \DateTime::createFromFormat('d-m-Y', $row['payment_date']);
+ if ($date) {
+ $row['payment_date'] = $date->format('Y-m-d');
+ }
}
+ $this->BdsPlacementModel->save($row);
}
- } catch (Exception $e) {
- $this->myLogger->logme('error', 'Exception: ' . $e->getMessage() . 'Page: ' . $e->getFile() . ' Line: ' . $e->getLine());
- }
- }
-
- protected function PrepareBDSMailData($data)
- {
-
- try {
-
- $installment_amount = $data['installment_amount'];
- $payment_date = date('d-m-Y', strtotime($data['payment_date']));
- $client = $data['client_name'];
- $branch = $data['branch_name'];
- $sales_person_mail = $data['sales_person'];
- $heads = $data['heads'];
- $admins = $data['admins'];
- $buisness_team = $data['buisness_team'];
- $policy_no = $data['policy_no'];
- $client_short_name = isset($data['short_name']) && $data['short_name'] != null ? $data['short_name'] : $data['client_name'];
-
- $subject = "Installment Amount Due For Client - {$client_short_name} - Policy NO({$policy_no}) is Due On - {$payment_date}";
-
- $message = "Policy Installment for Client - {$client}, Branch - {$branch} is Due on {$payment_date}
- with amount of {$installment_amount}.
- Policy No : {$policy_no}";
-
-
- $to_mail = array_merge(
- array_column($heads, 'email'),
- array_column($admins, 'email'),
- array_column($buisness_team, 'email'),
- [$sales_person_mail]
- );
-
- $to_mail = array_unique($to_mail);
-
- $this->myLogger->logme("error", "Selected To Address : " . json_encode($to_mail));
-
- // dd($to_mail);
- return [
- 'to_mail' => $to_mail,
- 'message' => $message,
- 'subject' => $subject
- ];
- } catch (Exception $e) {
-
- $this->myLogger->logme('error', 'Exception: ' . $e->getMessage() . 'Page: ' . $e->getFile() . ' Line: ' . $e->getLine());
- }
- }
-
- 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();
-
- foreach ($data_to_send['bds_data'] as &$data) {
-
- $data['payment_date'] = (new \DateTime($data['payment_date']))->format('d-m-Y');
+ return $this->respond(['status' => true, 'message' => 'Data saved successfully'], 200);
}
- if (!empty($data_to_send)) {
+ protected function getPolicyForEndorsment()
+ {
- return $this->respond(['status' => true, "data" => $data_to_send], 200);
- } else {
-
- return $this->respond(['status' => false, "No Data Found For the Policy Transaction"], 404);
- }
- }
-
- 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));
- // die();
-
- foreach ($installments as &$row) {
- // Convert date from d-m-Y to Y-m-d
- if (!empty($row['payment_date'])) {
- $date = \DateTime::createFromFormat('d-m-Y', $row['payment_date']);
- if ($date) {
- $row['payment_date'] = $date->format('Y-m-d');
- }
- }
- $this->BdsPlacementModel->save($row);
- }
-
- return $this->respond(['status' => true, 'message' => 'Data saved successfully'], 200);
- }
-
- protected function getPolicyForEndorsment()
- {
-
- $policyList = [];
- $policyListByClient = [];
+ $policyList = [];
+ $policyListByClient = [];
- $clients = $this->clientModel
- ->select("*, DATE_FORMAT(dob, '%d-%m-%Y') as dob")
- ->where('is_active', 1)
+ $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();
+
+ $policies = $this->policyTransactionModel
+ ->select("
+ policy_transaction.*,
+ policy_type.policy_type,
+ policy_type.ebp,
+ policy_type.etp,
+ policy_type.iep,
+ policy_type.itp,
+ policy_type.bap,
+ policy_type.allocg,
+ DATE_FORMAT(policy_transaction.policy_start_date, '%d/%m/%Y') as policy_start_date,
+ DATE_FORMAT(policy_transaction.policy_end_date, '%d/%m/%Y') as policy_end_date
+ ")
+ ->join('policy_type', 'policy_type.id = policy_transaction.policy_type_id')
+ ->whereIn('policy_transaction.client_id', $clientIds)
+ ->where('policy_transaction.is_active', 1)
+ ->where('policy_transaction.action_type', "inception")
->findAll();
- $clientIds = array_column($clients, 'id');
+ 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;
+ }
+ }
- // $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();
+ return [$policyList, $policyListByClient];
+ }
- $policies = $this->policyTransactionModel
- ->select("
- policy_transaction.*,
- policy_type.policy_type,
- policy_type.ebp,
- policy_type.etp,
- policy_type.iep,
- policy_type.itp,
- policy_type.bap,
- policy_type.allocg,
- DATE_FORMAT(policy_transaction.policy_start_date, '%d/%m/%Y') as policy_start_date,
- DATE_FORMAT(policy_transaction.policy_end_date, '%d/%m/%Y') as policy_end_date
- ")
- ->join('policy_type', 'policy_type.id = policy_transaction.policy_type_id')
- ->whereIn('policy_transaction.client_id', $clientIds)
- ->where('policy_transaction.is_active', 1)
- ->where('policy_transaction.action_type', "inception")
- ->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;
+ public function reportBDSNew()
+ {
+ // 🧭 Basic Page Info
+ $data['tab_name'] = 'BDS Report';
+ $data['page_name'] = 'BDS Report';
+
+ // 📋 Dropdown Data
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+ $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
+ $data['policy_status'] = [
+ 'pending' => 'Pending',
+ 'exported_to_insurer' => 'Exported to Insurer',
+ 'imported_from_insurer'=> 'Imported from Insurer',
+ 'exported_to_tpa' => 'Exported to TPA',
+ 'imported_from_tpa' => 'Imported from TPA',
+ 'completed' => 'Completed'
+ ];
+ $data['invoice_status_array'] = [
+ 'yet_to_generate' => 'Yet to Generate',
+ 'generated' => 'Generated',
+ 'send' => 'Send',
+ 'recived' => 'Recived',
+ ];
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ 'statement_month' => 'Statement Month',
+ ];
+
+ // 🏢 Fetch Active Data
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['users'] = $this->userModel->where('is_active', 1)->findAll();
+ $data['policy_count'] = $this->policyTransactionModel->where('is_active', 1)->countAllResults();
+
+ // 🕐 Filters
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+ $client_branch_id = $this->request->getGet('client_branch_id');
+ $insurer_branch_id = $this->request->getGet('insurer_branch_id');
+ $client_policy_id = $this->request->getGet('client_policy_id');
+ $user_id = $this->request->getGet('user_id');
+
+ // Handle statement month range
+ if ($date_type == 'statement_month') {
+ $start_date = (string) date('Y-m-01', strtotime($start_date));
+ $end_date = (string) date('Y-m-31', strtotime($end_date));
+ }
+
+ // Ensure default values
+ $start_date = $start_date ?: 0;
+ $end_date = $end_date ?: 0;
+ $client_id = $client_id ?: 0;
+ $insurer_id = $insurer_id ?: 0;
+ $policy_type_id = $policy_type_id ?: 0;
+ $date_type = $date_type ?: 0;
+ $issuer = $issuer ?: 0;
+ $client_branch_id = $client_branch_id ?: 0;
+ $insurer_branch_id = $insurer_branch_id ?: 0;
+ $client_policy_id = $client_policy_id ?: 0;
+ $user_id = $user_id ?: 0;
+
+ // 🧾 Handle POST requests (Dashboard filters)
+ if ($this->request->is('post')) {
+ $isFromDashboard = $this->request->getPost('is_dashboard');
+
+ if (!empty($isFromDashboard) && $isFromDashboard == 1) {
+ $ids = array_filter(explode(',', $this->request->getPost('ids')));
+
+ if (!empty($ids)) {
+ $idsStr = implode(',', array_map('intval', $ids)); // sanitize IDs
+ $where = "policy_transaction.id IN ($idsStr)";
+ } else {
+ $where = []; // No valid IDs
+ }
}
}
- return [$policyList, $policyListByClient];
+ // 📊 Fetch report data
+ $data['report_list'] = $this->policyTransactionModel->reportBDSNew(
+ $start_date,
+ $end_date,
+ $client_id,
+ $insurer_id,
+ $policy_type_id,
+ $date_type,
+ $issuer,
+ $client_branch_id,
+ $insurer_branch_id,
+ $client_policy_id,
+ $user_id,
+ $where ?? ''
+ );
+
+ // 🧩 Load View
+ $this->loadLayout('report_bds_filter', $data);
}
-public function reportBDSNew()
-{
- // 🧭 Basic Page Info
- $data['tab_name'] = 'BDS Report';
- $data['page_name'] = 'BDS Report';
- // 📋 Dropdown Data
- $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
- $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
- $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
- $data['policy_status'] = [
- 'pending' => 'Pending',
- 'exported_to_insurer' => 'Exported to Insurer',
- 'imported_from_insurer'=> 'Imported from Insurer',
- 'exported_to_tpa' => 'Exported to TPA',
- 'imported_from_tpa' => 'Imported from TPA',
- 'completed' => 'Completed'
- ];
- $data['invoice_status_array'] = [
- 'yet_to_generate' => 'Yet to Generate',
- 'generated' => 'Generated',
- 'send' => 'Send',
- 'recived' => 'Recived',
- ];
- $data['date_type'] = [
- 'policy_issue_date' => 'Policy Issue Date',
- 'policy_start_date' => 'Policy Start Date',
- 'policy_end_date' => 'Policy End Date',
- 'data_received_date' => 'Data Received Date',
- 'closure_date' => 'Closure Date',
- 'statement_month' => 'Statement Month',
- ];
-
- // 🏢 Fetch Active Data
- $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
- $data['users'] = $this->userModel->where('is_active', 1)->findAll();
- $data['policy_count'] = $this->policyTransactionModel->where('is_active', 1)->countAllResults();
-
- // 🕐 Filters
- $start_date = $this->request->getGet('start_date');
- $end_date = $this->request->getGet('end_date');
- $client_id = $this->request->getGet('client_id');
- $insurer_id = $this->request->getGet('insurer_id');
- $policy_type_id = $this->request->getGet('policy_type_id');
- $date_type = $this->request->getGet('date_type');
- $issuer = $this->request->getGet('issuer');
- $client_branch_id = $this->request->getGet('client_branch_id');
- $insurer_branch_id = $this->request->getGet('insurer_branch_id');
- $client_policy_id = $this->request->getGet('client_policy_id');
- $user_id = $this->request->getGet('user_id');
-
- // Handle statement month range
- if ($date_type == 'statement_month') {
- $start_date = (string) date('Y-m-01', strtotime($start_date));
- $end_date = (string) date('Y-m-31', strtotime($end_date));
}
-
- // Ensure default values
- $start_date = $start_date ?: 0;
- $end_date = $end_date ?: 0;
- $client_id = $client_id ?: 0;
- $insurer_id = $insurer_id ?: 0;
- $policy_type_id = $policy_type_id ?: 0;
- $date_type = $date_type ?: 0;
- $issuer = $issuer ?: 0;
- $client_branch_id = $client_branch_id ?: 0;
- $insurer_branch_id = $insurer_branch_id ?: 0;
- $client_policy_id = $client_policy_id ?: 0;
- $user_id = $user_id ?: 0;
-
- // 🧾 Handle POST requests (Dashboard filters)
- if ($this->request->is('post')) {
- $isFromDashboard = $this->request->getPost('is_dashboard');
-
- if (!empty($isFromDashboard) && $isFromDashboard == 1) {
- $ids = array_filter(explode(',', $this->request->getPost('ids')));
-
- if (!empty($ids)) {
- $idsStr = implode(',', array_map('intval', $ids)); // sanitize IDs
- $where = "policy_transaction.id IN ($idsStr)";
- } else {
- $where = []; // No valid IDs
- }
- }
- }
-
- // 📊 Fetch report data
- $data['report_list'] = $this->policyTransactionModel->reportBDSNew(
- $start_date,
- $end_date,
- $client_id,
- $insurer_id,
- $policy_type_id,
- $date_type,
- $issuer,
- $client_branch_id,
- $insurer_branch_id,
- $client_policy_id,
- $user_id,
- $where ?? ''
- );
-
- // 🧩 Load View
- $this->loadLayout('report_bds_filter', $data);
-}
-
-
-
-}
diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php
index e9f6e8cc..e988f0c3 100644
--- a/app/Models/PolicyTransactionModel.php
+++ b/app/Models/PolicyTransactionModel.php
@@ -1,1095 +1,772 @@
db->table('policy_transaction')
+ ->select("
+ policy_transaction.*,
+ DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
+ DATE_FORMAT(
+ IF(policy_transaction.month IS NULL,
+ policy_transaction.policy_issue_date,
+ policy_transaction.month),
+ '%b %Y') AS policy_issue_month,
+ CASE
+ WHEN clients.client_type = 1 THEN 'Group'
+ WHEN clients.client_type = 2 THEN 'Retail'
+ ELSE '-'
+ END AS client_type,
+ CASE
+ WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
+ ELSE 'Renewal'
+ END AS revenue_type,
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
+ ELSE 'Endorsement'
+ END AS action_type,
+ clients.client_name AS client_name,
+ clients.short_name AS client_short_name,
+ client_branch.branch_name AS client_branch_name,
+ client_branch.address1 AS client_address,
+ policy_type.policy_type,
+ policy_type.bap,
+ insurers.name AS insurer_name,
+ insurers.short_name AS insurer_short_name,
+ insurer_branch.branch_name AS insurer_branch_name,
+ insurer_branch.branch_code AS insurer_branch_code,
+ user_profiles.first_name as user_name,
+ vehicle.vehicle_no,
+ tpa.name as tpa_name,
+ pt_co_share_details.remark as remarks,
+ pt_co_share_details.reward,
+ pt_co_share_details.bp_amt,
+ sales_user.first_name as salse_person_name,
+ service_user.first_name as service_person_name,
- // BDS Report OLD Functin for QUERY
- // public function getBDSReportList($client_id, $policy_id, $branch_id, $issuer)
- public function getBDSReportListOld($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0)
- {
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.*,
- DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
- DATE_FORMAT(
- IF(policy_transaction.month IS NULL,
- policy_transaction.policy_issue_date,
- policy_transaction.month),
- '%b %Y') AS policy_issue_month,
- CASE
- WHEN clients.client_type = 1 THEN 'Group'
- WHEN clients.client_type = 2 THEN 'Retail'
- ELSE '-'
- END AS client_type,
- CASE
- WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
- ELSE 'Renewal'
- END AS revenue_type,
- CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
- ELSE 'Endorsement'
- END AS action_type,
- clients.client_name AS client_name,
- clients.short_name AS client_short_name,
- client_branch.branch_name AS client_branch_name,
- client_branch.address1 AS client_address,
- policy_type.policy_type,
- policy_type.bap,
- insurers.name AS insurer_name,
- insurers.short_name AS insurer_short_name,
- insurer_branch.branch_name AS insurer_branch_name,
- insurer_branch.branch_code AS insurer_branch_code,
- user_profiles.first_name as user_name,
- vehicle.vehicle_no,
- tpa.name as tpa_name,
- pt_co_share_details.remark as remarks,
- pt_co_share_details.reward,
- pt_co_share_details.bp_amt,
- sales_user.first_name as salse_person_name,
- service_user.first_name as service_person_name,
+ ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS premium_wo_gst,
- ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS premium_wo_gst,
+ ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2) AS gst_amount,
- ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2) AS gst_amount,
+ ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) + ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
- ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) + ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
+ ROUND((pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS tp_or_ter,
- ROUND((pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS tp_or_ter,
+ DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
- DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
+ (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
- (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
+ pt_co_share_details.agreed_bp_per,
- pt_co_share_details.agreed_bp_per,
-
- ROUND(
- (pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per +
- (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) *
- (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)) / 100,
- 2) AS total_irda,
-
- ROUND(
- (ROUND(
+ ROUND(
(pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per +
(pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) *
(pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)) / 100,
- 2) * 18 / 100),
- 2) AS gst_on_revenue,
+ 2) AS total_irda,
- ROUND(
- (ROUND(
- (pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per +
- (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) *
- (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)) / 100,
- 2) +
ROUND(
(ROUND(
(pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per +
(pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) *
(pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)) / 100,
2) * 18 / 100),
- 2)),
- 2) AS total_amt_received,
- insurer_statements.invoice_date,
- insurer_statements.invoice_no,
- insurer_statements.invoice_amount,
-
- (
- SELECT
- (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)) AS realization_amount
- FROM
- inv_payment_details
- WHERE
- inv_payment_details.statement_id = insurer_statements.id
- AND inv_payment_details.is_active = 1
-
- ) AS realization_amount,
+ 2) AS gst_on_revenue,
ROUND(
- insurer_statements.invoice_amount -
- (
- SELECT
- (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds))
- FROM
- inv_payment_details
- WHERE
- inv_payment_details.statement_id = insurer_statements.id
- AND inv_payment_details.is_active = 1
- ),
- 2) AS outstanding_amount,
+ (ROUND(
+ (pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per +
+ (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) *
+ (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)) / 100,
+ 2) +
+ ROUND(
+ (ROUND(
+ (pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per +
+ (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) *
+ (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)) / 100,
+ 2) * 18 / 100),
+ 2)),
+ 2) AS total_amt_received,
+ insurer_statements.invoice_date,
+ insurer_statements.invoice_no,
+ insurer_statements.invoice_amount,
(
- SELECT
- GROUP_CONCAT(inv_payment_details.utr_no SEPARATOR ', ') AS utr_numbers
- FROM
- inv_payment_details
- WHERE
- inv_payment_details.statement_id = insurer_statements.id
- AND inv_payment_details.is_active = 1
- ) AS utr_numbers,
-
- (
- SELECT
- GROUP_CONCAT(inv_payment_details.received_date SEPARATOR ', ') AS payment_dates
- FROM
- inv_payment_details
- WHERE
- inv_payment_details.statement_id = insurer_statements.id
- AND inv_payment_details.is_active = 1
- ) AS payment_dates
-
- ")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id')
- ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
- ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join('insurers', 'policy_transaction.insurer_id = insurers.id', 'left')
- ->join('insurer_branch', 'policy_transaction.insurer_branch_id = insurer_branch.id', 'left')
- ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
- ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
- ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
- ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
- ->where('policy_transaction.is_active', 1);
-
- // Check if the start date and end date are provided
- if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
-
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- } else {
-
- // $fromDate = date('Y-m-d', strtotime('-30 days'));
- // $toDate = date('Y-m-d 23:59:59');
-
- // $builder->where('policy_transaction.created_at >=', $fromDate)
- // ->where('policy_transaction.created_at <=', $toDate);
- }
-
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
-
- if ($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0) {
-
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
-
- $builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
- }
-
- // BDS Report NEW Functin for QUERY
- // public function getBDSReportList($client_id, $policy_id, $branch_id, $issuer)
-
- // public function getBDSReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $client_branch_id = 0, $insurer_branch_id = 0, $client_policy_id = 0)
- // {
-
- // $date_condition = '';
- // if($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
- // $date_condition = "
- // AND insurer_statements.month >= '".$start_date ."'
- // AND insurer_statements.month <= '".$end_date ."'
- // ";
- // }
-
- // $builder = $this->db->table('policy_transaction')
- // ->select("
- // policy_transaction.*,
- // DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
- // DATE_FORMAT(
- // IF(policy_transaction.month IS NULL,
- // policy_transaction.policy_issue_date,
- // policy_transaction.month),
- // '%b %Y') AS policy_issue_month,
- // CASE
- // WHEN clients.client_type = 1 THEN 'Group'
- // WHEN clients.client_type = 2 THEN 'Retail'
- // ELSE '-'
- // END AS client_type,
- // CASE
- // WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
- // ELSE 'Renewal'
- // END AS revenue_type,
- // CASE
- // WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
- // ELSE 'Endorsement'
- // END AS action_type,
- // clients.client_name AS client_name,
- // clients.short_name AS client_short_name,
- // client_branch.branch_name AS client_branch_name,
- // client_branch.address1 AS client_address,
- // policy_type.policy_type,
- // policy_type.bap,
- // insurers.name AS insurer_name,
- // insurers.short_name AS insurer_short_name,
- // insurer_branch.branch_name AS insurer_branch_name,
- // insurer_branch.branch_code AS insurer_branch_code,
- // user_profiles.first_name as user_name,
- // vehicle.vehicle_no,
- // tpa.name as tpa_name,
- // pt_co_share_details.remark as remarks,
- // pt_co_share_details.bp_amt,
- // pt_co_share_details.exp_amt,
- // pt_co_share_details.id as pt_id,
- // sales_user.first_name as salse_person_name,
- // service_user.first_name as service_person_name,
-
- // ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS premium_wo_gst,
-
- // ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2) AS gst_amount,
-
- // ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) + ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
-
- // ROUND((pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS tp_or_ter,
-
- // DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
-
- // (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
-
- // pt_co_share_details.agreed_bp_per,
- // ROUND(
- // (
- // SELECT
- // (
- // SUM(co_share_stmt_details.actual_bp_brokerage_amt) +
- // SUM(co_share_stmt_details.actual_tp_brokerage_amt) +
- // SUM(co_share_stmt_details.actual_tep_brokerage_amt) +
- // SUM(co_share_stmt_details.reward)
-
- // ) AS total_irda_amt
- // FROM
- // co_share_stmt_details
- // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- // WHERE
- // co_share_stmt_details.co_share_id = pt_co_share_details.id
- // AND co_share_stmt_details.is_active = 1
- // AND insurer_statements.is_active = 1
- // $date_condition
- // ),
- // 2
- // ) AS total_irda_amt,
- // ROUND(
- // (
- // SELECT
- // (
- // SUM(co_share_stmt_details.reward)
-
- // ) AS reward
- // FROM
- // co_share_stmt_details
- // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- // WHERE
- // co_share_stmt_details.co_share_id = pt_co_share_details.id
- // AND co_share_stmt_details.is_active = 1
- // AND insurer_statements.is_active = 1
- // $date_condition
- // ),
- // 2
- // ) AS reward,
-
- // ROUND(
- // (
- // SELECT
- // SUM(
- // COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0) +
- // COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0) +
- // COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0) +
- // COALESCE(co_share_stmt_details.reward, 0)
- // ) AS total_irda_amt
- // FROM
- // co_share_stmt_details
- // JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
- // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- // WHERE
- // co_share_stmt_details.co_share_id = pt_co_share_details.id
- // AND co_share_stmt_details.is_active = 1
- // AND pt_table.is_active = 1
- // AND insurer_statements.is_active = 1
- // AND insurer_statements.invoice_status IS NOT NULL
- // $date_condition
-
- // ),
- // 2
- // ) AS billed_amt,
-
- // ROUND(
- // (
- // (
- // SELECT
- // SUM(
- // COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
- // + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
- // + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
- // + COALESCE(co_share_stmt_details.reward, 0)
- // )
- // FROM
- // co_share_stmt_details
- // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- // WHERE
- // co_share_stmt_details.co_share_id = pt_co_share_details.id
- // AND co_share_stmt_details.is_active = 1
- // $date_condition
- // )
- // -
- // (
- // SELECT
- // SUM(
- // COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
- // + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
- // + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
- // + COALESCE(co_share_stmt_details.reward, 0)
- // )
- // FROM
- // co_share_stmt_details
- // JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
- // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- // WHERE
- // co_share_stmt_details.co_share_id = pt_co_share_details.id
- // AND co_share_stmt_details.is_active = 1
- // AND pt_table.is_active = 1
- // AND insurer_statements.is_active = 1
- // AND insurer_statements.invoice_status IS NULL
- // $date_condition
- // )
- // ),
- // 2
- // ) AS unbilled_amt
-
- // ")
- // ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- // // ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
- // ->join('clients', 'clients.id = policy_transaction.client_id')
- // ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- // ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- // ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
- // ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
- // ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- // ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- // ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
- // ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
- // ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
- // ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
- // ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
- // ->where('policy_transaction.is_active', 1)
- // ->where('pt_co_share_details.is_active', 1);
-
- // // Check if the start date and end date are provided
- // if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
-
- // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- // $builder->where('policy_transaction.'.$date_type.'>=', $startDate)
- // ->where('policy_transaction.'.$date_type.'<=', $endDate);
-
- // }
-
- // // if($date_type == 'statement_month' && $start_date != 0 && $end_date != 0){
-
- // // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- // // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
- // // $builder->where('policy_transaction.month >=', $startDate)
- // // ->where('policy_transaction.month <=', $endDate);
- // // }
-
- // // Conditionally join insurer_statements if $date_type == 'statement_month'
- // if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
- // $startDate = date('Y-m-d', strtotime($start_date));
- // $endDate = date('Y-m-d', strtotime($end_date));
-
- // $builder->join('co_share_stmt_details', 'pt_co_share_details.id = co_share_stmt_details.co_share_id', 'left')
- // ->join('insurer_statements', 'co_share_stmt_details.statement_id = insurer_statements.id','left')
- // ->where('insurer_statements.is_active', 1)
- // ->where('insurer_statements.month >=', $startDate)
- // ->where('insurer_statements.month <=', $endDate)
- // ->groupBy('co_share_stmt_details.co_share_id');
- // }
-
- // if ($client_id != 0) {
- // $builder->where('policy_transaction.client_id', $client_id);
- // }
-
- // if ($insurer_id != 0) {
- // $builder->where('policy_transaction.insurer_id', $insurer_id);
- // }
-
- // if ($client_branch_id != 0) {
- // $builder->where('policy_transaction.client_branch_id', $client_branch_id);
- // }
-
- // if ($insurer_branch_id != 0) {
- // $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
- // }
-
- // if ($client_policy_id != 0) {
- // $builder->where('policy_transaction.client_policy_id', $client_policy_id);
- // }
-
-
-
- // if ($policy_type_id != 0) {
- // $builder->where('client_policy.policy_type_id', $policy_type_id);
- // }
-
- // if ($issuer != 0) {
- // $builder->where('policy_transaction.issuer', $issuer);
- // }
-
- // if($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0){
-
- // $fromDate = date('Y-m-d', strtotime('-30 days'));
- // $toDate = date('Y-m-d 23:59:59');
-
- // $builder->where('policy_transaction.created_at >=', $fromDate)
- // ->where('policy_transaction.created_at <=', $toDate);
-
- // }
-
- // $builder->orderBy('policy_transaction.id', 'desc');
-
- // $result = $builder->get()->getResultArray();
-
- // // dd($this->db->getLastQuery());
-
- // return $result;
- // }
-
- public function getBDSReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $client_branch_id = 0, $insurer_branch_id = 0, $client_policy_id = 0, $user_id = 0, $where = [])
- {
-
- $date_condition = '';
- if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
- $date_condition = "
- AND insurer_statements.month >= '" . $start_date . "'
- AND insurer_statements.month <= '" . $end_date . "'
- ";
- }
-
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.*,
- DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
- DATE_FORMAT(
- IF(policy_transaction.month IS NULL,
- policy_transaction.policy_issue_date,
- policy_transaction.month),
- '%b %Y') AS policy_issue_month,
- CASE
- WHEN clients.client_type = 1 THEN 'Group'
- WHEN clients.client_type = 2 THEN 'Retail'
- ELSE '-'
- END AS client_type,
- CASE
- WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
- ELSE 'Renewal'
- END AS revenue_type,
- CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
- ELSE 'Endorsement'
- END AS action_type,
- clients.client_name AS client_name,
- clients.short_name AS client_short_name,
- client_branch.branch_name AS client_branch_name,
- client_branch.address1 AS client_address,
- policy_type.policy_type,
- policy_type.bap,
- insurers.name AS insurer_name,
- insurers.short_name AS insurer_short_name,
- insurer_branch.branch_name AS insurer_branch_name,
- insurer_branch.branch_code AS insurer_branch_code,
- user_profiles.first_name as user_name,
- vehicle.vehicle_no,
- tpa.name as tpa_name,
- pt_co_share_details.remark as remarks,
- pt_co_share_details.cop_amt as bp_amt,
- pt_co_share_details.exp_amt,
- pt_co_share_details.id as pt_id,
- sales_user.first_name as salse_person_name,
- service_user.first_name as service_person_name,
-
- ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) AS premium_wo_gst,
-
- ROUND((ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) * 18 / 100), 2) AS gst_amount,
-
- ROUND((ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) + ROUND((ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
-
- ROUND((pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) AS tp_or_ter,
-
- DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
-
- (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
-
- pt_co_share_details.agreed_bp_per,
- ROUND(
- (
- SELECT
- (
- SUM(co_share_stmt_details.actual_bp_brokerage_amt) +
- SUM(co_share_stmt_details.actual_tp_brokerage_amt) +
- SUM(co_share_stmt_details.actual_tep_brokerage_amt) +
- SUM(co_share_stmt_details.reward)
-
- ) AS total_irda_amt
- FROM
- co_share_stmt_details
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- AND insurer_statements.is_active = 1
- $date_condition
- ),
- 2
- ) AS total_irda_amt,
- ROUND(
- (
- SELECT
- (
- SUM(co_share_stmt_details.reward)
-
- ) AS reward
- FROM
- co_share_stmt_details
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- AND insurer_statements.is_active = 1
- $date_condition
- ),
- 2
- ) AS reward,
-
- ROUND(
- (
- SELECT
- SUM(
- COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0) +
- COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0) +
- COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0) +
- COALESCE(co_share_stmt_details.reward, 0)
- ) AS total_irda_amt
- FROM
- co_share_stmt_details
- JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- AND pt_table.is_active = 1
- AND insurer_statements.is_active = 1
- AND insurer_statements.invoice_status IS NOT NULL
- $date_condition
-
- ),
- 2
- ) AS billed_amt,
-
- ROUND(
- (
- (
- SELECT
- SUM(
- COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
- + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
- + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
- + COALESCE(co_share_stmt_details.reward, 0)
- )
- FROM
- co_share_stmt_details
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- $date_condition
- )
- -
- (
- SELECT
- SUM(
- COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
- + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
- + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
- + COALESCE(co_share_stmt_details.reward, 0)
- )
- FROM
- co_share_stmt_details
- JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- AND pt_table.is_active = 1
- AND insurer_statements.is_active = 1
- AND insurer_statements.invoice_status IS NULL
- $date_condition
- )
- ),
- 2
- ) AS unbilled_amt,
- created_user.first_name as user_name,
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1)
- THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1
- THEN CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL
- OR pt_co_share_details.follower_policy_no = ''
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- // ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id')
- ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
- ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
- ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
- ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
- ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
- ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
- ->join('user_profiles AS created_user', 'policy_transaction.created_by = created_user.id', 'left')
- ->where('policy_transaction.is_active', 1)
- ->where('pt_co_share_details.is_active', 1);
-
- if (
- (!in_array(get_role_id(), [1, 5])) &&
- !(
- in_array(MANAGEMENT_TEAM_ID, user_team()) ||
- in_array(FINANCE_TEAM_ID, user_team()) ||
- in_array(BUSINESS_TEAM_ID, user_team())
- )
- ) {
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $builder->where('policy_transaction.created_by', get_session_userid());
+ SELECT
+ (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)) AS realization_amount
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+
+ ) AS realization_amount,
+
+ ROUND(
+ insurer_statements.invoice_amount -
+ (
+ SELECT
+ (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds))
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+ ),
+ 2) AS outstanding_amount,
+
+ (
+ SELECT
+ GROUP_CONCAT(inv_payment_details.utr_no SEPARATOR ', ') AS utr_numbers
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+ ) AS utr_numbers,
+
+ (
+ SELECT
+ GROUP_CONCAT(inv_payment_details.received_date SEPARATOR ', ') AS payment_dates
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+ ) AS payment_dates
+
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id')
+ ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+ ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join('insurers', 'policy_transaction.insurer_id = insurers.id', 'left')
+ ->join('insurer_branch', 'policy_transaction.insurer_branch_id = insurer_branch.id', 'left')
+ ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
+ ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
+ ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
+ ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
+ ->where('policy_transaction.is_active', 1);
+
+ // Check if the start date and end date are provided
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
+
+ // $fromDate = date('Y-m-d', strtotime('-30 days'));
+ // $toDate = date('Y-m-d 23:59:59');
+
+ // $builder->where('policy_transaction.created_at >=', $fromDate)
+ // ->where('policy_transaction.created_at <=', $toDate);
}
- }
- if (!empty($where)) {
- log_message('info', 'Where condition: ' . json_encode($where));
- $builder->where($where);
- }
- // Check if the start date and end date are provided
- if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- }
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
- // if($date_type == 'statement_month' && $start_date != 0 && $end_date != 0){
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
- // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
- // $builder->where('policy_transaction.month >=', $startDate)
- // ->where('policy_transaction.month <=', $endDate);
- // }
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
- // Conditionally join insurer_statements if $date_type == 'statement_month'
- if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
- $startDate = date('Y-m-d', strtotime($start_date));
- $endDate = date('Y-m-d', strtotime($end_date));
+ if ($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0) {
- $builder->join('co_share_stmt_details', 'pt_co_share_details.id = co_share_stmt_details.co_share_id', 'left')
- ->join('insurer_statements', 'co_share_stmt_details.statement_id = insurer_statements.id', 'left')
- ->where('insurer_statements.is_active', 1)
- ->where('insurer_statements.month >=', $startDate)
- ->where('insurer_statements.month <=', $endDate)
- ->groupBy('co_share_stmt_details.co_share_id');
- }
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($client_branch_id != 0) {
- $builder->where('policy_transaction.client_branch_id', $client_branch_id);
- }
-
- if ($insurer_branch_id != 0) {
- $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
- }
-
- if ($client_policy_id != 0) {
- $builder->where('policy_transaction.client_policy_id', $client_policy_id);
- }
-
- if ($user_id != 0) {
- $builder->where('policy_transaction.created_by', $user_id);
- }
-
-
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
-
- if ($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0) {
-
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- if (empty($where)) {
$builder->where('policy_transaction.created_at >=', $fromDate)
->where('policy_transaction.created_at <=', $toDate);
}
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ return $builder->get()->getResultArray();
}
- $builder->orderBy('policy_transaction.id', 'desc');
+ // BDS Report NEW Functin for QUERY
+ // public function getBDSReportList($client_id, $policy_id, $branch_id, $issuer)
- $result = $builder->get()->getResultArray();
+ // public function getBDSReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $client_branch_id = 0, $insurer_branch_id = 0, $client_policy_id = 0)
+ // {
- // dd($this->db->getLastQuery());
+ // $date_condition = '';
+ // if($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
+ // $date_condition = "
+ // AND insurer_statements.month >= '".$start_date ."'
+ // AND insurer_statements.month <= '".$end_date ."'
+ // ";
+ // }
- return $result;
- }
+ // $builder = $this->db->table('policy_transaction')
+ // ->select("
+ // policy_transaction.*,
+ // DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
+ // DATE_FORMAT(
+ // IF(policy_transaction.month IS NULL,
+ // policy_transaction.policy_issue_date,
+ // policy_transaction.month),
+ // '%b %Y') AS policy_issue_month,
+ // CASE
+ // WHEN clients.client_type = 1 THEN 'Group'
+ // WHEN clients.client_type = 2 THEN 'Retail'
+ // ELSE '-'
+ // END AS client_type,
+ // CASE
+ // WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
+ // ELSE 'Renewal'
+ // END AS revenue_type,
+ // CASE
+ // WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
+ // ELSE 'Endorsement'
+ // END AS action_type,
+ // clients.client_name AS client_name,
+ // clients.short_name AS client_short_name,
+ // client_branch.branch_name AS client_branch_name,
+ // client_branch.address1 AS client_address,
+ // policy_type.policy_type,
+ // policy_type.bap,
+ // insurers.name AS insurer_name,
+ // insurers.short_name AS insurer_short_name,
+ // insurer_branch.branch_name AS insurer_branch_name,
+ // insurer_branch.branch_code AS insurer_branch_code,
+ // user_profiles.first_name as user_name,
+ // vehicle.vehicle_no,
+ // tpa.name as tpa_name,
+ // pt_co_share_details.remark as remarks,
+ // pt_co_share_details.bp_amt,
+ // pt_co_share_details.exp_amt,
+ // pt_co_share_details.id as pt_id,
+ // sales_user.first_name as salse_person_name,
+ // service_user.first_name as service_person_name,
- // public function getInceptionTranctionListData($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
- // {
- // // dd($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
- // $builder = $this->db->table('policy_transaction')
- // ->select('
- // policy_transaction.*,
- // clients.short_name AS client_short_name,
- // clients.client_code,
- // clients.client_type,
- // clients.client_name,
- // client_branch.branch_name AS client_branch_name,
- // insurers.name AS insurer_name,
- // insurers.short_name AS insurer_short_name,
- // policy_type.policy_type,
- // pt_co_share_details.agreed_amt AS amount,
- // pt_co_share_details.bp_amt AS bp,
- // pt_co_share_details.tp_amt AS tp
- // ')
- // ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- // ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
- // ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- // ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- // ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- // ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- // ->where('policy_transaction.is_active', 1)
- // ->where('policy_transaction.action_type', 'inception');
+ // ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS premium_wo_gst,
- // if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+ // ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2) AS gst_amount,
- // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+ // ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) + ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
- // $builder->where('policy_transaction.'.$date_type.'>=', $startDate)
- // ->where('policy_transaction.'.$date_type.'<=', $endDate);
- // }else{
+ // ROUND((pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS tp_or_ter,
- // // $fromDate = date('Y-m-d', strtotime('-30 days'));
- // // $toDate = date('Y-m-d 23:59:59');
+ // DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
- // // $builder->where('policy_transaction.created_at >=', $fromDate)
- // // ->where('policy_transaction.created_at <=', $toDate);
- // }
+ // (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
- // if ($client_id != 0) {
- // $builder->where('policy_transaction.client_id', $client_id);
- // }
+ // pt_co_share_details.agreed_bp_per,
+ // ROUND(
+ // (
+ // SELECT
+ // (
+ // SUM(co_share_stmt_details.actual_bp_brokerage_amt) +
+ // SUM(co_share_stmt_details.actual_tp_brokerage_amt) +
+ // SUM(co_share_stmt_details.actual_tep_brokerage_amt) +
+ // SUM(co_share_stmt_details.reward)
- // if ($insurer_id != 0) {
- // $builder->where('policy_transaction.insurer_id', $insurer_id);
- // }
+ // ) AS total_irda_amt
+ // FROM
+ // co_share_stmt_details
+ // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ // WHERE
+ // co_share_stmt_details.co_share_id = pt_co_share_details.id
+ // AND co_share_stmt_details.is_active = 1
+ // AND insurer_statements.is_active = 1
+ // $date_condition
+ // ),
+ // 2
+ // ) AS total_irda_amt,
+ // ROUND(
+ // (
+ // SELECT
+ // (
+ // SUM(co_share_stmt_details.reward)
- // if ($policy_type_id != 0) {
- // $builder->where('client_policy.policy_type_id', $policy_type_id);
- // }
+ // ) AS reward
+ // FROM
+ // co_share_stmt_details
+ // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ // WHERE
+ // co_share_stmt_details.co_share_id = pt_co_share_details.id
+ // AND co_share_stmt_details.is_active = 1
+ // AND insurer_statements.is_active = 1
+ // $date_condition
+ // ),
+ // 2
+ // ) AS reward,
- // if ($issuer != 0) {
- // $builder->where('policy_transaction.issuer', $issuer);
- // }
- // if ($status != 0) {
- // $builder->where('policy_transaction.status', $status);
- // }
+ // ROUND(
+ // (
+ // SELECT
+ // SUM(
+ // COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0) +
+ // COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0) +
+ // COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0) +
+ // COALESCE(co_share_stmt_details.reward, 0)
+ // ) AS total_irda_amt
+ // FROM
+ // co_share_stmt_details
+ // JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
+ // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ // WHERE
+ // co_share_stmt_details.co_share_id = pt_co_share_details.id
+ // AND co_share_stmt_details.is_active = 1
+ // AND pt_table.is_active = 1
+ // AND insurer_statements.is_active = 1
+ // AND insurer_statements.invoice_status IS NOT NULL
+ // $date_condition
- // if($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0){
+ // ),
+ // 2
+ // ) AS billed_amt,
- // $fromDate = date('Y-m-d', strtotime('-30 days'));
- // $toDate = date('Y-m-d 23:59:59');
+ // ROUND(
+ // (
+ // (
+ // SELECT
+ // SUM(
+ // COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
+ // + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
+ // + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
+ // + COALESCE(co_share_stmt_details.reward, 0)
+ // )
+ // FROM
+ // co_share_stmt_details
+ // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ // WHERE
+ // co_share_stmt_details.co_share_id = pt_co_share_details.id
+ // AND co_share_stmt_details.is_active = 1
+ // $date_condition
+ // )
+ // -
+ // (
+ // SELECT
+ // SUM(
+ // COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
+ // + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
+ // + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
+ // + COALESCE(co_share_stmt_details.reward, 0)
+ // )
+ // FROM
+ // co_share_stmt_details
+ // JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
+ // JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ // WHERE
+ // co_share_stmt_details.co_share_id = pt_co_share_details.id
+ // AND co_share_stmt_details.is_active = 1
+ // AND pt_table.is_active = 1
+ // AND insurer_statements.is_active = 1
+ // AND insurer_statements.invoice_status IS NULL
+ // $date_condition
+ // )
+ // ),
+ // 2
+ // ) AS unbilled_amt
- // $builder->where('policy_transaction.created_at >=', $fromDate)
- // ->where('policy_transaction.created_at <=', $toDate);
+ // ")
+ // ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ // // ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
+ // ->join('clients', 'clients.id = policy_transaction.client_id')
+ // ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ // ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ // ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+ // ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
+ // ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ // ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ // ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
+ // ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
+ // ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
+ // ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
+ // ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
+ // ->where('policy_transaction.is_active', 1)
+ // ->where('pt_co_share_details.is_active', 1);
- // }
+ // // Check if the start date and end date are provided
+ // if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
- // $builder->orderBy('policy_transaction.id', 'desc')->limit(10);
+ // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
- // $result = $builder->get()->getResultArray();
+ // $builder->where('policy_transaction.'.$date_type.'>=', $startDate)
+ // ->where('policy_transaction.'.$date_type.'<=', $endDate);
- // // dd($this->db->getLastQuery());
+ // }
- // return $result;
- // }
+ // // if($date_type == 'statement_month' && $start_date != 0 && $end_date != 0){
- public function getInceptionTranctionListData($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0, $where = null)
- {
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.*,
- clients.short_name AS client_short_name,
- clients.client_code,
- clients.client_type,
- clients.client_name,
- client_branch.branch_name AS client_branch_name,
- insurers.name AS insurer_name,
- insurers.short_name AS insurer_short_name,
- policy_type.policy_type,
- pt_co_share_details.agreed_amt AS amount,
- pt_co_share_details.bp_amt AS bp,
- pt_co_share_details.tp_amt AS tp,
- clients.pan,
- DATE_FORMAT(policy_transaction.created_at, '%d %b %Y %h:%i %p') AS created_at,
- user_profiles.first_name as user_name,
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1)
- THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1
- THEN CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL
- OR pt_co_share_details.follower_policy_no = ''
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
- ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
- ->where('policy_transaction.is_active', 1)
- ->where('policy_transaction.action_type', 'inception');
+ // // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ // // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+ // // $builder->where('policy_transaction.month >=', $startDate)
+ // // ->where('policy_transaction.month <=', $endDate);
+ // // }
- if (
- (!in_array(get_role_id(), [1, 5])) &&
- !(
- in_array(MANAGEMENT_TEAM_ID, user_team()) ||
- in_array(FINANCE_TEAM_ID, user_team()) ||
- in_array(BUSINESS_TEAM_ID, user_team())
- )
- ) {
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $builder->where('policy_transaction.created_by', get_session_userid());
+ // // Conditionally join insurer_statements if $date_type == 'statement_month'
+ // if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
+ // $startDate = date('Y-m-d', strtotime($start_date));
+ // $endDate = date('Y-m-d', strtotime($end_date));
+
+ // $builder->join('co_share_stmt_details', 'pt_co_share_details.id = co_share_stmt_details.co_share_id', 'left')
+ // ->join('insurer_statements', 'co_share_stmt_details.statement_id = insurer_statements.id','left')
+ // ->where('insurer_statements.is_active', 1)
+ // ->where('insurer_statements.month >=', $startDate)
+ // ->where('insurer_statements.month <=', $endDate)
+ // ->groupBy('co_share_stmt_details.co_share_id');
+ // }
+
+ // if ($client_id != 0) {
+ // $builder->where('policy_transaction.client_id', $client_id);
+ // }
+
+ // if ($insurer_id != 0) {
+ // $builder->where('policy_transaction.insurer_id', $insurer_id);
+ // }
+
+ // if ($client_branch_id != 0) {
+ // $builder->where('policy_transaction.client_branch_id', $client_branch_id);
+ // }
+
+ // if ($insurer_branch_id != 0) {
+ // $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
+ // }
+
+ // if ($client_policy_id != 0) {
+ // $builder->where('policy_transaction.client_policy_id', $client_policy_id);
+ // }
+
+
+
+ // if ($policy_type_id != 0) {
+ // $builder->where('client_policy.policy_type_id', $policy_type_id);
+ // }
+
+ // if ($issuer != 0) {
+ // $builder->where('policy_transaction.issuer', $issuer);
+ // }
+
+ // if($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0){
+
+ // $fromDate = date('Y-m-d', strtotime('-30 days'));
+ // $toDate = date('Y-m-d 23:59:59');
+
+ // $builder->where('policy_transaction.created_at >=', $fromDate)
+ // ->where('policy_transaction.created_at <=', $toDate);
+
+ // }
+
+ // $builder->orderBy('policy_transaction.id', 'desc');
+
+ // $result = $builder->get()->getResultArray();
+
+ // // dd($this->db->getLastQuery());
+
+ // return $result;
+ // }
+
+ public function getBDSReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $client_branch_id = 0, $insurer_branch_id = 0, $client_policy_id = 0, $user_id = 0, $where = [])
+ {
+
+ $date_condition = '';
+ if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
+ $date_condition = "
+ AND insurer_statements.month >= '" . $start_date . "'
+ AND insurer_statements.month <= '" . $end_date . "'
+ ";
}
- }
- // Optimize Date Filtering
- if (!empty($start_date) && !empty($end_date) && !empty($date_type)) {
- $builder->where("policy_transaction.$date_type >=", date('Y-m-d 00:00:00', strtotime($start_date)))
- ->where("policy_transaction.$date_type <=", date('Y-m-d 23:59:59', strtotime($end_date)));
- }
-
- // Apply Filters Only When Necessary
- if (!empty($client_id)) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
- if (!empty($insurer_id)) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
- if (!empty($policy_type_id)) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
- if (!empty($issuer)) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
- if (!empty($status)) {
- $builder->where('policy_transaction.status', $status);
- }
-
- // Default to Last 30 Days if No Filters Are Applied
- if (empty($client_id) && empty($insurer_id) && empty($policy_type_id) && empty($date_type) && empty($issuer) && empty($where)) {
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
-
- if (!empty($where)) {
- $builder->whereIn('policy_transaction.id', $where);
- }
-
- // Optimize Query Execution
- $builder->orderBy('policy_transaction.id', 'desc');
- $data = $builder->get()->getResultArray();
- return $data;
- }
-
-
- public function getEndorsementTranctionListData($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
- {
- // dd($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.*,
- clients.short_name as client_short_name,
- clients.client_code,
- client_branch.branch_name as client_branch_name,
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.*,
+ DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
+ DATE_FORMAT(
+ IF(policy_transaction.month IS NULL,
+ policy_transaction.policy_issue_date,
+ policy_transaction.month),
+ '%b %Y') AS policy_issue_month,
+ CASE
+ WHEN clients.client_type = 1 THEN 'Group'
+ WHEN clients.client_type = 2 THEN 'Retail'
+ ELSE '-'
+ END AS client_type,
+ CASE
+ WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
+ ELSE 'Renewal'
+ END AS revenue_type,
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
+ ELSE 'Endorsement'
+ END AS action_type,
+ clients.client_name AS client_name,
+ clients.short_name AS client_short_name,
+ client_branch.branch_name AS client_branch_name,
+ client_branch.address1 AS client_address,
+ policy_type.policy_type,
+ policy_type.bap,
insurers.name AS insurer_name,
insurers.short_name AS insurer_short_name,
- policy_type.policy_type ,
+ insurer_branch.branch_name AS insurer_branch_name,
+ insurer_branch.branch_code AS insurer_branch_code,
+ user_profiles.first_name as user_name,
+ vehicle.vehicle_no,
+ tpa.name as tpa_name,
+ pt_co_share_details.remark as remarks,
+ pt_co_share_details.cop_amt as bp_amt,
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.id as pt_id,
+ sales_user.first_name as salse_person_name,
+ service_user.first_name as service_person_name,
+
+ ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) AS premium_wo_gst,
+
+ ROUND((ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) * 18 / 100), 2) AS gst_amount,
+
+ ROUND((ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) + ROUND((ROUND((pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
+
+ ROUND((pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 2) AS tp_or_ter,
+
+ DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
+
+ (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
+
+ pt_co_share_details.agreed_bp_per,
+ ROUND(
+ (
+ SELECT
+ (
+ SUM(co_share_stmt_details.actual_bp_brokerage_amt) +
+ SUM(co_share_stmt_details.actual_tp_brokerage_amt) +
+ SUM(co_share_stmt_details.actual_tep_brokerage_amt) +
+ SUM(co_share_stmt_details.reward)
+
+ ) AS total_irda_amt
+ FROM
+ co_share_stmt_details
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ AND insurer_statements.is_active = 1
+ $date_condition
+ ),
+ 2
+ ) AS total_irda_amt,
+ ROUND(
+ (
+ SELECT
+ (
+ SUM(co_share_stmt_details.reward)
+
+ ) AS reward
+ FROM
+ co_share_stmt_details
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ AND insurer_statements.is_active = 1
+ $date_condition
+ ),
+ 2
+ ) AS reward,
+
+ ROUND(
+ (
+ SELECT
+ SUM(
+ COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0) +
+ COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0) +
+ COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0) +
+ COALESCE(co_share_stmt_details.reward, 0)
+ ) AS total_irda_amt
+ FROM
+ co_share_stmt_details
+ JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ AND pt_table.is_active = 1
+ AND insurer_statements.is_active = 1
+ AND insurer_statements.invoice_status IS NOT NULL
+ $date_condition
+
+ ),
+ 2
+ ) AS billed_amt,
+
+ ROUND(
+ (
+ (
+ SELECT
+ SUM(
+ COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
+ + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
+ + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
+ + COALESCE(co_share_stmt_details.reward, 0)
+ )
+ FROM
+ co_share_stmt_details
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ $date_condition
+ )
+ -
+ (
+ SELECT
+ SUM(
+ COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0)
+ + COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0)
+ + COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0)
+ + COALESCE(co_share_stmt_details.reward, 0)
+ )
+ FROM
+ co_share_stmt_details
+ JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ AND pt_table.is_active = 1
+ AND insurer_statements.is_active = 1
+ AND insurer_statements.invoice_status IS NULL
+ $date_condition
+ )
+ ),
+ 2
+ ) AS unbilled_amt,
+ created_user.first_name as user_name,
CASE
WHEN pt_co_share_details.co_share_type IN (0, 1)
THEN policy_transaction.policy_no
@@ -1103,1198 +780,1521 @@ class PolicyTransactionModel extends Model
ELSE policy_transaction.policy_no
END AS policy_no
")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('clients', 'policy_transaction.client_id = clients.id', 'left')
- ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->where('policy_transaction.is_active', 1)
- ->where('policy_transaction.action_type !=', 'inception');
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ // ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id')
+ ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+ ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
+ ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
+ ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
+ ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
+ ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
+ ->join('user_profiles AS created_user', 'policy_transaction.created_by = created_user.id', 'left')
+ ->where('policy_transaction.is_active', 1)
+ ->where('pt_co_share_details.is_active', 1);
- if (
- (!in_array(get_role_id(), [1, 5])) &&
- !(
- in_array(MANAGEMENT_TEAM_ID, user_team()) ||
- in_array(FINANCE_TEAM_ID, user_team()) ||
- in_array(BUSINESS_TEAM_ID, user_team())
- )
- ) {
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $builder->where('policy_transaction.created_by', get_session_userid());
+ if (
+ (!in_array(get_role_id(), [1, 5])) &&
+ !(
+ in_array(MANAGEMENT_TEAM_ID, user_team()) ||
+ in_array(FINANCE_TEAM_ID, user_team()) ||
+ in_array(BUSINESS_TEAM_ID, user_team())
+ )
+ ) {
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $builder->where('policy_transaction.created_by', get_session_userid());
+ }
}
+ if (!empty($where)) {
+ log_message('info', 'Where condition: ' . json_encode($where));
+ $builder->where($where);
+ }
+ // Check if the start date and end date are provided
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
+
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ }
+
+ // if($date_type == 'statement_month' && $start_date != 0 && $end_date != 0){
+
+ // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+ // $builder->where('policy_transaction.month >=', $startDate)
+ // ->where('policy_transaction.month <=', $endDate);
+ // }
+
+ // Conditionally join insurer_statements if $date_type == 'statement_month'
+ if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
+ $startDate = date('Y-m-d', strtotime($start_date));
+ $endDate = date('Y-m-d', strtotime($end_date));
+
+ $builder->join('co_share_stmt_details', 'pt_co_share_details.id = co_share_stmt_details.co_share_id', 'left')
+ ->join('insurer_statements', 'co_share_stmt_details.statement_id = insurer_statements.id', 'left')
+ ->where('insurer_statements.is_active', 1)
+ ->where('insurer_statements.month >=', $startDate)
+ ->where('insurer_statements.month <=', $endDate)
+ ->groupBy('co_share_stmt_details.co_share_id');
+ }
+
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($client_branch_id != 0) {
+ $builder->where('policy_transaction.client_branch_id', $client_branch_id);
+ }
+
+ if ($insurer_branch_id != 0) {
+ $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
+ }
+
+ if ($client_policy_id != 0) {
+ $builder->where('policy_transaction.client_policy_id', $client_policy_id);
+ }
+
+ if ($user_id != 0) {
+ $builder->where('policy_transaction.created_by', $user_id);
+ }
+
+
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+
+ if ($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0) {
+
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ if (empty($where)) {
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+ }
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ $result = $builder->get()->getResultArray();
+
+ // dd($this->db->getLastQuery());
+
+ return $result;
+ }
+
+ // public function getInceptionTranctionListData($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
+ // {
+ // // dd($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
+ // $builder = $this->db->table('policy_transaction')
+ // ->select('
+ // policy_transaction.*,
+ // clients.short_name AS client_short_name,
+ // clients.client_code,
+ // clients.client_type,
+ // clients.client_name,
+ // client_branch.branch_name AS client_branch_name,
+ // insurers.name AS insurer_name,
+ // insurers.short_name AS insurer_short_name,
+ // policy_type.policy_type,
+ // pt_co_share_details.agreed_amt AS amount,
+ // pt_co_share_details.bp_amt AS bp,
+ // pt_co_share_details.tp_amt AS tp
+ // ')
+ // ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ // ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ // ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ // ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ // ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ // ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ // ->where('policy_transaction.is_active', 1)
+ // ->where('policy_transaction.action_type', 'inception');
+
+ // if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+
+ // $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ // $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ // $builder->where('policy_transaction.'.$date_type.'>=', $startDate)
+ // ->where('policy_transaction.'.$date_type.'<=', $endDate);
+ // }else{
+
+ // // $fromDate = date('Y-m-d', strtotime('-30 days'));
+ // // $toDate = date('Y-m-d 23:59:59');
+
+ // // $builder->where('policy_transaction.created_at >=', $fromDate)
+ // // ->where('policy_transaction.created_at <=', $toDate);
+ // }
+
+ // if ($client_id != 0) {
+ // $builder->where('policy_transaction.client_id', $client_id);
+ // }
+
+ // if ($insurer_id != 0) {
+ // $builder->where('policy_transaction.insurer_id', $insurer_id);
+ // }
+
+ // if ($policy_type_id != 0) {
+ // $builder->where('client_policy.policy_type_id', $policy_type_id);
+ // }
+
+ // if ($issuer != 0) {
+ // $builder->where('policy_transaction.issuer', $issuer);
+ // }
+ // if ($status != 0) {
+ // $builder->where('policy_transaction.status', $status);
+ // }
+
+ // if($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0){
+
+ // $fromDate = date('Y-m-d', strtotime('-30 days'));
+ // $toDate = date('Y-m-d 23:59:59');
+
+ // $builder->where('policy_transaction.created_at >=', $fromDate)
+ // ->where('policy_transaction.created_at <=', $toDate);
+
+ // }
+
+ // $builder->orderBy('policy_transaction.id', 'desc')->limit(10);
+
+ // $result = $builder->get()->getResultArray();
+
+ // // dd($this->db->getLastQuery());
+
+ // return $result;
+ // }
+
+ public function getInceptionTranctionListData($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0, $where = null)
+ {
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.*,
+ clients.short_name AS client_short_name,
+ clients.client_code,
+ clients.client_type,
+ clients.client_name,
+ client_branch.branch_name AS client_branch_name,
+ insurers.name AS insurer_name,
+ insurers.short_name AS insurer_short_name,
+ policy_type.policy_type,
+ pt_co_share_details.agreed_amt AS amount,
+ pt_co_share_details.bp_amt AS bp,
+ pt_co_share_details.tp_amt AS tp,
+ clients.pan,
+ DATE_FORMAT(policy_transaction.created_at, '%d %b %Y %h:%i %p') AS created_at,
+ user_profiles.first_name as user_name,
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1)
+ THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1
+ THEN CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL
+ OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+ ->where('policy_transaction.is_active', 1)
+ ->where('policy_transaction.action_type', 'inception');
+
+ if (
+ (!in_array(get_role_id(), [1, 5])) &&
+ !(
+ in_array(MANAGEMENT_TEAM_ID, user_team()) ||
+ in_array(FINANCE_TEAM_ID, user_team()) ||
+ in_array(BUSINESS_TEAM_ID, user_team())
+ )
+ ) {
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $builder->where('policy_transaction.created_by', get_session_userid());
+ }
+ }
+
+ // Optimize Date Filtering
+ if (!empty($start_date) && !empty($end_date) && !empty($date_type)) {
+ $builder->where("policy_transaction.$date_type >=", date('Y-m-d 00:00:00', strtotime($start_date)))
+ ->where("policy_transaction.$date_type <=", date('Y-m-d 23:59:59', strtotime($end_date)));
+ }
+
+ // Apply Filters Only When Necessary
+ if (!empty($client_id)) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+ if (!empty($insurer_id)) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+ if (!empty($policy_type_id)) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+ if (!empty($issuer)) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+ if (!empty($status)) {
+ $builder->where('policy_transaction.status', $status);
+ }
+
+ // Default to Last 30 Days if No Filters Are Applied
+ if (empty($client_id) && empty($insurer_id) && empty($policy_type_id) && empty($date_type) && empty($issuer) && empty($where)) {
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ if (!empty($where)) {
+ $builder->whereIn('policy_transaction.id', $where);
+ }
+
+ // Optimize Query Execution
+ $builder->orderBy('policy_transaction.id', 'desc');
+ $data = $builder->get()->getResultArray();
+ return $data;
}
- if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
-
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- } else {
-
- // $fromDate = date('Y-m-d', strtotime('-30 days'));
- // $toDate = date('Y-m-d 23:59:59');
-
- // $builder->where('policy_transaction.created_at >=', $fromDate)
- // ->where('policy_transaction.created_at <=', $toDate);
- }
-
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
- if ($status != 0) {
- $builder->where('policy_transaction.status', $status);
- }
-
- if ($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0) {
-
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
-
- $builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
- }
-
- public function getVarienceReportLIst($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $client_branch_id = 0, $insurer_branch_id = 0, $client_policy_id = 0)
- {
- $builder = $this->db->table('policy_transaction')
- ->select("
-
- policy_transaction.id,
- clients.client_name,
- client_branch.branch_name as client_branch_name,
- insurers.name AS insurer_name,
- insurer_branch.branch_name AS insurer_branch_name,
- policy_type.policy_type,
- policy_transaction.policy_no,
- policy_transaction.endorsement_no,
-
- pt_co_share_details.exp_amt,
- pt_co_share_details.variance,
- ROUND ( (pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt),2) as original_premium,
- ROUND(
- (
- SELECT
- (
- SUM(co_share_stmt_details.actual_bp_amt) + SUM(co_share_stmt_details.actual_tp_amt) + SUM(co_share_stmt_details.actual_tep_amt)
- ) AS total_stmt_amt
- FROM
- co_share_stmt_details
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id and insurer_statements.is_active = 1
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- ),
- 2
- ) AS statement_premium,
-
- COALESCE(
- (pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 0
- ) -
- COALESCE(
- (
- SELECT
- SUM(co_share_stmt_details.actual_bp_amt) +
- SUM(co_share_stmt_details.actual_tp_amt) +
- SUM(co_share_stmt_details.actual_tep_amt)
- FROM
- co_share_stmt_details
- JOIN
- insurer_statements
- ON
- co_share_stmt_details.statement_id = insurer_statements.id
- AND insurer_statements.is_active = 1
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- ), 0
- ) AS premium_variance_amt,
-
-
- ROUND(
- (
- SELECT
- (
- SUM(co_share_stmt_details.actual_bp_brokerage_amt) + SUM(co_share_stmt_details.actual_tp_brokerage_amt) + SUM(co_share_stmt_details.actual_tep_brokerage_amt) + SUM(co_share_stmt_details.reward)
- ) AS total_irda_amt
- FROM
- co_share_stmt_details
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id and insurer_statements.is_active = 1
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- ),
- 2
- ) AS statement_amount,
-
- ROUND(
- pt_co_share_details.exp_amt -
- (
- SELECT
- (
- SUM(co_share_stmt_details.actual_bp_brokerage_amt) +
- SUM(co_share_stmt_details.actual_tp_brokerage_amt) +
- SUM(co_share_stmt_details.actual_tep_brokerage_amt) + SUM(co_share_stmt_details.reward)
- )
- FROM co_share_stmt_details
- JOIN insurer_statements
- ON co_share_stmt_details.statement_id = insurer_statements.id and insurer_statements.is_active = 1
- WHERE
- co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- ),
- 2
- ) AS variance_amt,
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1)
- THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1
- THEN CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL
- OR pt_co_share_details.follower_policy_no = ''
+ public function getEndorsementTranctionListData($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
+ {
+ // dd($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.*,
+ clients.short_name as client_short_name,
+ clients.client_code,
+ client_branch.branch_name as client_branch_name,
+ insurers.name AS insurer_name,
+ insurers.short_name AS insurer_short_name,
+ policy_type.policy_type ,
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1)
THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
- ->join('client_branch', 'client_branch.id = policy_transaction.client_branch_id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->where('policy_transaction.is_active', 1)
- ->where('pt_co_share_details.is_active', 1)
- // ->where('insurer_statements.is_active',1);
- // ->having('variance_amt IS NOT NULL')
- // ->having('variance_amt !=',0)
- // ->having('premium_variance_amt IS NOT NULL')
- // ->having('premium_variance_amt !=',0);
+ WHEN pt_co_share_details.co_share_type > 1
+ THEN CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL
+ OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('clients', 'policy_transaction.client_id = clients.id', 'left')
+ ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->where('policy_transaction.is_active', 1)
+ ->where('policy_transaction.action_type !=', 'inception');
- // ->group_start()
- ->having('variance_amt IS NOT NULL')
- ->orHaving('variance_amt !=', 0)
- ->having('premium_variance_amt IS NOT NULL')
- ->orHaving('premium_variance_amt !=', 0);
- // ->group_end();
- // ->where('pt_co_share_details.actual_bp_brokerage_amt IS NOT NULL AND pt_co_share_details.actual_bp_brokerage_amt != 0');
- // ->where('pt_co_share_details.variance IS NOT NULL')
- // ->where('pt_co_share_details.variance !=', 0);
+ if (
+ (!in_array(get_role_id(), [1, 5])) &&
+ !(
+ in_array(MANAGEMENT_TEAM_ID, user_team()) ||
+ in_array(FINANCE_TEAM_ID, user_team()) ||
+ in_array(BUSINESS_TEAM_ID, user_team())
+ )
+ ) {
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $builder->where('policy_transaction.created_by', get_session_userid());
+ }
+ }
- if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- } else {
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
+ // $fromDate = date('Y-m-d', strtotime('-30 days'));
+ // $toDate = date('Y-m-d 23:59:59');
+
+ // $builder->where('policy_transaction.created_at >=', $fromDate)
+ // ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+ if ($status != 0) {
+ $builder->where('policy_transaction.status', $status);
+ }
+
+ if ($client_id == 0 && $insurer_id == 0 && $policy_type_id == 0 && $date_type == 0 && $issuer == 0) {
+
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ return $builder->get()->getResultArray();
}
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
-
- if ($client_branch_id != 0) {
- $builder->where('policy_transaction.client_branch_id', $client_branch_id);
- }
-
- if ($insurer_branch_id != 0) {
- $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
- }
-
- if ($client_policy_id != 0) {
- $builder->where('policy_transaction.client_policy_id', $client_policy_id);
- }
-
-
- $builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
- }
-
- public function getBusinessReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
- {
- $dateThreshold = date('Y-m-d H:i:s', strtotime("- 3 days"));
- $builder = $this->db->table('policy_transaction')
- ->select([
- 'policy_transaction.id AS policy_trns_id',
- 'clients.client_name',
- 'insurers.name AS insurer_name',
- 'policy_type.policy_type',
- 'policy_transaction.endorsement_no',
- "CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'I'
- ELSE 'E'
- END AS action_type",
- 'policy_transaction.action_type as action_type_full',
- 'pt_co_share_details.bp_amt',
- 'pt_co_share_details.tp_amt',
- 'pt_co_share_details.tep_amt',
- 'policy_transaction.status',
- 'CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1)
- THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1
- THEN CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL
- OR pt_co_share_details.follower_policy_no = ""
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no'
- ])
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join(
- '(SELECT policy_tran_id, MAX(created_at) AS last_policy_status_change,is_active
- FROM policy_transaction_status
- WHERE is_active = 1
- GROUP BY policy_tran_id) th',
- 'policy_transaction.id = th.policy_tran_id'
-
- )
- ->where("th.last_policy_status_change <= '{$dateThreshold}'", null, false)
- ->where('policy_transaction.is_active', 1)
- ->where("policy_transaction.status is not null", null, false)
- ->whereNotIn("policy_transaction.status", ['completed'])
- // ->where('policy_transaction.status', 'completed')
- ->where('(pt_co_share_details.bp_amt IS NULL OR pt_co_share_details.bp_amt = 0)', null, false);
-
-
- if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
-
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- } else {
-
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
-
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
-
- if ($status != 0) {
- $builder->where('policy_transaction.status', $status);
- }
-
- $builder->orderBy('policy_transaction.id', 'desc');
- // echo $builder->getCompiledSelect();
- // exit;
-
- $returnData = $builder->get()->getResultArray();
-
-
-
- // dd($returnData);
- return $returnData;
- }
-
- public function getFinanceReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
- {
- $dateThreshold = date('Y-m-d H:i:s', strtotime("-90 days"));
-
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.id,
- clients.client_name,
- insurers.name AS insurer_name,
- policy_type.policy_type,
- policy_transaction.policy_no,
- policy_transaction.endorsement_no,
- CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'I'
- ELSE 'E'
- END AS action_type,
- policy_transaction.action_type AS action_type_full,
- pt_co_share_details.exp_amt,
- pt_co_share_details.variance,
- policy_transaction.status,
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1)
- THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1
- THEN CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL
- OR pt_co_share_details.follower_policy_no = ''
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join(
- '(SELECT policy_tran_id, MAX(created_at) AS last_policy_status_change,is_active
- FROM policy_transaction_status
- WHERE is_active = 1
- GROUP BY policy_tran_id) th',
- 'policy_transaction.id = th.policy_tran_id'
-
- )
- ->where("th.last_policy_status_change <= '{$dateThreshold}'", null, false)
- ->where('policy_transaction.is_active', 1)
- // ->where('policy_transaction.status', 'completed')
- ->where('COALESCE(pt_co_share_details.agreed_bp_per, 0) + COALESCE(pt_co_share_details.agreed_tp_per, 0) + COALESCE(pt_co_share_details.agreed_tep_per, 0) = 0')
- ->where('COALESCE(pt_co_share_details.actual_bp_amt, 0) + COALESCE(pt_co_share_details.actual_tp_amt, 0) + COALESCE(pt_co_share_details.actual_tep_amt, 0) = 0')
- ->where('COALESCE(pt_co_share_details.actual_bp_brokerage_amt, 0) + COALESCE(pt_co_share_details.actual_tp_brokerage_amt, 0) + COALESCE(pt_co_share_details.actual_tep_brokerage_amt, 0) = 0')
- ->where("policy_transaction.status is not null", null, false)
- ->whereNotIn("policy_transaction.status", ['completed']);
-
- if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
-
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- } else {
-
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
-
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
-
- if ($status != 0) {
- $builder->where('policy_transaction.status', $status);
- }
-
- $builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
- }
-
- public function getOutstandingReportList_OLD($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
- {
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.id,
- clients.client_name,
- insurers.name AS insurer_name,
- policy_type.policy_type,
- policy_transaction.endorsement_no,
- CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'I'
- ELSE 'E'
- END AS action_type,
- pt_co_share_details.exp_amt,
- pt_co_share_details.variance,
- insurer_statements.invoice_amount,
- insurer_statements.invoice_status,
-
- ROUND((pt_co_share_details.actual_bp_brokerage_amt + pt_co_share_details.actual_tp_brokerage_amt + pt_co_share_details.actual_tep_brokerage_amt), 2) AS realization_amount2,
+ public function getVarienceReportLIst($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $client_branch_id = 0, $insurer_branch_id = 0, $client_policy_id = 0)
+ {
+ $builder = $this->db->table('policy_transaction')
+ ->select("
- (
- SELECT
- (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)) AS realization_amount
- FROM
- inv_payment_details
- WHERE
- inv_payment_details.statement_id = insurer_statements.id
- AND inv_payment_details.is_active = 1
-
- ) AS realization_amount,
-
- ROUND(
- insurer_statements.invoice_amount -
+ policy_transaction.id,
+ clients.client_name,
+ client_branch.branch_name as client_branch_name,
+ insurers.name AS insurer_name,
+ insurer_branch.branch_name AS insurer_branch_name,
+ policy_type.policy_type,
+ policy_transaction.policy_no,
+ policy_transaction.endorsement_no,
+
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.variance,
+ ROUND ( (pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt),2) as original_premium,
+ ROUND(
(
SELECT
- (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds))
+ (
+ SUM(co_share_stmt_details.actual_bp_amt) + SUM(co_share_stmt_details.actual_tp_amt) + SUM(co_share_stmt_details.actual_tep_amt)
+ ) AS total_stmt_amt
+ FROM
+ co_share_stmt_details
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id and insurer_statements.is_active = 1
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ ),
+ 2
+ ) AS statement_premium,
+
+ COALESCE(
+ (pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt), 0
+ ) -
+ COALESCE(
+ (
+ SELECT
+ SUM(co_share_stmt_details.actual_bp_amt) +
+ SUM(co_share_stmt_details.actual_tp_amt) +
+ SUM(co_share_stmt_details.actual_tep_amt)
+ FROM
+ co_share_stmt_details
+ JOIN
+ insurer_statements
+ ON
+ co_share_stmt_details.statement_id = insurer_statements.id
+ AND insurer_statements.is_active = 1
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ ), 0
+ ) AS premium_variance_amt,
+
+
+ ROUND(
+ (
+ SELECT
+ (
+ SUM(co_share_stmt_details.actual_bp_brokerage_amt) + SUM(co_share_stmt_details.actual_tp_brokerage_amt) + SUM(co_share_stmt_details.actual_tep_brokerage_amt) + SUM(co_share_stmt_details.reward)
+ ) AS total_irda_amt
+ FROM
+ co_share_stmt_details
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id and insurer_statements.is_active = 1
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ ),
+ 2
+ ) AS statement_amount,
+
+ ROUND(
+ pt_co_share_details.exp_amt -
+ (
+ SELECT
+ (
+ SUM(co_share_stmt_details.actual_bp_brokerage_amt) +
+ SUM(co_share_stmt_details.actual_tp_brokerage_amt) +
+ SUM(co_share_stmt_details.actual_tep_brokerage_amt) + SUM(co_share_stmt_details.reward)
+ )
+ FROM co_share_stmt_details
+ JOIN insurer_statements
+ ON co_share_stmt_details.statement_id = insurer_statements.id and insurer_statements.is_active = 1
+ WHERE
+ co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ ),
+ 2
+ ) AS variance_amt,
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1)
+ THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1
+ THEN CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL
+ OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ ->join('client_branch', 'client_branch.id = policy_transaction.client_branch_id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->where('policy_transaction.is_active', 1)
+ ->where('pt_co_share_details.is_active', 1)
+ // ->where('insurer_statements.is_active',1);
+ // ->having('variance_amt IS NOT NULL')
+ // ->having('variance_amt !=',0)
+ // ->having('premium_variance_amt IS NOT NULL')
+ // ->having('premium_variance_amt !=',0);
+
+ // ->group_start()
+ ->having('variance_amt IS NOT NULL')
+ ->orHaving('variance_amt !=', 0)
+ ->having('premium_variance_amt IS NOT NULL')
+ ->orHaving('premium_variance_amt !=', 0);
+ // ->group_end();
+ // ->where('pt_co_share_details.actual_bp_brokerage_amt IS NOT NULL AND pt_co_share_details.actual_bp_brokerage_amt != 0');
+ // ->where('pt_co_share_details.variance IS NOT NULL')
+ // ->where('pt_co_share_details.variance !=', 0);
+
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
+
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+
+ if ($client_branch_id != 0) {
+ $builder->where('policy_transaction.client_branch_id', $client_branch_id);
+ }
+
+ if ($insurer_branch_id != 0) {
+ $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
+ }
+
+ if ($client_policy_id != 0) {
+ $builder->where('policy_transaction.client_policy_id', $client_policy_id);
+ }
+
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ return $builder->get()->getResultArray();
+ }
+
+ public function getBusinessReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
+ {
+ $dateThreshold = date('Y-m-d H:i:s', strtotime("- 3 days"));
+ $builder = $this->db->table('policy_transaction')
+ ->select([
+ 'policy_transaction.id AS policy_trns_id',
+ 'clients.client_name',
+ 'insurers.name AS insurer_name',
+ 'policy_type.policy_type',
+ 'policy_transaction.endorsement_no',
+ "CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'I'
+ ELSE 'E'
+ END AS action_type",
+ 'policy_transaction.action_type as action_type_full',
+ 'pt_co_share_details.bp_amt',
+ 'pt_co_share_details.tp_amt',
+ 'pt_co_share_details.tep_amt',
+ 'policy_transaction.status',
+ 'CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1)
+ THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1
+ THEN CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL
+ OR pt_co_share_details.follower_policy_no = ""
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no'
+ ])
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join(
+ '(SELECT policy_tran_id, MAX(created_at) AS last_policy_status_change,is_active
+ FROM policy_transaction_status
+ WHERE is_active = 1
+ GROUP BY policy_tran_id) th',
+ 'policy_transaction.id = th.policy_tran_id'
+
+ )
+ ->where("th.last_policy_status_change <= '{$dateThreshold}'", null, false)
+ ->where('policy_transaction.is_active', 1)
+ ->where("policy_transaction.status is not null", null, false)
+ ->whereNotIn("policy_transaction.status", ['completed'])
+ // ->where('policy_transaction.status', 'completed')
+ ->where('(pt_co_share_details.bp_amt IS NULL OR pt_co_share_details.bp_amt = 0)', null, false);
+
+
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
+
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+
+ if ($status != 0) {
+ $builder->where('policy_transaction.status', $status);
+ }
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+ // echo $builder->getCompiledSelect();
+ // exit;
+
+ $returnData = $builder->get()->getResultArray();
+
+
+
+ // dd($returnData);
+ return $returnData;
+ }
+
+ public function getFinanceReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
+ {
+ $dateThreshold = date('Y-m-d H:i:s', strtotime("-90 days"));
+
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.id,
+ clients.client_name,
+ insurers.name AS insurer_name,
+ policy_type.policy_type,
+ policy_transaction.policy_no,
+ policy_transaction.endorsement_no,
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'I'
+ ELSE 'E'
+ END AS action_type,
+ policy_transaction.action_type AS action_type_full,
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.variance,
+ policy_transaction.status,
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1)
+ THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1
+ THEN CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL
+ OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join(
+ '(SELECT policy_tran_id, MAX(created_at) AS last_policy_status_change,is_active
+ FROM policy_transaction_status
+ WHERE is_active = 1
+ GROUP BY policy_tran_id) th',
+ 'policy_transaction.id = th.policy_tran_id'
+
+ )
+ ->where("th.last_policy_status_change <= '{$dateThreshold}'", null, false)
+ ->where('policy_transaction.is_active', 1)
+ // ->where('policy_transaction.status', 'completed')
+ ->where('COALESCE(pt_co_share_details.agreed_bp_per, 0) + COALESCE(pt_co_share_details.agreed_tp_per, 0) + COALESCE(pt_co_share_details.agreed_tep_per, 0) = 0')
+ ->where('COALESCE(pt_co_share_details.actual_bp_amt, 0) + COALESCE(pt_co_share_details.actual_tp_amt, 0) + COALESCE(pt_co_share_details.actual_tep_amt, 0) = 0')
+ ->where('COALESCE(pt_co_share_details.actual_bp_brokerage_amt, 0) + COALESCE(pt_co_share_details.actual_tp_brokerage_amt, 0) + COALESCE(pt_co_share_details.actual_tep_brokerage_amt, 0) = 0')
+ ->where("policy_transaction.status is not null", null, false)
+ ->whereNotIn("policy_transaction.status", ['completed']);
+
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
+
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+
+ if ($status != 0) {
+ $builder->where('policy_transaction.status', $status);
+ }
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ return $builder->get()->getResultArray();
+ }
+
+ public function getOutstandingReportList_OLD($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
+ {
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.id,
+ clients.client_name,
+ insurers.name AS insurer_name,
+ policy_type.policy_type,
+ policy_transaction.endorsement_no,
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'I'
+ ELSE 'E'
+ END AS action_type,
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.variance,
+ insurer_statements.invoice_amount,
+ insurer_statements.invoice_status,
+
+ ROUND((pt_co_share_details.actual_bp_brokerage_amt + pt_co_share_details.actual_tp_brokerage_amt + pt_co_share_details.actual_tep_brokerage_amt), 2) AS realization_amount2,
+
+ (
+ SELECT
+ (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)) AS realization_amount
FROM
inv_payment_details
WHERE
inv_payment_details.statement_id = insurer_statements.id
AND inv_payment_details.is_active = 1
- ),
- 2) AS outstanding_amount,
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1)
- THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1
- THEN CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL
- OR pt_co_share_details.follower_policy_no = ''
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
- ->join('inv_payment_details', 'insurer_statements.id = inv_payment_details.statement_id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->where('policy_transaction.is_active', 1);
+
+ ) AS realization_amount,
+
+ ROUND(
+ insurer_statements.invoice_amount -
+ (
+ SELECT
+ (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds))
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+ ),
+ 2) AS outstanding_amount,
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1)
+ THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1
+ THEN CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL
+ OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
+ ->join('inv_payment_details', 'insurer_statements.id = inv_payment_details.statement_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->where('policy_transaction.is_active', 1);
- // Date range filtering
- if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+ // Date range filtering
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
- $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
- ->where('policy_transaction.' . $date_type . '<=', $endDate);
- } else {
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ // Additional filters
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+
+ if ($status != 0) {
+ $builder->where('policy_transaction.status', $status);
+ }
+
+ // Filter where outstanding_amount is not null
+ $builder->having('outstanding_amount IS NOT NULL');
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ return $builder->get()->getResultArray();
+ }
+
+ public function getOutstandingReportList($start_date = 0, $end_date = 0, $insurer_id = 0, $insurer_branch_id = 0)
+ {
+ $builder = $this->db->table('insurer_statements s')
+ ->select('
+ s.id,
+ s.insurer_id,
+ s.branch_id,
+ ins.short_name,
+ ib.branch_name,
+ s.month,
+ s.line_items,
+ s.stmt_sno,
+ s.invoice_status,
+ s.invoice_date,
+ s.invoice_no,
+ s.invoice_amount,
+ COALESCE(SUM(p.inv_amt) + SUM(p.tds) + SUM(p.gst), 0) AS total_paid,
+ (s.invoice_amount - COALESCE(SUM(p.inv_amt) + SUM(p.tds) + SUM(p.gst), 0)) AS outstanding_amount
+ ')
+ ->join('inv_payment_details p', 's.id = p.statement_id', 'left')
+ ->join('insurers ins', 's.insurer_id = ins.id')
+ ->join('insurer_branch ib', 's.branch_id = ib.id')
+ ->where('s.is_active', 1)
+ ->where('p.is_active', 1)
+ ->groupBy('s.id, s.invoice_no, s.invoice_date, s.invoice_amount')
+ ->having('outstanding_amount >', 0);
+ // ->get();
+
+
+ // Date range filtering
+ if ($start_date != 0 && $end_date != 0) {
+
+ $builder->where('s.month >=', $start_date)
+ ->where('s.month <=', $end_date);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('s.insurer_id', $insurer_id);
+ }
+ if ($insurer_branch_id != 0) {
+ $builder->where('s.branch_id', $insurer_branch_id);
+ }
+
+ $builder->orderBy('s.id', 'desc');
+
+ return $builder->get()->getResultArray();
+ }
+
+
+ //function for fetch renewal report data
+ public function getRenewalReportData($start_date = null, $end_date = null, $client_type = null, $client = null, $issuer = null)
+ {
$fromDate = date('Y-m-d', strtotime('-90 days'));
$toDate = date('Y-m-d 23:59:59');
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
-
- // Additional filters
- if ($client_id != 0) {
- $builder->where('policy_transaction.client_id', $client_id);
- }
-
- if ($insurer_id != 0) {
- $builder->where('policy_transaction.insurer_id', $insurer_id);
- }
-
- if ($policy_type_id != 0) {
- $builder->where('client_policy.policy_type_id', $policy_type_id);
- }
-
- if ($issuer != 0) {
- $builder->where('policy_transaction.issuer', $issuer);
- }
-
- if ($status != 0) {
- $builder->where('policy_transaction.status', $status);
- }
-
- // Filter where outstanding_amount is not null
- $builder->having('outstanding_amount IS NOT NULL');
-
- $builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
- }
-
- public function getOutstandingReportList($start_date = 0, $end_date = 0, $insurer_id = 0, $insurer_branch_id = 0)
- {
- $builder = $this->db->table('insurer_statements s')
- ->select('
- s.id,
- s.insurer_id,
- s.branch_id,
- ins.short_name,
- ib.branch_name,
- s.month,
- s.line_items,
- s.stmt_sno,
- s.invoice_status,
- s.invoice_date,
- s.invoice_no,
- s.invoice_amount,
- COALESCE(SUM(p.inv_amt) + SUM(p.tds) + SUM(p.gst), 0) AS total_paid,
- (s.invoice_amount - COALESCE(SUM(p.inv_amt) + SUM(p.tds) + SUM(p.gst), 0)) AS outstanding_amount
- ')
- ->join('inv_payment_details p', 's.id = p.statement_id', 'left')
- ->join('insurers ins', 's.insurer_id = ins.id')
- ->join('insurer_branch ib', 's.branch_id = ib.id')
- ->where('s.is_active', 1)
- ->where('p.is_active', 1)
- ->groupBy('s.id, s.invoice_no, s.invoice_date, s.invoice_amount')
- ->having('outstanding_amount >', 0);
- // ->get();
-
-
- // Date range filtering
- if ($start_date != 0 && $end_date != 0) {
-
- $builder->where('s.month >=', $start_date)
- ->where('s.month <=', $end_date);
- }
-
- if ($insurer_id != 0) {
- $builder->where('s.insurer_id', $insurer_id);
- }
- if ($insurer_branch_id != 0) {
- $builder->where('s.branch_id', $insurer_branch_id);
- }
-
- $builder->orderBy('s.id', 'desc');
-
- return $builder->get()->getResultArray();
- }
-
-
- //function for fetch renewal report data
- public function getRenewalReportData($start_date = null, $end_date = null, $client_type = null, $client = null, $issuer = null)
- {
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- if (!empty($start_date) && !empty($end_date)) {
- $fromDate = change_date_format($start_date);
- $toDate = change_date_format($end_date);
- }
-
- $query = $this->db->table('policy_transaction pt')
- ->select('
- pt.*,
- c.client_name,
- c.short_name AS client_short_name,
- c.client_type,
- policy_type.policy_type,
- i.name as insurer_name,
- ib.branch_name as insurer_branch_name,
- vehicle.vehicle_no,
- leads.status as lead_status
- ')
- ->join('clients c', 'pt.client_id = c.id', 'left')
- ->join('pt_co_share_details pt_co', 'pt.id = pt_co.pt_id and pt_co.co_share_type = 1', 'left')
- ->join('insurers i', 'pt_co.insurer_id = i.id', 'left')
- ->join('insurer_branch ib', 'pt_co.insurer_branch_id = ib.id', 'left')
- ->join('policy_type', 'pt.policy_type_id = policy_type.id', 'left')
- ->join('vehicle', 'pt.vehicle_id = vehicle.id and vehicle.is_active = 1', 'left')
- ->join('leads', 'pt.client_policy_id = leads.source_policy_id and leads.source_policy_id != 0 and leads.is_active = 1', 'left')
- ->where('pt.policy_end_date >=', $fromDate)
- ->where('pt.policy_end_date <=', $toDate)
- ->where('pt.is_active', 1)
- ->where('pt_co.is_active', 1)
- ->where('pt.action_type', "inception");
-
- // Apply filters if parameters are provided
- if (!empty($client_type)) {
- $query->where('c.client_type', $client_type);
- }
- if (!empty($client)) {
- $query->where('pt.client_id', $client);
- }
- if (!empty($issuer)) { // Corrected condition to check $issuer
- $query->where('pt.issuer', $issuer);
- }
-
- $query->groupBy('pt.id');
- $query->orderBy('pt.id', 'DESC');
- // Fetch and return results
- $results = $query->get()->getResultArray();
- // print($this->db->getLastQuery()); die;
- return $results;
- }
-
- public function getBDSRenewalData()
- {
- // Increase GROUP_CONCAT limit
- $this->db->query("SET SESSION group_concat_max_len = 1000000;");
-
- $builder = $this->db->table('policy_transaction pt');
-
- $builder->select([
- 'SUM(CASE WHEN pt.policy_end_date < CURDATE() THEN 1 ELSE 0 END) AS Expired',
- 'SUM(CASE WHEN pt.policy_end_date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 MONTH) THEN 1 ELSE 0 END) AS `Renewal Pending`',
- 'GROUP_CONCAT(CASE WHEN pt.policy_end_date < CURDATE() THEN pt.id ELSE NULL END) AS Expired_ids',
- 'GROUP_CONCAT(CASE WHEN pt.policy_end_date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 MONTH) THEN pt.id ELSE NULL END) AS Renewal_Pending_ids'
- ]);
- $builder->where("pt.policy_end_date IS NOT NULL", null, false);
- $builder->where('pt.is_active', 1);
-
- // Self join to check if a policy has been renewed
- $builder->join('policy_transaction renewed', 'renewed.source_client_policy_id = pt.client_policy_id and renewed.client_id = pt.client_id and renewed.client_branch_id = pt.client_branch_id', 'left');
-
- // Filter for expired or expiring policies
- $builder->where("(pt.policy_end_date < CURDATE() OR pt.policy_end_date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 MONTH))", null, false);
-
- $builder->where('renewed.id IS NULL', null, false);
- $query = $builder->get();
- $result = $query->getResultArray();
-
- $total = 0;
- foreach ($result[0] as $key => $value) {
- if ($key !== 'Expired_ids' && $key !== 'Renewal_Pending_ids') {
- $total += $value;
+ if (!empty($start_date) && !empty($end_date)) {
+ $fromDate = change_date_format($start_date);
+ $toDate = change_date_format($end_date);
}
+
+ $query = $this->db->table('policy_transaction pt')
+ ->select('
+ pt.*,
+ c.client_name,
+ c.short_name AS client_short_name,
+ c.client_type,
+ policy_type.policy_type,
+ i.name as insurer_name,
+ ib.branch_name as insurer_branch_name,
+ vehicle.vehicle_no,
+ leads.status as lead_status
+ ')
+ ->join('clients c', 'pt.client_id = c.id', 'left')
+ ->join('pt_co_share_details pt_co', 'pt.id = pt_co.pt_id and pt_co.co_share_type = 1', 'left')
+ ->join('insurers i', 'pt_co.insurer_id = i.id', 'left')
+ ->join('insurer_branch ib', 'pt_co.insurer_branch_id = ib.id', 'left')
+ ->join('policy_type', 'pt.policy_type_id = policy_type.id', 'left')
+ ->join('vehicle', 'pt.vehicle_id = vehicle.id and vehicle.is_active = 1', 'left')
+ ->join('leads', 'pt.client_policy_id = leads.source_policy_id and leads.source_policy_id != 0 and leads.is_active = 1', 'left')
+ ->where('pt.policy_end_date >=', $fromDate)
+ ->where('pt.policy_end_date <=', $toDate)
+ ->where('pt.is_active', 1)
+ ->where('pt_co.is_active', 1)
+ ->where('pt.action_type', "inception");
+
+ // Apply filters if parameters are provided
+ if (!empty($client_type)) {
+ $query->where('c.client_type', $client_type);
+ }
+ if (!empty($client)) {
+ $query->where('pt.client_id', $client);
+ }
+ if (!empty($issuer)) { // Corrected condition to check $issuer
+ $query->where('pt.issuer', $issuer);
+ }
+
+ $query->groupBy('pt.id');
+ $query->orderBy('pt.id', 'DESC');
+ // Fetch and return results
+ $results = $query->get()->getResultArray();
+ // print($this->db->getLastQuery()); die;
+ return $results;
}
- // Ensure ID fields are arrays (not null)
- $result[0]['Expired_ids'] = $result[0]['Expired_ids'] ? $result[0]['Expired_ids'] : [];
- $result[0]['Renewal Pending_ids'] = $result[0]['Renewal_Pending_ids'] ? $result[0]['Renewal_Pending_ids'] : [];
+ public function getBDSRenewalData()
+ {
+ // Increase GROUP_CONCAT limit
+ $this->db->query("SET SESSION group_concat_max_len = 1000000;");
- // Add total count
- $result[0]['total'] = $total;
+ $builder = $this->db->table('policy_transaction pt');
- return $result[0];
- }
+ $builder->select([
+ 'SUM(CASE WHEN pt.policy_end_date < CURDATE() THEN 1 ELSE 0 END) AS Expired',
+ 'SUM(CASE WHEN pt.policy_end_date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 MONTH) THEN 1 ELSE 0 END) AS `Renewal Pending`',
+ 'GROUP_CONCAT(CASE WHEN pt.policy_end_date < CURDATE() THEN pt.id ELSE NULL END) AS Expired_ids',
+ 'GROUP_CONCAT(CASE WHEN pt.policy_end_date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 MONTH) THEN pt.id ELSE NULL END) AS Renewal_Pending_ids'
+ ]);
+ $builder->where("pt.policy_end_date IS NOT NULL", null, false);
+ $builder->where('pt.is_active', 1);
- public function reportBDSNew(
- $start_date = 0,
- $end_date = 0,
- $client_id = 0,
- $insurer_id = 0,
- $policy_type_id = 0,
- $date_type = 0,
- $issuer = 0,
- $client_branch_id = 0,
- $insurer_branch_id = 0,
- $client_policy_id = 0,
- $user_id = 0,
- $where = []
- ) {
-
- $date_condition = '';
+ // Self join to check if a policy has been renewed
+ $builder->join('policy_transaction renewed', 'renewed.source_client_policy_id = pt.client_policy_id and renewed.client_id = pt.client_id and renewed.client_branch_id = pt.client_branch_id', 'left');
- // ==============================
- // DATE FILTER FOR STATEMENT MONTH
- // ==============================
- if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
- $date_condition = "
- AND insurer_statements_oq.month >= '{$start_date}'
- AND insurer_statements_oq.month <= '{$end_date}'
- ";
+ // Filter for expired or expiring policies
+ $builder->where("(pt.policy_end_date < CURDATE() OR pt.policy_end_date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 MONTH))", null, false);
+
+ $builder->where('renewed.id IS NULL', null, false);
+ $query = $builder->get();
+ $result = $query->getResultArray();
+
+ $total = 0;
+ foreach ($result[0] as $key => $value) {
+ if ($key !== 'Expired_ids' && $key !== 'Renewal_Pending_ids') {
+ $total += $value;
+ }
+ }
+
+ // Ensure ID fields are arrays (not null)
+ $result[0]['Expired_ids'] = $result[0]['Expired_ids'] ? $result[0]['Expired_ids'] : [];
+ $result[0]['Renewal Pending_ids'] = $result[0]['Renewal_Pending_ids'] ? $result[0]['Renewal_Pending_ids'] : [];
+
+ // Add total count
+ $result[0]['total'] = $total;
+
+ return $result[0];
}
- // ==============================
- // BASE QUERY
- // ==============================
-
-
- // ==============================
- // Without Statement Upload
- // ==============================
-
-
- $builder2 = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.id AS id,
- policy_transaction.endorsement_no AS endorsement_no,
- policy_transaction.ref AS ref,
- DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
-
- DATE_FORMAT( policy_transaction.policy_issue_date,, '%b %Y') AS policy_issue_month,
-
- CASE
- WHEN 1 = 1 THEN 'no statement uploaded'
- ELSE 'statement uploaded'
- END AS statement_uploaded ,
-
-
- CASE
- WHEN clients.client_type = 1 THEN 'Group'
- WHEN clients.client_type = 2 THEN 'Retail'
- ELSE '-'
- END AS client_type,
-
- CASE
- WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
- ELSE 'Renewal'
- END AS revenue_type,
-
- CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
- ELSE 'Endorsement'
- END AS action_type,
-
- clients.client_name AS client_name,
- clients.short_name AS client_short_name,
- client_branch.branch_name AS client_branch_name,
- client_branch.address1 AS client_address,
- policy_type.policy_type,
- policy_type.bap,
- insurers.name AS insurer_name,
- insurers.short_name AS insurer_short_name,
- insurer_branch.branch_name AS insurer_branch_name,
- insurer_branch.branch_code AS insurer_branch_code,
- user_profiles.first_name AS user_name,
- vehicle.vehicle_no,
- tpa.name AS tpa_name,
- pt_co_share_details.remark AS remarks,
- pt_co_share_details.cop_amt AS bp_amt,
- pt_co_share_details.exp_amt,
- pt_co_share_details.id AS pt_id,
- sales_user.first_name AS salse_person_name,
- service_user.first_name AS service_person_name,
-
- ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS premium_wo_gst,
- ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2) AS gst_amount,
- ROUND(
- ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) +
- ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2),
- 2) AS total_premium,
-
- ROUND(pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS tp_or_ter,
- DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
- (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
- pt_co_share_details.agreed_bp_per,
-
- -- ==============================
- -- SUBQUERY: Total IRDA Amount
- -- Alias Agreed Amount ...!!
- -- ==============================
- ROUND(pt_co_share_details.exp_amt, 2) AS total_irda_amt,
-
- -- Reward Only
- ROUND(0, 2) AS reward,
-
- -- Billed Amount
- ROUND(0, 2) AS billed_amt,
-
- created_user.first_name AS user_name,
-
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1) THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1 THEN
- CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL OR pt_co_share_details.follower_policy_no = ''
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
+ public function reportBDSNew(
+ $start_date = 0,
+ $end_date = 0,
+ $client_id = 0,
+ $insurer_id = 0,
+ $policy_type_id = 0,
+ $date_type = 0,
+ $issuer = 0,
+ $client_branch_id = 0,
+ $insurer_branch_id = 0,
+ $client_policy_id = 0,
+ $user_id = 0,
+ $where = []
+ ) {
+
+ $date_condition = '';
// ==============================
- // JOINS
+ // DATE FILTER FOR STATEMENT MONTH
// ==============================
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id')
- ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
- ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
- ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
- ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
- ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
- ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
- ->join('user_profiles AS created_user', 'policy_transaction.created_by = created_user.id', 'left')
-
- ->where('policy_transaction.is_active', 1)
- ->where('pt_co_share_details.is_active', 1)
-
- // ========================================================
- // GROUP BY Insurer Statement Months
- // =======================================================
- ->groupBy('policy_transaction.policy_no , pt_co_share_details.insurer_id ');
-
- // ==============================
- // ROLE-BASED FILTERS
- // ==============================
- if (
- (!in_array(get_role_id(), [1, 5])) &&
- !(
- in_array(MANAGEMENT_TEAM_ID, user_team()) ||
- in_array(FINANCE_TEAM_ID, user_team()) ||
- in_array(BUSINESS_TEAM_ID, user_team())
- )
- ) {
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $builder2->where('policy_transaction.created_by', get_session_userid());
+ if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
+ $date_condition = "
+ AND insurer_statements_oq.month >= '{$start_date}'
+ AND insurer_statements_oq.month <= '{$end_date}'
+ ";
}
- }
-
- // ==============================
- // ADDITIONAL FILTERS
- // ==============================
- if (!empty($where)) {
- log_message('info', 'Where condition: ' . json_encode($where));
- $builder2->where($where);
- }
-
- if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- $builder2->where("policy_transaction.{$date_type} >=", $startDate)
- ->where("policy_transaction.{$date_type} <=", $endDate);
- }
-
-
- // ==============================
- // FILTER BY IDs
- // ==============================
- if ($client_id != 0) $builder2->where('policy_transaction.client_id', $client_id);
- if ($insurer_id != 0) $builder2->where('policy_transaction.insurer_id', $insurer_id);
- if ($client_branch_id != 0) $builder2->where('policy_transaction.client_branch_id', $client_branch_id);
- if ($insurer_branch_id != 0) $builder2->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
- if ($client_policy_id != 0) $builder2->where('policy_transaction.client_policy_id', $client_policy_id);
- if ($user_id != 0) $builder2->where('policy_transaction.created_by', $user_id);
- if ($policy_type_id != 0) $builder2->where('client_policy.policy_type_id', $policy_type_id);
- if ($issuer != 0) $builder2->where('policy_transaction.issuer', $issuer);
-
- // ==============================
- // DEFAULT 90-DAY FILTER
- // ==============================
- if (
- $client_id == 0 &&
- $insurer_id == 0 &&
- $policy_type_id == 0 &&
- $date_type == 0 &&
- $issuer == 0
- ) {
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- if (empty($where)) {
- $builder2->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // ==============================
- // With Statement Upload
- // ==============================
-
- $builder = $this->db->table('policy_transaction')
- ->select("
- policy_transaction.id AS id,
- policy_transaction.endorsement_no AS endorsement_no,
- policy_transaction.ref AS ref,
- DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
- DATE_FORMAT(
- IF(insurer_statements_oq.month IS NULL,
- policy_transaction.policy_issue_date,
- insurer_statements_oq.month
- ), '%b %Y'
- ) AS policy_issue_month,
-
- CASE
- WHEN insurer_statements_oq.month IS NULL THEN 'no statement uploaded'
- ELSE 'statement uploaded'
- END AS statement_uploaded ,
-
-
- CASE
- WHEN clients.client_type = 1 THEN 'Group'
- WHEN clients.client_type = 2 THEN 'Retail'
- ELSE '-'
- END AS client_type,
-
- CASE
- WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
- ELSE 'Renewal'
- END AS revenue_type,
-
- CASE
- WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
- ELSE 'Endorsement'
- END AS action_type,
-
- clients.client_name AS client_name,
- clients.short_name AS client_short_name,
- client_branch.branch_name AS client_branch_name,
- client_branch.address1 AS client_address,
- policy_type.policy_type,
- policy_type.bap,
- insurers.name AS insurer_name,
- insurers.short_name AS insurer_short_name,
- insurer_branch.branch_name AS insurer_branch_name,
- insurer_branch.branch_code AS insurer_branch_code,
- user_profiles.first_name AS user_name,
- vehicle.vehicle_no,
- tpa.name AS tpa_name,
- pt_co_share_details.remark AS remarks,
- pt_co_share_details.cop_amt AS bp_amt,
- pt_co_share_details.exp_amt,
- pt_co_share_details.id AS pt_id,
- sales_user.first_name AS salse_person_name,
- service_user.first_name AS service_person_name,
-
- ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS premium_wo_gst,
- ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2) AS gst_amount,
- ROUND(
- ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) +
- ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2),
- 2) AS total_premium,
-
- ROUND(pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS tp_or_ter,
- DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
- (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
- pt_co_share_details.agreed_bp_per,
-
- -- ==============================
- -- SUBQUERY: Total IRDA Amount
- -- Alias Agreed Amount ...!!
- -- ==============================
- ROUND(pt_co_share_details.exp_amt, 2) AS total_irda_amt,
- -- Reward Only
- ROUND((
- SELECT SUM(co_share_stmt_details.reward)
- FROM co_share_stmt_details
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- AND insurer_statements.is_active = 1
- AND insurer_statements.month = insurer_statements_oq.month
- {$date_condition}
- GROUP BY('policy_transaction.policy_no , insurer_statements.month , pt_co_share_details.insurer_id')
- ), 2) AS reward,
-
- -- Billed Amount
- ROUND((
- SELECT SUM(
- COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0) +
- COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0) +
- COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0) +
- COALESCE(co_share_stmt_details.reward, 0)
- )
- FROM co_share_stmt_details
- JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
- JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
- WHERE co_share_stmt_details.co_share_id = pt_co_share_details.id
- AND co_share_stmt_details.is_active = 1
- AND pt_table.is_active = 1
- AND insurer_statements.is_active = 1
- AND insurer_statements.invoice_status IS NOT NULL
- AND insurer_statements.month = insurer_statements_oq.month
- {$date_condition}
- GROUP BY('policy_transaction.policy_no , insurer_statements.month , pt_co_share_details.insurer_id')
- ), 2) AS billed_amt,
-
- created_user.first_name AS user_name,
-
- CASE
- WHEN pt_co_share_details.co_share_type IN (0, 1) THEN policy_transaction.policy_no
- WHEN pt_co_share_details.co_share_type > 1 THEN
- CASE
- WHEN pt_co_share_details.follower_policy_no IS NULL OR pt_co_share_details.follower_policy_no = ''
- THEN policy_transaction.policy_no
- ELSE pt_co_share_details.follower_policy_no
- END
- ELSE policy_transaction.policy_no
- END AS policy_no
- ")
// ==============================
- // JOINS
+ // BASE QUERY
// ==============================
- ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
- ->join('clients', 'clients.id = policy_transaction.client_id')
- ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
- ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
- ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
- ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
- ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
- ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
- ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
- ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
- ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
- ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
- ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
- ->join('user_profiles AS created_user', 'policy_transaction.created_by = created_user.id', 'left')
-
-
- ->join('co_share_stmt_details', 'pt_co_share_details.id = co_share_stmt_details.co_share_id','left')
- ->join('insurer_statements insurer_statements_oq','insurer_statements_oq.id = co_share_stmt_details.statement_id','left')
-
- ->where('policy_transaction.is_active', 1)
- ->where('pt_co_share_details.is_active', 1)
- ->where('insurer_statements_oq.id IS NOT NULL')
- // ========================================================
- // GROUP BY Insurer Statement Months
- // =======================================================
- ->groupBy('policy_transaction.policy_no , pt_co_share_details.insurer_id ,insurer_statements_oq.month');
+ // ==============================
+ // Without Statement Upload
+ // ==============================
- // ==============================
- // ROLE-BASED FILTERS
- // ==============================
- if (
- (!in_array(get_role_id(), [1, 5])) &&
- !(
- in_array(MANAGEMENT_TEAM_ID, user_team()) ||
- in_array(FINANCE_TEAM_ID, user_team()) ||
- in_array(BUSINESS_TEAM_ID, user_team())
- )
- ) {
- if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
- $builder->where('policy_transaction.created_by', get_session_userid());
+
+ $builder2 = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.id AS id,
+ policy_transaction.endorsement_no AS endorsement_no,
+ policy_transaction.ref AS ref,
+ DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
+
+ DATE_FORMAT( policy_transaction.policy_issue_date,, '%b %Y') AS policy_issue_month,
+
+ CASE
+ WHEN 1 = 1 THEN 'no statement uploaded'
+ ELSE 'statement uploaded'
+ END AS statement_uploaded ,
+
+
+ CASE
+ WHEN clients.client_type = 1 THEN 'Group'
+ WHEN clients.client_type = 2 THEN 'Retail'
+ ELSE '-'
+ END AS client_type,
+
+ CASE
+ WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
+ ELSE 'Renewal'
+ END AS revenue_type,
+
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
+ ELSE 'Endorsement'
+ END AS action_type,
+
+ clients.client_name AS client_name,
+ clients.short_name AS client_short_name,
+ client_branch.branch_name AS client_branch_name,
+ client_branch.address1 AS client_address,
+ policy_type.policy_type,
+ policy_type.bap,
+ insurers.name AS insurer_name,
+ insurers.short_name AS insurer_short_name,
+ insurer_branch.branch_name AS insurer_branch_name,
+ insurer_branch.branch_code AS insurer_branch_code,
+ user_profiles.first_name AS user_name,
+ vehicle.vehicle_no,
+ tpa.name AS tpa_name,
+ pt_co_share_details.remark AS remarks,
+ pt_co_share_details.cop_amt AS bp_amt,
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.id AS pt_id,
+ sales_user.first_name AS salse_person_name,
+ service_user.first_name AS service_person_name,
+
+ ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS premium_wo_gst,
+ ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2) AS gst_amount,
+ ROUND(
+ ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) +
+ ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2),
+ 2) AS total_premium,
+
+ ROUND(pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS tp_or_ter,
+ DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
+ (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
+ pt_co_share_details.agreed_bp_per,
+
+ -- ==============================
+ -- SUBQUERY: Total IRDA Amount
+ -- Alias Agreed Amount ...!!
+ -- ==============================
+ ROUND(pt_co_share_details.exp_amt, 2) AS total_irda_amt,
+
+ -- Reward Only
+ ROUND(0, 2) AS reward,
+
+ -- Billed Amount
+ ROUND(0, 2) AS billed_amt,
+
+ created_user.first_name AS user_name,
+
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1) THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1 THEN
+ CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+
+ // ==============================
+ // JOINS
+ // ==============================
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id')
+ ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+ ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
+ ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
+ ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
+ ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
+ ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
+ ->join('user_profiles AS created_user', 'policy_transaction.created_by = created_user.id', 'left')
+
+ ->where('policy_transaction.is_active', 1)
+ ->where('pt_co_share_details.is_active', 1)
+
+ // ========================================================
+ // GROUP BY Insurer Statement Months
+ // =======================================================
+ ->groupBy('policy_transaction.policy_no , pt_co_share_details.insurer_id ');
+
+ // ==============================
+ // ROLE-BASED FILTERS
+ // ==============================
+ if (
+ (!in_array(get_role_id(), [1, 5])) &&
+ !(
+ in_array(MANAGEMENT_TEAM_ID, user_team()) ||
+ in_array(FINANCE_TEAM_ID, user_team()) ||
+ in_array(BUSINESS_TEAM_ID, user_team())
+ )
+ ) {
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $builder2->where('policy_transaction.created_by', get_session_userid());
+ }
}
- }
- // ==============================
- // ADDITIONAL FILTERS
- // ==============================
- if (!empty($where)) {
- log_message('info', 'Where condition: ' . json_encode($where));
- $builder->where($where);
- }
-
- if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
- $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
- $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
-
- $builder->where("policy_transaction.{$date_type} >=", $startDate)
- ->where("policy_transaction.{$date_type} <=", $endDate);
- }
-
- // JOIN FOR STATEMENT MONTH FILTER
- if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
- $startDate = date('Y-m-d', strtotime($start_date));
- $endDate = date('Y-m-d', strtotime($end_date));
-
- $builder->join('co_share_stmt_details cssdfilter', 'pt_co_share_details.id = cssdfilter.co_share_id', 'left')
- ->join('insurer_statements', 'cssdfilter.statement_id = insurer_statements.id', 'left')
- ->where('insurer_statements.is_active', 1)
- ->where('insurer_statements.month >=', $startDate)
- ->where('insurer_statements.month <=', $endDate)
- ->groupBy('cssdfilter.co_share_id');
- }
-
- // ==============================
- // FILTER BY IDs
- // ==============================
- if ($client_id != 0) $builder->where('policy_transaction.client_id', $client_id);
- if ($insurer_id != 0) $builder->where('policy_transaction.insurer_id', $insurer_id);
- if ($client_branch_id != 0) $builder->where('policy_transaction.client_branch_id', $client_branch_id);
- if ($insurer_branch_id != 0) $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
- if ($client_policy_id != 0) $builder->where('policy_transaction.client_policy_id', $client_policy_id);
- if ($user_id != 0) $builder->where('policy_transaction.created_by', $user_id);
- if ($policy_type_id != 0) $builder->where('client_policy.policy_type_id', $policy_type_id);
- if ($issuer != 0) $builder->where('policy_transaction.issuer', $issuer);
-
- // ==============================
- // DEFAULT 90-DAY FILTER
- // ==============================
- if (
- $client_id == 0 &&
- $insurer_id == 0 &&
- $policy_type_id == 0 &&
- $date_type == 0 &&
- $issuer == 0
- ) {
- $fromDate = date('Y-m-d', strtotime('-90 days'));
- $toDate = date('Y-m-d 23:59:59');
-
- if (empty($where)) {
- $builder->where('policy_transaction.created_at >=', $fromDate)
- ->where('policy_transaction.created_at <=', $toDate);
+ // ==============================
+ // ADDITIONAL FILTERS
+ // ==============================
+ if (!empty($where)) {
+ log_message('info', 'Where condition: ' . json_encode($where));
+ $builder2->where($where);
}
+
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder2->where("policy_transaction.{$date_type} >=", $startDate)
+ ->where("policy_transaction.{$date_type} <=", $endDate);
+ }
+
+
+ // ==============================
+ // FILTER BY IDs
+ // ==============================
+ if ($client_id != 0) $builder2->where('policy_transaction.client_id', $client_id);
+ if ($insurer_id != 0) $builder2->where('policy_transaction.insurer_id', $insurer_id);
+ if ($client_branch_id != 0) $builder2->where('policy_transaction.client_branch_id', $client_branch_id);
+ if ($insurer_branch_id != 0) $builder2->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
+ if ($client_policy_id != 0) $builder2->where('policy_transaction.client_policy_id', $client_policy_id);
+ if ($user_id != 0) $builder2->where('policy_transaction.created_by', $user_id);
+ if ($policy_type_id != 0) $builder2->where('client_policy.policy_type_id', $policy_type_id);
+ if ($issuer != 0) $builder2->where('policy_transaction.issuer', $issuer);
+
+ // ==============================
+ // DEFAULT 90-DAY FILTER
+ // ==============================
+ if (
+ $client_id == 0 &&
+ $insurer_id == 0 &&
+ $policy_type_id == 0 &&
+ $date_type == 0 &&
+ $issuer == 0
+ ) {
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ if (empty($where)) {
+ $builder2->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // ==============================
+ // With Statement Upload
+ // ==============================
+
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.id AS id,
+ policy_transaction.endorsement_no AS endorsement_no,
+ policy_transaction.ref AS ref,
+ DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
+ DATE_FORMAT(
+ IF(insurer_statements_oq.month IS NULL,
+ policy_transaction.policy_issue_date,
+ insurer_statements_oq.month
+ ), '%b %Y'
+ ) AS policy_issue_month,
+
+ CASE
+ WHEN insurer_statements_oq.month IS NULL THEN 'no statement uploaded'
+ ELSE 'statement uploaded'
+ END AS statement_uploaded ,
+
+
+ CASE
+ WHEN clients.client_type = 1 THEN 'Group'
+ WHEN clients.client_type = 2 THEN 'Retail'
+ ELSE '-'
+ END AS client_type,
+
+ CASE
+ WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
+ ELSE 'Renewal'
+ END AS revenue_type,
+
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
+ ELSE 'Endorsement'
+ END AS action_type,
+
+ clients.client_name AS client_name,
+ clients.short_name AS client_short_name,
+ client_branch.branch_name AS client_branch_name,
+ client_branch.address1 AS client_address,
+ policy_type.policy_type,
+ policy_type.bap,
+ insurers.name AS insurer_name,
+ insurers.short_name AS insurer_short_name,
+ insurer_branch.branch_name AS insurer_branch_name,
+ insurer_branch.branch_code AS insurer_branch_code,
+ user_profiles.first_name AS user_name,
+ vehicle.vehicle_no,
+ tpa.name AS tpa_name,
+ pt_co_share_details.remark AS remarks,
+ pt_co_share_details.cop_amt AS bp_amt,
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.id AS pt_id,
+ sales_user.first_name AS salse_person_name,
+ service_user.first_name AS service_person_name,
+
+ ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS premium_wo_gst,
+ ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2) AS gst_amount,
+ ROUND(
+ ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) +
+ ROUND((ROUND(pt_co_share_details.cop_amt + pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) * 18 / 100), 2),
+ 2) AS total_premium,
+
+ ROUND(pt_co_share_details.cotp_amt + pt_co_share_details.cotep_amt, 2) AS tp_or_ter,
+ DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
+ (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
+ pt_co_share_details.agreed_bp_per,
+
+ -- ==============================
+ -- SUBQUERY: Total IRDA Amount
+ -- Alias Agreed Amount ...!!
+ -- ==============================
+ ROUND(pt_co_share_details.exp_amt, 2) AS total_irda_amt,
+ -- Reward Only
+ ROUND((
+ SELECT SUM(co_share_stmt_details.reward)
+ FROM co_share_stmt_details
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ AND insurer_statements.is_active = 1
+ AND insurer_statements.month = insurer_statements_oq.month
+ {$date_condition}
+ GROUP BY('policy_transaction.policy_no , insurer_statements.month , pt_co_share_details.insurer_id')
+ ), 2) AS reward,
+
+ -- Billed Amount
+ ROUND((
+ SELECT SUM(
+ COALESCE(co_share_stmt_details.actual_bp_brokerage_amt, 0) +
+ COALESCE(co_share_stmt_details.actual_tp_brokerage_amt, 0) +
+ COALESCE(co_share_stmt_details.actual_tep_brokerage_amt, 0) +
+ COALESCE(co_share_stmt_details.reward, 0)
+ )
+ FROM co_share_stmt_details
+ JOIN pt_co_share_details AS pt_table ON co_share_stmt_details.co_share_id = pt_table.id
+ JOIN insurer_statements ON co_share_stmt_details.statement_id = insurer_statements.id
+ WHERE co_share_stmt_details.co_share_id = pt_co_share_details.id
+ AND co_share_stmt_details.is_active = 1
+ AND pt_table.is_active = 1
+ AND insurer_statements.is_active = 1
+ AND insurer_statements.invoice_status IS NOT NULL
+ AND insurer_statements.month = insurer_statements_oq.month
+ {$date_condition}
+ GROUP BY('policy_transaction.policy_no , insurer_statements.month , pt_co_share_details.insurer_id')
+ ), 2) AS billed_amt,
+
+ created_user.first_name AS user_name,
+
+ CASE
+ WHEN pt_co_share_details.co_share_type IN (0, 1) THEN policy_transaction.policy_no
+ WHEN pt_co_share_details.co_share_type > 1 THEN
+ CASE
+ WHEN pt_co_share_details.follower_policy_no IS NULL OR pt_co_share_details.follower_policy_no = ''
+ THEN policy_transaction.policy_no
+ ELSE pt_co_share_details.follower_policy_no
+ END
+ ELSE policy_transaction.policy_no
+ END AS policy_no
+ ")
+
+ // ==============================
+ // JOINS
+ // ==============================
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id')
+ ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+ ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('insurer_branch', 'pt_co_share_details.insurer_branch_id = insurer_branch.id', 'left')
+ ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
+ ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
+ ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
+ ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
+ ->join('user_profiles AS created_user', 'policy_transaction.created_by = created_user.id', 'left')
+
+
+ ->join('co_share_stmt_details', 'pt_co_share_details.id = co_share_stmt_details.co_share_id','left')
+ ->join('insurer_statements insurer_statements_oq','insurer_statements_oq.id = co_share_stmt_details.statement_id','left')
+
+ ->where('policy_transaction.is_active', 1)
+ ->where('pt_co_share_details.is_active', 1)
+ ->where('insurer_statements_oq.id IS NOT NULL')
+
+
+ // ========================================================
+ // GROUP BY Insurer Statement Months
+ // =======================================================
+ ->groupBy('policy_transaction.policy_no , pt_co_share_details.insurer_id ,insurer_statements_oq.month');
+
+ // ==============================
+ // ROLE-BASED FILTERS
+ // ==============================
+ if (
+ (!in_array(get_role_id(), [1, 5])) &&
+ !(
+ in_array(MANAGEMENT_TEAM_ID, user_team()) ||
+ in_array(FINANCE_TEAM_ID, user_team()) ||
+ in_array(BUSINESS_TEAM_ID, user_team())
+ )
+ ) {
+ if (get_role_id() == 4 && in_array(POS_TEAM_ID, user_team())) {
+ $builder->where('policy_transaction.created_by', get_session_userid());
+ }
+ }
+
+ // ==============================
+ // ADDITIONAL FILTERS
+ // ==============================
+ if (!empty($where)) {
+ log_message('info', 'Where condition: ' . json_encode($where));
+ $builder->where($where);
+ }
+
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0 && $date_type != 'statement_month') {
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where("policy_transaction.{$date_type} >=", $startDate)
+ ->where("policy_transaction.{$date_type} <=", $endDate);
+ }
+
+ // JOIN FOR STATEMENT MONTH FILTER
+ if ($date_type == 'statement_month' && $start_date != 0 && $end_date != 0) {
+ $startDate = date('Y-m-d', strtotime($start_date));
+ $endDate = date('Y-m-d', strtotime($end_date));
+
+ $builder->join('co_share_stmt_details cssdfilter', 'pt_co_share_details.id = cssdfilter.co_share_id', 'left')
+ ->join('insurer_statements', 'cssdfilter.statement_id = insurer_statements.id', 'left')
+ ->where('insurer_statements.is_active', 1)
+ ->where('insurer_statements.month >=', $startDate)
+ ->where('insurer_statements.month <=', $endDate)
+ ->groupBy('cssdfilter.co_share_id');
+ }
+
+ // ==============================
+ // FILTER BY IDs
+ // ==============================
+ if ($client_id != 0) $builder->where('policy_transaction.client_id', $client_id);
+ if ($insurer_id != 0) $builder->where('policy_transaction.insurer_id', $insurer_id);
+ if ($client_branch_id != 0) $builder->where('policy_transaction.client_branch_id', $client_branch_id);
+ if ($insurer_branch_id != 0) $builder->where('policy_transaction.insurer_branch_id', $insurer_branch_id);
+ if ($client_policy_id != 0) $builder->where('policy_transaction.client_policy_id', $client_policy_id);
+ if ($user_id != 0) $builder->where('policy_transaction.created_by', $user_id);
+ if ($policy_type_id != 0) $builder->where('client_policy.policy_type_id', $policy_type_id);
+ if ($issuer != 0) $builder->where('policy_transaction.issuer', $issuer);
+
+ // ==============================
+ // DEFAULT 90-DAY FILTER
+ // ==============================
+ if (
+ $client_id == 0 &&
+ $insurer_id == 0 &&
+ $policy_type_id == 0 &&
+ $date_type == 0 &&
+ $issuer == 0
+ ) {
+ $fromDate = date('Y-m-d', strtotime('-90 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ if (empty($where)) {
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+ }
+
+
+
+
+
+ $sql1 = $builder2->getCompiledSelect();
+ $sql2 = $builder->getCompiledSelect();
+
+ $finalSql = "($sql1) UNION ALL ($sql2)
+ ORDER BY policy_no DESC, insurer_branch_name ASC, statement_uploaded ASC,
+ STR_TO_DATE(policy_issue_month, '%b %Y') ASC";
+
+
+ $result = $this->db->query($finalSql)->getResultArray();
+
+ return $result;
+
}
+
-
- $sql1 = $builder2->getCompiledSelect();
- $sql2 = $builder->getCompiledSelect();
-
- $finalSql = "($sql1) UNION ALL ($sql2)
- ORDER BY policy_no DESC, insurer_branch_name ASC, statement_uploaded ASC,
- STR_TO_DATE(policy_issue_month, '%b %Y') ASC";
-
-
- $result = $this->db->query($finalSql)->getResultArray();
-
- return $result;
-
}
-
-
-
-
-
-}
diff --git a/app/Views/report_bds.php b/app/Views/report_bds.php
index 4a3b0a47..a393e404 100644
--- a/app/Views/report_bds.php
+++ b/app/Views/report_bds.php
@@ -1,646 +1,647 @@
-
+
+
+
+
+
+
+
+
+
+
+
+ Total Premium: 0.00
+
+
+
+ Total Rewards: 0.00
+
+
+
+ Total IRDA Revenue INR: 0.00
+
+
+
+ Total Billed Amount: 0.00
+
+
+
+ Total Unbilled Amount: 0.00
+
+
+
+ Total Policy Count: = $policy_count ?>
+
-
-
-
-
-
-
-
-
- Total Premium: 0.00
-
-
-
- Total Rewards: 0.00
-
-
-
- Total IRDA Revenue INR: 0.00
-
-
-
- Total Billed Amount: 0.00
-
-
-
- Total Unbilled Amount: 0.00
-
-
-
- Total Policy Count: = $policy_count ?>
-
-
-
-
-