diff --git a/app/Config/Routes.php b/app/Config/Routes.php index c5111235..b77e8f5e 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -31,6 +31,7 @@ $routes->get("sendCroneRemainderMail", "DashboardController::sendCroneRemainderM $routes->get("sendextraparam", "ClientController::sendextraparam"); $routes->get("updateRenewalData", "ClientController::updateRenewalData"); $routes->get("updateRenewalDataNotExistingClient", "ClientController::updateRenewalDataNotExistingClient"); +$routes->get("updateRenewalInsurerData", "ClientController::updateRenewalInsurerData"); // $routes->post("iAgreeForAddOn", "EmployeeRestController::iAgreeForAddOn"); // $routes->get("sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); // $routes->post("employeeUpload", "EmployeeRestController::employeeUpload"); @@ -441,13 +442,19 @@ $routes->post("/employeeRest/getVerifiedHrData", "RestAuthenticationController:: // Test initiate Claim $routes->post('initiateClaim',"EmployeeRestController::initiateClaim"); +$routes->get('departments',"EmployeeRestController::get_ticket_type"); +$routes->get('get_ticket_data',"EmployeeRestController::get_ticket_data"); + +//api $routes->group("/api", ["filter" => "authJWT"], function ($routes) { $routes->post("logined", "RestAuthenticationController::logined"); $routes->post("getId", "RestAuthenticationController::getUserIdFromToken"); $routes->post('initiateClaim',"EmployeeRestController::initiateClaim"); - + $routes->get('get_ticket_type',"EmployeeRestController::get_ticket_type"); + $routes->get('get_ticket_data',"EmployeeRestController::get_ticket_data"); }); + $routes->get("getEmployeePolicy", "EmployeeRestController::getEmployeePolicy"); $routes->get("getAddOnPolicy", "EmployeeRestController::getAddOnPolicy"); $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index ad575e27..b2111b27 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -4589,6 +4589,50 @@ class ClientController extends AdminController kint::dump($successData); } + public function updateRenewalInsurerData() + { + $db = db_connect(); + $renewalData = $db->table('old_renewal_data_copy') + ->where('insurer_id IS NULL') + ->get() + ->getResultArray(); + // dd($renewalData); + + $successData = []; + foreach ($renewalData as $key => $value) { + + $insurer_data = $this->insurerModel->where('name', $value['insurer_name'])->where('is_active', 1)->first(); + + if(!empty($insurer_data)){ + + $insurer_branch_data = $this->insurerBranchModel->where('branch_name', $value['insurer_branch'])->first(); + if(!empty($insurer_branch_data)){ + $branch = $this->insurerBranchModel->where('insurer_id', $insurer_data['id'] ?? 0)->first(); + $value['insurer_id'] = $insurer_data['id'] ?? null; + $value['insurer_branch_id'] = $branch['id'] ?? null; + }else{ + $value['insurer_id'] = $insurer_data['id'] ?? null; + $value['insurer_branch_id'] = $this->prepareInsurerBranch($value); + } + }else{ + $value['insurer_id'] = $this->prepareinsurer($value); + $value['insurer_branch_id'] = $this->prepareInsurerBranch($value); + } + + // Update is_inserted field in DB + $db->table('old_renewal_data_copy') + ->where('id', $value['id']) + ->set([ + 'insurer_id' => $value['insurer_id'], + 'insurer_branch_id' => $value['insurer_branch_id'], + ]) + ->update(); + + $successData[] = ['id' => $value['id'], 'insurer' => $value['insurer_name'], 'insurer_id' => $value['insurer_id'], 'insurer_branch_id' => $value['insurer_branch_id'], ]; + } + + kint::dump($successData); + } public function updateRenewalDataNotExistingClient() { @@ -4920,6 +4964,51 @@ class ClientController extends AdminController $id = $ClientModel->insert($clientData); return $id; } - + private function prepareInsurerBranch($renewalData) + { + + $insurerBranchData = [ + 'insurer_id' => $renewalData['insurer_id'], + 'branch_name' => $renewalData['insurer_branch'], + 'branch_code' => $renewalData['insurer_branch'], + 'address1' => null, + 'address2' => null, + 'city' => null, + 'district' => null, + 'state' => null, + 'pincode' => null, + ]; + + + + $InsurerBranchModel = new InsurerBranchModel(); + $id = $InsurerBranchModel->insert($insurerBranchData); + return $id; + } + + private function prepareinsurer($renewalData) + { + + $short_name1 = explode(" ", $renewalData['insurer_name'])[0]; + $short_name2 = explode(" ", $renewalData['insurer_name'])[1]; + $short_name = $short_name1 . ' ' . $short_name2; + + $insurerData = [ + 'type' => "pvt", + 'category' => "general", + 'addition_add_day' => 0, + 'deletion_add_day' => 0, + 'name' => $renewalData['insurer_name'], + 'short_name' => $short_name, + 'insurer_logo' => null, + 'is_multi_event' => 0, // Default is 0 + ]; + + $InsurerModel = new InsurerModel(); + $id = $InsurerModel->insert($insurerData); + return $id; + } + + } diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 40e85cd0..a0f5a49f 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -3108,48 +3108,78 @@ class EmployeeRestController extends AdminController { $received_data = $this->request->getPost(); + // print_r($received_data); die; $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 + $sql = " + select + cp.policy_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, + + CASE + WHEN cp.policy_type_id IN (2, 3, 4, 5) THEN 1 + WHEN cp.policy_type_id = 1 THEN 2 + WHEN cp.policy_type_id = 6 THEN 3 + WHEN cp.policy_type_id = 7 THEN 4 + ELSE NULL + END AS ticket_type_id + from employees emp - - 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 + 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['claim_status_id'] = $this->claimStatusModel + ->select('id') + ->where('ticket_type', $fetchData['ticket_type_id']) + ->orderBy('id', 'asc') + ->first()['id']; + $fetchData['priority'] = 1; $fetchData['mode_of_intimation'] = 1; - $fetchData['hospital_name'] = $received_data['hospital_name']; + $fetchData = array_merge($fetchData, $received_data); + // print_r($fetchData); die; $insert_status = $this->ticketMaster->insert($fetchData); $ticket_id = $this->ticketMaster->insertID(); if ($insert_status && !empty($ticket_id)) { + + $messagesData = [ + 'ticket_id' => $ticket_id ?? null, + 'sender' => 'user', + 'claim_status' => $fetchData['claim_status_id'] ?? null, + 'emp_mail' => $fetchData['emp_mail'] ?? null, + 'mail_subject' => $fetchData['subject'] ?? null, + 'mail_content' => $fetchData['message'] ?? null, + ]; + + if (!empty($messagesData['ticket_id'])) { + $TicketMessageModel = new TicketMessageModel(); + $TicketMessageModel->insert($messagesData); + } + $mail_sent_status = ($this->ticketController->sendAutoMailTrigger($ticket_id)); if (gettype($mail_sent_status) == 'array') { $message = 'Claim Iniated Successfully'; @@ -3187,6 +3217,66 @@ class EmployeeRestController extends AdminController return $this->respond(['status' => false, 'code' => 400, 'message' => $message], 200); } } - + + //department + public function get_ticket_type() + { + $ticket_type = $this->ticketController->ticketType; + $ticket_type = array_map(fn($value, $key) => (object) ['id' => $key, 'name' => $value], array_values($ticket_type), array_keys($ticket_type)); + // print_r($ticket_type); die; + return $ticket_type; + } + + //ticket data + public function get_ticket_data() + { + $priorityType = $this->ticketController->priorityType; + $modeOFIntimate = $this->ticketController->modeOFIntimate; + $claimType = $this->ticketController->claimType; + $relationshipType = $this->ticketController->relationshipType; + + $emp_id = $this->request->getGet('emp_id'); + // dd($emp_id); + + if (empty($emp_id)) { + return $this->response->setJSON(['error' => 'emp_id is required'])->setStatusCode(404); + } + + $TicketMasterModel = new TicketMasterModel(); + $ticket_data = $TicketMasterModel->get_ticket_data($emp_id); + + if (!empty($ticket_data)) { + + $client_claim_status = [ + 'Received' => [1, 2, 3, 4, 15, 16, 17, 18, 25, 26, 27, 28, 35, 36, 37, 38], + 'Rejected' => [8, 49, 55, 60], + 'Cancelled' => [13, 47, 53, 58], + 'Returned' => [14, 48, 54, 59], + 'Closed' => [12, 22, 32, 42], + 'Approved' => [9, 20, 30, 40], + 'Settled' => [11, 24, 34], + 'Under Process' => [5, 6, 7, 10, 19, 23, 45, 50, 29, 33, 51, 39, 43, 56], + ]; + + foreach ($ticket_data as $key => $value) { + foreach ($client_claim_status as $claim_key => $claim_value) { + if (in_array($value['claim_status_id'], $claim_value)) { // Corrected argument order + $ticket_data[$key]['claim_status'] = $claim_key ?? null; // Assign back to the main array + } + } + $ticket_data[$key]['priority_type'] = $priorityType[$value['priority']] ?? null; + $ticket_data[$key]['mode_of_intimate_type'] = $modeOFIntimate[$value['mode_of_intimation']] ?? null; + $ticket_data[$key]['relationship_type'] = ucfirst($value['relationship']) ?? null; + $claimPrimaryTypey = "1"; + if (in_array($value['claim_type'], [2, 3, 4])) { + $claimPrimaryTypey = "2"; + } + $ticket_data[$key]['claim_type_value'] = $claimType[$claimPrimaryTypey][$value['claim_type']] ?? null; + } + } + + // print_rr($ticket_data); die; + return $ticket_data; + } } \ No newline at end of file diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php index e1302f55..f4cc3bd6 100644 --- a/app/Controllers/TicketController.php +++ b/app/Controllers/TicketController.php @@ -26,14 +26,14 @@ class TicketController extends BaseController use ResponseTrait; protected $myLogger; - protected $ticketType; - protected $priorityType; - protected $relationshipType; - protected $modeOFIntimate; - protected $claimType; - protected $claimStatus; - protected $placeHolders; - protected $extraFields; + public $ticketType; + public $priorityType; + public $relationshipType; + public $modeOFIntimate; + public $claimType; + public $claimStatus; + public $placeHolders; + public $extraFields; protected $clientModel; protected $ticketMasterModel; diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php index 3f0d7a43..c8fcb855 100755 --- a/app/Models/ClientPolicyModel.php +++ b/app/Models/ClientPolicyModel.php @@ -259,6 +259,7 @@ class ClientPolicyModel extends Model ->select('SUM(CASE WHEN sub_type = 3 THEN amount ELSE 0 END) AS total_refund') ->where('client_id', $clientId) ->where('insurer_id', $insurerId) + ->where('cash_deposit.is_active', 1) ->get() ->getRow(); } diff --git a/app/Models/TicketMasterModel.php b/app/Models/TicketMasterModel.php index 4cb59773..01d90b17 100644 --- a/app/Models/TicketMasterModel.php +++ b/app/Models/TicketMasterModel.php @@ -676,5 +676,26 @@ class TicketMasterModel extends Model return $result; } } + + //api + public function get_ticket_data($emp_id, $ticket_type = null, $ticket_id = null) + { + $query = $this->select('*') + ->where('is_active', 1) + ->where('emp_id', $emp_id); + + if (!empty($ticket_id)) { + $query->where('id', $ticket_id); + } + + if (!empty($ticket_type)) { + $query->where('ticket_type_id', $ticket_type); + } + + $data = $query->findAll(); + // dd($data, db_connect()->getLastQuery()); + return $data; + } + }