From 0db6fdfeadd860c4a773d3b352425ad4d3fd7fcf Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 26 Apr 2024 11:25:07 +0530 Subject: [PATCH 1/3] FEAT_E_CARD_MAIL_SEND : RV --- app/Config/Routes.php | 2 +- app/Controllers/EmpDataServiceController.php | 71 ++++- app/Controllers/EmployeeController.php | 124 +++----- app/Helpers/utility_helper.php | 36 +++ app/Models/EmployeePolicyModel.php | 315 ++++++++++--------- app/Views/id_card_view.php | 5 - 6 files changed, 314 insertions(+), 239 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a1ad29d4..240671ef 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -17,7 +17,7 @@ $routes->get('/logout', 'LoginController::logout'); $routes->get('/oauth2callback', 'LoginController::receiveGoogleOAuthResponse'); $routes->get('/auth/google', 'LoginController::initiateGoogleOAuth'); $routes->get('/update-emp-policy-status', 'ClientController::updateEmpAndPolicyStatus'); -$routes->get('download-e-card/(:segment)/(:segment)', 'EmployeeController::generateIDCardForEmployee/$1/$2'); +$routes->get('download-e-card/(:segment)', 'EmployeeController::generateIDCardForEmployee/$1'); diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 80095b64..e2e50f9f 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -8,6 +8,7 @@ use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; use App\Helpers\DepositHelper; +use App\Helpers\MailHelper; use App\Models\EmployeeModel; @@ -644,7 +645,10 @@ class EmpDataServiceController extends BaseController ]; $this->cashDepositCalculationForInception($depositeData); - + + + $this->sendMailForDownloadingECard($empty_emp_tpa_uh_ids); + } @@ -1586,4 +1590,69 @@ class EmpDataServiceController extends BaseController return true; } + + + public function sendMailForDownloadingECard(array $ids) + { + try { + foreach ($ids as $key => $id) { + + $get_emp_email_and_other_details = $this->employeePolicyModel + ->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.name, employee_polices.rand_string, employee_polices.tpa_id') + ->join('employees', 'employees.id = employee_polices.employee_id') + ->where('employees.emp_status', 'active') + ->where('employees.is_active', '1') + ->where('employee_polices.status', 'active') + ->where('employee_polices.is_active', '1') + ->where('employee_polices.id', $id)->first(); + + if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "") { + + $name = $get_emp_email_and_other_details['name']; + $email = $get_emp_email_and_other_details['email_corporate']; + $rand_string = $get_emp_email_and_other_details['rand_string']; + $tpa_id = $get_emp_email_and_other_details['tpa_id']; + $link = generate_download_link($rand_string); + $subject = 'Download E-Card'; + + $html = ' +

Dear ' .$name .',

+

Your Policy( ' .$tpa_id .' ) has been successfully created. Please click the link below to download the insurance card:

+

Download Insurance Card

+

Thank you,

+ '; + + + + if ($email != null && $email != "") { + + $mail_data = [ + 'mail' => $email, + 'subject' => $subject, + 'message' => $html + ]; + + // dd($mail_data); + + $result = Mailhelper::send_email($mail_data); + $decoded_result = (array) json_decode($result); + + $data = [ + 'status' => $decoded_result['status'], + 'message'=>$decoded_result['message'] ?? 'Internal Server Error', + 'email' => $decoded_result['data'] + ]; + + // dd($data); + $this->myLogger->logme('error', 'status : {status}, message : {message}, email : {email}', $data); + } + } + } + return true; // Email(s) sent successfully + } catch (\Exception $e) { + // Log the error + $this->myLogger->log('error', 'Error occurred while sending email: ' . $e->getMessage()); + return false; // Email(s) sending failed + } + } } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index bfcc61d9..0efa458a 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -131,8 +131,8 @@ class EmployeeController extends AdminController // print_r($this->request->getPost('policies')); // print_r($this->request->getPost('upload-action-type')); // die(); - // $empServiceController = new EmployeeServiceController(); - // $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']); + $empServiceController = new EmployeeServiceController(); + $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']); // dd($res); // $empServiceController = new EmployeeServiceController(); @@ -723,7 +723,7 @@ class EmployeeController extends AdminController } - public function downloadFullExcelErrorFile($file_id = 137, $rowIndex = 1, $colIndex = 1) + public function downloadFullExcelErrorFile($file_id, $rowIndex = 1, $colIndex = 1) { // Get file data from the database $file_data = $this->fileModel->find($file_id); @@ -832,97 +832,61 @@ class EmployeeController extends AdminController // Return the response return $response; } - - public function generateIDCardForEmployee($emp_code, $client_policy_id) - { - $dompdf = new Dompdf(); + + public function generateIDCardForEmployee($rand_string) + { + $get_emp_code_and_client_policy_id = $this->employeePolicyModel + ->select('employee_polices.client_policy_id, employees.emp_code') + ->join('employees', 'employees.id = employee_polices.employee_id') + ->where('employees.emp_status', 'active') + ->where('employees.is_active', '1') + ->where('employee_polices.status', 'active') + ->where('employee_polices.is_active', '1') + ->where('employee_polices.rand_string', $rand_string)->first(); + + if($get_emp_code_and_client_policy_id == null || $get_emp_code_and_client_policy_id == ""){ + + $data['message'] = 'Record Not Found'; + return view('errors/404', $data); + + } + + $client_policy_id = $get_emp_code_and_client_policy_id['client_policy_id']; + $emp_code = $get_emp_code_and_client_policy_id['emp_code']; $data['data'] = $this->employeePolicyModel->getECardDataUsingMd5($client_policy_id, $emp_code); - // $this->loadLayout('id_card_view', $data); exit; - + // $this->loadLayout('id_card_view', $data);exit; $html = view('id_card_view', $data); - // $html = str_replace('', '', $html); + $dompdf = new Dompdf(); $dompdf->loadHtml($html); - - // (Optional) Setup the paper size and orientation $dompdf->setPaper('A4', 'landscape'); - - // Render the HTML as PDF $dompdf->render(); - // Output the generated PDF to Browser - $dompdf->stream(); - + $filename = 'ECard.pdf'; // Default filename + + foreach ($data['data'] as $key => $value) { + + if ($value['relationship'] == "Self") { + + $filename = $value['tpa_id']; // Update filename if relationship is "Self" + + } elseif (!empty($value['tpa_id']) && $filename == 'ECard.pdf') { + + $filename = $value['tpa_id']; + } + } + + $dompdf->stream($filename); } public function viewECard() { - $this->loadLayout('id_card_view'); + + $this->loadLayout('id_card_view'); + } - - public function truncateFileData() //truncateFileDataIn DB (de activate rows) - { - $file_id = $this->request->uri->getSegment(3); - // $file_id = 112; - $file = $this->fileModel->find($file_id); - // $file['action'] = 'si_enhancement'; - // $result = []; - // !dd($file); - if($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition') - { - $result = $this->employeeModel->getEmpListByFileId(file_id: $file_id,emp_status: ['active'],policy_status:['active']); - // ~dd($result); - if(count($result)) - { - return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'File data already processed'], 200); - } - 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(); - // $affectedRows = 10; - - //update file status - $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); - - return $this->respond(['dataStatus' => true,'code' => 200,'data' => round($affectedRows/2)], 200); - } - } - else if($file['action'] == 'si_enhancement' || $file['action'] == 'correction' || $file['action'] == 'deletion') - { - $res = $this->empEndorsementModel->select(['count(id) as count']) - ->where('emp_endorsement.file_id',$file_id) - ->groupStart() - ->where('emp_endorsement.endorsement_id is not null') - ->orwhereIn('emp_endorsement.status',['complete']) - ->groupEnd() - ->get() - ->getResult(); - // print_r($this->empEndorsementModel->getLastQuery()); - // echo $res[0]->count;die(); - if($res[0]->count == 0) - { - //update truncated status to db - $this->empEndorsementModel->where('file_id',$file_id) - ->set(['status' => 'truncated']) - ->update(); - //update file status - $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); - return $this->respond(['dataStatus' => true,'code' => 200,'data' => 'success'], 200); - } - else - { - return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'File data already processed'], 200); - } - } - - } diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php index 2ac23d6f..7e74234c 100644 --- a/app/Helpers/utility_helper.php +++ b/app/Helpers/utility_helper.php @@ -132,5 +132,41 @@ if(!function_exists('check_string_date')) +if (!function_exists('generate_download_link')) { + + function generate_download_link($rand_string) { + + // Generate the link using provided emp_code and client_policy_id + $link = htmlspecialchars(base_url('download-e-card/' . $rand_string)); + + // Return the link wrapped in anchor tag + // return 'Click To '; + return $link; + } +} + + + +if (!function_exists('generate_random_alphanumeric')) { + function generate_random_alphanumeric($length = 6) { + $random_string = ''; + for ($i = 0; $i < $length; $i++) { + $random_ascii = rand(0, 61); + if ($random_ascii < 10) { + $random_character = chr($random_ascii + 48); + } elseif ($random_ascii < 36) { + $random_character = chr($random_ascii + 55); + } else { + $random_character = chr($random_ascii + 61); + } + $random_string .= $random_character; + } + return $random_string; + } +} + + + + diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 3198d873..1e67186f 100644 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -30,12 +30,13 @@ class EmployeePolicyModel extends Model "created_by", "updated_by", "updated_at", + "rand_string", "is_active", ]; // Callbacks protected $allowCallbacks = true; - protected $beforeInsert = ["checkAndADDCreatedByValue"]; + protected $beforeInsert = ["checkAndADDCreatedByValue", "addRandomNumberBeforeInsert"]; protected $afterInsert = []; protected $beforeUpdate = ["checkAndUpdateUpdatedByValue"]; protected $afterUpdate = []; @@ -66,6 +67,14 @@ class EmployeePolicyModel extends Model return $data; } + protected function addRandomNumberBeforeInsert(array $data) + { + $random_number = generate_random_alphanumeric(); + $data['data']['rand_string'] = $random_number; + + return $data; + } + // ----------------------------------------------------------------------------------------------------- public function getEmployeePolicy($client_id,$policy_id,$status) { @@ -175,66 +184,66 @@ class EmployeePolicyModel extends Model public function getCorrectionEmployeesDataForExportExcel($ref_data) { - $client_id = $ref_data['client_id']; - $client_policy_id = $ref_data['client_policy_id']; - $insurer_or_tpa = $ref_data['insurer_or_tpa']; + $client_id = $ref_data['client_id']; + $client_policy_id = $ref_data['client_policy_id']; + $insurer_or_tpa = $ref_data['insurer_or_tpa']; - $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.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, - batch_data.emp_policy_id, - batch_data.bl AS batch_list_batch_code, - batch_data.bf AS batch_files_batch_code + $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.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, + batch_data.emp_policy_id, + batch_data.bl AS batch_list_batch_code, + batch_data.bf AS batch_files_batch_code - FROM - emp_endorsement - LEFT JOIN - employees ON employees.id = emp_endorsement.pk - LEFT JOIN - employee_polices ON employees.id = employee_polices.employee_id - LEFT JOIN ( - SELECT batch_list.emp_policy_id, - batch_list.batch_code AS bl, - batch_files.batch_code AS bf FROM - batch_files + emp_endorsement + LEFT JOIN + employees ON employees.id = emp_endorsement.pk LEFT JOIN - batch_list ON batch_files.batch_code = batch_list.batch_code - WHERE batch_files.event_type = 'correction' - AND batch_files.actions = 'export' - AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}' - ) AS batch_data ON emp_endorsement.pk = batch_data.emp_policy_id + employee_polices ON employees.id = employee_polices.employee_id + LEFT JOIN ( + SELECT batch_list.emp_policy_id, + batch_list.batch_code AS bl, + batch_files.batch_code AS bf + FROM + batch_files + LEFT JOIN + batch_list ON batch_files.batch_code = batch_list.batch_code + WHERE batch_files.event_type = 'correction' + AND batch_files.actions = 'export' + AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}' + ) AS batch_data ON emp_endorsement.pk = batch_data.emp_policy_id - WHERE batch_data.bf IS NULL - AND batch_data.bl IS NULL - AND employees.client_id = '{$client_id}' - AND employee_polices.client_policy_id = '{$client_policy_id}' - AND emp_endorsement.actions = 'c' - AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')"; + WHERE batch_data.bf IS NULL + AND batch_data.bl IS NULL + AND employees.client_id = '{$client_id}' + AND employee_polices.client_policy_id = '{$client_policy_id}' + AND emp_endorsement.actions = 'c' + AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')"; - // Execute the raw query - $query = $this->db->query($sql); + // Execute the raw query + $query = $this->db->query($sql); - // Get the result set - $result = $query->getResult(); + // Get the result set + $result = $query->getResult(); - return $result; + return $result; } @@ -242,106 +251,106 @@ class EmployeePolicyModel extends Model public function getSIEnhancementEmployeesDataForExportExcel($ref_data) { - $client_id = $ref_data['client_id']; - $client_policy_id = $ref_data['client_policy_id']; - $insurer_or_tpa = $ref_data['insurer_or_tpa']; + $client_id = $ref_data['client_id']; + $client_policy_id = $ref_data['client_policy_id']; + $insurer_or_tpa = $ref_data['insurer_or_tpa']; - $query = $this->db->query(" - SELECT - a.id as endorsement_primarykey, - 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_code AS emp_relationship_code, - 'Has Define' AS emp_type, - employee_polices.uhid AS risk_id, - employee_polices.pre_existing_alignments, - employee_polices.policy_end_date, - employee_polices.basic_cover_si as old_basic_cover_si, - employee_polices.rata_premimum as old_si_premium, - batch_data.emp_policy_id, - batch_data.bl AS batch_list_batch_code, - batch_data.bf AS batch_files_batch_code, - sidata.new_basic_cover_si, - sidata.new_si_premium, - sidata.date_of_coverage, - DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days, - sidata.new_si_premium - employee_polices.rata_premimum AS difference_premium, - ROUND((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365, 2) AS pro_rata_premimum, - ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS gst, - ((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS total - - FROM - emp_endorsement a - LEFT JOIN - employees ON employees.emp_code = a.emp_code - LEFT JOIN - employee_polices ON employees.id = employee_polices.employee_id - LEFT JOIN ( + $query = $this->db->query(" SELECT - aa.emp_code, - aa.new_value as 'new_basic_cover_si', - bb.new_value as 'new_si_premium', - cc.new_value as 'date_of_coverage' - FROM ( - SELECT - a1.emp_code, - a1.field_name, - a1.new_value - FROM - emp_endorsement as a1 - WHERE - a1.field_name = 'basic_cover_si' - ) aa - LEFT JOIN ( - SELECT - b1.emp_code, - b1.field_name, - b1.new_value - FROM - emp_endorsement as b1 - WHERE - b1.field_name = 'premium' - ) bb ON aa.emp_code = bb.emp_code - LEFT JOIN ( - SELECT - c1.emp_code, - c1.field_name, - c1.new_value - FROM - emp_endorsement as c1 - WHERE - c1.field_name = 'si_enhancement_date' - ) cc ON aa.emp_code = cc.emp_code - ) as sidata ON a.emp_code = sidata.emp_code - LEFT JOIN ( - SELECT DISTINCT - batch_list.emp_policy_id, - batch_list.batch_code AS bl, - batch_files.batch_code AS bf - FROM - batch_files - LEFT JOIN - batch_list ON batch_files.batch_code = batch_list.batch_code - WHERE - batch_files.event_type = 'si_enhancement' - AND batch_files.actions = 'export' - AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}' - ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id - WHERE - batch_data.bf IS NULL - AND batch_data.bl IS NULL - AND employee_polices.client_policy_id = '{$client_policy_id}' - AND employee_polices.is_active = '1' - AND (a.endorsement_id IS NULL OR a.endorsement_id = '') - AND a.field_name = 'si_enhancement_date' - "); + a.id as endorsement_primarykey, + 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_code AS emp_relationship_code, + 'Has Define' AS emp_type, + employee_polices.uhid AS risk_id, + employee_polices.pre_existing_alignments, + employee_polices.policy_end_date, + employee_polices.basic_cover_si as old_basic_cover_si, + employee_polices.rata_premimum as old_si_premium, + batch_data.emp_policy_id, + batch_data.bl AS batch_list_batch_code, + batch_data.bf AS batch_files_batch_code, + sidata.new_basic_cover_si, + sidata.new_si_premium, + sidata.date_of_coverage, + DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days, + sidata.new_si_premium - employee_polices.rata_premimum AS difference_premium, + ROUND((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365, 2) AS pro_rata_premimum, + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS gst, + ((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS total - // Get the result set - $results = $query->getResult(); - return $results; + FROM + emp_endorsement a + LEFT JOIN + employees ON employees.emp_code = a.emp_code + LEFT JOIN + employee_polices ON employees.id = employee_polices.employee_id + LEFT JOIN ( + SELECT + aa.emp_code, + aa.new_value as 'new_basic_cover_si', + bb.new_value as 'new_si_premium', + cc.new_value as 'date_of_coverage' + FROM ( + SELECT + a1.emp_code, + a1.field_name, + a1.new_value + FROM + emp_endorsement as a1 + WHERE + a1.field_name = 'basic_cover_si' + ) aa + LEFT JOIN ( + SELECT + b1.emp_code, + b1.field_name, + b1.new_value + FROM + emp_endorsement as b1 + WHERE + b1.field_name = 'premium' + ) bb ON aa.emp_code = bb.emp_code + LEFT JOIN ( + SELECT + c1.emp_code, + c1.field_name, + c1.new_value + FROM + emp_endorsement as c1 + WHERE + c1.field_name = 'si_enhancement_date' + ) cc ON aa.emp_code = cc.emp_code + ) as sidata ON a.emp_code = sidata.emp_code + LEFT JOIN ( + SELECT DISTINCT + batch_list.emp_policy_id, + batch_list.batch_code AS bl, + batch_files.batch_code AS bf + FROM + batch_files + LEFT JOIN + batch_list ON batch_files.batch_code = batch_list.batch_code + WHERE + batch_files.event_type = 'si_enhancement' + AND batch_files.actions = 'export' + AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}' + ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id + WHERE + batch_data.bf IS NULL + AND batch_data.bl IS NULL + AND employee_polices.client_policy_id = '{$client_policy_id}' + AND employee_polices.is_active = '1' + AND (a.endorsement_id IS NULL OR a.endorsement_id = '') + AND a.field_name = 'si_enhancement_date' + "); + + // Get the result set + $results = $query->getResult(); + return $results; } @@ -737,12 +746,14 @@ class EmployeePolicyModel extends Model ->where('e.is_active', '1') ->where('ep.status', 'active') ->where('ep.is_active', '1') - ->where('MD5(e.emp_code)', $emp_code) - ->where('MD5(ep.client_policy_id)', $client_policy_id) + ->where('e.emp_code', $emp_code) + ->where('ep.client_policy_id', $client_policy_id) ->get() ->getResultArray(); return $result; } + + } \ No newline at end of file diff --git a/app/Views/id_card_view.php b/app/Views/id_card_view.php index b646bb87..6ae6412c 100644 --- a/app/Views/id_card_view.php +++ b/app/Views/id_card_view.php @@ -70,11 +70,6 @@ - - button - - \ No newline at end of file From 6f319144f64e76c7e1570b4d20b1b54be3ad351a Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 26 Apr 2024 11:58:23 +0530 Subject: [PATCH 2/3] FIX_E_CARD_PDF_TITLE : RV --- app/Views/id_card_view.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Views/id_card_view.php b/app/Views/id_card_view.php index 6ae6412c..7c781b31 100644 --- a/app/Views/id_card_view.php +++ b/app/Views/id_card_view.php @@ -2,9 +2,15 @@ - - - Driving License ID Card + + NHANCE + + + + + + + /assets/images/Nhance_Favi.svg"> @@ -66,6 +72,7 @@ +
From e17fd4359437dfcbdd0ec841ece149bbe1f19295 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 26 Apr 2024 13:36:27 +0530 Subject: [PATCH 3/3] FIX_EXCEL_ERROR_FILE_ID_ERROR : RV --- app/Controllers/EmployeeController.php | 204 ++++++++++++------------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 0efa458a..f5d79461 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -131,8 +131,8 @@ class EmployeeController extends AdminController // print_r($this->request->getPost('policies')); // print_r($this->request->getPost('upload-action-type')); // die(); - $empServiceController = new EmployeeServiceController(); - $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']); + // $empServiceController = new EmployeeServiceController(); + // $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']); // dd($res); // $empServiceController = new EmployeeServiceController(); @@ -249,13 +249,13 @@ class EmployeeController extends AdminController { $file_id = $this->request->uri->getSegment(3); $empServiceController = new EmployeeServiceController(); - $result['file_id'] = $file_id; // Render views and capture output $result = $empServiceController->getExcelErrorData($file_id); if ($result != 0) { + $result['file_id'] = $file_id; echo view('excel_errors', $result); } else if ($result == 0) { @@ -728,109 +728,109 @@ class EmployeeController extends AdminController // Get file data from the database $file_data = $this->fileModel->find($file_id); - $error = json_decode($file_data['reason']); - // echo '
';
-        //    print_r($error); die;
-        //    dd($error);
-    
-        // Check if the file exists
-        if (!$file_data) {
-            $error_message = "File not found";
-            $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
-            return $error_message;
-        }
-    
-        $fileName = $file_data['file_name'];
-        $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
-    
-        // Check if the file exists
-        if (!file_exists($filePath)) {
-            $error_message = "File not found";
-            $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
-            return $error_message;
-        }
-    
-        // Load the Excel file
-        $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
-        $sheet = $spreadsheet->getActiveSheet();
-
-        //  echo '
';
-
-        foreach ($error->error_data as $index => $error_data) {
-
-            $rowIndex = $index+1;
-
-            if( $error->error_type == 1 ){
-
-                foreach ($error_data as $key => $value) {
-               
-                    $colIndex = $value->col_idx+1;
-                    
-                    $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
+        $error =  json_decode($file_data['reason']);
+            //    echo '
';
+            //    print_r($error); die;
+            //    dd($error);
         
-                    $newValue =  implode(', ',$value->error);
-                    $val = $originalValue . ' ( ' . $newValue . ' )';
-                    $sheet->setCellValue([$colIndex, $rowIndex],  $val);
-                
-                    $style = [
-                        'fill' => [
-                            'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
-                            'startColor' => ['rgb' => 'ffad99'] // Red color
-                        ]
-                    ];
-                    
-                    $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
-    
-                }
-            }else if( $error->error_type == 2){
-
-
-                foreach ($error_data as $key => $value) {
-               
-                    
-                    $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
-        
-                    $newValue =  implode(', ',$value->error);
-                    $val = $originalValue . ' ( ' . $newValue . ' )';
-                    $sheet->setCellValue([$colIndex, $rowIndex],  $val);
-                
-                    $style = [
-                        'fill' => [
-                            'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
-                            'startColor' => ['rgb' => 'ffad99'] // Red color
-                        ]
-                    ];
-                    $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
-    
-                }
-
+            // Check if the file exists
+            if (!$file_data) {
+                $error_message = "File not found";
+                $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+                return $error_message;
             }
+        
+            $fileName = $file_data['file_name'];
+            $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
+        
+            // Check if the file exists
+            if (!file_exists($filePath)) {
+                $error_message = "File not found";
+                $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+                return $error_message;
+            }
+        
+            // Load the Excel file
+            $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
+            $sheet = $spreadsheet->getActiveSheet();
 
-       }
-    
+            //  echo '
';
 
-    
-        // Create a new filename for the modified Excel file
-        $newFileName = 'modified_' . $fileName;
-    
-        // Save the modified Excel file to a new location
-        $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
-        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
-        $writer->save($newFilePath);
-    
-        // Set headers to force download
-        $response = service('response');
-        $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
-        $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
-        $response->setHeader('Cache-Control', 'max-age=0');
-        $response->setHeader('Content-Length', filesize($newFilePath));
-        $response->setBody(file_get_contents($newFilePath));
-    
-        // Delete the temporary file
-        unlink($newFilePath);
-    
-        // Return the response
-        return $response;
+            foreach ($error->error_data as $index => $error_data) {
+
+                $rowIndex = $index+1;
+
+                if( $error->error_type == 1 ){
+
+                    foreach ($error_data as $key => $value) {
+                
+                        $colIndex = $value->col_idx+1;
+                        
+                        $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
+            
+                        $newValue =  implode(', ',$value->error);
+                        $val = $originalValue . ' ( ' . $newValue . ' )';
+                        $sheet->setCellValue([$colIndex, $rowIndex],  $val);
+                    
+                        $style = [
+                            'fill' => [
+                                'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+                                'startColor' => ['rgb' => 'ffad99'] // Red color
+                            ]
+                        ];
+                        
+                        $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+        
+                    }
+                }else if( $error->error_type == 2){
+
+
+                    foreach ($error_data as $key => $value) {
+                
+                        
+                        $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
+            
+                        $newValue =  implode(', ',$value->error);
+                        $val = $originalValue . ' ( ' . $newValue . ' )';
+                        $sheet->setCellValue([$colIndex, $rowIndex],  $val);
+                    
+                        $style = [
+                            'fill' => [
+                                'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+                                'startColor' => ['rgb' => 'ffad99'] // Red color
+                            ]
+                        ];
+                        $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+        
+                    }
+
+                }
+
+        }
+        
+
+        
+            // Create a new filename for the modified Excel file
+            $newFileName = 'error_with_highlight_' . $fileName;
+        
+            // Save the modified Excel file to a new location
+            $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
+            $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
+            $writer->save($newFilePath);
+        
+            // Set headers to force download
+            $response = service('response');
+            $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+            $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
+            $response->setHeader('Cache-Control', 'max-age=0');
+            $response->setHeader('Content-Length', filesize($newFilePath));
+            $response->setBody(file_get_contents($newFilePath));
+        
+            // Delete the temporary file
+            unlink($newFilePath);
+        
+            // Return the response
+            return $response;
     }
 
     public function generateIDCardForEmployee($rand_string)