From d842c04186b4f733676814d9961251bb6d845f21 Mon Sep 17 00:00:00 2001 From: velz Date: Tue, 14 Oct 2025 16:41:36 +0530 Subject: [PATCH] CHANGE_STMT_UPLOAD --- .../PolicyTransactionController.php | 40 ++++++++++-------- .../sample_excel/insurer_stament_sample.xlsx | Bin 6594 -> 6311 bytes .../insurer_stament_sample_old.xlsx | Bin 0 -> 6594 bytes 3 files changed, 23 insertions(+), 17 deletions(-) create mode 100644 public/sample_excel/insurer_stament_sample_old.xlsx diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index db8be45b..39b4bdea 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -2102,7 +2102,7 @@ class PolicyTransactionController extends BaseController //insurer statement list page public function statementList() { - // dd($this->validateInsurerStatement(['file_id' => 49])); // for check validateInsurerStatementfunction with hard coded file id always un command + // 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))); @@ -2347,13 +2347,13 @@ class PolicyTransactionController extends BaseController // $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_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 + // $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 @@ -2459,11 +2459,11 @@ class PolicyTransactionController extends BaseController 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_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 + // $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) { @@ -2476,9 +2476,10 @@ class PolicyTransactionController extends BaseController //calculate percentage first $total_amt = 0; - $actual_bp_per = trim($excel_row[9]); - $actual_bp_brokerage = trim($excel_row[12]); - $actual_bp_amt = trim($excel_row[6]); + // $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; @@ -2491,9 +2492,10 @@ class PolicyTransactionController extends BaseController $total_amt += $actual_bp_brokerage; } - $actual_tp_per = trim($excel_row[10]); - $actual_tp_brokerage = trim($excel_row[13]); - $actual_tp_amt = trim($excel_row[7]); + // $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; @@ -2506,9 +2508,13 @@ class PolicyTransactionController extends BaseController $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 = 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; @@ -2524,7 +2530,7 @@ class PolicyTransactionController extends BaseController //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[15]), 'statement_id' => $file_id]; + $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; diff --git a/public/sample_excel/insurer_stament_sample.xlsx b/public/sample_excel/insurer_stament_sample.xlsx index 0cdabdf1cc8ce0b6f56d6c603e928a1058a38cde..2c01d7fef39ab9000f4392bd45e7b2acdbd408a4 100644 GIT binary patch delta 2650 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 literal 0 HcmV?d00001