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('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) {

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("
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);
}
}
}

View File

@ -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;
}
}

View File

@ -78,19 +78,19 @@
<div class="form-group col-md-3">
<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=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 class="form-group col-md-3">
<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=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 class="form-group col-md-3">
<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="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 class="form-group col-md-3">

View File

@ -58,7 +58,7 @@ if ($ticket_form == 1) {
<div class="modal-content">
<div class="modal-header">
<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>
</button>
</div>
@ -73,340 +73,601 @@ if ($ticket_form == 1) {
<div class="accordion-content" id="mobileAccordion">
<div id="mobileSearch" class="search-method">
<div class="row">
<div class="col-md-8">
<div class="col-md-5" style="display:true;">
<div class="form-group">
<label>Employee Mobile Number</label>
<input class="form-control" type="text" id="mobile_number"
name="mobile_numbers" onkeypress="return onlyNumbers(event)">
<label>Employee Data Points</label>
<select name="employee_data_points" id="employee_data_points" class="form-control">
<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 class="text-danger" id="error_dis"></div>
</div>
<div class="col-md-4">
<div class="col-md-2">
<div class="form-group" style="margin-top: 9px;">
<br>
<button class="btn btn-primary"
onclick="searchMobileNumber($('#mobile_number').val())">Search</button>
onclick="getTheEmpDataForClaimSearchByMobile(this)">Search</button>
</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="col-md-4">
<div class="col-md-5" style="display:none;">
<div class="form-group">
<label>Employee</label>
<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>
</select>
</div>
</div>
<div class="col-md-4">
<div class="col-md-5">
<div class="form-group">
<label>Member List</label>
<select name="member_by_number" id="member_by_number"
class="form-control SelExample"
onchange="get_emp_policy(this), setMemberDetails(this)">
<label>Insured List</label>
<select name="employee_by_number" id="member_by_number"
class="form-control SelExample" onchange="setMemberData(this)">
<option value="0">Select Member</option>
</select>
</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>
<!-- Search by Client, Branch, and Policy -->
<div class="mt-4">
<h4 onclick="toggleAccordion('clientBranchAccordion')">
Search by Client, Branch, and Policy
<span class="arrow" id="clientBranchArrow"></span>
</h4>
<div class="accordion-content" id="clientBranchAccordion">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>Client</label>
<select id="emp_client_data_list" name="client"
class="form-control custom-select" onchange="get_branch_list(this)">
<option value="">Select Client</option>
</select>
<!-- Search by Client, Branch, and Policy -->
<div class="mt-4">
<h4 onclick="toggleAccordion('clientBranchAccordion')">
Search by Client, Branch, and Policy
<span class="arrow" id="clientBranchArrow"></span>
</h4>
<div class="accordion-content" id="clientBranchAccordion">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Client</label>
<select id="emp_client_data_list" name="client"
class="form-control custom-select">
<option value="0">Select Client</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Branch</label>
<select id="emp_client_branch_data_list" name="branch"
class="form-control custom-select">
<option value="0">Select Branch</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Policy</label>
<select id="emp_client_policy_data_list" name="policy_client_branch"
class="form-control custom-select" onchange="getEmpData(this)">
<option value="0">Select Policy</option>
</select>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>Branch</label>
<select id="emp_client_branch_data_list" name="branch"
class="form-control custom-select" onchange="get_policies_list(this)">
<option value="">Select Branch</option>
</select>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Employee</label>
<select name="search_by_client_employee" id="search_by_client_employee"
class="form-control SelExample" onchange="getTheEmpDataForClaimSearchByMobile(this, 'client')">
<option value="0">Select Employee</option>
</select>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>Policy</label>
<select id="emp_client_policy_data_list" name="policy_client_branch"
class="form-control custom-select" onchange="getEmpData(this)">
<option value="">Select Policy</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Employee</label>
<select name="employee" id="employee" class="form-control SelExample"
onchange="check_policy_gpa_gmc(this)">
<option value="0">Select Employee</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>Insured List</label>
<select name="member" id="member" class="form-control SelExample"
onchange="member_change_client_branch(this), setMemberDetails(this)">
<option value="0">Select Member</option>
</select>
<div class="col-md-6">
<div class="form-group">
<label>Insured List</label>
<select name="member" id="search_by_client_member"
class="form-control SelExample" onchange="setMemberData(this)">
<option value="0">Select Member</option>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn btn-primary close" data-dismiss="modal" aria-label="Close" onclick="toResetTheModelFields()">Submit</a>
</div>
</div>
<!-- <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Submit</button>
</div> -->
</div>
</div>
</div>
<script>
var client_list = ''; // local variable for storing the client branch list
var branch_list = ''; // local variable for storing the client branch list
var policy_list = ''; // local variable for storing the client policy list
<script>
var client_list = ''; // local variable for storing the client branch list
var branch_list = ''; // local variable for storing the client branch list
var policy_list = ''; // local variable for storing the client policy list
$(document).ready(function() {
getClientAndBranchAndPolicy()
})
$(document).ready(function() {
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();
})
function toggleAccordion(id) {
const content = document.getElementById(id);
const arrow = document.querySelector(`#${id === 'mobileAccordion' ? 'mobileArrow' : 'clientBranchArrow'}`);
//on change functions
$(document).ready(function() {
// Toggle the display of the accordion content
if (content.classList.contains('show')) {
content.classList.remove('show');
arrow.classList.remove('rotate');
} else {
content.classList.add('show');
arrow.classList.add('rotate');
}
}
$('#emp_client_data_list').change(function() {
function openFetchEmpDataodal() {
var myModal = new bootstrap.Modal(document.getElementById('empDetailsModal'));
myModal.show();
}
let client_id = $(this).val();
let client_name = $('#emp_client_data_list option:selected').data('name');
function getClientAndBranchAndPolicy() {
$.ajax({
url: '<?= base_url("/util/getClientAndBranchAndPolicy") ?>',
type: "GET",
dataType: 'json',
success: function(res) {
console.log('client_id', client_id);
console.log('client_name', client_name);
console.log('getClientAndBranchAndPolicy', res);
if (res.status == true) {
client_list = res.client_data;
branch_list = res.branch_data;
policy_list = res.policy_data;
appendClients(res.client_data);
} else {
console.log('No data found');
if (branch_list != '') {
// console.log(branch_list[client_id]);
let data = branch_list[client_id];
appendBranch(data);
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
})
$('#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) {
const content = document.getElementById(id);
const arrow = document.querySelector(`#${id === 'mobileAccordion' ? 'mobileArrow' : 'clientBranchArrow'}`);
// Toggle the display of the accordion content
if (content.classList.contains('show')) {
content.classList.remove('show');
arrow.classList.remove('rotate');
} else {
content.classList.add('show');
arrow.classList.add('rotate');
}
});
}
}
function appendClients(data) {
$('#emp_client_data_list').empty();
function openFetchEmpDataodal() {
var myModal = new bootstrap.Modal(document.getElementById('empDetailsModal'));
myModal.show();
}
$('#emp_client_data_list').append($('<option>', {
value: '',
text: 'Select Client'
}));
//get client , branch, policy data
function getClientAndBranchAndPolicy() {
$.ajax({
url: '<?= base_url("/util/getClientAndBranchAndPolicy") ?>',
type: "GET",
dataType: 'json',
success: function(res) {
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.client_name,
'data-name': item.client_name,
console.log('getClientAndBranchAndPolicy', res);
if (res.status == true) {
client_list = res.client_data;
branch_list = res.branch_data;
policy_list = res.policy_data;
appendClients(res.client_data);
} else {
console.log('No data found');
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
}
//append the clients data to the modal
function appendClients(data) {
$('#emp_client_data_list').empty();
$('#emp_client_data_list').append($('<option>', {
value: '0',
text: 'Select Client'
}));
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.client_name,
'data-name': item.client_name,
});
$('#emp_client_data_list').append(option).select2();
});
$('#emp_client_data_list').append(option);
});
}
}
//append the clients branch data to the modal
function appendBranch(data) {
$('#emp_client_branch_data_list').empty();
function appendBranch(data) {
$('#emp_client_branch_data_list').empty();
$('#emp_client_branch_data_list').append($('<option>', {
value: '0',
text: 'Select Branch'
}));
$('#emp_client_branch_data_list').append($('<option>', {
value: '',
text: 'Select Branch'
}));
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.branch_name,
'data-name': item.branch_name,
});
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.branch_name,
'data-name': item.branch_name,
$('#emp_client_branch_data_list').append(option).select2();
});
$('#emp_client_branch_data_list').append(option);
});
}
}
//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>', {
value: '0',
text: 'Select Policy'
}));
$('#emp_client_policy_data_list').append($('<option>', {
value: '',
text: 'Select Policy'
}));
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.policy_type + '-' + item.policy_no,
});
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.policy_type + '-' + item.policy_no,
$('#emp_client_policy_data_list').append(option).select2();
});
$('#emp_client_policy_data_list').append(option);
});
}
}
function submitClaimForm(event, form) {
function submitClaimForm(event, form) {
event.preventDefault();
event.preventDefault();
const formAction = '<?= base_url("ticket/create"); ?>';
const formAction = '<?= base_url("ticket/create"); ?>';
// Show loader
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
// Show loader
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
// Collect IDs and form data
const formData = new FormData(form);
// Collect IDs and form data
const formData = new FormData(form);
// AJAX request
$.ajax({
data: formData,
url: formAction,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(response) {
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('Form submitted response:', response);
if (response.status === true) {
toastr.success(response.message, 'SUCCESS');
} else {
toastr.error(response.message, 'ERROR');
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
}
function getEmpData(input) {
console.log(input)
let param = $(input).val();
let url = '<?= base_url('util/getTheEmpDataForClaim/') ?>' + param;
// Data to send in the AJAX request
let requestData = {
param: param,
};
// 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');
appendEmployee(response.data, 'search_by_client_employee');
} else {
toastr.warning(response.message, 'WARNING');
}
// AJAX request
$.ajax({
data: formData,
url: formAction,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(response) {
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('Form submitted response:', response);
if (response.status === true) {
toastr.success(response.message, 'SUCCESS');
} else {
toastr.error(response.message, 'ERROR');
}
},
error: function(xhr, status, error) {
}, function(xhr, status, error) {
console.error('Error fetching data:', error);
console.error(xhr.responseText);
console.error(status, 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;
$('#emp_client_data_list').change(function() {
// Data to send in the AJAX request
let requestData = {
param: param,
type: type,
};
let client_id = $(this).val();
let client_name = $('#emp_client_data_list option:selected').data('name');
// Show loader
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
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);
// 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) {
$('#emp_client_branch_data_list').change(function() {
console.log('data', data)
let branch_id = $(this).val();
$('#' + attrId).empty();
$('#' + attrId).append($('<option>', {
value: '0',
text: 'Select Employee'
}));
console.log('branch_id', branch_id);
$.each(data, function(index, item) {
console.log(item)
var option = $('<option>', {
value: item.emp_code,
text: item.emp_name,
});
$('#' + attrId).append(option).select2();
});
if (policy_list != '') {
// console.log(branch_list[client_id]);
let data = policy_list[branch_id];
appendPolicy(data);
}
})
function appendMember(data, attrId) {
function getEmpData(input) {
console.log('data', data);
console.log(input)
let client_policy_id = $(input).val();
// Clear the existing options
$('#' + attrId).empty();
let url = '<?= base_url('util/getTheEmpDataForClaim/') ?>' + client_policy_id;
// Add the default 'Select Member' option
$('#' + attrId).append($('<option>', {
value: '0',
text: 'Select Member'
}));
// Data to send in the AJAX request
let requestData = {
client_policy_id: client_policy_id,
};
// Append options dynamically with data attributes
$.each(data, function(index, item) {
console.log('Item:', item); // Log each item to debug
// Send AJAX request
sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) {
console.log('Data fetched successfully:', response);
// 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 ?? '';
if (response.status) {
toastr.success(response.message, 'SUCCESS');
} else {
toastr.warning(response.message, 'WARNING');
// 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(xhr, status, error) {
console.error('Error fetching data:', error);
console.error(xhr.responseText);
toastr.error('An error occurred while fetch data.', 'ERROR');
});
}
</script>
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>