From 0911e33588e3322866490b4d5b0eb36753200a43 Mon Sep 17 00:00:00 2001 From: velz Date: Fri, 27 Dec 2024 14:53:20 +0530 Subject: [PATCH] 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();