diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 3e79d7a7..3ca47517 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -273,11 +273,15 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("get_client_details/(:any)", "ClientController::getClientDetails/$1"); $routes->get("featch_dashboard_data/(:any)", "DashboardController::featch_dashboard_data/$1"); $routes->get("remove_rack_rate/(:any)", "ClientController::removeRackRate/$1"); + $routes->get("get_client_policy_list_for_remainder/(:any)", "EmployeeController::get_client_policy_list_for_remainder/$1"); + $routes->get("send_manual_remainder/(:any)", "DashboardController::sendManualRemainder/$1"); + $routes->get("get_insurer_by_export_templete", "MasterController::getInsurerByExportTemplete"); + $routes->get("copy_insurer_templete/(:any)", "MasterController::copyInsurerTemplete/$1"); }); $routes->cli('cli/processjob', 'JobWorker::processJob'); $routes->cli('cli/processjobs', 'JobWorker::processJobs'); -$routes->cli('cli/enrollment_status', 'DashboardController::enrollment_status'); +$routes->cli('cli/updatePolicyEnrollmentStatus', 'DashboardController::updatePolicyEnrollmentStatus'); $routes->get("processjob", "JobWorker::processJob"); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 2c6111af..a5c6ebf0 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -2038,10 +2038,10 @@ class ClientController extends AdminController if ($record['open_for_enrollment'] == 0) { $open_for_enrollment_update_value = 1; - $message = 'Enrollment Opened Successfully'; + $message = 'Enrolment Opened Successfully'; } else if ($record['open_for_enrollment'] == 1) { $open_for_enrollment_update_value = 0; - $message = 'Enrollment Closed Successfully'; + $message = 'Enrolment Closed Successfully'; } $data = $this->policesModel->getPolicyPremium($record['policy_id']); @@ -2219,7 +2219,7 @@ class ClientController extends AdminController CASE WHEN client_policy.inception_type = 1 THEN "File Upload" - WHEN client_policy.inception_type = 2 THEN "Enrollment" + WHEN client_policy.inception_type = 2 THEN "Enrolment" ELSE "n/a" END as inception_type, diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index 79a90517..fe61b51f 100644 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -27,6 +27,10 @@ class DashboardController extends AdminController protected $messageModel; protected $clientModel; protected $userMessageModel; + protected $clientPolicyModel; + protected $notificationModel; + protected $employeePolicyModel; + protected $myLogger; public function __construct() @@ -34,32 +38,37 @@ class DashboardController extends AdminController set_session_context('Dashboard'); $this->messageModel = new MessageModel(); $this->userMessageModel = new UserMessageModel(); + $this->clientPolicyModel = new ClientPolicyModel(); + $this->notificationModel = new NotificationModel(); + $this->employeePolicyModel = new EmployeePolicyModel(); + $this->clientModel = new ClientModel(); + $this->myLogger = \Config\Services::mylogger(); - $this->clientModel = new ClientModel(); + } public function dashboard() { $data = []; - + $results = $this->clientModel->select('clients.id as client_id, clients.client_name, clients.short_name, client_branch.id as client_branch_id, client_branch.branch_name, client_branch.branch_code, employees.id as employee_id, employees.name as employee_name, employees.relationship, employees.emp_code, employees.emp_status, auth_history.user_type, client_policy.policy_type_id, client_policy.id as client_policy_id') - ->join('client_branch', 'clients.id = client_branch.client_id', 'left') - ->join('client_policy', 'client_branch.id = client_policy.client_branch_id', 'left') - ->join('employees', 'client_branch.id = employees.client_branch_id', 'left') - ->join('auth_history', 'employees.id = auth_history.user_id AND "employee" = auth_history.user_type', 'left') - ->findAll(); - + ->join('client_branch', 'clients.id = client_branch.client_id', 'left') + ->join('client_policy', 'client_branch.id = client_policy.client_branch_id', 'left') + ->join('employees', 'client_branch.id = employees.client_branch_id', 'left') + ->join('auth_history', 'employees.id = auth_history.user_id AND "employee" = auth_history.user_type', 'left') + ->findAll(); + $pendingActionsController = new PendingActionsController; $pendingActionsData = $pendingActionsController->getPendingActionsForDashBoard(); $groupedData = []; - + foreach ($results as $row) { $clientId = $row['client_id']; $clientName = $row['client_name']; @@ -70,7 +79,7 @@ class DashboardController extends AdminController $clientPolicyId = $row['client_policy_id']; $policyTypeId = $row['policy_type_id']; - $employeeId =''; + $employeeId = ''; if ($employeeId != $row['employee_id']) { $employeeId = $row['employee_id']; } else { @@ -104,7 +113,7 @@ class DashboardController extends AdminController 'employees' => [] ]; } - + // Add the client policy to the branch's policies list if it exists, not already added, and policyTypeId is not equal to 1 if ($clientPolicyId !== null && $policyTypeId != 1 && !in_array(['client_policy_id' => $clientPolicyId, 'policy_type_id' => $policyTypeId], $groupedData[$clientId]['branches'][$branchId]['client_policies'])) { $groupedData[$clientId]['branches'][$branchId]['client_policies'][] = [ @@ -112,8 +121,8 @@ class DashboardController extends AdminController 'policy_type_id' => $policyTypeId ]; } - - // Append employee info to the branch's employees list if relationship is 'Self' and not already added + + // Append employee error to the branch's employees list if relationship is 'Self' and not already added $employeeKey = $employeeId . '-' . $employeeName; // unique key to identify an employee if ($employeeId !== null && $employeeRelationship == 'Self' && !isset($groupedData[$clientId]['branches'][$branchId]['employees'][$employeeKey])) { $groupedData[$clientId]['branches'][$branchId]['employees'][$employeeKey] = [ @@ -142,7 +151,7 @@ class DashboardController extends AdminController } $client['branches'] = array_values($client['branches']); } - + $data['client_branch_emp_list'] = $groupedData; $session = \Config\Services::session(); $session->set('enrollment_data', json_encode($data)); @@ -150,15 +159,12 @@ class DashboardController extends AdminController $data['pendingActionsData'] = $pendingActionsData; // print_r($data);die; - + echo view('layout/header'); echo view('DashBoard', $data); echo view('layout/footer'); } - - - public function getDashboardNotifications() { @@ -187,89 +193,61 @@ class DashboardController extends AdminController } - public static function enrollment_status() { + public function updatePolicyEnrollmentStatus() + { $clientModel = new ClientModel(); $clientPolicyModel = new ClientPolicyModel(); $notificationModel = new NotificationModel(); $employeePolicyModel = new EmployeePolicyModel(); $myLogger = \Config\Services::mylogger(); - $client_policy_data = $clientPolicyModel->findAll(); + // $myLogger->logme('error', 'enrollment_status function called'); + + $client_policy_data = $clientPolicyModel->getPolicyDetailsForRemainder(); + $myLogger->logme('error', 'Fetched client policy data'); + + // dd($client_policy_data); + $currentDate = date('d'); + // $myLogger->logme('error', 'Current date: ' . $currentDate); // Update policy status based on start and end dates foreach ($client_policy_data as $client_policy) { + $id = $client_policy['id']; $openDate = date('d', strtotime($client_policy['open_date'])); $closeDate = date('d', strtotime($client_policy['close_date'])); + + // $myLogger->logme('error', 'Processing client policy ID: ' . $id); + // $myLogger->logme('error', 'Open date: ' . $openDate . ', Close date: ' . $closeDate); + if ($currentDate == $openDate) { $clientPolicyModel->update($id, ['open_for_enrollment' => 1]); - } - + $myLogger->logme('error', 'Updated policy ID ' . $id . ' to open for enrollment.'); + } + if ($closeDate < $currentDate) { $clientPolicyModel->update($id, ['open_for_enrollment' => 0]); + $myLogger->logme('error', 'Updated policy ID ' . $id . ' to close for enrollment.'); } } - $reminder_whole_mail = []; - - foreach ($client_policy_data as $client_policy) { - // Fetch client data - $client_data = $clientModel->find($client_policy['client_id']); - - // Fetch notification settings - $notification_data = $notificationModel->where('client_id', $client_policy['client_id']) - ->where('template_name', 'member_reminder_mail') - ->first(); - - // Check if notification should be sent - if ($notification_data && $notification_data['enabled'] == 1 && $currentDate == date('d', strtotime($client_policy['reminder_date'])) ) { - // Fetch all employees related to the client policy - $employees = $employeePolicyModel->select('employees.*') - ->join('employees', 'employee_polices.employee_id = employees.id', 'left') - ->where('employee_polices.client_policy_id', $client_policy['id']) - ->where('employees.emp_status', 'draft') - ->where('employee_polices.status', 'draft') - ->where('employees.relationship', 'Self') - ->findAll(); - // Process each employee - foreach ($employees as $employee) { - if($employee['emp_status'] == 'draft' && $employee['relationship'] == 'Self'){ - $params['emp_data'] = $employee; - $params['client_data'] = $client_data; - $params['notification_data'] = $notification_data; - - // Send the mail notification - $reminder_whole_mail[] = sendMailNotification::sendMailNotification('member_reminder_mail', $params); - } - } - } - } - - // Process and queue bulk emails - $temp_whole_data = []; - $count = 0; - - foreach ($reminder_whole_mail as $whole_index => $values) { - foreach ($values as $index => $value) { - $temp_whole_data[] = $value; - $count++; - - if ($count == 20 || ($whole_index == count($reminder_whole_mail) - 1 && $index == count($values) - 1)) { - if (!empty($temp_whole_data)) { - Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]); - $temp_whole_data = []; - $count = 0; - } - } - } - } - if(count($temp_whole_data) > 0){ - Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]); + // Mail send function + // $myLogger->logme('error', 'Calling sendRemainderMail function'); + if( $currentDate == date('d', strtotime($client_policy['reminder_date']))){ + $result = $this->sendRemainderMail($client_policy_data); + }else{ + $result = false; } - return json_encode(true); + // $myLogger->logme('error', 'enrollment_status function completed'); + if($result){ + return json_encode(['status' => true, 'message' => 'Mail send successfully']); + }else{ + return json_encode(['status' => false, 'message' => 'There is no data to send']); + } } + public function featch_dashboard_data($type) { @@ -308,4 +286,128 @@ class DashboardController extends AdminController } + public function sendRemainderMail($client_policy_data) + { + // $this->myLogger->logme('error', 'sendRemainderMail function called'); + + $reminder_whole_mail = []; + + foreach ($client_policy_data as $client_policy) { + + // Fetch client data + $client_data = $this->clientModel->find($client_policy['client_id']); + + // Fetch notification settings + $notification_data = $this->notificationModel + ->where('client_id', $client_policy['client_id']) + ->where('template_name', 'member_reminder_mail') + ->first(); + + // $this->myLogger->logme('error', 'Notification data fetched: ' . json_encode($notification_data)); + + // Check if notification should be sent + if ($notification_data && $notification_data['enabled'] == 1 && !empty($notification_data['mail_content'])) { + $this->myLogger->logme('error', 'Notification should be sent for client policy ID: ' . $client_policy['id']); + + // Fetch all employees related to the client policy + $employees = $this->employeePolicyModel + ->select('employees.*') + ->join('employees', 'employee_polices.employee_id = employees.id', 'left') + ->where('employee_polices.client_policy_id', $client_policy['id']) + ->where('employees.emp_status', 'draft') + ->where('employees.is_active', 1) + ->where('employee_polices.status', 'draft') + ->where('employee_polices.is_active', 1) + ->where('employees.relationship', 'Self') + ->findAll(); + + // Process each employee + foreach ($employees as $employee) { + + if ($employee['emp_status'] == 'draft' && $employee['relationship'] == 'Self') { + $this->myLogger->logme('error', 'Employee status and relationship check passed for employee ID: ' . $employee['id']); + + // Mail params + $params['emp_data'] = $employee; + $params['client_data'] = $client_data; + $params['notification_data'] = $notification_data; + + // Send the mail notification + $mail_result = sendMailNotification::sendMailNotification('member_reminder_mail', $params); + // $this->myLogger->logme('error', 'Mail sent result: ' . json_encode($mail_result)); + $reminder_whole_mail[] = $mail_result; + } + } + } else { + $this->myLogger->logme('error', 'Notification not sent for client policy ID: ' . $client_policy['id']); + } + } + + $this->myLogger->logme('error', 'Whole email, count: ' . $reminder_whole_mail); + + // Process and queue bulk emails + $temp_whole_data = []; + $count = 0; + + foreach ($reminder_whole_mail as $whole_index => $values) { + foreach ($values as $index => $value) { + $temp_whole_data[] = $value; + $count++; + $this->myLogger->logme('error', 'Queueing email, count: ' . $count); + + if ($count == 20 || ($whole_index == count($reminder_whole_mail) - 1 && $index == count($values) - 1)) { + if (!empty($temp_whole_data)) { + Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]); + $this->myLogger->logme('error', 'Added bulk mail job: ' . json_encode($temp_whole_data)); + $temp_whole_data = []; + $count = 0; + } + } + } + } + + if (count($temp_whole_data) > 0) { + Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]); + $this->myLogger->logme('error', 'Added final bulk mail job: ' . json_encode($temp_whole_data)); + return true; + } + + if(count($reminder_whole_mail) > 0){ + return true; + }else{ + return false; + } + + } + + + public function sendManualRemainder($client_id, $client_branch_id) + { + $this->myLogger->logme('error', "sendManualRemainder called with client_id: {$client_id}, client_branch_id: {$client_branch_id}"); + + $client_policy_data = $this->clientPolicyModel->getPolicyDetailsForRemainder($client_id, $client_branch_id); + // print_r($client_policy_data); die; + // print_r($this->clientPolicyModel->getLastQuery()); die; + // $this->myLogger->logme('error', "Policy details fetched: " . json_encode($client_policy_data)); + + if ($client_policy_data) { + $result = $this->sendRemainderMail($client_policy_data); + $this->myLogger->logme('error', "Manual Remainder Mail sending result: " . ($result ? 'success' : 'failure')); + + if ($result) { + $this->myLogger->logme('error', 'Manual Remainder Mail sent successfully'); + return $this->respond(['status' => true, 'code' => 200, 'message' => 'Mail sent successfully'], 200); + } else { + $this->myLogger->logme('error', 'Failed to send manual remainder mail, no data to send'); + return $this->respond(['status' => false, 'code' => 200, 'message' => 'There is no data to send','message2' => 'Failed' ], 200); + } + + } else { + $this->myLogger->logme('error', 'No policy data found to send'); + return $this->respond(['status' => false, 'code' => 200, 'message' => 'There is no data to send', 'message2' => 'No policy data found to send'], 200); + } + } + + + } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 82328ba1..10ad95c4 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -192,6 +192,7 @@ class EmployeeController extends AdminController // } if ($this->request->getMethod() == 'post') { + //validate uploaded file $filename = ''; $validated = $this->validate([ @@ -255,7 +256,7 @@ class EmployeeController extends AdminController //for TPA/insurer upload $data['events'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement']; //for inception upload - $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addtion' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrollment']; + $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addtion' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrolment']; $data['import_or_export'] = ['import' => 'Import', 'export' => 'Export']; $data['insurer_or_tpa'] = ['insurer' => 'Insurer', 'tpa' => 'TPA']; @@ -1563,7 +1564,10 @@ class EmployeeController extends AdminController foreach($data as $key => $member ) { // ~dd($member); - $data[$key]['policy_details']['no_of_days'] = $member['policy_details']['date_coverage'] ? (calculate_days_bw_dates($member['policy_details']['date_coverage'],$member['policy_details']['policy_end_date'])->days + 1) : ''; + if(is_array($member)) + { + $data[$key]['policy_details']['no_of_days'] = $member['policy_details']['date_coverage'] ? (calculate_days_bw_dates($member['policy_details']['date_coverage'],$member['policy_details']['policy_end_date'])->days + 1) : ''; + } } return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $data], 200); @@ -1642,4 +1646,20 @@ class EmployeeController extends AdminController } } + + public function get_client_policy_list_for_remainder($client_id, $client_branch_id) + { + $policies = $this->clientPolicyModel + ->select('client_policy.*, policy_type.policy_type as policy_name') + ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') + ->where('client_policy.client_id', $client_id) + ->where('client_policy.client_branch_id', $client_branch_id) + ->where('client_policy.is_active', 1) + ->where('client_policy.policy_status', 1) + ->whereIn('client_policy.policy_type_id', [2, 3]) + ->findAll(); + + return $this->respond(['status' => true, 'code' => 200, 'data' => $policies], 200); + + } } diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 01735912..9f928ce0 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -560,7 +560,7 @@ class EmployeeRestController extends AdminController // Set the header for download - $filename = $empData[0]['policy_name'].'-Enrollment.xlsx'; + $filename = $empData[0]['policy_name'].'-Enrolment.xlsx'; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $filename . '"'); header('Cache-Control: max-age=0'); diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php index 5c099fe8..a0d5f694 100644 --- a/app/Controllers/JobWorker.php +++ b/app/Controllers/JobWorker.php @@ -6,6 +6,7 @@ namespace App\Controllers; use App\Models\JobModel; +use App\Models\FileModel; class JobWorker extends AdminController { const STATUS_DONE = 'done'; @@ -287,23 +288,24 @@ class JobWorker extends AdminController try { $response = $jobHandler($payload,$job->id); + $job_status = self::STATUS_DONE; } catch(\Exception $e) { $job_status = self::STATUS_FAILED; $runtime = $runtime === null ? microtime(true) - $start : $runtime; - $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString()]; + $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString(),'scope' => 'task failed']; } $runtime = microtime(true) - $start; - $job_status = self::STATUS_DONE; + } catch (\Exception $e) { //die(); $job_status = self::STATUS_FAILED; $runtime = $runtime === null ? microtime(true) - $start : $runtime; - $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString()]; + $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString(),'scope' => 'worker failed']; } $db->query("UPDATE jobs SET status=?, run_time=?, response=? WHERE id=? AND uuid=?", [ @@ -313,6 +315,21 @@ class JobWorker extends AdminController $job->id,$job->uuid ]); + //update file status if this job is directly linked with a file id + + if($job_status == self::STATUS_FAILED) + { + //get file from job payload + if(array_key_exists('file_id', $payload) && $payload['file_id'] != NULL && $payload['file_id'] != "" && is_numeric($payload['file_id']) && count($payload) == 1) + { + $fileModel = new FileModel(); + $fileModel->where('id', $payload['file_id']) + ->set(['status' => 'failed','reason' => json_encode(['error_type' => 0,'error_summary' => [0],'error_data' => 'System Error, please contact Admin/Support team']) ]) + ->update(); + } + + } + // echo "Job $job->id $job_status. Response - $response \n"; // echo "Job $job->id $job_status \n"; SELF::streamOutput("Job $job->id $job_status \n"); diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php index 603f9e51..969f01c6 100644 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -29,6 +29,7 @@ use App\Models\StateModel; use App\Models\PolicyTypeModel; use App\Models\CDMasterModel; use App\Models\ClientDepositModel; +use App\Models\InsurerExcelExportTemplateModel; class MasterController extends AdminController { @@ -52,6 +53,7 @@ class MasterController extends AdminController protected $CDMasterModel; protected $clientModel; protected $clientDepositModel; + protected $insurerTemplateModel; @@ -60,7 +62,7 @@ class MasterController extends AdminController set_session_context('Master'); $this->myLogger = \Config\Services::mylogger(); - $this->insurerModel = new ClientModel(); + // $this->insurerModel = new ClientModel(); $this->userModel = new UserModel(); // $this->insurerBranchModel = new ClientBranchModel(); $this->insurerKYCDocsModel = new ClientKYCDocsModel(); @@ -79,6 +81,7 @@ class MasterController extends AdminController $this->CDMasterModel = new CDMasterModel(); $this->clientModel = new ClientModel(); $this->clientDepositModel = new ClientDepositModel(); + $this->insurerTemplateModel = new InsurerExcelExportTemplateModel(); } @@ -150,6 +153,7 @@ class MasterController extends AdminController $editData['insurer'] = $this->insurerModel->where(['id' => $id, 'is_active' => 1])->first(); $editData['insuer_branch'] = $this->insurerBranchModel->where(['insurer_id' => $id, 'is_active' => 1])->findAll(); + $editData['insurer_templete_count'] = $this->insurerTemplateModel->where(['insurer_id' => $id, 'is_active' => 1])->countAllResults(); // echo "
";
@@ -209,7 +213,8 @@ class MasterController extends AdminController
$insert = $this->insurerModel->insert($data);
if($insert){
$insurer_data = $this->insurerModel->where(['id' => $insert, 'is_active' => 1])->first();
- echo json_encode(array("status" => true , 'data' => $insurer_data));
+ $insurer_templete_count = $this->insurerTemplateModel->where(['insurer_id' => $insert, 'is_active' => 1])->countAllResults();
+ echo json_encode(array("status" => true , 'data' => $insurer_data, 'templete_count' => $insurer_templete_count));
}else{
echo json_encode(array("status" => false));
}
@@ -337,6 +342,44 @@ class MasterController extends AdminController
}
}
+ public function getInsurerByExportTemplete()
+ {
+ $insurer_data = $this->insurerModel
+ ->select('insurers.name as insurer_name, insurers.id, insurers.is_multi_event')
+ ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = insurers.id')
+ ->groupBy('insurers.id')
+ ->findAll();
+
+ return $this->respond(['status' => true, 'code' => 200, 'data' => $insurer_data], 200);
+ }
+
+ public function copyInsurerTemplete($existing_insurer_id, $copy_insurer_id)
+ {
+ $insurer_templete_data = $this->insurerTemplateModel->where('insurer_id', $existing_insurer_id)->findAll();
+ $existing_insurer_templete_data = $this->insurerTemplateModel->where('insurer_id', $copy_insurer_id)->delete();
+
+ $data_to_insert = [];
+ foreach ($insurer_templete_data as $value) {
+ $data_to_insert[] = [
+ "insurer_id" => $copy_insurer_id,
+ "policy_type_id" => $value['policy_type_id'],
+ "event_name" => $value['event_name'],
+ "type_name" => $value['type_name'],
+ "jsoncolumns" => $value['jsoncolumns'],
+ "created_by" => get_session_user(),
+ "is_active" => 1,
+ ];
+ }
+
+ $insert_result = $this->insurerTemplateModel->insertBatch($data_to_insert);
+ if($insert_result){
+ return $this->respond(['status' => true, 'message' => 'Template added successfully', $insurer_templete_data]);
+ }else{
+ return $this->respond(['status' => true, 'message' => 'Failed to add template', $insurer_templete_data]);
+ }
+
+
+ }
// Insurer Ends
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index 29027630..506b6605 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -388,5 +388,26 @@ public function getCliendDataForExcelFileName($client_policy_id){
}
+//for this using in CRONE JOB
+public function getPolicyDetailsForRemainder($client_id = null, $branch_id = null)
+{
+ $builder = $this->table('client_policy')
+ ->where('client_policy.is_addon', 1)
+ ->where('client_policy.open_for_enrollment', 1)
+ ->where('client_policy.inception_type', 2)
+ ->where('client_policy.is_active', 1)
+ ->where('client_policy.policy_status', 1)
+ ->whereIn('client_policy.policy_type_id', [2, 3]);
+
+ if ($client_id && $branch_id) {
+ $builder->where('client_policy.client_id', $client_id)
+ ->where('client_policy.client_branch_id', $branch_id);
+ }
+
+ return $builder->get()->getResultArray();
+
+
+ }
+
}
diff --git a/app/Views/DashBoard.php b/app/Views/DashBoard.php
index c174e936..8f2a5aff 100644
--- a/app/Views/DashBoard.php
+++ b/app/Views/DashBoard.php
@@ -59,7 +59,7 @@ body {