diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 2e4e13af..bf8345f8 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -429,9 +429,14 @@ $routes->post("/employeeRest/verifyEmployeeEmailId", "RestAuthenticationControll $routes->post("/employeeRest/verifyHrWithMobileNumber", "RestAuthenticationController::verifyHrWithMobileNumber"); $routes->post("/employeeRest/getVerifiedHrData", "RestAuthenticationController::getVerifiedHrData"); +// Test initiate Claim +$routes->post('initiateClaim',"EmployeeRestController::initiateClaim"); + $routes->group("/api", ["filter" => "authJWT"], function ($routes) { $routes->post("logined", "RestAuthenticationController::logined"); $routes->post("getId", "RestAuthenticationController::getUserIdFromToken"); + $routes->post('initiateClaim',"EmployeeRestController::initiateClaim"); + }); $routes->get("getEmployeePolicy", "EmployeeRestController::getEmployeePolicy"); $routes->get("getAddOnPolicy", "EmployeeRestController::getAddOnPolicy"); @@ -474,6 +479,7 @@ $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { $routes->get("getEmployeeActiveOrInactivePolicy", "EmployeeRestController::getEmployeeActiveOrInactivePolicy"); $routes->get("getFEContent", "EmployeeRestController::getFEContent"); $routes->get("getAdvertisementImage", "EmployeeRestController::getAdvertisementImage"); + // $routes->post('postDataForTicket',"EmployeeRestController::postDataForTicket"); }); $routes->get("getEmployeeActiveOrInactivePolicy", "EmployeeRestController::getEmployeeActiveOrInactivePolicy"); $routes->get("sendPushNotification", "EmployeeRestController::sendPushNotification"); diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 5d24c70a..33de4fdb 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -29,10 +29,15 @@ use App\Models\FEContentModel; use App\Models\AddImgModel; use App\Models\ClientBranchModel; use App\Models\AuditHistoryModel; +use App\Models\TicketClaimStatusModel; +use App\Models\TicketMasterModel; +use App\Models\TicketMessageModel; + use App\Controllers\Jobs ; use App\Controllers\JobWorker ; +use App\Controllers\TicketController; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -73,6 +78,11 @@ class EmployeeRestController extends AdminController protected $addImgModel; protected $clientBranchModel; protected $auditHistoryModel; + protected $claimStatusModel; + protected $ticketMaster; + protected $ticketMessage; + + protected $ticketController; public function __construct() @@ -97,6 +107,11 @@ class EmployeeRestController extends AdminController $this->addImgModel = new AddImgModel(); $this->clientBranchModel = new ClientBranchModel(); $this->auditHistoryModel = new AuditHistoryModel(); + $this->claimStatusModel = new TicketClaimStatusModel(); + $this->ticketMaster = new TicketMasterModel(); + $this->ticketMessage = new TicketMessageModel(); + + $this->ticketController = new TicketController(); } @@ -3086,10 +3101,90 @@ class EmployeeRestController extends AdminController return false; } - + //Get Data from post for inserting ticket and message + public function initiateClaim() + { + + $received_data = $this->request->getPost(); + $employee_id = $received_data['emp_id']; + $client_policy_id = $received_data['client_policy_id']; + $insured_emp_id = $received_data['insured_emp_id']; + + $sql = "select cp.policy_type_id as ticket_type_id, + cl_rm.user_id as acm_id, + cp.insurer_id as insurer_id, + cp.tpa_id as tpa_id, + emp.client_id , + emp.id as emp_id, + emp_pol.uhid as policy_no, + emp.emp_code, + emp_pol.tpa_id as tpa_no, + emp.name as emp_name, + emp.email_corporate as emp_mail, + emp.mobile as emp_mobile, + empl.id as insured_emp_id, + empl.name as insured_name, + empl.relationship + from employees emp + + left join employees empl on empl.id = $insured_emp_id and empl.is_active = 1 and empl.emp_status = 'active' + left join employee_polices emp_pol on empl.id = emp_pol.employee_id and emp_pol.client_policy_id = $client_policy_id and emp_pol.is_active = 1 + left join client_policy cp on cp.id = emp_pol.client_policy_id and cp.is_active = 1 + left join client_rm cl_rm on cl_rm.client_id = empl.client_id and cl_rm.is_active = 1 and cl_rm.level = 3 + + where emp.id = $employee_id and emp.is_active = 1 and emp.emp_status = 'active' + limit 1 "; + + $fetchData = $this->employeeModel->query($sql)->getResultArray()[0]; + $fetchData['claim_status_id'] = $this->claimStatusModel->select('id')->where('ticket_type', $fetchData['ticket_type_id'])->first()['id']; + $fetchData['priority'] = 1; + $fetchData['mode_of_intimation'] = 1; + $fetchData['hospital_name'] = $received_data['hospital_name']; + + $insert_status = $this->ticketMaster->insert($fetchData); + $ticket_id = $this->ticketMaster->insertID(); + + if ($insert_status && !empty($ticket_id)) { + $mail_sent_status = ($this->ticketController->sendAutoMailTrigger($ticket_id)); + if (gettype($mail_sent_status) == 'array') { + $message = 'Claim Iniated Successfully'; + return $this->respond(['status' => true, 'code' => 200, 'message' => $message], 200); + } else { + $mail_sent_status = json_decode($mail_sent_status); + } + // dd(gettype($mail_sent_status)); + + if ($mail_sent_status->status == 'success') { + $sent_message_data['ticket_id'] = $ticket_id; + $sent_message_data['sender'] = 'user'; + $sent_message_data['emp_mail'] = $mail_sent_status->data->params->mail; + $sent_message_data['mail_subject'] = $mail_sent_status->data->params->subject; + $sent_message_data['mail_content'] = $mail_sent_status->data->params->message; + + $message_insert_status = $this->ticketMessage->insert($sent_message_data); + + if ($message_insert_status) { + $message = 'Claim Initiated Successfully'; + return $this->respond(['status' => true, 'code' => 200, 'message' => $message], 200); + } else { + $message = 'Claim Initiated, Mail Sent Successfully'; + $this->myLogger->logme('error', "Claim initiated, Mail sent Successfully, Failed to store message:$ticket_id "); + return $this->respond(['status' => false, 'code' => 400, 'message' => $message], 200); + } + } else { + + $message = 'Claim Initiated, Failed to send Mail '; + $this->myLogger->logme('error', "Claim initiated, Failed to send Mail :$ticket_id "); + return $this->respond(['status' => false, 'code' => 400, 'message' => $message], 200); + } + } else { + $message = 'Something Went Wrong'; + return $this->respond(['status' => false, 'code' => 400, 'message' => $message], 200); + } + } } \ No newline at end of file