diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 2df2ba04..3d8b8f42 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -421,6 +421,10 @@ $routes->cli('cli/check_bounce_mail_cli', 'MasterController::testCheckBounceMail $routes->cli('cli/app_check_list', 'MasterController::appCheckList'); $routes->cli('cli/new_gdrive_token', 'GoogleDriveController::generateNewGoogleDriveAccessToken'); +//crone job +$routes->cli('cli/enrollOpendAndClose', 'DashboardController::updatePolicyEnrollmentStatus'); +$routes->cli("cli/sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); + //Employee login api's $routes->post("/employeeRest/verifyEmployeeNumber", "RestAuthenticationController::verifyEmployeeWithMobileNumber"); $routes->post("/employeeRest/getVerifiedUserData", "RestAuthenticationController::getVerifiedUserData"); diff --git a/app/Controllers/Chatbot/MainMenuConversation.php b/app/Controllers/Chatbot/MainMenuConversation.php index 8a36512c..011806f0 100644 --- a/app/Controllers/Chatbot/MainMenuConversation.php +++ b/app/Controllers/Chatbot/MainMenuConversation.php @@ -56,7 +56,7 @@ class MainMenuConversation extends Conversation break; default: $this->say("Invalid selection. Please choose an option."); - $this->showMainMenu(); + $this->bot->startConversation(new MainMenuConversation()); break; } }); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 308cb9e3..4dd09ce2 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -4176,7 +4176,21 @@ class ClientController extends AdminController ->where('client_policy.id', $param) ->findAll(); - $dataForClientAndInsurer = []; + $dataForClientAndInsurer = $this->clientPolicyModel + ->select(" + clients.id AS client_id, + clients.client_name, + insurers.id AS insurer_id, + insurers.name AS insurer_name, + tpa.id AS tpa_id, + tpa.name AS tpa_name, + ") + ->join('clients', 'client_policy.client_id = clients.id', 'left') + ->join('insurers', 'client_policy.insurer_id = insurers.id', 'left') + ->join('tpa', 'client_policy.tpa_id = tpa.id', 'left') + ->where('client_policy.id', $param) + ->first(); + $memberData = []; // Respond based on the query result diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index 4df9136a..8ee7765d 100755 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -286,9 +286,11 @@ class DashboardController extends AdminController } $myLogger->logme('error', 'enrollment_status function completed'); + $myLogger->logme('error', 'updated Open Enrollment Policy count : "'.count($openEnrollment).'" and Close Enrollment Policy count : "'.count($closeEnrollment).'"'); + return $this->respond([ 'status' => true, - 'message' => 'updated Policy Enrollment Status', + 'message' => 'updated Open and Close Enrollment successfully', 'open_policy_count' => count($openEnrollment), 'close_policy_count' => count($closeEnrollment), 'open_policy_ids' => $openEnrollment, diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php index 92c19dc7..e3817ef5 100644 --- a/app/Controllers/TicketController.php +++ b/app/Controllers/TicketController.php @@ -98,7 +98,6 @@ class TicketController extends BaseController 6 => "Trigger 6", 7 => "Trigger 7" ]; - $this->placeHolders = [ '((ACM))' => 'acm', @@ -109,6 +108,7 @@ class TicketController extends BaseController '((INSURED_NAME))' => 'insured_name', '((CLAIM_NO))' => 'claim_number', '((RELATIONSHIP))' => 'relationship', + '((POLICY_TYPE))' => 'policy_type', ]; $this->ticketMasterModel = new TicketMasterModel(); @@ -332,7 +332,7 @@ class TicketController extends BaseController if ($return_value) { //mail trigger part $mail_responce = $this->sendAutoMailTrigger($return_value); - return $this->respond(['status' => true, 'code' => 200, 'data' => $ticket_data, "message" => "Claim created successfully", 'mail_responce' => $mail_responce], 200); + return $this->respond(['status' => true, 'ticket_id' => $return_value, 'code' => 200, 'data' => $ticket_data, "message" => "Claim created successfully", 'mail_responce' => $mail_responce], 200); } else { return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to create claim'], 200); } @@ -502,6 +502,7 @@ class TicketController extends BaseController try { // Fetch Ticket Data $ticket_data = $this->ticketMasterModel->getTicketDataByTicketID($ticket_id); + // print_r($ticket_data); die; if (!$ticket_data) { $this->myLogger->logme('error', "No ticket data found for Ticket ID: $ticket_id"); @@ -512,6 +513,7 @@ class TicketController extends BaseController // Fetch Email Template Data $template_data = $this->ticketMasterModel->getTemplateDataByTicketID($ticket_id); + // print_r($template_data); die; if (!$template_data) { $this->myLogger->logme('error', "No email template found for Claim Status ID: " . $ticket_data['claim_status_id']); @@ -524,14 +526,18 @@ class TicketController extends BaseController $subject = $this->replacePlaceholders($template_data['subject'], $ticket_data); $message = $this->replacePlaceholders($template_data['mail_content'], $ticket_data); + // print_r($subject); + // print_r($message); + // die; + // Validate Essential Fields if (empty($ticket_data['emp_mail'])) { - $this->myLogger->logme('error', "Employee email is missing for Ticket ID: $ticket_id"); + $this->myLogger->logme('error', "Employee email is missing for Ticket ID : '".$ticket_id ."'"); return null; } if (empty($subject) || empty($message)) { - $this->myLogger->logme('error', "Generated email content is empty for Ticket ID: $ticket_id"); + $this->myLogger->logme('error', "Generated email content is empty for Ticket ID: '".$ticket_id ."'"); return null; } @@ -544,6 +550,8 @@ class TicketController extends BaseController 'attachments' => [] ]; + // print_r($mailData); die; + $this->myLogger->logme('error', "Final Email Data"); return $mailData; @@ -559,10 +567,15 @@ class TicketController extends BaseController if (!empty($ticket_data) && !empty($content)) { foreach ($this->placeHolders as $key => $value) { - $replaceData = strtoupper($ticket_data[$value]) ?? ''; + if ($value == "emp_code") { $replaceData = $ticket_data[$value] ?? ''; + }else if($value == "policy_type"){ + $replaceData = str_replace("Claim-", "", $this->ticketType[$ticket_data['ticket_type_id']] ?? ""); + }else{ + $replaceData = strtoupper($ticket_data[$value]) ?? ''; } + $content = str_replace($key, $replaceData, $content); } } @@ -576,8 +589,12 @@ class TicketController extends BaseController public function sendTrigger($mail_content) { $this->myLogger->logme('error', "Sending email with content"); - - $response = MailHelper::send_email($mail_content); + if(!empty($mail_content)){ + $response = MailHelper::send_email($mail_content); + }else{ + $response = ['status' => false, 'code' => 404, 'message' => "Mail not sent, mail data empty"]; + $this->myLogger->logme('error', "Mail not sent, mail data empty"); + } $this->myLogger->logme('error', "Email sent response: " . json_encode($response)); @@ -634,6 +651,7 @@ class TicketController extends BaseController $mail_responce = []; if (!empty($auto_mail_enable) && $auto_mail_enable['is_auto_mail'] == 1) { $mail_content = $this->constructMailContent($ticket_id); + // print_r($mail_content); die; $mail_responce = $this->sendTrigger($mail_content); }elseif (!empty($auto_mail_enable) && $auto_mail_enable['is_auto_mail'] == 0 ){ $this->myLogger->logme('error','Auto Mail Not Sent, Reason: Automail Not Enabled'); diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php index 6571a34e..d8fd4894 100755 --- a/app/Models/EmployeeModel.php +++ b/app/Models/EmployeeModel.php @@ -106,7 +106,7 @@ class EmployeeModel extends Model public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [],array $relationship = [],array $client_branch_id = []) { - $result = $this->select(['employees.id as emp_id', 'employees.client_id','employees.client_branch_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employees.unit','employees.file_id','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policy_type.long_name as policy_name','client_policy.is_addon', 'employee_polices.payable_employee','employee_polices.rand_string']) + $result = $this->select(['employees.id as emp_id', 'employees.client_id','employees.client_branch_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employees.unit','employees.file_id','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policy_type.long_name as policy_name','client_policy.is_addon', 'employee_polices.payable_employee','employee_polices.rand_string','employee_polices.claim_status']) ->join('employee_polices', 'employee_polices.employee_id = employees.id') ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id') ->join('policy_type', 'policy_type.id = client_policy.policy_type_id','left') diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 67db3017..abe5ecc2 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -826,6 +826,7 @@ class EmployeePolicyModel extends Model employee_polices.rata_premimum as premium, employee_polices.claim_status, employee_polices.age_band, + employee_polices.tpa_id, batch_data.emp_policy_id AS emp_policy_id, @@ -1731,7 +1732,7 @@ class EmployeePolicyModel extends Model employee_polices ep WHERE ep.file_id = $file_id - AND ep.uhid IS NOT NULL' + AND ep.uhid IS NOT NULL AND ep.status != 'truncated' AND ep.status != 'truncated' AND ep.is_active = 1; diff --git a/app/Views/ticket_edit_onbording.php b/app/Views/ticket_edit_onbording.php index 02da248b..2928a664 100644 --- a/app/Views/ticket_edit_onbording.php +++ b/app/Views/ticket_edit_onbording.php @@ -10,7 +10,7 @@