From fbdfd2ede50b8505e4dd54132a923668300de9fd Mon Sep 17 00:00:00 2001 From: velz Date: Thu, 26 Dec 2024 14:48:11 +0530 Subject: [PATCH 1/2] FIX_LIVE_CR_DOB_CALC&MINOR --- app/Controllers/EmployeeServiceController.php | 18 ++++--- app/Helpers/excel_util_helper.php | 44 ++++++++++-------- app/Models/EmployeeModel.php | 2 +- public/sample_excel/enrollment.xlsx | Bin 7777 -> 7754 bytes 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index 75f24f6e..4341a3a9 100755 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -132,7 +132,7 @@ class EmployeeServiceController extends AdminController 'format' => 'd-M-Y', 'allowed_values' => null, 'custom' => 'check_dob_diff', - 'params' => ['row', 'relationship', 'default_age_ratio'] + 'params' => ['row', 'relationship', 'default_age_ratio','policy_details'] ], 'gender' => [ 'col_idx' => 4, @@ -767,10 +767,9 @@ class EmployeeServiceController extends AdminController $relationship = $this->general_relationships; //get exisiting mobilr nos $existing_mobilenos = $this->employeePolicyModel->getExisitingMobileNos(client_policy_id: $file['policy_id']); - //get existing units in the current branch $existing_units = $this->clientBranchModel->getExisitingUnits(client_id: $file['client_id'],client_branch_id: $file['client_branch_id']); - // dd($existing_units); + // dd($excel_data); foreach ($excel_data as $row_key => $row) { //define row wise action/event in temporary variable @@ -1234,7 +1233,6 @@ class EmployeeServiceController extends AdminController // Kint::dump($family);die(); $data = calculate_premium_new(family_data:$family,policy_terms: $policy_terms,slab_details : $slab_details,fileArr: $file, existing_units:$existing_units); - // dd($data); $employee_data_group_by_family[$emp_id] = $data; $this->employeesOnboardProcess(['familiy_data' => $data,'file' => $file]); } @@ -1461,6 +1459,8 @@ class EmployeeServiceController extends AdminController ->where('emp_code',$employee['emp_code']) ->where('name',$employee['name']) ->where('field_name',$field_name) + ->where('is_active',1) + ->where('status !=','truncated') ->findAll(); // dd($existing_endorsements); //make entry in endorsement table @@ -1620,7 +1620,6 @@ class EmployeeServiceController extends AdminController break;//skip db employee } //end implemet of si enhancement of grid type - dd('s'); //save employee table $value['relationship'] = ucfirst(trim($value['relationship'])); if(count($employee)) @@ -1643,7 +1642,6 @@ class EmployeeServiceController extends AdminController // $this->myLogger->logme('error',('Insert - ' . $value['emp_code'] .' - '. $value['name'])); // echo 'update emp'; } - $this->employeeModel->save($value); if (isset($value['id'])) { $emp_id = $value['id']; @@ -1702,7 +1700,7 @@ class EmployeeServiceController extends AdminController $log_message = $file['action'].' - endorsement'. $value['emp_code'].' - '.$value['name'].' - with policy id'.$emp_policy_id; $this->myLogger->logme('error',$log_message); $actions = ($file['action'] == 'dependent_addition' ? 'da' : ($file['action'] == 'addition' ? 'a' : 'a')); - $addition_endorse_data = ['pk' => $emp_policy_id,'group_key' => rand(100000, 999999),'emp_code' => $value['emp_code'],'table_name' => 'employee_polices','actions' => $actions,'name' => $value['name'],'field_name' => 'basic_cover_si','old_value' => NULL,'new_value' => $policy_data['basic_cover_si'],'remarks' => 'addition endorsement','file_id' => $file['id'],'created_by' => $file['created_by']]; + $addition_endorse_data = ['pk' => $emp_policy_id,'group_key' => rand(100000, 999999),'emp_code' => $value['emp_code'],'table_name' => 'employee_polices','actions' => $actions,'name' => $value['name'],'field_name' => 'basic_cover_si','old_value' => NULL,'new_value' => $policy_data['basic_cover_si'],'remarks' => 'addition endorsement','file_id' => $file['id'],'created_by' => $file['created_by'],'status' => 'pending']; $this->employeeEndorsementforAddtionAndDependentAddition($addition_endorse_data); } @@ -2012,10 +2010,10 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){ $value['emp_code'] = $row[1]; $value['name'] = $row[2]; - $value['doj'] = (!empty($row[3]) ? convert_string_to_date($row[3],'Y-m-d'): null); + $value['doj'] = (!empty($row[3]) ? change_date_format($row[3],'d-M-Y','Y-m-d'); $value['gender'] = $row[4]; $value['relationship'] = ucfirst(trim($row[5])); - $value['dob'] = convert_string_to_date($row[6],'Y-m-d'); + $value['dob'] = change_date_format($row[6],'d-M-Y','Y-m-d'); $value['email_corporate'] = $row[7]; $value['mobile'] = $row[8]; $value['band'] = $row[10]; @@ -2042,7 +2040,7 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){ $value['family_floater_key'] = $relation; $policy_data['basic_cover_si'] = $row[9]; - $policy_data['date_coverage'] = $row[13] != "" && $row[13] != null ? change_date_format($row[13],null,'Y-m-d') : null; + $policy_data['date_coverage'] = $row[13] != "" && $row[13] != null ? change_date_format($row[13],'d-M-Y','Y-m-d') : null; $policy_data['client_policy_id'] = $file['policy_id']; $employee = $this->employeeModel->checkExistingEmployee($value,$file['client_branch_id']); diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index 0cd9afa6..77c6c552 100755 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -345,8 +345,7 @@ if(!function_exists('check_basic_pay')) if (!function_exists('check_dob_diff')) { - function check_dob_diff($row,$relationships,$default_age_ratio) { - // echo 'called'; + function check_dob_diff($row,$relationships,$default_age_ratio,$policy_details) { if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA','MI']))// check rule only of action column data available { if($row[3] != null && $row[5] != null) @@ -358,13 +357,11 @@ if (!function_exists('check_dob_diff')) } // return array('status' => true); $dob = $dateString; - // echo $row[3].' - '.$dob;echo '
'; - $currentDateTime = new DateTime();//die(); - // print_r($currentDateTime); + //$currentDateTime = new DateTime();//previously dob calculated from current date time + $temp_date = ($row[7] != null && $row[7] != "") ? convert_string_to_date($row[7]) : $policy_details[0]->policy_start_date; //pick date of coverage from row if not then use policy start date as from to calculate DOB + $currentDateTime = new DateTime($temp_date);//later DOB calculated from date of coverage or policy_start_date // die(); $passedDateTime = new DateTime($dob); - // print_r($passedDateTime); - $interval = $currentDateTime->diff($passedDateTime); //remap default age ratio data into relationship array if(count($default_age_ratio)) @@ -375,7 +372,6 @@ if (!function_exists('check_dob_diff')) $relationship = $slug->slugify($row[5]); $age_min = isset($relationships[$relationship]['age_min']) ? $relationships[$relationship]['age_min'] : NULL; $age_max = isset($relationships[$relationship]['age_max']) ? $relationships[$relationship]['age_max'] : NULL; - // echo $relationship.','.$age_min.'-'.$age_max; if($age_min !== null && $age_min > $interval->y) { return array('status' => false,'error' => "Age conflict : minimum $age_min yrs allowed, received $interval->y"); @@ -965,7 +961,6 @@ if (!function_exists('calculate_premium_new')) if(empty($member[18])){ $member[18] = $existing_units[0]; } //transform as db row column $transformed_familiy_member_data = transform_excel_data_to_db($member,$fileArr); - // kint::dump($transformed_familiy_member_data); //generate relationship code if($transformed_familiy_member_data['temp']['action'] != 'D' && $transformed_familiy_member_data['temp']['action'] != 'C' && $transformed_familiy_member_data['temp']['action'] != 'SI') { @@ -979,7 +974,7 @@ if (!function_exists('calculate_premium_new')) 'isEmployeeSourceEnrollment' => $fileArr['id'] == null, 'isEmployeeSourceExcelFile' => $transformed_familiy_member_data['temp']['source'] == 'excel', 'isCurrentActionDependentAddition' => $fileArr['action'] == 'dependent_addition', - 'isPrimaryGridPremiumTypeSingle' => $transformed_familiy_member_data['temp']['premium_type'] == 1, + 'isPrimaryGridPremiumTypeSingle' => isset($transformed_familiy_member_data['temp']['premium_type']) ? $transformed_familiy_member_data['temp']['premium_type'] == 1 : 0, 'isCurrentRelationshipSelf' => (strtolower($transformed_familiy_member_data['relationship']) == 'self' || (isset($transformed_familiy_member_data['temp']['acting_self']) && $transformed_familiy_member_data['temp']['acting_self'] === true)), 'isBasicCoverCalculatedToCurrentEmployee' => ($transformed_familiy_member_data['policy_details']['basic_cover_si'] != null && $transformed_familiy_member_data['policy_details']['basic_cover_si'] != 0) ]; @@ -1049,7 +1044,7 @@ if (!function_exists('transform_excel_data_to_db')) $result['designation'] = $memArr[11]; $result['mobile'] = $memArr[12]; $result['email_corporate'] = $memArr[13]; - $result['file_id'] = $actionArr['id']; + $result['file_id'] = isset($memArr['temp']['source']) && $memArr['temp']['source'] == 'db' && isset($memArr['temp']['file_id']) ? $memArr['temp']['file_id'] : $actionArr['id']; $result['client_id'] = $actionArr['client_id']; $result['change_event'] = $memArr[15]; $result['unit'] = $memArr[18]; @@ -1078,8 +1073,6 @@ if (!function_exists('premium_calculation_manager')) { function premium_calculation_manager($emp_data,$policy_terms,$slab_details,$default_si = null) { - // Kint::dump($emp_data);die(); - $myLogger = \Config\Services::mylogger(); // grid type // 1 = premium => si @@ -1229,9 +1222,12 @@ if (!function_exists('premium_calculation_manager')) //GMC - Employees Age band $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si; // dd($employee_received_si); + $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); + $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y; + foreach ($temp_slab_rates as $skey => $slab_value) { - $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; + if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) )) { // dd($slab_value); @@ -1250,9 +1246,12 @@ if (!function_exists('premium_calculation_manager')) case "5": //GMC - Employees Age + SI $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si; + $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); + $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y; + foreach ($temp_slab_rates as $skey => $slab_value) { - $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; + if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3 ) )) { $emp_data['policy_details']['basic_cover_si'] = $slab_value['si']; @@ -1270,9 +1269,11 @@ if (!function_exists('premium_calculation_manager')) case "6": //GMC - Employees + Dependent Age band $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si; + $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); + $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y; foreach ($temp_slab_rates as $skey => $slab_value) { - $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; + if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) )) { // echo $emp_data['name']; @@ -1292,9 +1293,11 @@ if (!function_exists('premium_calculation_manager')) case "7": //GMC - Employees + Dependent Age + SI $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si; + $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); + $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y; foreach ($temp_slab_rates as $skey => $slab_value) { - $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; + if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) )) { $emp_data['policy_details']['basic_cover_si'] = $slab_value['si']; @@ -1442,7 +1445,8 @@ if (!function_exists('premium_calculation_manager')) $employee_relationship = $slug->slugify($emp_data['relationship']); $employee_relationship = ($employee_relationship == 'daughter' || $employee_relationship == 'son' ? $employee_relationship = 'child' : $employee_relationship); $emp_data['policy_details']['basic_cover_si'] = null; - $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; + $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); + $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y; foreach ($temp_slab_rates as $skey => $slab_value) { if( $slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && ((($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) && $slab_value['relationship'] == $employee_relationship) || ($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) )) ) @@ -1475,7 +1479,8 @@ if (!function_exists('premium_calculation_manager')) } if(!$is_match_found) { - $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; + $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); + $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y; $log_message = '[ client_policy_id : ' .$emp_data['policy_details']['client_policy_id'].' - '. $emp_data['emp_code'].' - '.$emp_data['name'] .' - '. $emp_data['policy_details']['basic_cover_si'] . ', Age : '. $age.' ]'; if($temp_slab_rates[0]['premium_type'] == 1) { @@ -1560,6 +1565,7 @@ if (!function_exists('transform_db_data_to_excel')) $row['temp']['emp_status'] = $value['emp_status']; $row['temp']['policy_status'] = $value['status']; $row['temp']['rata_premimum'] = $value['rata_premimum']; + $row['temp']['file_id'] = $value['file_id']; array_push($return_data, ($row)); } diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php index 06c39c7f..9168c9a7 100755 --- a/app/Models/EmployeeModel.php +++ b/app/Models/EmployeeModel.php @@ -106,7 +106,7 @@ class EmployeeModel extends Model public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [],array $relationship = [],array $client_branch_id = []) { - $result = $this->select(['employees.id as emp_id', 'employees.client_id','employees.client_branch_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employees.unit','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policy_type.long_name as policy_name','client_policy.is_addon', 'employee_polices.payable_employee']) + $result = $this->select(['employees.id as emp_id', 'employees.client_id','employees.client_branch_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employees.unit','employees.file_id','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policy_type.long_name as policy_name','client_policy.is_addon', 'employee_polices.payable_employee']) ->join('employee_polices', 'employee_polices.employee_id = employees.id') ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id') ->join('policy_type', 'policy_type.id = client_policy.policy_type_id','left') diff --git a/public/sample_excel/enrollment.xlsx b/public/sample_excel/enrollment.xlsx index b23bb77d685b223cb8f2c38ac154cab19f580aee..0666a6c87688e2c80785c4969af5d8cce4abf933 100755 GIT binary patch delta 3696 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 delta 3798 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 X-c8r#yJh%;1BKz_ Date: Fri, 27 Dec 2024 14:53:20 +0530 Subject: [PATCH 2/2] FIX_FILE_TRUNCATE_FOR_ENROLLMENT --- app/Controllers/EmployeeController.php | 77 +++++++++++++++++++++----- 1 file changed, 64 insertions(+), 13 deletions(-) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 7721b203..7bd89152 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -40,7 +40,7 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use Dompdf\Dompdf; use Dompdf\Options; - +use Kint; class EmployeeController extends AdminController { @@ -207,7 +207,8 @@ class EmployeeController extends AdminController // $this->fileModel->where('id', '12')->set(['status' => 'failed','reason' => $failure_reason])->update(); // dd($failure_reason); // } - + // $this->truncateFileData(747, 5) ; + // die(); if ($this->request->getMethod() == 'post') { //validate uploaded file @@ -1224,7 +1225,7 @@ class EmployeeController extends AdminController public function truncateFileData($file_id, $role_id = null) { $file_id = $this->request->uri->getSegment(3); - // $file_id = 112; + // $file_id = 747; $file = $this->fileModel->find($file_id); $client_id = $file['client_id']; $client_policy_id = $file['policy_id']; @@ -1260,16 +1261,66 @@ class EmployeeController extends AdminController } } else { - //update emp and emp plocies - $db = db_connect(); - $query = "UPDATE employees JOIN employee_polices ON employees.id = employee_polices.employee_id and employees.file_id = $file_id SET employees.emp_status = 'truncated', employee_polices.status = 'truncated', employees.is_active = 0,employee_polices.is_active = 0 WHERE employees.file_id = $file_id"; - $db->query($query); - $affectedRows = $db->affectedRows(); - // print_r($db->getLastQuery()); die; - // $affectedRows = 10; + if($file['action'] != 'enrollment') + { + //update emp and emp plocies + $db = db_connect(); + $query = "UPDATE employees JOIN employee_polices ON employees.id = employee_polices.employee_id and employees.file_id = $file_id SET employees.emp_status = 'truncated', employee_polices.status = 'truncated', employees.is_active = 0,employee_polices.is_active = 0 WHERE employees.file_id = $file_id"; + $db->query($query); + $affectedRows = $db->affectedRows(); + // print_r($db->getLastQuery()); die; + // $affectedRows = 10; - //update file status - $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); + //update file status + $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); + } + else + { + // echo 'came here...1'; + //check all dependents added by self and other dependent policies + $emp_codes = $this->employeeModel->select('emp_code') + ->where('file_id', $file_id) + ->findAll(); + $emp_codes = array_column($emp_codes,'emp_code'); + // Kint::dump($emp_codes);//die; + + $dependent_policies = $this->clientPolicyModel->select('id') + ->where('base_policy', $client_policy_id) + ->findAll(); + // $dependent_policies = [ [10],[25],[35] ]; + // Kint::dump($dependent_policies); + // Kint::dump(array_column($dependent_policies,'id')); + if(count($dependent_policies)) + { + $dependent_policies = array_column($dependent_policies,'id'); + // Kint::dump($dependent_policies); + $second_level_dependent_policies = $this->clientPolicyModel->select('id') + ->whereIn('base_policy', $dependent_policies) + ->findAll(); + // dd($second_level_dependent_policies); + if(count($second_level_dependent_policies)) + { + $second_level_dependent_policies = array_column($second_level_dependent_policies,'id'); + } + + $dependent_policies = array_merge($dependent_policies,$second_level_dependent_policies); + } + $dependent_policies = array_merge($dependent_policies,[$client_policy_id]); + // Kint::dump($dependent_policies); + + //update emp and emp plocies + $db = db_connect(); + $emp_codes = '(' . implode(',', array_map(fn($code) => "'$code'", $emp_codes)) . ')'; + $dependent_policies = '(' . implode(',', $dependent_policies) . ')'; + $query = "UPDATE employee_polices JOIN employees ON employees.id = employee_polices.employee_id and employees.emp_code in $emp_codes SET employee_polices.status = 'truncated', employee_polices.is_active = 0 WHERE employee_polices.client_policy_id in $dependent_policies"; + $db->query($query); + $affectedRows = $db->affectedRows(); + + // dd($affectedRows); + $affectedRows = $affectedRows * 2; + $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); + + } if($cd_tranction){ @@ -1309,7 +1360,7 @@ class EmployeeController extends AdminController if ($res[0]->count == 0 || $role_id == 5 || $role_id == 1) { //update truncated status to db $this->empEndorsementModel->where('file_id', $file_id) - ->set(['status' => 'truncated']) + ->set(['status' => 'truncated','is_active' => 0]) ->update(); //update file status $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();