diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f16118f9..4aa34b5d 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -338,6 +338,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get('transformMailContent', 'LeadsController::transformMailContent'); $routes->get('getCDAmount', 'ClientController::getCDAmount'); $routes->get('getTheEmpDataForClaim/(:any)', 'ClientController::getTheEmpDataForClaim/$1'); + $routes->get('getTheEmpDataForClaimSearchByMobile/(:any)', 'ClientController::getTheEmpDataForClaimSearchByMobile/$1'); }); $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) { diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index ad47e155..a1b12fd6 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -4140,44 +4140,176 @@ class ClientController extends AdminController } } - public function getTheEmpDataForClaim($client_policy_id) + // -----------Function for Claim Module-------------------------------------------------------------------------------------------- + + public function getTheEmpDataForClaim($param, $type = null) { - $data = $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, - - employees.id as emp_id, - employees.name as emp_name, - employees.emp_code, - employees.mobile as emp_mobile, - employees.email_corporate as emp_email, - - employee_polices.uhid as policy_no, - ") + // Construct the base query + $data = $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, + employees.id AS emp_id, + employees.name AS emp_name, + employees.emp_code, + employees.mobile AS emp_mobile, + employees.email_corporate AS emp_email, + employees.relationship AS emp_relationship, + employee_polices.uhid AS policy_no + ") ->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') ->join('employees', 'clients.id = employees.client_id', 'left') ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left') - ->where('client_policy.id',) ->where('client_policy.is_active', 1) ->where('insurers.is_active', 1) ->where('tpa.is_active', 1) ->where('employees.is_active', 1) + ->where('employees.relationship', "Self") ->where('employee_polices.is_active', 1) - ->where('client_policy.id', $client_policy_id) + ->where('client_policy.id', $param) ->findAll(); + + $dataForClientAndInsurer = []; + $memberData = []; - if($data){ - return $this->respond(['status' => true, 'code' => 200, 'data' => $data], 200); - } else { - return $this->respond(['status' => false, 'code' => 404, 'message' => 'no data found', "client_policy_id" =>$client_policy_id], 200); - } + // Respond based on the query result + if (!empty($data) || !empty($dataForClientAndInsurer)) { + return $this->respond([ + 'status' => true, + 'code' => 200, + 'message' => 'Data found', + 'data' => $data, + 'param' => $param, + 'type' => $type, + 'dataForClientAndInsurer' => $dataForClientAndInsurer, + 'memberData' => $memberData + ], 200); + } else { + return $this->respond([ + 'status' => false, + 'code' => 404, + 'message' => 'No data found', + 'param' => $param, + 'type' => $type, + 'dataForClientAndInsurer' => $dataForClientAndInsurer, + 'memberData' => $memberData + ], 404); + } + } + + public function getTheEmpDataForClaimSearchByMobile($param, $type = 'mobile') + { + $field_name = 'employees.' . $type; + + // Construct the base query + $data = $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, + employees.id AS emp_id, + employees.name AS emp_name, + employees.emp_code, + employees.mobile AS emp_mobile, + employees.email_corporate AS emp_email, + employees.relationship AS emp_relationship, + employee_polices.uhid AS policy_no, + employee_polices.tpa_id AS tpa_no + ") + ->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') + ->join('employees', 'clients.id = employees.client_id', 'left') + ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left') + ->where('client_policy.is_active', 1) + ->where('insurers.is_active', 1) + ->where('tpa.is_active', 1) + ->where('employees.is_active', 1) + ->where('employees.relationship', "Self") + ->where('employee_polices.is_active', 1) + ->where($field_name, $param) + ->groupBy('employees.id') + ->orderBy('employees.id', 'DESC') + ->first(); + + $memberData = []; + $dataForClientAndInsurer = []; + + $acms = db_connect()->table('user_profiles') + ->select('user_profiles.id, user_profiles.first_name') + ->where('user_profiles.is_active', 1) + ->where('user_profiles.role', 3) + ->get() + ->getResultArray(); + + if(!empty($data) && count($data) > 0){ + + $memberData = $this->employeeModel + ->select(" + employees.id AS emp_id, + employees.name AS emp_name, + employees.emp_code, + employees.mobile AS emp_mobile, + employees.email_corporate AS emp_email, + employees.relationship AS emp_relationship, + employee_polices.uhid AS policy_no, + employee_polices.tpa_id AS tpa_no + ") + ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left') + ->where('employees.is_active', 1) + ->where('employee_polices.is_active', 1) + ->where('employees.emp_code', $data['emp_code']) + ->groupBy('employees.id') + ->findAll(); + + $acms = $this->clientRMModel + ->select('user_profiles.id, user_profiles.first_name') + ->join('clients', 'client_rm.client_id = clients.id', 'left') + ->join('user_profiles', 'client_rm.user_id = user_profiles.id', 'left') + ->where('clients.is_active', 1) + ->where('client_rm.is_active', 1) + ->where('user_profiles.is_active', 1) + ->where('clients.id', $data['client_id']) + ->findAll(); + } + + + + // Respond based on the query result + if (!empty($data)) { + return $this->respond([ + 'status' => true, + 'code' => 200, + 'message' => 'Data found', + 'data' => $data, + 'param' => $param, + 'type' => $type, + 'dataForClientAndInsurer' => $dataForClientAndInsurer, + 'memberData' => $memberData, + 'acms' => $acms, + ], 200); + } else { + return $this->respond([ + 'status' => false, + 'code' => 404, + 'message' => 'No data found', + 'param' => $param, + 'type' => $type, + 'dataForClientAndInsurer' => $dataForClientAndInsurer, + 'memberData' => $memberData, + 'acms' => $acms + ], 200); + } } + } diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php index be7b08e3..56ea6a4a 100644 --- a/app/Controllers/TicketController.php +++ b/app/Controllers/TicketController.php @@ -14,6 +14,8 @@ use App\Models\TicketNoteModel; use Psr\Log\LoggerInterface; use Kint\Kint; +use App\Helpers\MailHelper; + use CodeIgniter\API\ResponseTrait; class TicketController extends BaseController @@ -92,9 +94,16 @@ class TicketController extends BaseController 7 => "Trigger 7" ]; - $this->placeHolders = ['member_name', 'nhance_logo', 'tpa_id', 'ecard_download_link', - 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', - 'client_name']; + $this->placeHolders = [ + + '((ACM))' => 'acm', + '((ACM_CONTACT))' => 'acm_mobile', + '((EMPLOYEE_NAME)' => 'emp_name', + '((EMPLOYEE_ID))' => 'emp_code', + '((CORPORATE_NAME))' => 'client_name', + '((INSURED_NAME]' => 'insured_emp_name', + '((CLAIM_NO))' => 'claim_no', + ]; $this->ticketMasterModel = new TicketMasterModel(); $this->claimStatus = new TicketClaimStatusModel(); @@ -127,25 +136,25 @@ class TicketController extends BaseController $search_data = $this->request->getPost(); // print_r($search_data); $where = []; - foreach ($search_data as $search_objects => $key){ - if ($key != null && $key != '' && $key!= 0 ){ + foreach ($search_data as $search_objects => $key) { + if ($key != null && $key != '' && $key != 0) { $where[$search_objects] = $key; } } // print_rr($where); $data = $this->ticketMasterModel - ->select('ticket_master.id, ticket_claim_status.claim_status as status, + ->select('ticket_master.id, ticket_claim_status.claim_status as status, ticket_master.claim_number as claim_no,ticket_master.tpa_id,ticket_master.emp_name, insurers.name as insurer_name, clients.client_name, DATE_FORMAT(ticket_master.created_at, "%d-%m-%Y") as tat') - ->join('insurers','insurers.id = ticket_master.insurer_id and insurers.is_active = 1','left') - ->join('clients','clients.id = ticket_master.client_id and clients.is_active = 1','left') - ->join('ticket_claim_status','ticket_claim_status.id = ticket_master.claim_status_id and ticket_claim_status.is_active = 1','left') - ->where('ticket_master.is_active',1) - ->where($where) - ->findAll(); - // print_rr($data); - // log_message('error',' Claims Master Data '.json_encode($data));die(); + ->join('insurers', 'insurers.id = ticket_master.insurer_id and insurers.is_active = 1', 'left') + ->join('clients', 'clients.id = ticket_master.client_id and clients.is_active = 1', 'left') + ->join('ticket_claim_status', 'ticket_claim_status.id = ticket_master.claim_status_id and ticket_claim_status.is_active = 1', 'left') + ->where('ticket_master.is_active', 1) + ->where($where) + ->findAll(); + // print_rr($data); + // log_message('error',' Claims Master Data '.json_encode($data));die(); // print_rr($data);die(); return $data; } @@ -171,7 +180,7 @@ class TicketController extends BaseController ->get() ->getResultArray(); - $data['claim_status'] = db_connect()->table('ticket_claim_status') + $data['claim_status'] = $this->claimStatus ->select('ticket_claim_status.*') ->where('ticket_claim_status.is_active', 1) ->where('ticket_claim_status.ticket_type', $ticket_type) @@ -201,7 +210,6 @@ class TicketController extends BaseController // dd($ticket_data); $data = $this->ticket_form_data($ticket_data['ticket_type_id']); $data['ticket_data'] = $ticket_data; - $data['ticket_note'] = $this->ticketNoteModel->where('is_active', 1)->findAll(); return $this->loadLayout('ticket_edit_onbording', $data); } @@ -283,6 +291,7 @@ class TicketController extends BaseController $ticket_data = $this->request->getPost(); $ticket_data = $this->formatDateForClaim($ticket_data); // print_rr($ticket_data); die; + $old_ticket_data = $this->ticketMasterModel->where('id', $ticket_id)->where('is_active', 1)->first(); if($ticket_data){ $return_value = $this->ticketMasterModel->where('id', $ticket_id)->set($ticket_data)->update(); @@ -355,4 +364,28 @@ class TicketController extends BaseController } + public function sendTringger($ticket_id = 13) + { + $ticket_data = $this->ticketMasterModel->where('id', $ticket_id)->where('is_active', 1)->first(); + + $template_data = $this->claimStatus + ->select('ticket_mail_template.*') + ->join('ticket_mail_template', 'ticket_mail_template.trigger_type = ticket_claim_status.trigger_type') + ->where('ticket_mail_template.is_ative', 1) + ->where('ticket_claim_status.is_ative', 1) + ->where('id', $ticket_data['claim_status_id']) + ->first(); + + if(!empty($template_data)){ + $res = MailHelper::send_email(['mail' => $ticket_data['emp_email'], 'subject' => 'Mail Via Attachment Testing URL', 'message' => "",'attachments' => []]); + } + } + + public function placeholderReplace($template_data, $ticket_data) + { + $placeholders = $this->placeHolders; + + } + + } \ No newline at end of file diff --git a/app/Views/ticket_form_gmc.php b/app/Views/ticket_form_gmc.php index f2417633..2f27908a 100644 --- a/app/Views/ticket_form_gmc.php +++ b/app/Views/ticket_form_gmc.php @@ -78,19 +78,19 @@