Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev

This commit is contained in:
Gowtham M 2025-12-09 12:45:29 +05:30
commit a61ac2a370
16 changed files with 513 additions and 88 deletions

View File

@ -20,7 +20,8 @@ class Database extends Config
* use if no other is specified.
*/
public string $defaultGroup = 'default';
public string $enableSSL;
/**
* The default database connection.
*/
@ -37,7 +38,7 @@ class Database extends Config
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'encrypt' =>false,
'compress' => false,
'strictOn' => false,
'failover' => [],
@ -122,6 +123,18 @@ class Database extends Config
if (ENVIRONMENT === 'testing') {
$this->defaultGroup = 'tests';
}
$this->enableSSL = env('DB_SSL_ENABLE');
if ($this->enableSSL === true || $this->enableSSL === 'true' || $this->enableSSL === 1 || $this->enableSSL === '1') {
// Enable SSL authentication
$this->default['encrypt'] = [
'ssl_ca' => ROOTPATH . 'ca.pem',
'ssl_verify' => true,
];
}
}
}

View File

@ -15,6 +15,7 @@ use App\Models\PolicyTransactionModel;
use App\Models\PTCOShareDetailsModel;
use App\Models\COShareStmtDetailsModel;
use App\Models\PolicyTypeModel;
use App\Models\NhanceBranchModel;
use CodeIgniter\API\ResponseTrait;
@ -34,6 +35,7 @@ class BDSReportController extends AdminController
protected $coShareStmtDetailsModel;
protected $policyTypeModel;
protected $policyTatReportType;
protected $nhanceBranchModel;
public function __construct()
{
@ -47,6 +49,7 @@ class BDSReportController extends AdminController
$this->PTCOShareDetailsModel = new PTCOShareDetailsModel();
$this->coShareStmtDetailsModel = new COShareStmtDetailsModel();
$this->policyTypeModel = new PolicyTypeModel();
$this->nhanceBranchModel = new NhanceBranchModel();
$this->policyTatReportType = [
@ -925,7 +928,7 @@ class BDSReportController extends AdminController
$default_start = new \DateTime();
$data['default_end'] = $default_start->format('d-m-Y');
$data['default_start'] = $default_start->modify('-60 days')->format('d-m-Y');
$data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
$data['issuer_branch'] = $this->nhanceBranchModel->where('is_active', 1)->findAll();;
$data['tab_name'] = "Renewal Reports";
$data['page_name'] = "Renewal Report";
return $this->loadLayout('renewal_search', $data);
@ -935,11 +938,11 @@ class BDSReportController extends AdminController
$toDate = $this->request->getPost('toDate');
$client_id = $this->request->getPost('client_id');
$client_type = $this->request->getPost('client_type');
$issuer = $this->request->getPost('issuer');
$issuer_branch = $this->request->getPost('issuer_branch');
$data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
$data['issuer_branch'] = $this->nhanceBranchModel->where('is_active', 1)->findAll();
$data['client_type'] = [1 => 'Group', 2 => 'Individual'];
$data['renewal_data'] = $this->policyTransactionModel->getRenewalReportData($fromDate, $toDate, $client_type, $client_id, $issuer);
$data['renewal_data'] = $this->policyTransactionModel->getRenewalReportData($fromDate, $toDate, $client_type, $client_id, $issuer_branch);
// print_r($data); die;
$view_name = "bds_renewal_report_list";
$html = view('bds_renewal_report_list', $data);

View File

@ -2840,20 +2840,8 @@ class EmployeeRestController extends AdminController
];
$emp_reatail_policy_data = $this->getEmpRetailPolicy($retailUserData);
$query = $this->clientModel
->where('is_active', 1)
->where('client_type', 2);
if (!empty($receviedPayload['mobile_no'])) {
$query->where('phone', $receviedPayload['mobile_no']);
} else {
$query->where('email', $receviedPayload['email_id'] ?? null);
}
$retailClientData = $query->first();
$wellness_data = ['status' => 'failed','message' => 'Coming soon........!'];
return $this->respond(['status' => 'success', 'code' => 200, 'data' => [], 'emp_name' => $retailClientData['client_name'] ?? "", 'pre_policy_count' => 0, 'retail_policy_data' => $emp_reatail_policy_data, 'wellness_data' => $wellness_data], 200);
return $this->respond(['status' => 'success', 'code' => 200, 'data' => [], 'emp_name' => $emp_reatail_policy_data[0]['insurerd_name'] ?? "", 'pre_policy_count' => 0, 'retail_policy_data' => $emp_reatail_policy_data, 'wellness_data' => $wellness_data], 200);
}
}
@ -3540,6 +3528,9 @@ class EmployeeRestController extends AdminController
$this->myLogger->logme('error', 'API claim initiate Recevied Params :' . json_encode($received_data ?? []));
$get_file_data = $this->request->getFiles('claim_docs');
$get_docs_name = $this->request->getPost('claim_doc_names') ?? [];
$policy_type_id = $this->request->getPost('policy_type_id') ?? null;
if (is_string($get_docs_name)) {
$decoded = json_decode($get_docs_name, true);
@ -4716,9 +4707,16 @@ class EmployeeRestController extends AdminController
$emp_retail_client_data = $this->clientModel
->select("
'{$emp_id}' AS emp_id,
clients.client_name as insurerd_name,
clients.email as insurerd_mail,
clients.phone as insurerd_mobile,
policy_transaction.id as policy_transaction_id,
policy_transaction.insurer_id,
policy_transaction.policy_type_id,
policy_transaction.policy_no,
policy_transaction.client_policy_id,
policy_transaction.vehicle_id,
vehicle.vehicle_no,
DATE_FORMAT(policy_transaction.policy_start_date, '%d-%b-%Y') as policy_start_date,
DATE_FORMAT(policy_transaction.policy_end_date, '%d-%b-%Y') as policy_end_date,
policy_type.policy_type,
@ -4729,17 +4727,28 @@ class EmployeeRestController extends AdminController
->join('policy_transaction', 'policy_transaction.client_id = clients.id')
->join('insurers', 'policy_transaction.insurer_id = insurers.id')
->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id')
->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
->where('policy_transaction.is_active', 1)
->where('policy_transaction.action_type', "inception")
->where('clients.is_active', 1)
->where('clients.client_type', 2)
->where('clients.phone IS NOT NULL')
->where('clients.phone', $mobile_number)
->findAll();
}else {
$emp_retail_client_data = $this->clientModel
->select("
'{$emp_id}' AS emp_id,
clients.client_name as insurerd_name,
clients.email as insurerd_mail,
clients.phone as insurerd_mobile,
policy_transaction.id as policy_transaction_id,
policy_transaction.insurer_id,
policy_transaction.policy_type_id,
policy_transaction.policy_no,
policy_transaction.client_policy_id,
policy_transaction.vehicle_id,
vehicle.vehicle_no,
DATE_FORMAT(policy_transaction.policy_start_date, '%d-%b-%Y') as policy_start_date,
DATE_FORMAT(policy_transaction.policy_end_date, '%d-%b-%Y') as policy_end_date,
policy_type.policy_type,
@ -4750,8 +4759,11 @@ class EmployeeRestController extends AdminController
->join('policy_transaction', 'policy_transaction.client_id = clients.id')
->join('insurers', 'policy_transaction.insurer_id = insurers.id')
->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id')
->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
->where('policy_transaction.is_active', 1)
->where('policy_transaction.action_type', "inception")
->where('clients.is_active', 1)
->where('clients.client_type', 2)
->where('clients.email IS NOT NULL')
->where('clients.email', $email_id)
->findAll();

View File

@ -825,9 +825,15 @@
// Fetch Sales Team
$data['salse_team'] = $this->userModel
->select('user_profiles.*,nhance_branch.id as nhance_branch_id, nhance_branch.branch_name as nhance_branch_name')
->select('
user_profiles.*,
nhance_branch.id as nhance_branch_id,
nhance_branch.branch_name as nhance_branch_name,
rm.first_name AS rm_name
')
->join('user_teams', 'user_profiles.id = user_teams.user_id')
->join('nhance_branch', 'user_profiles.nhance_branch_id = nhance_branch.id','left')
->join('user_profiles AS rm', 'user_profiles.rm_id = rm.id', 'left')
->where('user_teams.team_id', 5)
->where('user_teams.is_active', 1)
->where('user_profiles.is_active', 1)
@ -841,9 +847,19 @@
// Fetch ACM
$data['ACM'] = $this->userModel
->where('role', 3) // Assuming `role` is in `user_profiles`
->where('is_active', 1)
->findAll();
->select('
user_profiles.*,
nhance_branch.id AS nhance_branch_id,
nhance_branch.branch_name AS nhance_branch_name,
rm.first_name AS rm_name
')
->join('user_teams', 'user_profiles.id = user_teams.user_id')
->join('nhance_branch', 'user_profiles.nhance_branch_id = nhance_branch.id', 'left')
->join('user_profiles AS rm', 'user_profiles.rm_id = rm.id', 'left')
->where('user_profiles.role', 3)
->where('user_profiles.is_active', 1)
->findAll();
// echo '<pre>';
// print_r($data['ppTeamsData']); die;

View File

@ -2207,6 +2207,7 @@ class RestAuthenticationController extends AdminController
->select('clients.*')
->join('policy_transaction', 'policy_transaction.client_id = clients.id')
->where('policy_transaction.is_active', 1)
->where('policy_transaction.action_type', "inception")
->where('clients.is_active', 1)
->where('clients.phone', $mobile_number);
@ -2225,6 +2226,7 @@ class RestAuthenticationController extends AdminController
->select('clients.*')
->join('policy_transaction', 'policy_transaction.client_id = clients.id')
->where('policy_transaction.is_active', 1)
->where('policy_transaction.action_type', "inception")
->where('clients.is_active', 1)
->where('clients.email', $email_id);

View File

@ -66,6 +66,7 @@ class UserController extends AdminController
// print_r($data); die;
$data['roleData'] = $this->roleModel->select('id, role')->findAll();
$data['teamData'] = $this->teamModel->select('id, name')->where('is_active',1)->findAll();
$data['user_data'] = $this->userModel->where('is_active',1)->findAll();
$data['NHanceBranchData'] = $this->nhanceBranchModel->select('id, branch_name')->where('is_active',1)->findAll();
$this->loadLayout('UserList', $data);
}
@ -74,7 +75,7 @@ class UserController extends AdminController
public function create()
{
$this->myLogger->logme('error', 'User create function called');
dd($this->request->getPost());
// dd($this->request->getPost());
$teams = $this->request->getPost('team');
//if this is get method return to user creation page

View File

@ -85,6 +85,9 @@
'agent_code',
'file_id',
'entry_from',
'salse_person_manager_id',
'service_person_manager_id',
'service_person_branch_id',
];
@ -1784,7 +1787,63 @@
//function for fetch renewal report data
public function getRenewalReportData($start_date = null, $end_date = null, $client_type = null, $client = null, $issuer = null)
public function getRenewalReportData($start_date = null, $end_date = null, $client_type = null, $client = null, $issuer_branch = null)
{
$fromDate = date('Y-m-d', strtotime('-90 days'));
$toDate = date('Y-m-d 23:59:59');
if (!empty($start_date) && !empty($end_date)) {
$fromDate = change_date_format($start_date);
$toDate = change_date_format($end_date);
}
$query = $this->db->table('policy_transaction pt')
->select('
pt.*,
c.client_name,
c.short_name AS client_short_name,
c.client_type,
policy_type.policy_type,
i.name as insurer_name,
ib.branch_name as insurer_branch_name,
vehicle.vehicle_no,
leads.status as lead_status
')
->join('clients c', 'pt.client_id = c.id', 'left')
->join('pt_co_share_details pt_co', 'pt.id = pt_co.pt_id and pt_co.co_share_type = 1', 'left')
->join('insurers i', 'pt_co.insurer_id = i.id', 'left')
->join('insurer_branch ib', 'pt_co.insurer_branch_id = ib.id', 'left')
->join('policy_type', 'pt.policy_type_id = policy_type.id', 'left')
->join('vehicle', 'pt.vehicle_id = vehicle.id and vehicle.is_active = 1', 'left')
->join('leads', 'pt.client_policy_id = leads.source_policy_id and leads.source_policy_id != 0 and leads.is_active = 1', 'left')
->where('pt.renewal_date >=', $fromDate)
->where('pt.renewal_date <=', $toDate)
->where('pt.is_active', 1)
->where('pt_co.is_active', 1)
->where('pt.action_type', "inception")
->where("NOT EXISTS (SELECT 1 FROM policy_transaction p2 WHERE p2.source_client_policy_id = pt.client_policy_id AND p2.is_active = 1)");
// Apply filters if parameters are provided
if (!empty($client_type)) {
$query->where('c.client_type', $client_type);
}
if (!empty($client)) {
$query->where('pt.client_id', $client);
}
if (!empty($issuer_branch)) { // Corrected condition to check $issuer
$query->where('pt.issuer_branch', $issuer_branch);
}
$query->groupBy('pt.id');
$query->orderBy('pt.id', 'DESC');
// Fetch and return results
$results = $query->get()->getResultArray();
// print($this->db->getLastQuery()); die;
return $results;
}
public function getRenewalReportDataOld($start_date = null, $end_date = null, $client_type = null, $client = null, $issuer = null)
{
$fromDate = date('Y-m-d', strtotime('-90 days'));
$toDate = date('Y-m-d 23:59:59');

View File

@ -83,6 +83,12 @@ class TicketMasterModel extends Model
'manager_id',
'agent_id' ,
'vehicle_id',
'hospital_address',
'hospital_state',
'hospital_city',
'hospital_pin_code',
'hospital_phone_no',
];

View File

@ -28,6 +28,7 @@ class UserModel extends Model
"updated_at",
"is_active",
"nhance_branch_id",
"rm_id",
];
// Dates

View File

@ -488,7 +488,7 @@ table.dataTable tbody td {
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-12">
<div class="form-group col-md-6">
<label for="nhance_branch_id">NHance Branch<span class="text-danger">*</span></label>
<select class="form-control" id="nhance_branch_id" name="nhance_branch_id" required>
<option value="">Select NHance Branch</option>
@ -497,16 +497,25 @@ table.dataTable tbody td {
<?php } ?>
</select>
</div>
<div class="form-group col-md-6">
<label for="rm_id">Reporting Manager<span class="text-danger">*</span></label>
<select class="form-control" id="rm_id" name="rm_id" required>
<option value="">Select Reporting Manager</option>
<?php foreach($user_data as $value) { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="emp_code">Employee Code<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="emp_code" placeholder="Enter Code" name="emp_code" required>
<input type="text" class="form-control" id="emp_code" placeholder="Enter Code" name="emp_code" onchange="validateInput(this, 'user_profiles', 'emp_code', 'btnSubmit')" required>
</div>
<div class="form-group col-md-6">
<label for="first_name">Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" placeholder="Ente Name" name="first_name" required>
<input type="text" class="form-control" id="first_name" placeholder="Enter Name" name="first_name" required>
</div>
</div>
@ -514,7 +523,7 @@ table.dataTable tbody td {
<div class="form-row">
<div class="form-group col-md-6">
<label for="email">Email<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="email" placeholder="Enter Email" name="email" data-parsley-trigger="change" data-parsley-type="email" required>
<input type="text" class="form-control" id="email" placeholder="Enter Email" name="email" data-parsley-trigger="change" data-parsley-type="email" onchange="validateInput(this, 'user_profiles', 'email', 'btnSubmit')" required>
</div>
<div class="form-group col-md-6">
@ -863,6 +872,7 @@ table.dataTable tbody td {
$(document).ready(function () {
$('#nhance_branch_id').select2();
$('#rm_id').select2();
$('#nhance_branch_id')
.val(null) // ✅ MUST be null
@ -1070,12 +1080,13 @@ table.dataTable tbody td {
$('#mobile').val(res.data.mobile);
$('#emp_code').val(res.data.emp_code);
$('#role option[value="' + res.data.role + '"]').prop('selected', true);
$('#rm_id').val(res.data.rm_id).select2(); // ✅ correct trigger
if (res.data.nhance_branch_id !== null &&
res.data.nhance_branch_id !== "" &&
res.data.nhance_branch_id !== 0) {
$('#nhance_branch_id')
.val(res.data.nhance_branch_id)
.trigger('change.select2'); // ✅ correct trigger
.trigger('change.select2');
} else {
$('#nhance_branch_id')
.val(null) // ✅ MUST be null
@ -1819,6 +1830,7 @@ table.dataTable tbody td {
$('#mobile').val('');
$('#emp_code').val('');
$('#nhance_branch_id').val('0');
$('#rm_id').val('0');
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
let myModal = new bootstrap.Modal(document.getElementById('con-close-modal'));
myModal.show(); // open modal
@ -1836,6 +1848,29 @@ table.dataTable tbody td {
myModal.show(); // open modal
});
function validateInput(input, table, field, submitButId){
let value = $(input).val();
let label = $(input).closest('.form-group').find('label').text().replace('*', '').trim();
let message = "Value is duplicate!";
if(label){
message = label + " already exists!";
}
checkDuplicateTableFieldValue(table, field, value, function(isDuplicate) {
if (isDuplicate) {
toastr.warning(message, 'WARNING');
// $(input).val('')
$('#' + submitButId).prop('disabled', true);
} else{
$('#' + submitButId).prop('disabled', false);
}
});
}
</script>

View File

@ -333,6 +333,9 @@
<input type="hidden" name="cd_amt_changed" id="cd_amt_changed" disabled>
<input type="hidden" name="agent_code" id="agent_code">
<input type="hidden" name="issuer_branch" id="issuer_branch">
<input type="hidden" name="salse_person_manager_id" id="salse_person_manager_id">
<input type="hidden" name="service_person_manager_id" id="service_person_manager_id">
<input type="hidden" name="service_person_branch_id" id="service_person_branch_id">
<!-- <input type="hidden" id="cd_ac_no_for_edit"> -->
<input type="hidden" id="premium_details_unique_id">
@ -439,14 +442,21 @@
class="text-right"
style="font-size: x-small;">
</small>
<small id="salse_rm_info"
class="text-right"
style="font-size: x-small;">
</small>
</label>
<select class="form-control" id="sales_generated_by" name="sales_generated_by" onchange="setNhanceBranch(this)" autocomplete="off">
<select class="form-control" id="sales_generated_by" name="sales_generated_by" onchange="setNhanceBranch(this, 'nhance_branch_info'); setRM(this, 'salse_rm_info')" autocomplete="off">
<option value="" selected>Select Sales Person</option>
<?php if (isset($salse_team)) { ?>
<?php foreach ($salse_team as $value) { ?>
<option value="<?= $value['id'];?>"
data-nbid="<?= $value['nhance_branch_id'];?>"
data-nbname="<?= $value['nhance_branch_name'];?>">
data-nbid="<?= $value['nhance_branch_id'];?>"
data-nbname="<?= $value['nhance_branch_name'];?>"
data-rmid="<?= $value['rm_id'];?>"
data-rmname="<?= $value['rm_name'];?>"
>
<?= $value['first_name'];?>
</option>
<?php } ?>
@ -456,12 +466,27 @@
</div>
<div class="form-group col-md-3">
<label for="serviced_by">Serviced By</label>
<select class="form-control" id="serviced_by" name="serviced_by">
<label for="serviced_by" class="d-flex align-items-center" >
<span class="flex-grow-1">Serviced By</span>
<small id="service_nhance_branch_info"
class="text-right"
style="font-size: x-small;">
</small>
<small id="service_rm_info"
class="text-right"
style="font-size: x-small;">
</small>
</label>
<select class="form-control" id="serviced_by" name="serviced_by" onchange="setNhanceBranch(this, 'service_nhance_branch_info'); setRM(this, 'service_rm_info')">
<option value="" selected>Select Service Person</option>
<?php if (isset($ACM)) { ?>
<?php foreach ($ACM as $value) { ?>
<option value="<?= $value['id'];?>">
<option value="<?= $value['id'];?>"
data-nbid="<?= $value['nhance_branch_id'];?>"
data-nbname="<?= $value['nhance_branch_name'];?>"
data-rmid="<?= $value['rm_id'];?>"
data-rmname="<?= $value['rm_name'];?>"
>
<?= $value['first_name'];?>
</option>
<?php } ?>
@ -3303,6 +3328,30 @@
if(res.status == true){
// appendCDAccountNumber(res.data[0].cd_ac_no, unique_id)
appendCDAccountNumber(res.data, unique_id)
let balanceDiv = document.getElementById('cd_current_balance_info_' + unique_id);
setTimeout(function(){
let dropdown_value = $('#cd_ac_no_' + unique_id).val();
console.log("dropdown_value",dropdown_value)
res.data.forEach(function(item) {
if (item.id == dropdown_value) { // match found
if (item.opening_bal !== null) {
$('#cd_current_balance_info_' + unique_id).val(item.opening_bal);
balanceDiv.innerHTML =
'<span class="text-success">' + item.opening_bal + '</span>' +
' <span class="vehicle-badge success">✓ CD balance Amount</span>';
balanceDiv.classList.add('show');
}
}
});
$('.card_group_34').show();
$('.card_group_37').show();
$("select[name='cd_ac_no_for_child[]']").attr('required', 'required');
}, 1000);
// if(res.data[0].id){
// $('#cd_ac_pk_for_leader').val(res.data[0].id)
// }
@ -4767,53 +4816,85 @@
$('#policy_end_date').on('change', function () {
let startDateStr = $('#policy_start_date').val();
let endDateStr = $('#policy_end_date').val();
if (!startDateStr || !endDateStr) {
alert('Please select both Start and End dates');
return;
}
let startDateStr = $('#policy_start_date').val();
let endDateStr = $('#policy_end_date').val();
// Convert DD/MM/YYYY → Date object
let startParts = startDateStr.split('/');
let endParts = endDateStr.split('/');
if (!startDateStr || !endDateStr) {
alert('Please select both Start and End dates');
return;
}
let startDate = new Date(startParts[2], startParts[1] - 1, startParts[0]);
let endDate = new Date(endParts[2], endParts[1] - 1, endParts[0]);
// Convert DD/MM/YYYY → Date object
let startParts = startDateStr.split('/');
let endParts = endDateStr.split('/');
if (endDate <= startDate) {
alert('End Date must be greater than Start Date');
return;
}
let startDate = new Date(startParts[2], startParts[1] - 1, startParts[0]);
let endDate = new Date(endParts[2], endParts[1] - 1, endParts[0]);
// ✅ Calculate Year Difference
let yearDiff = endDate.getFullYear() - startDate.getFullYear();
if (endDate <= startDate) {
alert('End Date must be greater than Start Date');
return;
}
// Adjust if end date is before anniversary
if (
endDate.getMonth() < startDate.getMonth() ||
(endDate.getMonth() === startDate.getMonth() && endDate.getDate() < startDate.getDate())
) {
yearDiff--;
}
console.log('Year Difference:', yearDiff);
// Clear existing cards (optional but recommended)
// $('#allInsurerCards').empty();
// $('.insurer-card').remove();
// insurerCount = 0;
resetInsurerCards();
// Add cards equal to year difference
for (let i = 0; i < yearDiff; i++) {
addInsurerColumn();
}
let yearDiff = calculateYearCount(startDate, endDate);
console.log(`YDiff: ${yearDiff}`);
adjustInsurerCards(yearDiff);
});
function calculateYearCount(start, end) {
let startDate = new Date(start);
let endDate = new Date(end);
let years = endDate.getFullYear() - startDate.getFullYear();
// Build the anniversary date for calculated years
let anniversary = new Date(
startDate.getFullYear() + years,
startDate.getMonth(),
startDate.getDate()
);
// If end date is before anniversary → reduce 1 year
if (endDate < anniversary) {
years--;
}
// If there are extra days beyond exact year → round up
// (endDate >= anniversary)
return years + 1;
}
function adjustInsurerCards(yearDiff) {
console.log("CurrCount:", insurerCount);
if (yearDiff > insurerCount) {
// ADD missing cards
let cardsToAdd = yearDiff - insurerCount;
console.log("CaAd:", cardsToAdd);
for (let i = 0; i < cardsToAdd; i++) {
addInsurerColumn(); // your function
}
} else if (yearDiff < insurerCount) {
// REMOVE extra cards
let cardsToRemove = insurerCount - yearDiff;
console.log("CaRe:", cardsToRemove);
for (let i = 0; i < cardsToRemove; i++) {
removeInsurerCard(insurerCount); // remove last
}
}
console.log("UpdatedCa:", insurerCount);
}
function resetInsurerCards() {
$('#allInsurerCards').empty();
insurerCount = 0;
@ -6543,7 +6624,7 @@
}
function setNhanceBranch(select) {
function setNhanceBranch(select, show_id) {
if (!select || !select.options || select.selectedIndex < 0) {
console.warn('No option selected yet');
@ -6558,9 +6639,13 @@
console.log('NB ID:', nbID);
console.log('NB Name:', nbName);
$('#issuer_branch').val(nbID ? nbID : '');
if(show_id == "nhance_branch_info"){
$('#issuer_branch').val(nbID ? nbID : '');
}else{
$('#service_person_branch_id').val(nbID ? nbID : '');
}
let nbDiv = document.getElementById('nhance_branch_info');
let nbDiv = document.getElementById(show_id);
if (!nbID || !nbName) {
nbDiv.innerHTML = '';
@ -6575,6 +6660,42 @@
nbDiv.classList.add('show');
}
function setRM(select, show_id) {
if (!select || !select.options || select.selectedIndex < 0) {
console.warn('No option selected yet');
return;
}
let selectedOption = select.options[select.selectedIndex];
let rmid = selectedOption.getAttribute('data-rmid');
let rmname = selectedOption.getAttribute('data-rmname');
console.log('RM ID:', rmid);
console.log('RM Name:', rmname);
if(show_id == "salse_rm_info"){
$('#salse_person_manager_id').val(rmid ? rmid : '');
}else{
$('#service_person_manager_id').val(rmid ? rmid : '');
}
let rmDiv = document.getElementById(show_id);
if (!rmid || !rmname) {
rmDiv.innerHTML = '';
rmDiv.classList.remove('show');
return;
}
rmDiv.innerHTML =
'<span class="text-success">' + rmname + '</span>' +
' <span class="vehicle-badge success">✓ RM</span>';
rmDiv.classList.add('show');
}
function setPolicyIssueMonth(){
let monthDiv = document.getElementById('policy_issue_month_info');
monthAbbr = document.getElementById('month').value;

View File

@ -644,6 +644,7 @@ $(document).ready(function(){
var renewal_date = new Date(policy_end_date);
// renewal_date.setMonth(renewal_date.getMonth() - 1);
renewal_datePicker.setDate(renewal_date); // Set renewal date
renewal_datePicker.set('maxDate', policy_end_date); // set max date
}
});

View File

@ -643,6 +643,7 @@ $(document).ready(function(){
var renewal_date = new Date(policy_end_date);
// renewal_date.setMonth(renewal_date.getMonth() - 1);
renewal_datePicker.setDate(renewal_date); // Set renewal date
renewal_datePicker.set('maxDate', policy_end_date); // set max date
}
});

View File

@ -30,13 +30,13 @@
</div>
<div class="form-group col-md-3">
<label for="client_branch">Issuer<span class="text-danger"></span></label>
<select class="form-control" id="issuer" name="issuer">
<option value="">Select Issuer</option>
<label for="client_branch">Nhance Branch<span class="text-danger"></span></label>
<select class="form-control" id="issuer_branch" name="issuer_branch">
<option value="">Select Branch</option>
<?php
if (isset($issuer) && count($issuer)) {
foreach ($issuer as $key => $value) {
echo "<option value=" . $key . ">" . $value . "</option>";
if (isset($issuer_branch) && count($issuer_branch)) {
foreach ($issuer_branch as $key => $value) {
echo "<option value=" . $value['id'] . ">" . $value['branch_name'] . "</option>";
}
}
?>
@ -133,13 +133,13 @@
var toDate = $('#endDate').val();
var client_id = $('#client_id').val();
var client_type = $('#client_type').val();
var issuer = $('#issuer').val();
var issuer_branch = $('#issuer_branch').val();
var requestData = {
fromDate: fromDate,
toDate: toDate,
client_id: client_id,
client_type: client_type,
issuer: issuer,
issuer_branch: issuer_branch,
};
console.log(typeof fromDate);
var url = '<?= base_url('/bdsReport/renewal_report') ?>';

View File

@ -283,6 +283,45 @@
name="hospital_name" required>
</div>
<div class="form-group col-md-9">
<label class="label-font-size" for="hospital_address">Hospital Address <span class="text-danger">*</span></label>
<textarea class="form-control" id="hospital_address" name="hospital_address" rows="1" placeholder="Enter Hospital Address" required>
<?= isset($ticket_data['hospital_address']) ? $ticket_data['hospital_address'] : '' ?>
</textarea>
</div>
<div class="form-group col-md-3">
<label class="label-font-size" for="hospital_city">Hospital City <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="hospital_city"
placeholder="Enter Hospital City"
value="<?= isset($ticket_data['hospital_city']) ? $ticket_data['hospital_city'] : '' ?>"
name="hospital_city" required>
</div>
<div class="form-group col-md-3">
<label class="label-font-size" for="hospital_state">Hospital State <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="hospital_state"
placeholder="Enter Hospital State"
value="<?= isset($ticket_data['hospital_state']) ? $ticket_data['hospital_state'] : '' ?>"
name="hospital_state" required>
</div>
<div class="form-group col-md-3">
<label class="label-font-size" for="hospital_pin_code">Hospital Pincode <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="hospital_pin_code" maxlength="6"
placeholder="Enter Pincode"
value="<?= isset($ticket_data['hospital_pin_code']) ? $ticket_data['hospital_pin_code'] : '' ?>"
name="hospital_pin_code" required>
</div>
<div class="form-group col-md-3">
<label class="label-font-size" for="hospital_phone_no">Hospital Phone <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="hospital_phone_no" minlength="10" maxlength="10"
placeholder="Enter Phone Number"
value="<?= isset($ticket_data['hospital_phone_no']) ? $ticket_data['hospital_phone_no'] : '' ?>"
name="hospital_phone_no" required>
</div>
<div class="form-group col-md-3">
<label class="label-font-size" for="doa">DOA <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="doa" placeholder="Enter DOA"
@ -476,7 +515,6 @@
</div>
</div>
<!-- Info Modal -->
<div class="modal fade" id="moreInfoModal" tabindex="-1" role="dialog" aria-labelledby="fullWidthModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl" role="document">
@ -494,7 +532,6 @@
</div>
</div>
<script>
// $(document).ready(function() {
// var calim_status = $('#claim_status_id').val();
@ -512,6 +549,8 @@
var doa;
$(document).ready(function() {
let tpa_id_for_hid_filed = '<?= isset($ticket_data['tpa_id']) ? $ticket_data['tpa_id'] : '' ?>';
$("#emp_client_policy").select2();
var policy_id = $("#emp_client_policy").val();
@ -576,7 +615,7 @@
GlobelExtraFields = extraFields;
console.log("extraFields", extraFields);
claimStatusFieldChanges(extraFields);
handleTPARequired(tpa_id_for_hid_filed);
})
// function updateClaimStatusDisplay(value) {
@ -1211,8 +1250,12 @@
$('#insurer_name').val(insurer_name);
$('#tpa_id').val(tap_id);
$('#tpa_name').val(tap_name);
handleTPARequired(tap_id);
}
</script>
<script>
$("#infoIcon").click(function() {
var ticket_id = $('#ticket_master_id').val();
@ -1320,7 +1363,42 @@
}
}
}
function handleTPARequired(tpaId) {
console.log('handleTPARequired function called with tpaid :', tpaId)
const fields = [
"hospital_address",
"hospital_city",
"hospital_state",
"hospital_pin_code",
"hospital_phone_no"
];
fields.forEach(function (id) {
const input = document.getElementById(id);
const label = document.querySelector(`label[for="${id}"]`);
if (!input || !label) return;
if (tpaId == 3) {
input.setAttribute("required", true);
if (!label.querySelector(".text-danger")) {
label.innerHTML += ' <span class="text-danger">*</span>';
}
} else {
input.removeAttribute("required");
const star = label.querySelector("span.text-danger");
if (star) star.remove();
}
});
}
</script>
<!-- <script>
document.getElementById('approved_amount').addEventListener('input', function () {
let claimAmount = parseFloat(document.getElementById('claim_amount').value) || 0;

76
ca.pem Normal file
View File

@ -0,0 +1,76 @@
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIQB/57HSuaqUkLaasdjxUdPjANBgkqhkiG9w0BAQsFADCB
mDELMAkGA1UEBhMCVVMxIjAgBgNVBAoMGUFtYXpvbiBXZWIgU2VydmljZXMsIElu
Yy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxCzAJBgNVBAgMAldBMTEwLwYDVQQDDChB
bWF6b24gUkRTIGFwLXNvdXRoLTEgUm9vdCBDQSBSU0EyMDQ4IEcxMRAwDgYDVQQH
DAdTZWF0dGxlMCAXDTIxMDUxOTE3NDAzNFoYDzIwNjEwNTE5MTg0MDM0WjCBmDEL
MAkGA1UEBhMCVVMxIjAgBgNVBAoMGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4x
EzARBgNVBAsMCkFtYXpvbiBSRFMxCzAJBgNVBAgMAldBMTEwLwYDVQQDDChBbWF6
b24gUkRTIGFwLXNvdXRoLTEgUm9vdCBDQSBSU0EyMDQ4IEcxMRAwDgYDVQQHDAdT
ZWF0dGxlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtbkaoVsUS76o
TgLFmcnaB8cswBk1M3Bf4IVRcwWT3a1HeJSnaJUqWHCJ+u3ip/zGVOYl0gN1MgBb
MuQRIJiB95zGVcIa6HZtx00VezDTr3jgGWRHmRjNVCCHGmxOZWvJjsIE1xavT/1j
QYV/ph4EZEIZ/qPq7e3rHohJaHDe23Z7QM9kbyqp2hANG2JtU/iUhCxqgqUHNozV
Zd0l5K6KnltZQoBhhekKgyiHqdTrH8fWajYl5seD71bs0Axowb+Oh0rwmrws3Db2
Dh+oc2PwREnjHeca9/1C6J2vhY+V0LGaJmnnIuOANrslx2+bgMlyhf9j0Bv8AwSi
dSWsobOhNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQb7vJT
VciLN72yJGhaRKLn6Krn2TAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
ggEBAAxEj8N9GslReAQnNOBpGl8SLgCMTejQ6AW/bapQvzxrZrfVOZOYwp/5oV0f
9S1jcGysDM+DrmfUJNzWxq2Y586R94WtpH4UpJDGqZp+FuOVJL313te4609kopzO
lDdmd+8z61+0Au93wB1rMiEfnIMkOEyt7D2eTFJfJRKNmnPrd8RjimRDlFgcLWJA
3E8wca67Lz/G0eAeLhRHIXv429y8RRXDtKNNz0wA2RwURWIxyPjn1fHjA9SPDkeW
E1Bq7gZj+tBnrqz+ra3yjZ2blss6Ds3/uRY6NYqseFTZWmQWT7FolZEnT9vMUitW
I0VynUbShVpGf6946e0vgaaKw20=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICrjCCAjWgAwIBAgIQGKVv+5VuzEZEBzJ+bVfx2zAKBggqhkjOPQQDAzCBlzEL
MAkGA1UEBhMCVVMxIjAgBgNVBAoMGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4x
EzARBgNVBAsMCkFtYXpvbiBSRFMxCzAJBgNVBAgMAldBMTAwLgYDVQQDDCdBbWF6
b24gUkRTIGFwLXNvdXRoLTEgUm9vdCBDQSBFQ0MzODQgRzExEDAOBgNVBAcMB1Nl
YXR0bGUwIBcNMjEwNTE5MTc1MDU5WhgPMjEyMTA1MTkxODUwNTlaMIGXMQswCQYD
VQQGEwJVUzEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEG
A1UECwwKQW1hem9uIFJEUzELMAkGA1UECAwCV0ExMDAuBgNVBAMMJ0FtYXpvbiBS
RFMgYXAtc291dGgtMSBSb290IENBIEVDQzM4NCBHMTEQMA4GA1UEBwwHU2VhdHRs
ZTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMqdLJ0tZF/DGFZTKZDrGRJZID8ivC2I
JRCYTWweZKCKSCAzoiuGGHzJhr5RlLHQf/QgmFcgXsdmO2n3CggzhA4tOD9Ip7Lk
P05eHd2UPInyPCHRgmGjGb0Z+RdQ6zkitKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAd
BgNVHQ4EFgQUC1yhRgVqU5bR8cGzOUCIxRpl4EYwDgYDVR0PAQH/BAQDAgGGMAoG
CCqGSM49BAMDA2cAMGQCMG0c/zLGECRPzGKJvYCkpFTCUvdP4J74YP0v/dPvKojL
t/BrR1Tg4xlfhaib7hPc7wIwFvgqHes20CubQnZmswbTKLUrgSUW4/lcKFpouFd2
t2/ewfi/0VhkeUW+IiHhOMdU
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
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
Em4Hy3A=
-----END CERTIFICATE-----