CHANGE_CLAIMS_MODEULE : RV

This commit is contained in:
VENKATESHWARAN 2025-01-29 14:53:02 +05:30
parent 55e4b9ec17
commit 3e382d5c6e
5 changed files with 703 additions and 276 deletions

View File

@ -338,6 +338,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->get('transformMailContent', 'LeadsController::transformMailContent'); $routes->get('transformMailContent', 'LeadsController::transformMailContent');
$routes->get('getCDAmount', 'ClientController::getCDAmount'); $routes->get('getCDAmount', 'ClientController::getCDAmount');
$routes->get('getTheEmpDataForClaim/(:any)', 'ClientController::getTheEmpDataForClaim/$1'); $routes->get('getTheEmpDataForClaim/(:any)', 'ClientController::getTheEmpDataForClaim/$1');
$routes->get('getTheEmpDataForClaimSearchByMobile/(:any)', 'ClientController::getTheEmpDataForClaimSearchByMobile/$1');
}); });
$routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) { $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {

View File

@ -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(" // Construct the base query
$data = $this->clientPolicyModel
clients.id as client_id, ->select("
clients.id AS client_id,
clients.client_name, clients.client_name,
insurers.id as insurer_id, insurers.id AS insurer_id,
insurers.name as insurer_name, insurers.name AS insurer_name,
tpa.id as tpa_id, tpa.id AS tpa_id,
tpa.name as tpa_name, tpa.name AS tpa_name,
employees.id AS emp_id,
employees.id as emp_id, employees.name AS emp_name,
employees.name as emp_name,
employees.emp_code, employees.emp_code,
employees.mobile as emp_mobile, employees.mobile AS emp_mobile,
employees.email_corporate as emp_email, employees.email_corporate AS emp_email,
employees.relationship AS emp_relationship,
employee_polices.uhid as policy_no, employee_polices.uhid AS policy_no
") ")
->join('clients', 'client_policy.client_id = clients.id', 'left') ->join('clients', 'client_policy.client_id = clients.id', 'left')
->join('insurers', 'client_policy.insurer_id = insurers.id', 'left') ->join('insurers', 'client_policy.insurer_id = insurers.id', 'left')
->join('tpa', 'client_policy.tpa_id = tpa.id', 'left') ->join('tpa', 'client_policy.tpa_id = tpa.id', 'left')
->join('employees', 'clients.id = employees.client_id', 'left') ->join('employees', 'clients.id = employees.client_id', 'left')
->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left') ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left')
->where('client_policy.id',)
->where('client_policy.is_active', 1) ->where('client_policy.is_active', 1)
->where('insurers.is_active', 1) ->where('insurers.is_active', 1)
->where('tpa.is_active', 1) ->where('tpa.is_active', 1)
->where('employees.is_active', 1) ->where('employees.is_active', 1)
->where('employees.relationship', "Self")
->where('employee_polices.is_active', 1) ->where('employee_polices.is_active', 1)
->where('client_policy.id', $client_policy_id) ->where('client_policy.id', $param)
->findAll(); ->findAll();
if($data){ $dataForClientAndInsurer = [];
return $this->respond(['status' => true, 'code' => 200, 'data' => $data], 200); $memberData = [];
// 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 { } else {
return $this->respond(['status' => false, 'code' => 404, 'message' => 'no data found', "client_policy_id" =>$client_policy_id], 200); 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);
}
}
} }

View File

@ -14,6 +14,8 @@ use App\Models\TicketNoteModel;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Kint\Kint; use Kint\Kint;
use App\Helpers\MailHelper;
use CodeIgniter\API\ResponseTrait; use CodeIgniter\API\ResponseTrait;
class TicketController extends BaseController class TicketController extends BaseController
@ -92,9 +94,16 @@ class TicketController extends BaseController
7 => "Trigger 7" 7 => "Trigger 7"
]; ];
$this->placeHolders = ['member_name', 'nhance_logo', 'tpa_id', 'ecard_download_link', $this->placeHolders = [
'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link',
'client_name']; '((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->ticketMasterModel = new TicketMasterModel();
$this->claimStatus = new TicketClaimStatusModel(); $this->claimStatus = new TicketClaimStatusModel();
@ -171,7 +180,7 @@ class TicketController extends BaseController
->get() ->get()
->getResultArray(); ->getResultArray();
$data['claim_status'] = db_connect()->table('ticket_claim_status') $data['claim_status'] = $this->claimStatus
->select('ticket_claim_status.*') ->select('ticket_claim_status.*')
->where('ticket_claim_status.is_active', 1) ->where('ticket_claim_status.is_active', 1)
->where('ticket_claim_status.ticket_type', $ticket_type) ->where('ticket_claim_status.ticket_type', $ticket_type)
@ -201,7 +210,6 @@ class TicketController extends BaseController
// dd($ticket_data); // dd($ticket_data);
$data = $this->ticket_form_data($ticket_data['ticket_type_id']); $data = $this->ticket_form_data($ticket_data['ticket_type_id']);
$data['ticket_data'] = $ticket_data; $data['ticket_data'] = $ticket_data;
$data['ticket_note'] = $this->ticketNoteModel->where('is_active', 1)->findAll();
return $this->loadLayout('ticket_edit_onbording', $data); return $this->loadLayout('ticket_edit_onbording', $data);
} }
@ -283,6 +291,7 @@ class TicketController extends BaseController
$ticket_data = $this->request->getPost(); $ticket_data = $this->request->getPost();
$ticket_data = $this->formatDateForClaim($ticket_data); $ticket_data = $this->formatDateForClaim($ticket_data);
// print_rr($ticket_data); die; // print_rr($ticket_data); die;
$old_ticket_data = $this->ticketMasterModel->where('id', $ticket_id)->where('is_active', 1)->first();
if($ticket_data){ if($ticket_data){
$return_value = $this->ticketMasterModel->where('id', $ticket_id)->set($ticket_data)->update(); $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;
}
} }

View File

@ -78,19 +78,19 @@
<div class="form-group col-md-3"> <div class="form-group col-md-3">
<label for="insurer_id">Insurer<span class="text-danger"></span></label> <label for="insurer_id">Insurer<span class="text-danger"></span></label>
<input type=hidden id="insurer_id" name="insurer_id" value="<?= isset($ticket_data['insurer_id']) ? $ticket_data['insurer_id'] : '' ?>"> <input type=hidden id="insurer_id" name="insurer_id" value="<?= isset($ticket_data['insurer_id']) ? $ticket_data['insurer_id'] : '' ?>">
<input type=text class="form-control" id="insurer_name" placeholder="Insurer" value="<?= isset($ticket_data['insurer_name']) ? $ticket_data['insurer_name'] : '' ?>"> <input type=text class="form-control" id="insurer_name" placeholder="Insurer" value="<?= isset($ticket_data['insurer_name']) ? $ticket_data['insurer_name'] : '' ?>" readonly>
</div> </div>
<div class="form-group col-md-3"> <div class="form-group col-md-3">
<label for="tpa_id">TPA<span class="text-danger"></span></label> <label for="tpa_id">TPA<span class="text-danger"></span></label>
<input type=hidden id="tpa_id" name="tpa_id" value="<?= isset($ticket_data['tpa_id']) ? $ticket_data['tpa_id'] : '' ?>"> <input type=hidden id="tpa_id" name="tpa_id" value="<?= isset($ticket_data['tpa_id']) ? $ticket_data['tpa_id'] : '' ?>">
<input type=text class="form-control" id="tpa_name" placeholder="TPA" value="<?= isset($ticket_data['tpa_name']) ? $ticket_data['tpa_name'] : '' ?>"> <input type=text class="form-control" id="tpa_name" placeholder="TPA" value="<?= isset($ticket_data['tpa_name']) ? $ticket_data['tpa_name'] : '' ?>" readonly>
</div> </div>
<div class="form-group col-md-3"> <div class="form-group col-md-3">
<label for="client_name">Corporate Name<span class="text-danger"></span></label> <label for="client_name">Corporate Name<span class="text-danger"></span></label>
<input type="hidden" id="client_id" name="client_id" value="<?= isset($ticket_data['client_id']) ? $ticket_data['client_id'] : '' ?>"> <input type="hidden" id="client_id" name="client_id" value="<?= isset($ticket_data['client_id']) ? $ticket_data['client_id'] : '' ?>">
<input type="text" class="form-control" id="client_name" placeholder="Client" value="<?= isset($ticket_data['client_name']) ? $ticket_data['client_name'] : '' ?>"> <input type="text" class="form-control" id="client_name" placeholder="Client" value="<?= isset($ticket_data['client_name']) ? $ticket_data['client_name'] : '' ?>" readonly>
</div> </div>
<div class="form-group col-md-3"> <div class="form-group col-md-3">

View File

@ -58,7 +58,7 @@ if ($ticket_form == 1) {
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="empDetailsModalLabel">Fetch Employee Data</h5> <h5 class="modal-title" id="empDetailsModalLabel">Fetch Employee Data</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="toResetTheModelFields()">
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
@ -73,56 +73,55 @@ if ($ticket_form == 1) {
<div class="accordion-content" id="mobileAccordion"> <div class="accordion-content" id="mobileAccordion">
<div id="mobileSearch" class="search-method"> <div id="mobileSearch" class="search-method">
<div class="row"> <div class="row">
<div class="col-md-8">
<div class="col-md-5" style="display:true;">
<div class="form-group"> <div class="form-group">
<label>Employee Mobile Number</label> <label>Employee Data Points</label>
<input class="form-control" type="text" id="mobile_number" <select name="employee_data_points" id="employee_data_points" class="form-control">
name="mobile_numbers" onkeypress="return onlyNumbers(event)"> <option value="mobile">Employee Mobile Number</option>
<option value="emp_code">Employee ID</option>
</select>
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label id="employee_data_points_label">Employee Mobile Number</label>
<input class="form-control" type="text" id="emp_mobile_number_for_claim"
name="mobile_numbers" onkeypress="return onlyNumbers(event)" maxlength="10">
</div> </div>
<div class="text-danger" id="error_dis"></div> <div class="text-danger" id="error_dis"></div>
</div> </div>
<div class="col-md-4"> <div class="col-md-2">
<div class="form-group" style="margin-top: 9px;"> <div class="form-group" style="margin-top: 9px;">
<br> <br>
<button class="btn btn-primary" <button class="btn btn-primary"
onclick="searchMobileNumber($('#mobile_number').val())">Search</button> onclick="getTheEmpDataForClaimSearchByMobile(this)">Search</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="emp_member_policy_div" style="display:none;"> <div id="emp_member_policy_div" style="display:true;">
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-5" style="display:none;">
<div class="form-group"> <div class="form-group">
<label>Employee</label> <label>Employee</label>
<select name="employee_by_number" id="employee_by_number" <select name="employee_by_number" id="employee_by_number"
class="form-control SelExample" onchange="get_member_by_employee(this)"> class="form-control SelExample">
<option value="0">Select Employee</option> <option value="0">Select Employee</option>
</select> </select>
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col-md-5">
<div class="form-group"> <div class="form-group">
<label>Member List</label> <label>Insured List</label>
<select name="member_by_number" id="member_by_number" <select name="employee_by_number" id="member_by_number"
class="form-control SelExample" class="form-control SelExample" onchange="setMemberData(this)">
onchange="get_emp_policy(this), setMemberDetails(this)">
<option value="0">Select Member</option> <option value="0">Select Member</option>
</select> </select>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="form-group">
<label>Policy</label>
<select id="policy_by_number" name="policy_by_number"
class="form-control custom-select">
<option value="">Select Policy</option>
</select>
<input type="text" id="policy_name" name="policy_name" hidden>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -135,49 +134,51 @@ if ($ticket_form == 1) {
</h4> </h4>
<div class="accordion-content" id="clientBranchAccordion"> <div class="accordion-content" id="clientBranchAccordion">
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>Client</label> <label>Client</label>
<select id="emp_client_data_list" name="client" <select id="emp_client_data_list" name="client"
class="form-control custom-select" onchange="get_branch_list(this)"> class="form-control custom-select">
<option value="">Select Client</option> <option value="0">Select Client</option>
</select> </select>
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>Branch</label> <label>Branch</label>
<select id="emp_client_branch_data_list" name="branch" <select id="emp_client_branch_data_list" name="branch"
class="form-control custom-select" onchange="get_policies_list(this)"> class="form-control custom-select">
<option value="">Select Branch</option> <option value="0">Select Branch</option>
</select> </select>
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>Policy</label> <label>Policy</label>
<select id="emp_client_policy_data_list" name="policy_client_branch" <select id="emp_client_policy_data_list" name="policy_client_branch"
class="form-control custom-select" onchange="getEmpData(this)"> class="form-control custom-select" onchange="getEmpData(this)">
<option value="">Select Policy</option> <option value="0">Select Policy</option>
</select> </select>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>Employee</label> <label>Employee</label>
<select name="employee" id="employee" class="form-control SelExample" <select name="search_by_client_employee" id="search_by_client_employee"
onchange="check_policy_gpa_gmc(this)"> class="form-control SelExample" onchange="getTheEmpDataForClaimSearchByMobile(this, 'client')">
<option value="0">Select Employee</option> <option value="0">Select Employee</option>
</select> </select>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>Insured List</label> <label>Insured List</label>
<select name="member" id="member" class="form-control SelExample" <select name="member" id="search_by_client_member"
onchange="member_change_client_branch(this), setMemberDetails(this)"> class="form-control SelExample" onchange="setMemberData(this)">
<option value="0">Select Member</option> <option value="0">Select Member</option>
</select> </select>
</div> </div>
@ -187,9 +188,10 @@ if ($ticket_form == 1) {
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Submit</button> <a class="btn btn-primary close" data-dismiss="modal" aria-label="Close" onclick="toResetTheModelFields()">Submit</a>
</div> --> </div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -200,7 +202,49 @@ var branch_list = ''; // local variable for storing the client branch list
var policy_list = ''; // local variable for storing the client policy list var policy_list = ''; // local variable for storing the client policy list
$(document).ready(function() { $(document).ready(function() {
getClientAndBranchAndPolicy() getClientAndBranchAndPolicy();
$('#emp_client_data_list').select2();
$('#emp_client_branch_data_list').select2();
$('#emp_client_policy_data_list').select2();
$('#search_by_client_member').select2();
$('#search_by_client_employee').select2();
$('#employee_by_number').select2();
$('#member_by_number').select2();
})
//on change functions
$(document).ready(function() {
$('#emp_client_data_list').change(function() {
let client_id = $(this).val();
let client_name = $('#emp_client_data_list option:selected').data('name');
console.log('client_id', client_id);
console.log('client_name', client_name);
if (branch_list != '') {
// console.log(branch_list[client_id]);
let data = branch_list[client_id];
appendBranch(data);
}
})
$('#emp_client_branch_data_list').change(function() {
let branch_id = $(this).val();
console.log('branch_id', branch_id);
if (policy_list != '') {
// console.log(branch_list[client_id]);
let data = policy_list[branch_id];
appendPolicy(data);
}
})
}) })
function toggleAccordion(id) { function toggleAccordion(id) {
@ -222,6 +266,7 @@ function openFetchEmpDataodal() {
myModal.show(); myModal.show();
} }
//get client , branch, policy data
function getClientAndBranchAndPolicy() { function getClientAndBranchAndPolicy() {
$.ajax({ $.ajax({
url: '<?= base_url("/util/getClientAndBranchAndPolicy") ?>', url: '<?= base_url("/util/getClientAndBranchAndPolicy") ?>',
@ -247,11 +292,12 @@ function getClientAndBranchAndPolicy() {
}); });
} }
//append the clients data to the modal
function appendClients(data) { function appendClients(data) {
$('#emp_client_data_list').empty(); $('#emp_client_data_list').empty();
$('#emp_client_data_list').append($('<option>', { $('#emp_client_data_list').append($('<option>', {
value: '', value: '0',
text: 'Select Client' text: 'Select Client'
})); }));
@ -262,16 +308,17 @@ function appendClients(data) {
'data-name': item.client_name, 'data-name': item.client_name,
}); });
$('#emp_client_data_list').append(option); $('#emp_client_data_list').append(option).select2();
}); });
} }
//append the clients branch data to the modal
function appendBranch(data) { function appendBranch(data) {
$('#emp_client_branch_data_list').empty(); $('#emp_client_branch_data_list').empty();
$('#emp_client_branch_data_list').append($('<option>', { $('#emp_client_branch_data_list').append($('<option>', {
value: '', value: '0',
text: 'Select Branch' text: 'Select Branch'
})); }));
@ -282,17 +329,18 @@ function appendBranch(data) {
'data-name': item.branch_name, 'data-name': item.branch_name,
}); });
$('#emp_client_branch_data_list').append(option); $('#emp_client_branch_data_list').append(option).select2();
}); });
} }
//append the clients policy data to the modal
function appendPolicy(data) { function appendPolicy(data) {
$('#emp_client_policy_data_list').empty(); $('#emp_client_policy_data_list').empty();
$('#emp_client_policy_data_list').append($('<option>', { $('#emp_client_policy_data_list').append($('<option>', {
value: '', value: '0',
text: 'Select Policy' text: 'Select Policy'
})); }));
@ -302,7 +350,7 @@ function appendPolicy(data) {
text: item.policy_type + '-' + item.policy_no, text: item.policy_type + '-' + item.policy_no,
}); });
$('#emp_client_policy_data_list').append(option); $('#emp_client_policy_data_list').append(option).select2();
}); });
} }
@ -352,61 +400,274 @@ function submitClaimForm(event, form) {
}); });
} }
$('#emp_client_data_list').change(function() {
let client_id = $(this).val();
let client_name = $('#emp_client_data_list option:selected').data('name');
console.log('client_id', client_id);
console.log('client_name', client_name);
if (branch_list != '') {
// console.log(branch_list[client_id]);
let data = branch_list[client_id];
appendBranch(data);
}
})
$('#emp_client_branch_data_list').change(function() {
let branch_id = $(this).val();
console.log('branch_id', branch_id);
if (policy_list != '') {
// console.log(branch_list[client_id]);
let data = policy_list[branch_id];
appendPolicy(data);
}
})
function getEmpData(input) { function getEmpData(input) {
console.log(input) console.log(input)
let client_policy_id = $(input).val(); let param = $(input).val();
let url = '<?= base_url('util/getTheEmpDataForClaim/') ?>' + param;
let url = '<?= base_url('util/getTheEmpDataForClaim/') ?>' + client_policy_id;
// Data to send in the AJAX request // Data to send in the AJAX request
let requestData = { let requestData = {
client_policy_id: client_policy_id, param: param,
}; };
// Show loader
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
// Send AJAX request // Send AJAX request
sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) { sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) {
console.log('Data fetched successfully:', response); console.log('Data fetched successfully:', response);
if (response.status) { if (response.status) {
toastr.success(response.message, 'SUCCESS'); console.log(response.message, 'SUCCESS');
appendEmployee(response.data, 'search_by_client_employee');
} else { } else {
toastr.warning(response.message, 'WARNING'); toastr.warning(response.message, 'WARNING');
} }
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, function(xhr, status, error) { }, function(xhr, status, error) {
console.error('Error fetching data:', error); console.error('Error fetching data:', error);
console.error(xhr.responseText); console.error(xhr.responseText);
toastr.error('An error occurred while fetch data.', 'ERROR'); toastr.error('An error occurred while fetch data.', 'ERROR');
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}); });
} }
function getTheEmpDataForClaimSearchByMobile(input, searchType = null) {
console.log(input)
let type = $('#employee_data_points').val()
let param = $('#emp_mobile_number_for_claim').val()
if(searchType == 'client'){
type = 'emp_code';
param = $(input).val();
}
let url = '<?= base_url('util/getTheEmpDataForClaimSearchByMobile/') ?>' + param + '/' + type;
// Data to send in the AJAX request
let requestData = {
param: param,
type: type,
};
// Show loader
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
// Send AJAX request
sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) {
console.log('Data fetched successfully:', response);
if (response.status) {
console.log(response.message, 'SUCCESS');
if(searchType == 'client'){
appendMember(response.memberData, 'search_by_client_member');
}else{
appendMember(response.memberData, 'member_by_number');
}
setClientAndInsurerData(response.data);
appendACMS(response.acms)
} else {
toastr.warning(response.message, 'WARNING');
appendACMS(response.acms);
unSetClientAndInsurerData()
}
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, function(xhr, status, error) {
console.error('Error fetching data:', error);
console.error(xhr.responseText);
toastr.error('An error occurred while fetch data.', 'ERROR');
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
});
}
function appendEmployee(data, attrId) {
console.log('data', data)
$('#' + attrId).empty();
$('#' + attrId).append($('<option>', {
value: '0',
text: 'Select Employee'
}));
$.each(data, function(index, item) {
console.log(item)
var option = $('<option>', {
value: item.emp_code,
text: item.emp_name,
});
$('#' + attrId).append(option).select2();
});
}
function appendMember(data, attrId) {
console.log('data', data);
// Clear the existing options
$('#' + attrId).empty();
// Add the default 'Select Member' option
$('#' + attrId).append($('<option>', {
value: '0',
text: 'Select Member'
}));
// Append options dynamically with data attributes
$.each(data, function(index, item) {
console.log('Item:', item); // Log each item to debug
// Ensure all properties exist, set fallback if necessary
var empID = item.emp_id ?? '';
var empName = item.emp_name ?? '';
var policyNo = item.policy_no ?? '';
var tpaNo = item.tpa_no ?? '';
var relationship = item.emp_relationship ?? '';
// Create an option and set data attributes
var option = $('<option>', {
value: item.emp_code,
text: empName + " - " + relationship
}).attr({
'data-empID': empID,
'data-empName': empName,
'data-policyNo': policyNo,
'data-tpaNo': tpaNo,
'data-relationship': relationship
});
$('#' + attrId).append(option);
});
// Reinitialize select2
$('#' + attrId).select2();
}
function appendACMS(data) {
console.log(data);
$('#acm_id').empty();
$('#acm_id').append($('<option>', {
value: '0',
text: 'Select Account Manager'
}));
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.first_name,
});
$('#acm_id').append(option);
});
}
function onlyNumbers(event) {
var charcode;
charcode = event.which || event.keyCode;
if (charcode >= 48 && charcode <= 57 || charcode == 46) return true;
return false;
}
function setClientAndInsurerData(data) {
$('#insurer_id').val(data.insurer_id);
$('#insurer_name').val(data.insurer_name);
$('#tpa_id').val(data.tpa_id);
$('#tpa_name').val(data.tpa_name);
$('#client_id').val(data.client_id);
$('#client_name').val(data.client_name);
$('#emp_code').val(data.emp_code);
$('#emp_id').val(data.emp_id);
$('#emp_name').val(data.emp_name);
$('#emp_mobile').val(data.emp_mobile);
$('#emp_mail').val(data.emp_email);
}
function unSetClientAndInsurerData() {
$('#insurer_id').val("");
$('#insurer_name').val("");
$('#tpa_id').val("");
$('#tpa_name').val("");
$('#client_id').val("");
$('#client_name').val("");
$('#emp_code').val("");
$('#emp_id').val("");
$('#emp_name').val("");
$('#emp_mobile').val("");
$('#emp_mail').val("");
}
function setMemberData(input) {
var selectedOption = $(input).find(':selected');
// Retrieve the data-* attributes
var empId = selectedOption.data('empid');
var empName = selectedOption.data('empname');
var policyNo = selectedOption.data('policyno');
var tpaNo = selectedOption.data('tpano');
var relationship = selectedOption.data('relationship');
$('#tpa_no').val(tpaNo);
$('#insured_emp_id').val(empId);
$('#insured_name').val(empName);
$('#policy_no').val(policyNo);
$('#relationship option').each(function() {
if ($(this).text() === relationship) {
$(this).prop('selected', true);
}
});
}
$('#employee_data_points').on('change', function(){
let value = $(this).val()
if(value == "mobile"){
$('#employee_data_points_label').text('Employee Mobile Number')
}else{
$('#employee_data_points_label').text('Employee ID')
}
})
function toResetTheModelFields() {
$('#emp_mobile_number_for_claim').val('');
$('#employee_data_points').val();
$('#employee_by_number').val('');
$('#member_by_number').val('0').select2();
$('#emp_client_data_list').val('0').select2();
$('#emp_client_branch_data_list').val('0').select2();
$('#emp_client_policy_data_list').val('0').select2();
$('#search_by_client_employee').val('0').select2();
$('#search_by_client_member').val('0').select2();
}
</script> </script>