From b02bcc5f6e493cd090f52b068c506af7908e020c Mon Sep 17 00:00:00 2001 From: velz Date: Wed, 8 Jan 2025 14:39:39 +0530 Subject: [PATCH 1/9] FIX_LIVE_ISSUE --- app/Controllers/EmployeeRestController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index d373384d..69ff7201 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -2639,7 +2639,7 @@ class EmployeeRestController extends AdminController $finalarray[$value] = $termsValue; } } - if(is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)){ + if(isset(($terms->gpa_special_condition_label)) && is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)){ for ($i=0; $i < count($terms->gpa_special_condition_label); $i++) { $finalarray[$terms->gpa_special_condition_label[$i]] = $terms->gpa_special_condition_input[$i]; } @@ -2661,7 +2661,7 @@ class EmployeeRestController extends AdminController $finalarray[$value] = $termsValue; } } - if(is_array($terms->special_condition_label) && is_array($terms->special_condition_input)){ + if(isset(($terms->special_condition_label)) && is_array($terms->special_condition_label) && is_array($terms->special_condition_input)){ for ($i=0; $i < count($terms->special_condition_label); $i++) { $finalarray[$terms->special_condition_label[$i]] = $terms->special_condition_input[$i]; } From cfda8bb9cd0433235bd1f41256a1922c77f47fb2 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Wed, 8 Jan 2025 17:25:31 +0530 Subject: [PATCH 2/9] CHANGE_eCardDownload related changes : GWM --- app/Controllers/EmployeeRestController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index d373384d..ef46a44a 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -1113,7 +1113,7 @@ class EmployeeRestController extends AdminController $array->GridMaster = $getSlabAndGridData['grid_master']; if($array->tpa_id != null){ - $array->eCardDownload = base_url('download-e-card/') . $array->rand_string; + $array->eCardDownload = base_url('download-e-card/') . $array->rand_string.'/1'; }else{ $array->eCardDownload = null; } @@ -1356,7 +1356,7 @@ class EmployeeRestController extends AdminController { if($tpaArray[0]->tpa_id != null) - $array->eCardDownload = base_url('download-e-card/') . $tpaArray[0]->rand_string; + $array->eCardDownload = base_url('download-e-card/') . $tpaArray[0]->rand_string.'/1'; else $array->eCardDownload = null; @@ -1519,7 +1519,7 @@ class EmployeeRestController extends AdminController if($employee_policy){ if($employee_policy->tpa_id != null){ - $array->eCardDownload = base_url('download-e-card/') . $employee_policy->rand_string; + $array->eCardDownload = base_url('download-e-card/') . $employee_policy->rand_string.'/1'; }else{ $array->eCardDownload = null; } $self['is_value_exist'] = true; @@ -1742,7 +1742,7 @@ class EmployeeRestController extends AdminController if(count($tpaArray)) { if($tpaArray[0]->tpa_id != null) - $responce['eCardDownload'] = base_url('download-e-card/') . $tpaArray[0]->rand_string; + $responce['eCardDownload'] = base_url('download-e-card/') . $tpaArray[0]->rand_string.'/1'; else $responce['eCardDownload'] = null; @@ -2540,7 +2540,7 @@ class EmployeeRestController extends AdminController if($employee_policy[0]['tpa_id'] != null) - $data['eCardDownload'] = base_url('download-e-card/') . $employee_policy[0]['rand_string']; + $data['eCardDownload'] = base_url('download-e-card/') . $employee_policy[0]['rand_string'].'/1'; else $data['eCardDownload'] = null; From d117e0866c32a1c7267e627474fd54b204155926 Mon Sep 17 00:00:00 2001 From: velz Date: Thu, 9 Jan 2025 15:50:10 +0530 Subject: [PATCH 3/9] FIX_POLICY_START_DATE --- app/Helpers/excel_util_helper.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index 3c254374..436ae854 100755 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -1492,6 +1492,7 @@ if (!function_exists('premium_calculation_manager')) $emp_data['policy_details']['rata_premimum'] = 0; $emp_data['policy_details']['gst'] = 0; $emp_data['policy_details']['days'] = 0; + $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; } else { $log_message .= '- skipping, slab rate not found'; } $myLogger->logme('error',$log_message); From 40ec87b4857f52c0c68a91890b76d3e0b95323e5 Mon Sep 17 00:00:00 2001 From: velz Date: Thu, 9 Jan 2025 17:24:31 +0530 Subject: [PATCH 4/9] FIX_MEMEBRS_SENDECARD_ENABLED_ALL --- app/Models/EmployeePolicyModel.php | 7 +++++-- app/Views/employee_data_list.php | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index ec1f48a3..eb25bf6a 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -115,6 +115,7 @@ class EmployeePolicyModel extends Model 'client_branch.branch_name as client_branch_name', 'client_branch.branch_code as client_branch_code', 'cp.policy_no', + 'cp.policy_type_id', ]) ->join('employees emp', 'employee_polices.employee_id = emp.id') ->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy @@ -192,7 +193,7 @@ class EmployeePolicyModel extends Model $result = $this->select([ 'employee_polices.id' ]) - ->join('employees emp', 'employee_polices.employee_id = emp.id AND emp.relationship = "Self" '); + ->join('employees emp', 'employee_polices.employee_id = emp.id'); if ($policy_id !=0 && !empty($policy_id)) { $result->where('employee_polices.client_policy_id', $policy_id); } @@ -201,7 +202,9 @@ class EmployeePolicyModel extends Model ->where('employee_polices.status', 'active') ->where('employee_polices.tpa_id is not null') ->where('employee_polices.ecard_sent_status',0) - ->where('emp.relationship','Self'); + // ->where('emp.relationship','Self'); + ->where('emp.email_corporate !=','') + ->where('emp.email_corporate is not null'); return $result->findAll(); // $result->findAll(); diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php index 97943e91..5c0d2779 100755 --- a/app/Views/employee_data_list.php +++ b/app/Views/employee_data_list.php @@ -145,11 +145,11 @@ Edit - + View E-Card - + Send E-Card Mail From 58854568e872e5c1d1b7dc1160b87125a21295b7 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Thu, 9 Jan 2025 17:56:32 +0530 Subject: [PATCH 5/9] CHANGE_POST_ENROLLMENT_CHANGES : RV --- app/Controllers/ClientController.php | 19 +- app/Controllers/EmpDataServiceController.php | 217 +++++++------- app/Controllers/EmployeeController.php | 58 +++- app/Models/EmployeePolicyModel.php | 78 +++-- app/Views/batch_list.php | 283 ++++++++++++------ app/Views/employee_data_list.php | 54 +++- app/Views/notification.php | 6 +- .../sample_import_Addition.xlsx | Bin 6482 -> 6502 bytes .../sample_import_Dependent_Addition.xlsx | Bin 6485 -> 6485 bytes .../sample_import_Inception.xlsx | Bin 6370 -> 6459 bytes 10 files changed, 460 insertions(+), 255 deletions(-) diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 0b15d139..9e964863 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -3831,14 +3831,15 @@ class ClientController extends AdminController public function sendextraparam() { - // $batch_data = [ - // 'client_id' => 17, - // 'client_policy_id' => 30, - // 'client_branch_id' => 18, - // ]; + $batch_data = [ + 'client_id' => 17, + 'client_policy_id' => 30, + 'client_branch_id' => 18, + 'event_type' => "inception", + ]; // $batch_data['insurer_or_tpa'] = 'insurer'; - // $batch_data['insurer_or_tpa'] = 'tpa'; + $batch_data['insurer_or_tpa'] = 'tpa'; // dd($this->request); @@ -3881,6 +3882,7 @@ class ClientController extends AdminController // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 162]); // $EmpDataServiceController->importDeletionValidation(['file_id' => 171]); // $EmpDataServiceController->importDeletionUpdateEndorsementID(['file_id' => 171]); + // $EmpDataServiceController->importCorrectionUpdateEndorsementID(['file_id' => 188]); $array = [ "employeeIds" => ["12800", "12798", "12797", "12799"], "client_id" => "159", @@ -3894,11 +3896,14 @@ class ClientController extends AdminController "user_id" => "1" ]; - $EmpDataServiceController->cashDepositCalculationForDeletion($array); + // $EmpDataServiceController->cashDepositCalculationForDeletion($array); // $employeeRestController = new EmployeeServiceController(); // $employeeRestController->employeesOnboardPreprocess(['file_id' => 757]); + // $result = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($batch_data); + // dd(db_connect()->getLastQuery()); + } // ------------------------------------------------------------------------------------------------------- diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 32d9738d..40169e8b 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -289,7 +289,7 @@ class EmpDataServiceController extends BaseController ], [ 'column_index' => 14, - 'column_name' => 'UHID', + 'column_name' => 'RISK ID', 'db_column_name' => 'uhid' ], // [ @@ -399,7 +399,7 @@ class EmpDataServiceController extends BaseController ], [ 'column_index' => 14, - 'column_name' => 'UHID', + 'column_name' => 'RISK ID', 'db_column_name' => 'uhid' ], // [ @@ -540,6 +540,7 @@ class EmpDataServiceController extends BaseController $ids = []; $objects = $this->employeePolicyModel->getCorrectionEmployeesDataForExportExcel($export_data); + // dd(db_connect()->getLastQuery(),$objects); foreach ($objects as $obj) { $ids[] = $obj->id; @@ -552,33 +553,13 @@ class EmpDataServiceController extends BaseController if ($count == 0) { $this->myLogger->logme('error', 'No Record found. Endorsement ID Alread Updated. Correction export data count : {data}', ['data' => $count]); - // return false; + return false; } - $this->removeOldExportInfoFromBatchFile($export_data); - $this->myLogger->logme('error', 'Correction export file name : {data}', ['data' => $export_data['file_name']]); - - - // get excel export format structure array - $template_json = $this->clientPolicyModel - ->select('insurer_excel_export_template.jsoncolumns') - ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id') - ->where('client_policy.id', $export_data['client_policy_id']) - ->where('insurer_excel_export_template.event_name', $export_data['event_type']) - ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024 - ->where('insurer_excel_export_template.type_name', $export_data['actions']) - ->first(); - - if(!empty($template_json) && $template_json != null){ - $excel_header_columns = json_decode($template_json['jsoncolumns'], true); - }else{ - return 6; - } - - + if( $export_data['insurer_or_tpa'] == 'tpa'){ $excel_header_columns = [ @@ -586,7 +567,7 @@ class EmpDataServiceController extends BaseController ['column_index' => 1, 'column_name' => 'RISK ID', 'db_column_name' => 'uhid'], ['column_index' => 1, 'column_name' => 'NAME OF EMP/DEP', 'db_column_name' => 'emp_name'], ['column_index' => 3, 'column_name' => 'EMP/DEP TYPE', 'db_column_name' => 'emp_type'], - ['column_index' => 4, 'column_name' => 'RELATION', 'db_column_name' => 'relationship_code'], + ['column_index' => 4, 'column_name' => 'RELATION', 'db_column_name' => 'emp_relationship'], ['column_index' => 5, 'column_name' => 'DOB', 'db_column_name' => 'emp_dob'], ['column_index' => 6, 'column_name' => 'GENDER', 'db_column_name' => 'emp_gender'], ['column_index' => 7, 'column_name' => 'Wrong Data', 'db_column_name' => 'old_value'], @@ -594,6 +575,23 @@ class EmpDataServiceController extends BaseController ['column_index' => 9, 'column_name' => 'Remarks', 'db_column_name' => 'remarks'], ['column_index' => 10, 'column_name' => 'Endorsement_Id', 'db_column_name' => null] ]; + }else{ + + // get excel export format structure array + $template_json = $this->clientPolicyModel + ->select('insurer_excel_export_template.jsoncolumns') + ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id') + ->where('client_policy.id', $export_data['client_policy_id']) + ->where('insurer_excel_export_template.event_name', $export_data['event_type']) + ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024 + ->where('insurer_excel_export_template.type_name', $export_data['actions']) + ->first(); + + if(!empty($template_json) && $template_json != null){ + $excel_header_columns = json_decode($template_json['jsoncolumns'], true); + }else{ + return 6; + } } @@ -790,7 +788,7 @@ class EmpDataServiceController extends BaseController $ids = []; $objects = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($export_data); - + // dd(db_connect()->getLastQuery()); // dd($objects); $totals = 0; @@ -816,22 +814,6 @@ class EmpDataServiceController extends BaseController $this->removeOldExportInfoFromBatchFile($export_data); $this->myLogger->logme('error', 'Deletion export file name : {data}', ['data' => $export_data['file_name']]); - // get excel export format structure array - $template_json = $this->clientPolicyModel - ->select('insurer_excel_export_template.jsoncolumns') - ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id') - ->where('client_policy.id', $export_data['client_policy_id']) - ->where('insurer_excel_export_template.event_name', $export_data['event_type']) - ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024 - ->where('insurer_excel_export_template.type_name', $export_data['actions']) - ->first(); - - if(!empty($template_json) && $template_json != null){ - $excel_header_columns = json_decode($template_json['jsoncolumns'], true); - }else{ - return 6; - } - if( $export_data['insurer_or_tpa'] == 'tpa'){ $excel_header_columns = [ @@ -840,19 +822,37 @@ class EmpDataServiceController extends BaseController ['column_index' => 2, 'column_name' => 'EMP NAME', 'db_column_name' => 'emp_name'], ['column_index' => 3, 'column_name' => 'DOB', 'db_column_name' => 'emp_dob'], ['column_index' => 4, 'column_name' => 'GENDER', 'db_column_name' => 'emp_gender'], - ['column_index' => 5, 'column_name' => 'RELATIONSHIP', 'db_column_name' => 'emp_relationship_code'], + ['column_index' => 5, 'column_name' => 'RELATIONSHIP', 'db_column_name' => 'emp_relationship'], ['column_index' => 6, 'column_name' => 'SUM INSURED', 'db_column_name' => 'basic_cover_si'], - ['column_index' => 7, 'column_name' => 'Date of Leaving', 'db_column_name' => 'date_of_leaving'], + ['column_index' => 7, 'column_name' => 'Date of Leaving', 'db_column_name' => 'dateofexit'], ['column_index' => 8, 'column_name' => 'Policy End Date', 'db_column_name' => 'policy_end_date'], ['column_index' => 9, 'column_name' => 'No Of Days', 'db_column_name' => 'no_of_days'], ['column_index' => 10, 'column_name' => 'Premium', 'db_column_name' => 'premium'], ['column_index' => 11, 'column_name' => 'Pro Rata Premium', 'db_column_name' => 'pro_rata_premium'], ['column_index' => 12, 'column_name' => 'GST', 'db_column_name' => 'gst'], ['column_index' => 13, 'column_name' => 'Total', 'db_column_name' => 'total'], - ['column_index' => 14, 'column_name' => 'Claim Status', 'db_column_name' => null], + ['column_index' => 14, 'column_name' => 'Claim Status', 'db_column_name' => 'claim_status'], ['column_index' => 15, 'column_name' => 'ENDORSEMENT_ID', 'db_column_name' => null] ]; + }else{ + + // get excel export format structure array + $template_json = $this->clientPolicyModel + ->select('insurer_excel_export_template.jsoncolumns') + ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id') + ->where('client_policy.id', $export_data['client_policy_id']) + ->where('insurer_excel_export_template.event_name', $export_data['event_type']) + ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024 + ->where('insurer_excel_export_template.type_name', $export_data['actions']) + ->first(); + + if(!empty($template_json) && $template_json != null){ + $excel_header_columns = json_decode($template_json['jsoncolumns'], true); + }else{ + return 6; + } + } $excel_data_info = generate_insurer_based_excel($excel_header_columns, $objects); @@ -1338,7 +1338,7 @@ class EmpDataServiceController extends BaseController 'POLICY END DATE', 'NO OF DAYS', 'TPA ID', - 'UHID', + 'RISK ID', // 'PREMIUM', 'PRO RATA PREMIUM', 'GST', @@ -1932,7 +1932,6 @@ class EmpDataServiceController extends BaseController //Endorsement Correction public function importCorrectionValidation($params) { - $this->myLogger->logme('error', 'Correction File Validation -- Function called'); $file_id = $params['file_id']; @@ -1944,6 +1943,14 @@ class EmpDataServiceController extends BaseController $batch_code = $file['batch_code']; $user_id = $file['created_by']; + $ref_data = [ + 'client_id' => $client_id, + 'client_policy_id' => $client_policy_id, + 'client_branch_id' => $client_branch_id, + 'insurer_or_tpa' => $file['insurer_or_tpa'], + 'event_type' => $file['event_type'], + ]; + $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name']; if (!file_exists($file_name_with_path)) { @@ -1961,7 +1968,6 @@ class EmpDataServiceController extends BaseController $headers = ['Emp Code','RISK ID','NAME OF EMP/DEP','EMP/DEP TYPE','RELATION','DOB','GENDER','Wrong Data','Correct Data','Remarks','Endorsement_Id']; - foreach ($headers as $key => $value) { if($excel_header[$key] != $value){ $data = [ @@ -1978,45 +1984,9 @@ class EmpDataServiceController extends BaseController } } + $endorsement_data = $this->employeePolicyModel->getCorrectionEmployeesDataForExportExcel($ref_data, 1); - - $endorsement_data = $this->empEndorsementModel - ->select(" - emp_endorsement.id, - emp_endorsement.pk, - emp_endorsement.emp_code, - emp_endorsement.endorsement_id, - emp_endorsement.old_value, - emp_endorsement.new_value, - emp_endorsement.field_name, - emp_endorsement.remarks, - emp_endorsement.actions, - employees.id AS primaryKey, - employees.name AS emp_name, - employees.dob AS emp_dob, - employees.gender AS emp_gender, - employees.client_id AS emp_client_id, - 'Has Define' AS emp_type, - employee_polices.uhid, - employees.relationship_code - ") - ->join("employees", "employees.id = emp_endorsement.pk", "left") - ->join("employee_polices", "employees.id = employee_polices.employee_id", "left") - ->where("employees.client_id", $client_id) - ->where("employee_polices.client_policy_id", $client_policy_id) - ->where("employees.client_branch_id", $client_branch_id) - ->where("employees.is_active", 1) - ->where("employees.emp_status", "active") - ->where("emp_endorsement.actions", "c") - ->where("emp_endorsement.is_active", 1) - ->where("emp_endorsement.status !=", "truncated") - ->where("(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')") - ->findAll(); - - - - dd($endorsement_data, $excel_data); - + // dd($endorsement_data, $excel_data); if ($endorsement_data == null || empty($endorsement_data)) { @@ -2052,8 +2022,6 @@ class EmpDataServiceController extends BaseController $this->myLogger->logme('error', 'correctionFileValidation excel file count partially : {data}', ['data' => $partially_updated_data]); } - - if ($endorsement_data_count < $excel_data_count) { $data = [ @@ -2069,7 +2037,6 @@ class EmpDataServiceController extends BaseController return 'The Excel record count exceeds the DB record count. excel file count : ' . $excel_data_count . 'db count : ' . $endorsement_data_count; } - $errors = []; // Initialize an array to store errors $missing_id = []; $batch_list_id = []; @@ -2159,17 +2126,14 @@ class EmpDataServiceController extends BaseController $batch_list_id[] = $endorsement_value['primaryKey']; } - $error_count = count($errors); $json_errors = json_encode($errors); - $missing_id_count = count($missing_id); $json_missing_id = json_encode($missing_id); // dd($error_count, $missing_id_count, $json_errors, $json_missing_id, $batch_list_id); - if ($missing_id_count > 0) { $data = [ @@ -2188,7 +2152,6 @@ class EmpDataServiceController extends BaseController } - if ($error_count > 0) { $data = [ @@ -2234,7 +2197,8 @@ class EmpDataServiceController extends BaseController } - public function importCorrectionUpdateEndorsementID($params){ + public function importCorrectionUpdateEndorsementID($params) + { $this->myLogger->logme('error', 'importCorrectionUpdateEndorsementID called'); @@ -2286,7 +2250,6 @@ class EmpDataServiceController extends BaseController $emp_count = count($excel_data); $db = \Config\Database::connect(); - foreach ($excel_data as $key => $value) { $emp_code = $value[0]; @@ -2294,28 +2257,44 @@ class EmpDataServiceController extends BaseController $endorsement_id[] = $value[10]; $uhid = $value[1]; + $isDate = \DateTime::createFromFormat('d-M-Y', $old_value) && \DateTime::createFromFormat('d-M-Y', $old_value)->format('d-M-Y') === $old_value; + + if($isDate){ + $old_value = change_date_format($old_value); + } + + // dd($old_value, $isDate); + $result = $this->empEndorsementModel - ->select('emp_endorsement.*, employees.id as emp_id') - ->join('employees', 'employees.id = emp_endorsement.pk') - ->join('employee_polices', 'employee_polices.employee_id = employees.id') - ->where('employees.emp_code', $emp_code) - ->where('employees.client_id', $client_id) - ->where('employees.client_branch_id', $client_branch_id) - ->where('employee_polices.client_policy_id', $client_policy_id) - ->where('employee_polices.uhid', $uhid) - ->where('emp_endorsement.old_value', $old_value) - - ->where('employee_polices.is_active', 1) - ->where('employee_polices.status', 'active') - ->where('employees.is_active', 1) - ->where('employees.emp_status', 'active') - ->where("emp_endorsement.is_active", 1) - ->where("emp_endorsement.status !=", "truncated") - ->first(); + ->select('emp_endorsement.*, employees.id as emp_id') + ->join('employees', 'employees.id = emp_endorsement.pk') + ->join('employee_polices', 'employee_polices.employee_id = employees.id') + ->where('employees.emp_code', $emp_code) + ->where('employees.client_id', $client_id) + ->where('employees.client_branch_id', $client_branch_id) + ->where('employee_polices.client_policy_id', $client_policy_id) + ->where('employee_polices.uhid', $uhid) + ->where('emp_endorsement.old_value', $old_value) + + ->where('employee_polices.is_active', 1) + ->where('employee_polices.status', 'active') + ->where('employees.is_active', 1) + ->where('employees.emp_status', 'active') + ->where("emp_endorsement.is_active", 1) + ->where("emp_endorsement.status !=", "truncated") + ->first(); + + // print_r($result); die; if (isset($result['id']) && $result['id'] !== null) { // return $result; $enrollment_file_id = $result['file_id']; + + if($result['field_name'] == 'dob'){ + $value[8] = change_date_format($value[8]); + } + // dd($value[8]); + $emp_details[] = array('id' => $result['emp_id'], $result['field_name'] => $value[8]); $endorsement_details[] = array('group_key' => $result['group_key'], 'id' => $result['id'], 'endorsement_id' => $value[10], 'status' => 'complete'); } @@ -2356,7 +2335,6 @@ class EmpDataServiceController extends BaseController } - //Endorsement SIEnhancement public function importSIEnhancementValidation($params) { @@ -3379,7 +3357,7 @@ class EmpDataServiceController extends BaseController $enrollment_file_id = $result['file_id']; //files table primary key $employee_policy_table_primaryKey[] = $result['emp_policy_primarykey']; //for cash deposite - $employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => $result['date_of_exit'], 'reason_for_exit' => $result['reason_for_exit'], 'claim_status' => $result['claim_status'], 'status' => $result['status']); + $employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => change_date_format($result['date_of_exit']), 'reason_for_exit' => $result['reason_for_exit'], 'claim_status' => $result['claim_status'], 'status' => $result['status']); // $employees_table_data[] = array('id' => $result['employees_id'], 'emp_status' => $result['status']); $emp_endorsement_table_data[] = array('id' => $result['emp_endorsement_primarykey'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[15], 'status' => 'complete'); } @@ -4223,7 +4201,7 @@ class EmpDataServiceController extends BaseController $result[] = array( "field_name" => 'Exit on', - "data" => change_date_format($obj->date_of_leaving, 'Y-m-d', 'd-M-Y'), + "data" => change_date_format($obj->dateofexit, 'Y-m-d', 'd-M-Y'), ); $result[] = array( @@ -4389,6 +4367,10 @@ class EmpDataServiceController extends BaseController employees.email_corporate, employees.name, employees.mobile, + employees.basic_cover_si, + + cp.policy_type_id, + cp.is_addon, employee_polices.id as emp_policy_id, employee_polices.client_policy_id, @@ -4396,6 +4378,7 @@ class EmpDataServiceController extends BaseController employee_polices.tpa_id ') ->join('employees', 'employees.id = employee_polices.employee_id') + ->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') ->where('employees.emp_status', 'active') ->where('employees.is_active', '1') ->where('employee_polices.status', 'active') @@ -4406,7 +4389,8 @@ class EmpDataServiceController extends BaseController if ($emp_details) { $this->myLogger->logme('error', 'sendMailForDownloadingECard - Processing employee_policy_id: {id}', ['id' => $id]); - if (!empty($emp_details['email_corporate']) && $emp_details['relationship'] === 'Self') { + if (!empty($emp_details['email_corporate'])) { + $params = [ 'rand_string' => $emp_details['rand_string'], 'tpa_id' => $emp_details['tpa_id'], @@ -4428,6 +4412,7 @@ class EmpDataServiceController extends BaseController // $wholeMailData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params); $count++; } + $processedCount++; // Send batch emails or handle single email diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 813238f3..bbdabd87 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -631,6 +631,7 @@ class EmployeeController extends AdminController session()->setFlashdata('error', $return); return redirect()->to(base_url('employee/upload')); } + } else if ($event_type == 'si_enhancement') { @@ -1136,7 +1137,8 @@ class EmployeeController extends AdminController // Step 3: Prepare template path $template_data_path = WRITEPATH . 'e_card_template/'; - $tpa_short_name = strtolower(str_replace(' ', '_', $get_emp_code_and_client_policy_id['short_name'])) . '.html'; + // $tpa_short_name = strtolower(str_replace(' ', '_', $get_emp_code_and_client_policy_id['short_name'])) . '.html'; + $tpa_short_name = 'common.html'; $final_path = $template_data_path . $tpa_short_name; $this->myLogger->logme('error', 'Checking if template file exists at: ' . $final_path); @@ -1155,6 +1157,9 @@ class EmployeeController extends AdminController $html = ""; foreach ($data as $key => $value) { $htmlContent = $tmplt_data; + + $value['front_card'] = "Nhance_Ecard_working_1_front.png"; + $value['back_card'] = "Nhance_Ecard_working_1_Back.png"; $placeholders = [ '{CLIENT_NAME}' => $value['client_name'], @@ -1839,6 +1844,13 @@ class EmployeeController extends AdminController ]; + $placeholders['{LEVELS}'] = ' + Level 1

+ 1. Gowtham / 8754081806 / gowtham@gmail.com
+ 2. Gowtham / 8754081806 / gowtham@gmail.com

'; + + // dd($placeholders); + // Get the values to replace the placeholders $replaceValues = array_values($placeholders); @@ -2189,7 +2201,9 @@ class EmployeeController extends AdminController $data = $this->request->getPost(); // print_rr($data);die(); // $data['dob'] = date('Y-m-d', strtotime($data['dob'])); - $data['dob'] = change_date_format($data['dob'], 'd/m/Y', 'Y-m-d'); + if(isset( $data['dob'])){ + $data['dob'] = change_date_format($data['dob'], 'd/m/Y', 'Y-m-d'); + } // print_rr($data); die; // Fetch current employee data @@ -2197,14 +2211,17 @@ class EmployeeController extends AdminController if ($employee_data['relationship'] == 'Self') { - if ($employee_data['gender'] != $data['gender']) { + if(isset($data['gender'])){ - $spouse_gender = ($data['gender'] == 'M') ? 'F' : 'M'; - $this->employeeModel - ->where('emp_code', $employee_data['emp_code']) - ->where('relationship', 'Spouse') - ->set(['gender' => $spouse_gender]) - ->update(); + if ($employee_data['gender'] != $data['gender']) { + + $spouse_gender = ($data['gender'] == 'M') ? 'F' : 'M'; + $this->employeeModel + ->where('emp_code', $employee_data['emp_code']) + ->where('relationship', 'Spouse') + ->set(['gender' => $spouse_gender]) + ->update(); + } } } @@ -2647,4 +2664,27 @@ class EmployeeController extends AdminController return $html; } + public function getBatchFileData() + { + $file_id = $this->request->getGet('file_id'); + + if(!empty($file_id)){ + + + $batch_file_data = $this->batchFileModel + ->where('id', $file_id) + ->where('is_active', 1) + ->first(); + + if(!empty($batch_file_data)){ + return $this->respond(['status' => true, 'code' => 200, 'batch_file_data' => $batch_file_data], 200); + }else{ + return $this->respond(['status' => false, 'code' => 200, 'message' => 'No data found.'], 200); + } + + }else{ + return $this->respond(['status' => false, 'code' => 404, 'message' => 'No data to found. File ID Not found'], 200); + } + } + } diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index ec1f48a3..7df9b70b 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -255,7 +255,6 @@ class EmployeePolicyModel extends Model SELECT employees.name AS emp_name, employees.emp_code AS emp_code, - employees.dob AS emp_dob, employees.gender AS emp_gender, employees.relationship AS emp_relationship, employees.relationship_code AS emp_relationship_code, @@ -263,7 +262,6 @@ class EmployeePolicyModel extends Model employees.change_event AS change_event, - employees.doj AS emp_doj, employees.mobile AS emp_mobile, employees.email_corporate AS emp_email_c, employees.email_personal AS emp_email_p, @@ -280,8 +278,6 @@ class EmployeePolicyModel extends Model employee_polices.uhid, employee_polices.pre_existing_alignments, employee_polices.basic_cover_si, - employee_polices.date_coverage as date_of_coverage, - employee_polices.policy_end_date, employee_polices.days as no_of_days, employee_polices.premium, employee_polices.rata_premimum as pro_rata_premium, @@ -291,6 +287,12 @@ class EmployeePolicyModel extends Model batch_data.bl AS batch_list_batch_code, batch_data.bf AS batch_files_batch_code, + DATE_FORMAT(employees.dob, '%d-%b-%Y') AS emp_dob, + DATE_FORMAT(employees.doj, '%d-%b-%Y') AS emp_doj, + DATE_FORMAT(employee_polices.policy_end_date, '%d-%b-%Y') AS policy_end_date, + DATE_FORMAT(employee_polices.date_coverage, '%d-%b-%Y') AS date_of_coverage, + + CASE WHEN client_branch.sez = 0 THEN 'NON-SEZ' WHEN client_branch.sez = 1 THEN 'SEZ' @@ -334,7 +336,7 @@ class EmployeePolicyModel extends Model } - public function getCorrectionEmployeesDataForExportExcel($ref_data) + public function getCorrectionEmployeesDataForExportExcel($ref_data, $return_type = 0) { $client_id = $ref_data['client_id']; @@ -342,22 +344,19 @@ class EmployeePolicyModel extends Model $client_branch_id = $ref_data['client_branch_id']; $insurer_or_tpa = $ref_data['insurer_or_tpa']; - $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (emp_endorsement.endorsement_id IS NOT NULL OR emp_endorsement.endorsement_id != '')" : "AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')"; + $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')" : "AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')"; $sql = " SELECT DISTINCT emp_endorsement.id, emp_endorsement.pk, emp_endorsement.emp_code, - emp_endorsement.endorsement_id, - emp_endorsement.old_value, - emp_endorsement.new_value, + emp_endorsement.endorsement_id, emp_endorsement.field_name, emp_endorsement.remarks, emp_endorsement.actions, employees.id AS primaryKey, employees.name AS emp_name, - employees.dob AS emp_dob, employees.gender AS emp_gender, employees.client_id AS emp_client_id, employees.emp_type as emp_type, @@ -367,7 +366,23 @@ class EmployeePolicyModel extends Model employees.relationship as emp_relationship, 'C' as event_type_data, - employees.doj AS emp_doj, + CASE + WHEN emp_endorsement.field_name = 'dob' THEN + DATE_FORMAT(emp_endorsement.old_value, '%d-%b-%Y') + ELSE + emp_endorsement.old_value + END AS old_value, + + CASE + WHEN emp_endorsement.field_name = 'dob' THEN + DATE_FORMAT(emp_endorsement.new_value, '%d-%b-%Y') + ELSE + emp_endorsement.new_value + END AS new_value, + + DATE_FORMAT(employees.dob, '%d-%b-%Y') AS emp_dob, + DATE_FORMAT(employees.doj, '%d-%b-%Y') AS emp_doj, + employees.mobile AS emp_mobile, employees.email_corporate AS emp_email_c, employees.email_personal AS emp_email_p, @@ -407,19 +422,21 @@ class EmployeePolicyModel extends Model AND employee_polices.status = 'active' AND employees.is_active = 1 AND employees.emp_status = 'active' - AND (employee_polices.tpa_id IS NOT NULL AND employee_polices.tpa_id != '') - AND (employee_polices.uhid IS NOT NULL AND employee_polices.uhid != '') $endorsement_condition"; // Execute the raw query $query = $this->db->query($sql); // Get the result set - $result = $query->getResult(); + if($return_type == 1){ + $results = $query->getResultArray(); + }else{ + $results = $query->getResult(); + } // dd($this->db->getLastQuery(), $result); - return $result; + return $results; } @@ -764,10 +781,10 @@ class EmployeePolicyModel extends Model } $status_condition = "{$insurer_or_tpa}" === 'tpa' - ? "employee_polices.status = 'inactive' AND employees.emp_status = 'inactive'" + ? "employee_polices.status = 'active' AND employees.emp_status = 'active'" : "employee_polices.status = 'active' AND employees.emp_status = 'active'"; - $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NOT NULL OR a.endorsement_id != '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')"; + $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')"; $query = $this->db->query(" SELECT DISTINCT @@ -776,7 +793,6 @@ class EmployeePolicyModel extends Model employee_polices.id as primaryKey, employees.name AS emp_name, employees.emp_code AS emp_code, - employees.dob AS emp_dob, employees.gender AS emp_gender, employees.relationship AS emp_relationship, employees.relationship_code AS emp_relationship_code, @@ -784,7 +800,6 @@ class EmployeePolicyModel extends Model 'D' as event_type_data, TIMESTAMPDIFF(YEAR, employees.dob, CURDATE()) AS emp_age, - employees.doj AS emp_doj, employees.mobile AS emp_mobile, employees.email_corporate AS emp_email_c, employees.email_personal AS emp_email_p, @@ -794,7 +809,6 @@ class EmployeePolicyModel extends Model employee_polices.basic_cover_si, employee_polices.uhid as uhid, - employee_polices.policy_end_date, employee_polices.rata_premimum as premium, employee_polices.claim_status, @@ -804,29 +818,34 @@ class EmployeePolicyModel extends Model deletiondata.empstatus, deletiondata.changeevent, - deletiondata.dateofexit, deletiondata.reasonforexit, deletiondata.status, deletiondata.claimstatus, + + DATE_FORMAT(employees.dob, '%d-%b-%Y') AS emp_dob, + DATE_FORMAT(employees.doj, '%d-%b-%Y') AS emp_doj, + DATE_FORMAT(employee_polices.policy_end_date, '%d-%b-%Y') AS policy_end_date, + DATE_FORMAT(deletiondata.dateofexit, '%d-%b-%Y') AS dateofexit, + DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + '$add_one_day' AS no_of_days, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN ROUND((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365, 2) ELSE 0 END AS pro_rata_premium, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18, 2) ELSE 0 END AS gst, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) + (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18), 2) ELSE @@ -834,7 +853,8 @@ class EmployeePolicyModel extends Model END AS total, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN + 'No claim' ELSE 'Claim' @@ -1536,21 +1556,21 @@ class EmployeePolicyModel extends Model DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + '$add_one_day' AS no_of_days, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN ROUND((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365, 2) ELSE 0 END AS pro_rata_premium, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18, 2) ELSE 0 END AS gst, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) + (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18), 2) ELSE @@ -1558,7 +1578,7 @@ class EmployeePolicyModel extends Model END AS total, CASE - WHEN deletiondata.claimstatus = 0 THEN + WHEN deletiondata.claimstatus = 0 OR deletiondata.claimstatus IS NULL THEN 'No claim' ELSE 'Claim' diff --git a/app/Views/batch_list.php b/app/Views/batch_list.php index b5747912..4d85d018 100755 --- a/app/Views/batch_list.php +++ b/app/Views/batch_list.php @@ -41,6 +41,7 @@ (₹)Amount User/Time Status + Action @@ -69,77 +70,89 @@ by + - +   - +   - + failed -   - + failed -   - - + + failed -   - - + + failed + + failed -   - - + - -   - + + + + + + + - - \ No newline at end of file + } + + // Format numbers when the DOM content is loaded + document.addEventListener("DOMContentLoaded", function() { + setTimeout(() => { + + formatNumbersByClass('indian-number'); + + }, 500); + }); + + function getBatchFileData(input){ + + let client_id = $(input).data('client_id') + let client_policy_id = $(input).data('client_policy_id') + let client_branch_id = $(input).data('client_branch_id') + let insurer_or_tpa = $(input).data('insurer_or_tpa') + let event_type = $(input).data('event_type') + let actions = $(input).data('actions') + + console.log('client_id', client_id); + console.log('client_policy_id', client_policy_id); + console.log('client_branch_id', client_branch_id); + console.log('insurer_or_tpa', insurer_or_tpa); + console.log('event_type', event_type); + console.log('actions', actions); + + $('#batch_file_client_id').val(client_id); + $('#batch_file_policy_id').val(client_policy_id); + $('#batch_file_branch_id').val(client_branch_id); + $('#batch_file_insurer_or_tpa').val(insurer_or_tpa); + $('#batch_file_action_type').val(actions); + $('#batch_file_event_type').val(event_type); + + + var myModal = new bootstrap.Modal(document.getElementById('batch_file_upload_modal')); + myModal.show(); + + + // $('.loader').fadeIn(); + // $('.loader-mask').fadeIn(); + + // console.log('file_id', file_id); + // let url = ''; + + // // Data to send in the AJAX request + // let requestData = { + // file_id: file_id, + // }; + + // // Send AJAX request + // sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) { + + // console.log('Data fetched successfully:', response); + // console.log('Data fetched successfully:', response.batch_file_data); + // console.log('response.batch_file_data.client_branch_id:', response.batch_file_data.client_branch_id); + + // if (response.status == true) { + + // } else { + + // toastr.warning(response.message || 'Unable to fetch data', 'WARNING'); + // } + + // $('.loader').fadeOut(); + // $('.loader-mask').delay(350).fadeOut('slow'); + + // }, function(xhr, status, error) { + // console.error('Error fetching data:', error); + // console.error(xhr.responseText); + // toastr.error('An error occurred while checking the SI amount.', 'ERROR'); + + // $('.loader').fadeOut(); + // $('.loader-mask').delay(350).fadeOut('slow'); + // // addRow(); + // }); + } + + + \ No newline at end of file diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php index 97943e91..7b7fc338 100755 --- a/app/Views/employee_data_list.php +++ b/app/Views/employee_data_list.php @@ -38,6 +38,12 @@ text-align: right; } +.readonly-select { + pointer-events: none; + background-color: #f0f0f0; + color: #666; +} + @@ -141,8 +147,14 @@ @@ -339,10 +351,21 @@ $('#email_corporate').val(data.email_corporate); $('#mobile').val(data.mobile); + if(data.emp_status == "active"){ + $('#name').prop('disabled', true); + $('#gender').prop('disabled', true); + $('#dob').prop('disabled', true); + }else{ + $('#name').prop('disabled', false); + $('#gender').prop('disabled', false); + $('#dob').prop('disabled', false); + } + var myModal = new bootstrap.Modal(document.getElementById('emp_modal')); myModal.show(); }else{ + $('#employee_primary_id').val(''); $('#emp_code_for_edit').val(''); $('#name').val(''); @@ -351,6 +374,10 @@ $('#email_corporate').val(''); $('#mobile').val(''); + $('#name').prop('disabled', false); + $('#gender').prop('disabled', false); + $('#dob').prop('disabled', false); + toastr.warning(res.message, 'WARNING'); } }, @@ -489,4 +516,23 @@ }); } + function validateInput(input, table, field){ + + let value = $(input).val(); + let label = $(input).closest('.form-group').find('label').text().replace('*', '').trim(); + + let message = "Value is duplicate!"; + if(label){ + message = label + " already exists!"; + } + + checkDuplicateTableFieldValue(table, field, value, function(isDuplicate) { + if (isDuplicate) { + toastr.warning(message, 'WARNING'); + $(input).val('') + } + }); + + } + diff --git a/app/Views/notification.php b/app/Views/notification.php index 77aaf3c2..af1b09fb 100755 --- a/app/Views/notification.php +++ b/app/Views/notification.php @@ -146,7 +146,7 @@
- +
- +
@@ -1222,7 +1222,7 @@ console.log('get Mail Template Data', res); if (res) { - $(`#${template_name}_form`).find('#template_name').val(snakeCaseToCamelCase(res.template_name)); + // $(`#${template_name}_form`).find('#template_name').val(snakeCaseToCamelCase(res.template_name)); $(`#${template_name}_form`).find('#subject').val(res.subject); $(`#${template_name}_form`).find('.jodit-wysiwyg').html(res.mail_content); diff --git a/public/sample_import_excel/sample_import_Addition.xlsx b/public/sample_import_excel/sample_import_Addition.xlsx index 9c6b4752bbb0e336dfa5f903ab398e72f455409b..39adc0ca719dad7a8c44041a379052e315c4f873 100644 GIT binary patch delta 3343 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 OQIuPhE{XH>*#82RKiSm) delta 3367 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 C)XMt+ diff --git a/public/sample_import_excel/sample_import_Dependent_Addition.xlsx b/public/sample_import_excel/sample_import_Dependent_Addition.xlsx index 2343abdd9f640611cbe2fdb1d80152d714efaa0c..b62f55b1a6848ed13f60cab8bf0a09310a849d39 100644 GIT binary patch delta 2936 zcmY*b2RIwr7mp~lX{?~08M{0cD)KjK)NC3-sZq0tXT|uN6|+V?+KQ+htr~5m#4NQ! zjUtK~MXfeQwWwY5kN3Uzf4%qn&hOlN&;7o8@44rk-|*$(%dALa+H+h01_lN|i#@56gFyehBrzy^i(`V>#U;`7Xpoa6&Cv( zmOE8fzh3EJONdSa>!c?*Vxz~GZ`rjPbCk>Em~if7FWNo~g=#Ea$f8-NJTr3S-nNX4 zLB2DPr<<*{NKhgxzZKjx)JWn6)8)9*$8z^D!})K8+-wKmBEL;?HiJ`FfP<2_4S|Nj zRnpebzHohSO$NbT;=S}pSlAM7oUv5qcIRLcxSDWjt%8wHD_c@zOh&Ruo}dwDC@jsWjHEcz_t_ao3yYIs1-mwKcs@XYa1VJe?AJ zXQZ|F?~avsmFV2xyaD6;o}S%(`!(NcTJ{Fkvt!w3`jcx@ZK~!}pg?nPP43R&o54Ms ziJ{|Xq(gfl?N`#{`9a;;uQErsJy(t2EKf_X6m;dGV|QPupPy?a_32 zC48WwBT0jFKLUs}KF=VBGgqkr0suRl0KhMQI}OLEid~JO>Sev$8Fa}dR@xDKs&sGZ zikm{v@b1wd10#~RRJ3SBMd|EpPNtH$qHRPt1+{EYN04Lp{1RNFxBfs6I(>e-zjG`8 zwHIUJ21Bu&WYnQ{>>*}rV!eGg&4A${k7}2mgCvT_k|;}#b+J-?DGcjvPj<5+OHMaD znK`GA4K>BrH!WQM#4-wcjW!Rck_5e)hO`Wja&@XyelhwkmDw?%&MopFGCqy+4OiM_EWW`{Cn!x-YjK zEFr@I({xhRPo>ip)EvXAKO70waSxe;BKk$8uztyAR~?8gVI;`9TfqWVEDWHd{GEvR zejQw$EcHQ0&lLkYzpY$9E*kefvRMk2*f9oTgqMjl=_Kh<5dxb2{GSGLA}!W+&lPI+#KCo~s&_3*8c__Z26BI7fL3e7AqC>5{-5TB&4fQTxxn!wY@(pgIx-em z2CdHEJDS?YDC0RxFB^&pA+9|JC9wZgdu z(Ww!NSivR{-m;OyAYJY~%kJzs?Ghj!(H8SSPF73_V&u;CF#N$yf7e}D`E0KXbo5xe zX%Q4P*1?(upVF1yY{Csa@>A1V+NZc59N{V-`KjQjW10Qa`F^)il=!$@$`m#q6ap#c zXQ3uu;}zE9mgX1Tx(ICqpsT$GW}0%<{EvZ!Pm=6K z2_?X?57Zan0Y`vL29oaBeCA=r)+q^q`os0cuO(-j4zw~)CoeC_r2~Dp87Knh$J=Y82ydjbEk$Gm{t7v0c}WE}*z zy$^=Yhfa#e^zXqM_IOXTQD1=lmj5{b0K|TljhOylYSR#GlGs)svM^W2>b~slx*L;h zJ+9;YRf`E;Xh24YCl1YN+<@xao=y!N^X`EIn^RXCJN2Q*9u(i|##c7HY4P2-$iV$= zWP`IwjceesNeg>A+L#M~W&y)5%i{H!z2TPMV}k15 zP8@j{K9STD7!XNZWH_Ydky{Y9Y}t5J^hOsAWERycD77WjDJ!6eNcU3JwV;AOrAAtG z@f&1!oL_5|6&clpp|hU(>Nc;Emz_`sGm52h^*_GgNqYYZcqRC)f00U^t8r!`m5prc z=n3Sdhizw(1Sw=3OExWJlfDOU6zz2HYVeY+r@w7vRqL=EYfmKA&t~SFV_E{O424ZAy!`jf1u<`=}7rONOY z&W?!xa&+AZxon0g>1d1bxfl%PAi2B5AiWVP2?!+r2YL^_Yo?B3KgV~ionj-d=bEqj zu~s>J!;N4gQO39`rQT072HSXRR=oG}3l{=+9Fs>mSV{=9SEjcXsJbVtsEMm?&5e0F zNDC{`jNyy*nn)SPJnGnk-K}r7DZJ_L++Zp#O!c%+K>j8kO?eWvI3)PE^T$@-Ivz(S zD*;=8<;#E6Bx}X_s$-19mT4zw9}3*LC;bDY}_SC0Z%GD*=f^ArYZQD4O!ZZe}4xqz`vVT+8VEz)u~Nf7Bp++WQlTe9_D|W00vIN*52=qr@w;y rsYDvn0J#AFux0DhoBVx|3%_jKP5T2Ze0I$l4a~;3)%NDW5%AX$i8ID&L=bWN(LE?{nw|gSz`PeTZZf+ zktM=NmMBCegdg93zEk&}^Sq0n`fArw0BpohlZc_k$7(eA;8!IF^h#tdSSYXvim+ItamJ8(DS>qDhVS1W67A zeof1gT!`R>!k^q05Bjq1X>{!pe;(2rPP0B>m!Sm*p_N{w%+XH2EtuoX;-z8GyF-#I z-KRvUNq8f^-K#2(mCCh-$;(+cl}TMeRKhDh&Q0x>IU#b$7TAki9@lws>`kn6exaTj)0isY(AG?}V8v09C3-c2*@s)`1r?+2E zL~JIkD$F=d7xR#r8|G$etZvdjsf;{tBIWuvzLDH3>W&3Ch7j&&2GGn&`gptM70!_@ zbZp|vGg34Y8Vbp+v-Uqaob6l%Bigxnnic1t2%6GrXi8WP0Y0bn8BB{L`!<`SG+w#C zY92H%tt7^gP#3(L73`lu%G-$x1cq8&Jy+Vo z6hlrr_EZq>=k|ZnI}8b4Y&-@8su=>O%pniHvdtf|fgzh3zlDdO4JCI$GDKOOD9G9vX zR^@H}Xjl08UZNH15^?KR_xxhQ6*h1moRL|g-+dtwPh$eQ(WMA|_&j^d@klStEaN7p znQ+&PYsrs0J(^evunLECrVV*ip#eh(iJlwSNoqNM&5@^5X;dk>WHUTU(X=nk(H7V? zqo~uDge(5NeO1g)20DE#d|4>ZxKqFm3%ZhaO9)i86lvCIaP;bX^KI93=W@cArB0d4 zvQWXKzsmcVOoirK4Q;PIVddR|!o=Qi^9gyDadt%*KP!Llvj{bPsWb$#gK1~=2z(BG znHfDomF5$&5J**gmCkfm-hd?fpvn>1I+K}5lbJXalb?W!bw9}4u(MPLAre{cVXXxL z=NBIyg4hl`OFyE>utCmlFoJ!)Rlk%?{Il)WCJw!bs|)3$&=}~Yjpbk`XIgAvE4=OX z351gCS1x4S11e~dN0rBIW5=`s`z|_HbA_RS(aC$ zjboi1R%lzWBRE{4Bzs}~1DkXnoAlS6mi_b4@1mnJY1NKkQQ-`Y1a2rJYUxJ_vr$RPw%P2HRglJ3YNWs$e>ACmIw? zJr7B|T%&TE8^QYx`nmWrhJ4#BPUQ`{%nd!L+`zA&U21eoFap&HuJWwg@EG@tA7K*g zJs(xGp6X)OmBa5;zmEBpq0g7Y@uDQqz!$~~FWVR!G&=Witl8=kc**spQgol`J1bN@ z*!|pVU|GhKBW%X@P(e_?d=gzqHifdM#)$2apQF$t7#|QRSwpzW4sh zx0>g#7?D(ZO^98}TK!8uJV{at9?Lc=PSt&>srY(9#mya2rp>e!v4AFL7rWa+WS~!~ zi(RDjtM4QP-PnFe_}*DL%5Bk>3Z(%6*jY}?5#w)Ii$^nyVdVo8E`{2zHEZAKEI;y5o|5pl%_Qjq5hQJtI&a0va83=+N#mV4l- zF$qI9xt81&Bm`d9mALi&QVic~beA$etTQ;J48`b|n|&>guk{0uRV~SrF*hZW9#eD6 zp9)GB^+m}=y&y@3TbX{G>l_y{-Zd`{yNt5tkj&asG`u^T)sn=E#*)VdFuKy#PlVa7B=*U*&7 zO=JGSIpuGgK?TYh)0_|~ z7J9xbP{zjUor5%7MtxZ|P9q@G2;nPh-j76*czNYkCGzF=tFPR`X&+ov(9Xj3BqR|> zIaDjP+b$$IPNJJNkot$ITCxH*b>r6g7;AQ8dw#}+(KsD*gd9b`nPVqwey(~Gp*mDb z%&N9z1ggBhW*hM8j*mM2J(igSO}}1iMJXBMdYMgl@QV{f;wqg^ z+RJtx9g;-$m>(1WyG3GB-zwFe<&W>povI)&b04(798`4kA=L6L`VH^wr8Aq+$rBUW zHf-zMB}D0N1*E%|C6?}%?v@lmIwh8tM!FkGX%OjhNeQJvLh9dr-}n0D z_4_~PTpQ=?&Ybhi%yZAotpY$qB7{RjLxV$QV$y}XCuGp?UUnQtE*5sK9G;FYwx*7b zw(MT^cI>b#4U^z##; z-8JtC_Ocl54p+r~o(gkCqwWy}Z&#P;=PCeHv=8F~q$^M_yhnh8Q~95M!ui`z_dOJ? zwiuJniR*WuMcKh1<^ar%(@+TVD1g+>J7i&Dc12gm3pd+O2OJo8dz7B#;23`jdA2oz z8QBV;YbPLKsf*B_!vUi*Pd2Muh57j?yj0uN*D*pZ;-kIM>^nw~m6|i{+UzHT2g|WPt9(Rlg_l(3xov8zX#XQXgXQH3Qqoc zO?QJ$nn2A?cj6L*I~Jsxa*P@*GnD^y!;btD!q}N-8`tBtcHT8wtVuq}RG4J^YN#9+2t)yn3pVzkTOU2M(IX%sY5m*)u^9#pIe^U#85?2%p z%%kST-maA(iL3~dT+QD=Qm?F*i@TGFPuKB$ImF{8%bfY8s$iX}Xw5+*E|bor_NDIpNjD{4HbFEE5RE_pX7bQYjfFX=1=gV5HU)QAT;|B|v(LQtC8^(KFg~Zo)@)o&ZcxIazZT z0{BnZ@K5mzI}b1C=G<-IMeHT@`Gn7HCcM(;R}v|xca$AHm@&P?fF;ff*{IevJRF=W z;-3_sXjhHULZKSXqWR@E#= zr9u`-ej+nYv;;zSoS~>V0%_G1cCr%Nglknzv=~t5hjE#?&)2Dgn{(rNW?nD?5&_qC zR<<#@l;AwFXYiiizcPJK&ovH)@NCEeLp*2`T*`pkC8p&;Vk-;17atM2B#9~Y4MqZQPkA!@6q&_G9Ze+sVa3Ri4Gin@2=@LLG}sGMc0>buXSZJ#T4@QeDp%f0*1*af_FcbGlkR70~;Np)#wz^I5|f1 zlSdu>Ul(^{CzOM_=?d>F{b0)sNM6mW=itQlHug2EeRYM{ELgCgc6I;#{={z1{8ph4Zp(F> z6HhTz_Ef`` z8JKpq5(r<~C(|(b#{Z^*iz==zJy}VYnvSCZ=RCuwsUe)INjI5X7*vo-NcAN1foS@`*tvs5!{AAyR&|_; zUV_$dNa$5AMraNyb04ch%oP*OlkFBaH}4@BERbN%4&{rv*|anfSNPWLfM)6Xkrf=D zaJ0|`R0rV}tTtpCzWwrbZlI3JyBvJdLe~^~+L-cw+MZ01BkIJ#ux}1tRRzzi7@rGM zWifl2NUCAF`b6rWhNJk_Zp zEN+)`Otn`ZGMcrnv(41aP7nFkbE8n6+_efOr5J59eX-T<&h7foQ5%^$xFd3-rX=I@ z^+k=AL*LcL=CNq{(a(NQPw+wZx~Fg-N3H#qpQvM$g{zf?g_|qKUmt&!ih3=eYaSnN`$6TqCLBsTGeHZXBw*j$dHKG1+FG^x z=cK`^(v+GBd$b+?dTTw##pP3)zVi7qY90Ht2}`UZ9p)no1XN6)Bp>l-*~bg5ag8?S z+?-hduzsNjS{3Sx+M=y93a=C82+$*M@=9i+8bUyA#@thXzt-(;k(hu92qmTsO$v_0 zWC2H%vtWoj+3{M8{1E1FdZy^wdg??4S%1y&AbNl&)`N6VV@C@24N)+Mn(n~DBH)@m zpt=)Pu0E!SXwAKO;zDvgt0PJ#2$03du%<(#D>~dPc(8FveSNp}07yA4Je_oGYpHXZ z#rljj%kv|{p+O+%(NOVAo(GG=Ax8lmWx-FSdmqQ<3_N&|(5d^XaU;GsJ48oI`T7aw zkD6Bfrs>VE)P*WIk5lR7@E20H*Wj&#;jg6!#T)vP6)#PYkM>BC>jllOnXP;Qt_YfR z9!W>9C@T0`;n`Ne4aB$fl)Cn~Zs`)ijkK!KfRN|0!SQnOP3?~DYM63QjB2qgqhEt* zz4{Ze;kTQL_k6Rj0v5L4R53AKW&$3KWS5Lxd&KctAV{~mp^%hio3C6P6ocE`D> zT&_E&cRl1OlWe20T!yvvX(9jSWs4j=2AkunA8cj0Rcx3u!c2KO%8Ms1rF3^($gk=P z4Huk!^iy6~C}AeHfDqI#q|K7voQd73m za<~QjC;{YuWdHImbsbnIK>;9DPwav#I1tP`>Q_@@8QM`vHnZft@fy;R=702%mk*Kd zm|01fWQZVoOf13%#4RS^8T3qLCiEdz)HIt@(6abev6Y|J__&3*D{AJd zf9}ui+^$+dCcwAkO4WHHI3Te!cmT7YnjT2E9NEu084x zKk#bV*J4FXA=17SD!Wosi|_;CC7y_J1UdnjVoGiXDY#Q_GSGZPSH4Qki=t98Oo(8L z#VoWqwSCXtIBp{j+O#nM(=RII;Jxm_8|NYCS)r?wpv?z71S@3A_Yvl6aTi5EzX_B}-Ul`oUiVpKoTqmAMoU#qTMK}gPM zGfG$K8h2iLB6I5@&dY+s}-Xq^jjI|e!U9Ndz z749V-&aWM3@P23r&G;j?yx5U`d2yU*)eRlWWpANwO`KFV?~Oh9ZwGil?X z@q#Zm`yDb2sU$g#BJPU1^QfUAi1wBTJMl6{9iciHHXi=$&=DnI?5oW0^CqLMQgPg+eBjM4eICn zp!tQ^qAhU_*v>@lIX^5ko#R)LaICf~pk;hP5}d-`ThWOX$J>-vV8UM|u|Fh=K<00I zj0g*Zi0Q*|Y3Nw-{f}b>1~d$R5AA;s>Iq#+J)D?t4tye*&w0Lxq2&~|D$2D|aX;y# zb$C=Cp4a>O_)LlbA2Yh9C&t-7;MTMNqUgX1;iLx`hHL1ABec_-`4#mJ-#UA9@Q&vC z_u=u$f*d88U1F6LPDfV7hw^>g;uO%gPk?~W@LOiP=5WGdp)Lj*o=SkRJ zZxX=V6q3fBwhwi}*dNDsJm^2n9nDl+9GzS_%p6@TV9lf-$UwP=lF;v5i@VKJ?0IxT zIsMp0e)wR6m9J!zLsK$-Q|wn~8fGRkXSf6I-n<%0#eF?_j^tk4xHVShuT>mmc*B%b$fi(iNM%$_ zXf9_ibWMZ(ftl)h%_zE@9^$rQ@97j4NH-mvXi)*>D1gQjji=)g639H-n2E7`H#5{1 z0vWz>V2YuI6-bx-PCWTkb{A%MgT3q?pS;;khKT4A2dK2U`b#lkoXbl_DMlQ8am&wQ zr#mqtlV1Lyaj+-C`$}da~ z9-I#)8^Pjd*m4!~3YzA(e~cgQ{rH(UIl;o08Q0~|{ZFp1EznCnmSn_Q;NAIZu7R-S=IXrc|7pMw=)*8Jr_^@?=}lxBQog-t_tpsC8OO^6bG)Qy zB`4U-F2Qm$$Kt-2BAtN`O_R~sHO*s5G!tdoLk&Mt*BgAR^WP>abeU6KZqV#0oi)S3 zX0o&sH<55cQG8M%=0a70ePL95^wZ5~X{JBU3p6zzszfCx?r6QI>R!JmUPEhyaYQa* zS>L@8wlsGD5BbEx$bn%fMC990?U0dH`88K3asG?cTmK9A=(-KNv!@GV8~WouOX2P9 zV79GTWPtONi%F#ROXdLhzZ{ngAA1FLO9s?=|GS}t(GI^7-`&;C(f%*rja8#}a}tKE zeknqmUsOkppQwxE6I4HsgEYXqIt~CM{d{PG_G3aRM3g3lZzRib=kaWsIarwB*s!n} z*c@*P_~g3=SB#$ozx#^9+UhZ@PlFsb2p`ExY0F(Y~Sba1n9a5GZ(cCv6afUT=tV-SjeFgk_WNOdh4QG(GPhgG&%il4?z8Gq6%elPj# zfRsTcX(EJ~C`J2dMDNAZ>XReT^dLe;iVV&m<@dKp+|MPxxyTt7;_UE{#=g9Cv*=;~ zm)^vwQ_Ve65Uv#C$|l7iqX}`2K=yT~tB?Am{ou4_xg&RJ8%`jf$|X+K9~C)$ma5rk z&7(BZDPgI>Th&GmTwlMzY7FjU{1Wb}a)sC#@=$Mog2R%OI-T4|{yWDRi?)Ho134m= z$g5VogNGiHX>g`lRbQ0Q<>*I3WD7Z8vD^M6i_D?u8-+xrT39g&x_bKrKc`bxdnQfA zkJht=PL=?Y+#Mf%`0Xn~J~O~##+Zr%c7^7lGzu(c@Cbx(zgXt`yef=k z{W) z{dup6_+9ZnM8gW{FIk4-@-KAxr>y>$`aPh6;rK7f#=ocj532vJeIE|~9l1H^>93pr m2ikr&a6dQyZJ-M3$NvXIQ~=1(kix-XK#wkHRWg4FJNrL7{mc0P literal 6370 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 d{?770H Date: Fri, 10 Jan 2025 11:02:52 +0530 Subject: [PATCH 6/9] CHANGE_IMPORT_TPA_ID_DUPLICATE_CHECK : RV --- app/Controllers/EmpDataServiceController.php | 36 ++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 40169e8b..ae04f357 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -1367,7 +1367,6 @@ class EmpDataServiceController extends BaseController } } - $emp_count = count($excel_data); //get the employee data for excel file validation @@ -1444,6 +1443,8 @@ class EmpDataServiceController extends BaseController $errors = []; // Initialize an array to store errors $missing_id = []; $batch_list_id = []; + $tpa_id_all = []; //this array to store all TPA ID + $tpa_id_duplicate = []; //store duplicate TPA ID foreach ($employee_data as $key => $emp_value) { @@ -1453,6 +1454,36 @@ class EmpDataServiceController extends BaseController break; } + //--- TPA ID Duplicate check start --- + + $current_tpa_id = $excel_data[$key][13]; + + if (isset($tpa_id_all[$current_tpa_id])) { + + // Add the current row to errors + $errors[$key][] = [ + 'row' => $key, + 'column' => 13, + 'db_data' => "Duplicate TPA ID Found", + 'excel_data' => $current_tpa_id + ]; + + // Add all existing rows with the same TPA ID to errors + foreach ($tpa_id_all[$current_tpa_id] as $existing_row) { + $errors[$existing_row][] = [ + 'row' => $existing_row, + 'column' => 13, + 'db_data' => "Duplicate TPA ID Found", + 'excel_data' => $current_tpa_id + ]; + } + + } else { + $tpa_id_all[$current_tpa_id][] = $key; + } + + //--- TPA ID Duplicate check end --- + if ($insurer_or_tpa == 'tpa') { if ($excel_data[$key][13] === null) { @@ -1610,7 +1641,8 @@ class EmpDataServiceController extends BaseController $batch_list_id[] = $emp_value['primaryKey']; } - + // dd($errors); + $error_count = count($errors); $json_errors = json_encode($errors); From ecec25490b72c5c9a541f89bd89a05140f39bbda Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 10 Jan 2025 17:24:57 +0530 Subject: [PATCH 7/9] CHANGE_BATCH_FILE_LIST_QUERY_CHANGES : RV --- app/Controllers/EmployeeController.php | 46 ++++++++++++++++++++------ 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index bbdabd87..b031e487 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -335,20 +335,46 @@ class EmployeeController extends AdminController ->find(); // dd($data['fileList']); - $data['batch_list'] = $this->batchFileModel->select( - 'batch_files.*, + $data['batch_list'] = $this->batchFileModel->select(" + + batch_files.id, + batch_files.client_id, + batch_files.client_policy_id, + batch_files.batch_code, + batch_files.file_name, + batch_files.insurer_or_tpa, + batch_files.event_type, + batch_files.actions, + batch_files.count, + batch_files.created_by, + batch_files.created_at, + batch_files.updated_by, + batch_files.updated_at, + batch_files.is_active, + batch_files.amount, + batch_files.status, + batch_files.client_branch_id, + + CASE + WHEN batch_files.status = 'partially success' THEN + batch_files.error_data + ELSE + error_data = null + END AS error_data, + clients.short_name as client_short_name, client_branch.branch_name, client_policy.policy_no, policy_type.policy_type - ') - ->join('client_policy', 'client_policy.id = batch_files.client_policy_id') - ->join('client_branch', 'client_branch.id = batch_files.client_branch_id') - ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') - ->join('clients', 'clients.id = client_policy.client_id') - ->orderBy('batch_files.id', 'desc') - ->limit(100) - ->find(); + + ") + ->join('client_policy', 'client_policy.id = batch_files.client_policy_id') + ->join('client_branch', 'client_branch.id = batch_files.client_branch_id') + ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') + ->join('clients', 'clients.id = client_policy.client_id') + ->orderBy('batch_files.id', 'desc') + ->limit(100) + ->find(); // dd($data['fileList']);die(); From e5dedf86c6bb9d7acc149394e627a37eebc3991f Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 11 Jan 2025 15:50:16 +0530 Subject: [PATCH 8/9] CHANGE_EXPORT_CD_TRANS_CHECK_CD_AC_PK :RV --- app/Controllers/EmpDataServiceController.php | 23 +++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index ae04f357..fa3d4378 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -157,7 +157,14 @@ class EmpDataServiceController extends BaseController return 5; } - $cash_balance = $this->clientDepositModel->where('cd_ac_no', $policy_details['cd_ac_no'])->orderBy('id', 'DESC')->first(); + $cash_balance = $this->clientDepositModel + ->where('cd_ac_pk', $policy_details['cd_ac_pk']) + // ->where('cd_ac_no', $policy_details['cd_ac_no']) + ->where('is_active', 1) + ->orderBy('id', 'DESC') + ->first(); + + // dd(db_connect()->getLastQuery(), $cash_balance); if ($cash_balance == null) { $balance = $this->CDMasterModel @@ -647,7 +654,12 @@ class EmpDataServiceController extends BaseController return 1; } - $cash_balance = $this->clientDepositModel->where('cd_ac_no', $policy_details['cd_ac_no'])->orderBy('id', 'DESC')->first(); + $cash_balance = $this->clientDepositModel + ->where('cd_ac_pk', $policy_details['cd_ac_pk']) + // ->where('cd_ac_no', $policy_details['cd_ac_no']) + ->where('is_active', 1) + ->orderBy('id', 'DESC') + ->first(); if ($cash_balance == null) { @@ -952,7 +964,12 @@ class EmpDataServiceController extends BaseController return 5; } - $cash_balance = $this->clientDepositModel->where('cd_ac_no', $policy_details['cd_ac_no'])->orderBy('id', 'DESC')->first(); + $cash_balance = $this->clientDepositModel + ->where('cd_ac_pk', $policy_details['cd_ac_pk']) + // ->where('cd_ac_no', $policy_details['cd_ac_no']) + ->where('is_active', 1) + ->orderBy('id', 'DESC') + ->first(); if ($cash_balance == null) { $balance = $this->CDMasterModel From f115e607ab8e7645fefcc5196cfd8a1c5daecef5 Mon Sep 17 00:00:00 2001 From: velz Date: Sat, 11 Jan 2025 22:34:00 +0530 Subject: [PATCH 9/9] FIX_INSURER_EXPORT_JOIN_CONDTION --- app/Controllers/EmployeeController.php | 10 ++-------- app/Models/EmployeePolicyModel.php | 4 ++++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index bbdabd87..b8a255df 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -313,14 +313,8 @@ class EmployeeController extends AdminController 'c.short_name', 'cb.branch_name', 'cp.id as client_policy_id', - '(SELECT COUNT(*) - FROM employees e - JOIN employee_polices ep ON e.id = ep.employee_id - WHERE e.file_id = files.id AND ep.client_policy_id = files.policy_id) as employee_count', - '(SELECT SUM(ep.rata_premimum) + SUM(ep.gst) - FROM employees e - JOIN employee_polices ep ON e.id = ep.employee_id - WHERE e.file_id = files.id AND ep.client_policy_id = files.policy_id) as total', + '"0" as employee_count', + '"0" as total', 'policy_type.policy_type' , 'cp.policy_no' , ]) diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 2c23c619..c7dce21a 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -225,6 +225,7 @@ class EmployeePolicyModel extends Model public function getInceptionEmployeeDataForExportExcel($ref_data, $return_type = 0) { + $client_id = $ref_data['client_id']; $client_policy_id = $ref_data['client_policy_id']; $client_branch_id = $ref_data['client_branch_id']; $insurer_or_tpa = $ref_data['insurer_or_tpa']; @@ -314,6 +315,9 @@ class EmployeePolicyModel extends Model WHERE batch_files.event_type = '{$event}' AND batch_files.actions = 'export' AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}' + AND batch_files.client_policy_id = '{$client_policy_id}' + AND batch_files.client_policy_id = '{$client_id}' + ) as batch_data ON employee_polices.id = batch_data.emp_policy_id WHERE employee_polices.client_policy_id = '{$client_policy_id}' AND (employee_polices.{$id} IS NULL OR employee_polices.{$id} = '')