FIX_RAC_RATE_AND POLICY_TERM_SHOW_BASED_ON_GPA_GMC : RV

This commit is contained in:
VENKATESHWARAN 2024-04-01 09:54:01 +05:30
parent 4f52390833
commit 2530027c4f
8 changed files with 187 additions and 103 deletions

View File

@ -112,6 +112,7 @@ $routes->group("/employee", ["filter" => "authMVC"], function($routes){
$routes->get("upload", "EmployeeController::employeesUplodWithEvents");
$routes->post("upload", "EmployeeController::employeesUplodWithEvents");
$routes->get("excel_error/(:any)", "EmployeeController::getExcelFileErrors/$1");
$routes->get("endorsement-list", "EmployeeController::endorsementList");
});

View File

@ -451,4 +451,17 @@ class EmployeeController extends AdminController
}
// -------------------------------------------------------------------------------------------
public function endorsementList(){
$data = [];
if(count($this->request->getGet()))
{
$filterData = $this->request->getGet();
$data['employees'] = $this->employeePolicyModel->getEmployeeEndorsementList(client_id: $filterData['client_id'],policy_id: $filterData['policy_id']);
$data['getData'] = $filterData;
}
$this->myLogger->logme('error','list called');
$this->loadLayout('endorsement_list',$data);
}
}

View File

@ -71,12 +71,13 @@ class ClientPolicyModel extends Model
->select('policy_type.policy_type as policy_type_name')
->select('insurer_branch.branch_name as insurer_branch_name, insurer_branch.branch_code as insurer_branch_code')
->select('tpa_branch.branch_name as tpa_branch_name, tpa_branch.branch_code as tpa_branch_code')
->select('policy_type.policy_type as policy_type_name')
->join('insurers', 'insurers.id = client_policy.insurer_id')
->join('insurer_branch', 'client_policy.insurer_branch_id = insurer_branch.id')
->join('tpa', 'tpa.id = client_policy.tpa_id')
->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id')
->join('policies', 'policies.id = client_policy.policy_id')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->where('client_policy.client_id', $client_id)
->get()
->getResult();

View File

@ -560,6 +560,23 @@ class EmployeePolicyModel extends Model
$this->query($query);
}
public function getEmployeeEndorsementList($client_id,$policy_id)
{
$result = $this->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active'])
->join('employees emp', 'employee_polices.employee_id = emp.id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master
->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch
->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->where('emp.client_id',$client_id)
->where('employee_polices.client_policy_id',$policy_id)
->findAll();
return ($result);
}
//------------------------------------------------------------------
}

View File

@ -36,8 +36,8 @@
<form role="form" class="parsley-examples" method="post" id="policy_form"
enctype="multipart/form-data">
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="policy_PrimaryKey" />
<input type="hidden" id="policy_form_action" />
<input type="hidden" name="PrimaryKey" id="policy_PrimaryKey"/>
<input type="hidden" id="policy_form_action"/>
<input type="hidden" name="policy_type_id" id="policy_type_id"/>
<input type="hidden" name="client_id" id="client_id_policy" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<div class="form-group">
@ -94,12 +94,10 @@
</div>
</div>
<!-- <hr> -->
<div id="policy_fields"></div>
<div id="policy_fields"></div>
</div>
<div class="form-group text-right m-b-0">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
id="btnSubmit">Submit</button>
@ -159,6 +157,7 @@
$('.btnAdd').click(function(){
$('#policy_form')[0].reset();
$('#add_form').show();
$('#table_list').hide();
$('.btnBack').show();
@ -170,12 +169,13 @@
$('#policy').html('<option value="" selected>Select Policy</option>');
$('#is_addon').prop('checked', false);
$('#policy_form_action').val('<?= base_url("client/policy/create"); ?>');
$('#policy_status_field').hide()
})
$('.btnBack').click(function(){
$('#policy_form')[0].reset();
$('#GMC').remove();
$('#GPA').remove();
$('#add_form').hide();
@ -194,10 +194,22 @@
if (policy_PrimaryKey !== '') {
var policyTable = '';
var data = <?= isset($client_policy) ? json_encode($client_policy) : '[]' ?>;
console.log('client_policy_data',data)
data.forEach(function(item) {
// console.log("----------------------------");
// console.log(item);
var patternGMC = /gmc/i; // Case insensitive pattern for 'gmc'
var patternGPA = /gpa/i; // Case insensitive pattern for 'gpa'
var subject = item.policy_type_name;
if (patternGMC.test(subject)) {
search_term = 'GMC';
} else if (patternGPA.test(subject)) {
search_term = 'GPA';
} else {
search_term = subject; // Set default value if neither 'GMC' nor 'GPA' exists
}
console.log('search_term :', search_term)
policyTable += `
<tr>
@ -211,8 +223,8 @@
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnPolicyEdit"><i class="mdi mdi-lead-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<a href="#" data-id="${item.id}" id="${item.policy_type_id}" class="dropdown-item btnPolicyMaster" data-toggle="modal" id="${item.policy_type_id}"><i class="mdi mdi-wrench mr-2 text-muted font-18 vertical-middle"></i>Terms</a>
<a href="#" data-id="${item.id}" class="dropdown-item btnPolicyModel" data-toggle="modal" data-target="#bs-example-modal-lg"><i class="mdi mdi-book-open mr-2 text-muted font-18 vertical-middle"></i>Rac Rate</a>
<a href="#" data-id="${item.id}" id="${search_term}" class="dropdown-item btnPolicyMaster" data-toggle="modal"><i class="mdi mdi-wrench mr-2 text-muted font-18 vertical-middle"></i>Terms</a>
<a href="#" data-id="${item.id}" id="${search_term}"class="dropdown-item btnPolicyModel" data-toggle="modal" data-target="#bs-example-modal-lg"><i class="mdi mdi-book-open mr-2 text-muted font-18 vertical-middle"></i>Rac Rate</a>
<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnOpenEnroll"><i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle"></i>Open Enrollment</a>
</div>
</div>
@ -271,7 +283,7 @@
success: function(res) {
console.log(res);
$('#policy_form')[0].reset();
if (res.status === false) {
toastr.error('Policy Dose Not Create', 'Error');
return;
@ -295,6 +307,21 @@
$('#policy_table tr').remove();
var policyTable = '';
$.each(res.data, function(index, item) {
var patternGMC = /gmc/i; // Case insensitive pattern for 'gmc'
var patternGPA = /gpa/i; // Case insensitive pattern for 'gpa'
var subject = item.policy_type_name;
if (patternGMC.test(subject)) {
search_term = 'GMC';
} else if (patternGPA.test(subject)) {
search_term = 'GPA';
} else {
search_term = subject; // Set default value if neither 'GMC' nor 'GPA' exists
}
console.log('search_term :', search_term)
policyTable += `
<tr>
<td>${item.insurer_short} - ${item.insurer_branch_name}</td>
@ -307,7 +334,7 @@
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnPolicyEdit"><i class="mdi mdi-lead-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<a href="#" data-id="${item.id}" class="dropdown-item btnPolicyMaster" data-toggle="modal" id="${item.policy_type_id}"><i class="mdi mdi-wrench mr-2 text-muted font-18 vertical-middle"></i>Terms</a>
<a href="#" data-id="${item.id}" class="dropdown-item btnPolicyMaster" data-toggle="modal" id="${search_term}"><i class="mdi mdi-wrench mr-2 text-muted font-18 vertical-middle"></i>Terms</a>
<a href="#" data-id="${item.id}" class="dropdown-item btnPolicyModel" data-toggle="modal" data-target="#bs-example-modal-lg"><i class="mdi mdi-book-open mr-2 text-muted font-18 vertical-middle"></i>Rac Rate</a>
<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnOpenEnroll"><i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle"></i>Open Enrollment</a>
</div>

View File

@ -643,9 +643,9 @@ var grid_html = '';
var gmc_policy_type_id = $(this).attr('id');
console.log(gmc_policy_type_id)
if(gmc_policy_type_id >= 2){
if(gmc_policy_type_id == 'GMC'){
$('#policyGMCTerms').css('display', '');
$('#police-tab').css('display', 'none');
@ -802,6 +802,8 @@ var grid_html = '';
}
});
}else if(gmc_policy_type_id != 'GPA' && gmc_policy_type_id != 'GMC'){
// toastr.warning('The terms has no data ', 'warning');
}
});

View File

@ -446,7 +446,7 @@
var gpa_policy_type_id = $(this).attr('id');
// console.log('gpa_policy_type_id', gpa_policy_type_id)
if(gpa_policy_type_id == '1'){
if(gpa_policy_type_id == 'GPA'){
$('#policyGPATermsForm').css('display', '');
$('#police-tab').css('display', 'none');
@ -548,6 +548,8 @@
}
});
}else if(gpa_policy_type_id != 'GPA' && gpa_policy_type_id != 'GMC'){
toastr.warning("This policy has no policy terms.", 'warning');
}
});

View File

@ -7,6 +7,9 @@
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<div class="text-center" id="no_data"></div>
<form role="form" class="parsley-examples" method="post" id="GridForm" enctype="multipart/form-data">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>"/>
<input type="hidden" name="client_id" id="Client_id" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
@ -14,7 +17,7 @@
<input type="hidden" id="grid_emp_count"/>
<div class="form-group">
<div class="form-row">
<div class="form-row" id="rac_rate_dropdown">
<div class="form-group col-md-6">
<label for="emp_code">Policy Premium Type<span class="text-danger">*</span></label>
<select class="form-control" id="grid" name="policy_grid_id" onchange="addGridHTML(event)" required>
@ -566,105 +569,123 @@
var client_policy_id = $(this).data('id');
$('#client_policy_id').val(client_policy_id);
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var policy_type_string = $(this).attr('id');
console.log('policy_type_string', policy_type_string)
if(policy_type_string == 'GPA' || policy_type_string == 'GMC'){
$.ajax({
url: '<?= base_url("util/policy-premium") ?>' ,
type: "GET",
data: { client_policy_id: client_policy_id},
dataType: 'json',
success: function (res) {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
console.log('res',res);
var temp_for_premiumData = JSON.parse(res.premiumData);
$('#GridForm').show();
$('#no_data').html('');
res.premiumData= JSON.parse(res.premiumData);
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
url: '<?= base_url("util/policy-premium") ?>' ,
type: "GET",
data: { client_policy_id: client_policy_id},
dataType: 'json',
success: function (res) {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
console.log('res',res);
var temp_for_premiumData = JSON.parse(res.premiumData);
$('#nameOfThePolicy').html(' - ' + res.policy_name);
$('#grid_emp_count').val(res.count);
res.premiumData= JSON.parse(res.premiumData);
$('#nameOfThePolicy').html(' - ' + res.policy_name);
$('#grid_emp_count').val(res.count);
if (res.status === false) {
toastr.error(res.status);
return;
}
if (res.status === false) {
toastr.error(res.status);
return;
}
var policy_grid_id_value = '';
if (res.premiumData && res.premiumData.length > 0 && res.premiumData[0].policy_grid_id) {
policy_grid_id_value = res.premiumData[0].policy_grid_id;
}
$('#grid_content_input').empty();
var policeGridOptionHTML = '';
policeGridOptionHTML += ` <option value="">Select Premium Type</option>`;
$.each(res.data, function(index, item) {
policeGridOptionHTML += '<option data-id="'+ item.ui_type +'" value="' + item.id + '" ' + (policy_grid_id_value === item.id ? 'selected="selected"' : '') + '>' + item.policy_grid_type + '</option>';
});
$('#grid').html(policeGridOptionHTML);
var si_or_bp_value = '';
if (res.premiumData && res.premiumData.length > 0) {
if(res.premiumData[0].si_or_bp){
si_or_bp_value = res.premiumData[0].si_or_bp;
var policy_grid_id_value = '';
if (res.premiumData && res.premiumData.length > 0 && res.premiumData[0].policy_grid_id) {
policy_grid_id_value = res.premiumData[0].policy_grid_id;
}
addGridHTML(false, res.premiumData[0], res.premiumData[0].policy_grid_id, si_or_bp_value);
$('#grid_content_input').empty();
var policeGridOptionHTML = '';
policeGridOptionHTML += ` <option value="">Select Premium Type</option>`;
$.each(res.data, function(index, item) {
policeGridOptionHTML += '<option data-id="'+ item.ui_type +'" value="' + item.id + '" ' + (policy_grid_id_value === item.id ? 'selected="selected"' : '') + '>' + item.policy_grid_type + '</option>';
});
$('#grid').html(policeGridOptionHTML);
var si_or_bp_value = '';
if (res.premiumData && res.premiumData.length > 0) {
res.premiumData.shift();
$.each(res.premiumData, function(index, item){
if (item.si_or_bp == '1') {
appendGridtHtml('1', item);
}else{
appendGridtHtml(item.policy_grid_id, item);
if(res.premiumData[0].si_or_bp){
si_or_bp_value = res.premiumData[0].si_or_bp;
}
addGridHTML(false, res.premiumData[0], res.premiumData[0].policy_grid_id, si_or_bp_value);
res.premiumData.shift();
$.each(res.premiumData, function(index, item){
if (item.si_or_bp == '1') {
appendGridtHtml('1', item);
}else{
appendGridtHtml(item.policy_grid_id, item);
}
});
} else {
console.log("res.premiumData is undefined, null, or empty.");
}
$('#bs-example-modal-lg').modal('show');
$("#gpa_si").trigger("keyup");
$("#gpa_premium").trigger("keyup");
$('#basic_pay').trigger('keyup');
$('#4_si').trigger('keyup');
$('input[name="gpa_sum_si[]"]').each(function() {
$(this).trigger('keyup');
});
} else {
console.log("res.premiumData is undefined, null, or empty.");
}
$('input[name="gpa_sum_premium[]"]').each(function() {
$(this).trigger('keyup');
});
$('#bs-example-modal-lg').modal('show');
var id_for_trigger =temp_for_premiumData[0].policy_grid_id;
$(`input[name="${id_for_trigger}_si[]"]`).each(function() {
console.log($(this));
$(this).trigger('keyup');
});
$(`input[name="${id_for_trigger}_premium[]"]`).each(function() {
console.log($(this));
$(this).trigger('keyup');
});
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 1000);
}
});
} else{
$('#grid').empty();
$('#nameOfThePolicy').html('');
$('#GridForm').hide();
$('#no_data').html('The policy has no Policy Rac Rate');
toastr.warning("The policy has no Policy Rac Rate", "Warning")
}
$("#gpa_si").trigger("keyup");
$("#gpa_premium").trigger("keyup");
$('#basic_pay').trigger('keyup');
$('#4_si').trigger('keyup');
$('input[name="gpa_sum_si[]"]').each(function() {
$(this).trigger('keyup');
});
$('input[name="gpa_sum_premium[]"]').each(function() {
$(this).trigger('keyup');
});
var id_for_trigger =temp_for_premiumData[0].policy_grid_id;
$(`input[name="${id_for_trigger}_si[]"]`).each(function() {
console.log($(this));
$(this).trigger('keyup');
});
$(`input[name="${id_for_trigger}_premium[]"]`).each(function() {
console.log($(this));
$(this).trigger('keyup');
});
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 1000);
}
});
});
@ -672,7 +693,6 @@
var grid_id=$(this)[0].value;
var client_policy_id =$('#client_policy_id')[0].value;
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
@ -1042,6 +1062,7 @@
}
function removebutton(index, type) {
if(index == 0){