From a697183acd543de0936db825cb77d6b97a936614 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Wed, 13 Nov 2024 14:50:12 +0530 Subject: [PATCH] FEAT_EDIT_INDIVIDUAL_EMP_AND_VIEW_INDIVIDUAL_E_CARD_SEND_MAIL_E_CARD : RV --- app/Config/Routes.php | 5 + app/Controllers/EmpDataServiceController.php | 36 ++- app/Controllers/EmployeeController.php | 79 +++++- app/Models/EmployeePolicyModel.php | 33 ++- app/Views/employee_data_list.php | 277 +++++++++++++++++++ 5 files changed, 420 insertions(+), 10 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 9c7af0c5..e94c6ad4 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -304,6 +304,11 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("get_client_policy_list_for_remainder/(:any)", "EmployeeController::get_client_policy_list_for_remainder/$1"); $routes->get("get_client_branch_data/(:any)", "ClientController::get_client_branch_data/$1"); $routes->get("getLevelContects", "LeadsController::getLevelContects"); + $routes->get("get_emp_master_data_for_update/(:any)", "EmployeeController::get_emp_master_data_for_update/$1"); + $routes->get("send_mail_for_individual_employee_ecard/(:any)", "EmployeeController::send_mail_for_individual_employee_ecard/$1"); + $routes->post("update_emp_data", "EmployeeController::update_emp_data"); + $routes->get("checkDeletionGetDataFunction", "EmployeeController::checkDeletionGetDataFunction"); + }); $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) { diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 7ed5aae0..ff8e0413 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -4231,7 +4231,7 @@ class EmpDataServiceController extends BaseController return true; } - public function sendMailForDownloadingECard(array $ids) + public function sendMailForDownloadingECard(array $ids, $single_mail = null) { $this->myLogger->logme('error', 'sendMailForDownloadingECard - function called'); @@ -4276,7 +4276,6 @@ class EmpDataServiceController extends BaseController $this->myLogger->logme('error', 'sendMailForDownloadingECard - Send Bulk Mail function inside if condition ',); - $rand_string = $get_emp_email_and_other_details['rand_string']; $tpa_id = $get_emp_email_and_other_details['tpa_id']; @@ -4291,14 +4290,21 @@ class EmpDataServiceController extends BaseController if (isset($get_emp_email_and_other_details['email_corporate']) && !empty($get_emp_email_and_other_details['email_corporate']) && $get_emp_email_and_other_details['relationship'] == 'Self') { $wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params); - // print_r($wholeData);die; $count++; } $counts++; - + + $this->myLogger->logme('error', 'sendMailForDownloadingECard - counts : {data}', ['data' => $counts]); + $this->myLogger->logme('error', 'sendMailForDownloadingECard - count : {data}', ['data' => $count]); + $this->myLogger->logme('error', 'sendMailForDownloadingECard - ids count : {data}', ['data' => count($ids)]); + $this->myLogger->logme('error', 'sendMailForDownloadingECard - whole count : {data}', ['data' => count($wholeData)]); + if ($count == 20 || $counts == count($ids) - 1) { + + $this->myLogger->logme('error', 'sendMailForDownloadingECard - ids count : {data}', ['data' => count($ids)]); + if(count($wholeData) > 0){ $this->myLogger->logme('error', 'sendMailForDownloadingECard - create a job to bulk mail',); @@ -4309,6 +4315,27 @@ class EmpDataServiceController extends BaseController $count = 0; } + }else{ + + // for view member individual employee send self and self family ecard + if($single_mail){ + + if(count($wholeData) > 0){ + + $this->myLogger->logme('error', 'sendMailForDownloadingECard - create a job for single mail to bulk mail function',); + + $mail_send_return = MailHelper::send_email($wholeData[0]); + $this->myLogger->logme("info", $mail_send_return); + return $mail_send_return; + + // $job_details = new Jobs(); + // $r = Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]); + // $wholeData = []; + // $count = 0; + + } + + } } @@ -4329,6 +4356,7 @@ class EmpDataServiceController extends BaseController $this->myLogger->logme('error', 'sendMailForDownloadingECard - the client notification setup not created or not enabled the E-Card Notification'); return false; } + } else { $this->myLogger->logme('error', 'sendMailForDownloadingECard - employee_policy_ids are empty'); diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 2770ea29..841671a5 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -93,8 +93,10 @@ class EmployeeController extends AdminController $filterData = $this->request->getGet(); // Convert the status field to an array if it exists in the request data - if (isset($filterData['status'])) { + if (isset($filterData['status']) && !empty($filterData['status'])) { $filterData['status'] = explode(",", $filterData['status']); + }else{ + $filterData['status'] = []; } // Fetch employees with the modified $filterData array @@ -1709,4 +1711,79 @@ class EmployeeController extends AdminController return $this->respond(['status' => true, 'code' => 200, 'data' => $policies], 200); } + + + //-------- Edit individual employee and View & Send E-card ----------------------------------------------------------------------------------------- + + public function get_emp_master_data_for_update($id) + { + $employee_data = $this->employeeModel->select("employees.*, DATE_FORMAT(dob, '%d/%m/%Y') AS formatted_dob,")->where('id', $id)->first(); + + if ($employee_data) { + return $this->respond(['status' => true,'code' => 200,'data' => $employee_data,], 200); + } else { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'No data found.'], 404); + } + } + + public function update_emp_data() + { + $data = $this->request->getPost(); + + $data['dob'] = date('Y-m-d', strtotime($data['dob'])); + + // Fetch current employee data + $employee_data = $this->employeeModel->where('id', $data['employee_primary_id'])->first(); + + if ($employee_data['relationship'] == 'Self') { + + 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(); + } + } + + // Update the employee data + $result = $this->employeeModel->where('id', $data['employee_primary_id'])->set($data)->update(); + + if ($result) { + return $this->respond(['status' => true, 'code' => 200, 'data' => $data, 'message' => 'Employee updated successfully'], 200); + } else { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to update employee.'], 404); + } + } + + public function send_mail_for_individual_employee_ecard($id) + { + $ids[] = $id; + $empDataServiceController = new EmpDataServiceController(); + $result = $empDataServiceController->sendMailForDownloadingECard($ids, 1); + + if ($result) { + return $this->respond(['status' => true,'code' => 200,'message' => 'Mail sent successfully', 'result' => $result,], 200); + } else { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to sent mail.'], 404); + } + } + + public function checkDeletionGetDataFunction() + { + $batch_data = [ + 'client_id' => 77, + 'client_policy_id' => 203, + 'client_branch_id' => 53, + 'insurer_or_tpa' => 'tpa', + ]; + + $result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data); + + print_rr($result); die; + } + + } diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 00dff6ca..688b8abf 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -76,7 +76,7 @@ class EmployeePolicyModel extends Model } // ---------------------------------------------------------------------------------------------------------- - public function getEmployeePolicy($client_id = 0, $policy_id=0, $status=0, $branch_id=0, $emp_code="", $emp_name="") + public function getEmployeePolicy($client_id = 0, $policy_id=0, $status=[], $branch_id=0, $emp_code="", $emp_name="") { // dd($status); @@ -91,6 +91,7 @@ class EmployeePolicyModel extends Model 'tpab.branch_code as tpa_branch_code', 'cm.client_name', 'cm.short_name as client_short_name', + 'emp.id as employee_primary_id', 'emp.relationship', 'emp.relationship_code', 'emp.change_event', @@ -98,6 +99,7 @@ class EmployeePolicyModel extends Model 'emp.name', 'emp.email_corporate', 'emp.dob', + 'DATE_FORMAT(emp.dob, "%d/%m/%Y") AS formatted_dob', 'emp.gender', 'emp.emp_status', 'emp.is_active as emp_is_active', @@ -552,6 +554,27 @@ class EmployeePolicyModel extends Model $client_branch_id = $ref_data['client_branch_id']; $insurer_or_tpa = $ref_data['insurer_or_tpa']; + $get_insurer_id_from_client_policy = $this->db->table('client_policy') + ->select('insurer_id') + ->where('id', $client_policy_id) + ->get() + ->getRowArray(); + + $add_one_day = 0; + + if (!empty($get_insurer_id_from_client_policy)) { + + $get_the_insurer_add_one_for_delete = $this->db->table('insurers') + ->select('deletion_add_day') + ->where('id', $get_insurer_id_from_client_policy['insurer_id']) + ->get() + ->getRowArray(); + + if (!empty($get_the_insurer_add_one_for_delete) && $get_the_insurer_add_one_for_delete['deletion_add_day'] == 1) { + $add_one_day = 1; + } + } + $query = $this->db->query(" SELECT DISTINCT a.id as endorsement_primarykey, @@ -591,10 +614,10 @@ class EmployeePolicyModel extends Model deletiondata.reasonforexit, deletiondata.status, - DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + 1 AS no_of_days, - ROUND((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + 1)) / 365, 2) AS pro_rata_premium, - ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + 1)) / 365) * 0.18, 2) AS gst, - ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + 1)) / 365) + (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + 1)) / 365) * 0.18), 2) AS total + DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + '$add_one_day' AS no_of_days, + ROUND((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365, 2) AS pro_rata_premium, + ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18, 2) AS gst, + 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) AS total FROM emp_endorsement a LEFT JOIN diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php index 2a70d76a..8ca32f6b 100755 --- a/app/Views/employee_data_list.php +++ b/app/Views/employee_data_list.php @@ -78,6 +78,7 @@ (₹)Premium (₹)Pro Rata
Premium (₹)GST + Action @@ -135,6 +136,26 @@ + + + @@ -159,9 +180,11 @@ + Total + @@ -170,7 +193,82 @@ + + + +