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

This commit is contained in:
Gowtham M 2025-12-12 11:27:59 +05:30
commit 0f9aa3fe93
56 changed files with 490 additions and 288 deletions

View File

@ -5969,6 +5969,8 @@ class ClientController extends AdminController
// $emp_data = $this->employeePolicyModel->getEmployeePolicyForEcard(12);
// $ids = array_column($emp_data, 'id');
// $client_policy_id = 5062;
// $ids = [408518,408519,408520,408521,408522,408523,408524,408525,408526,408527,408528,408529,408530,408531,408532,408533,408534,408535,408536,408537,408538,408539,408540,408541,408542,408543,408544,408545,408546,408547,408548,408549,408550,408551,408552,408553,408554,408555,408556,408557,408558,408559,408560,408561,408562,408563,408564,408565,408566,408567,408568,408569,408570,408571,408572,408573,408574,408575,408576,408577,408578,408579,408580,408581,408582,408583,408584,408585,408586,408587,408588,408589,408590,408591,408592,408593,408594,408595,408596,408597,408598,408599,408600,408601,408602,408603,408604,408605,408606,408607,408608,408609,408610,408611,408612,408613,408614,408615,408616,408617,408618,408619,408620,408621,408622,408623,408624,408625,408626,408627,408628,408629,408630,408631,408632,408633,408634,408635,408636,408637,408638,408639,408640,408641,408642,408643];
$EmpDataServiceController = new EmpDataServiceController();
// $res = $EmpDataServiceController->generateExcelForDeletion($batch_data); dd($return); die;
@ -5983,7 +5985,7 @@ class ClientController extends AdminController
// $res = $EmpDataServiceController->getInceptionBasePremium(["13332","13333","13334","13335","13336"]); dd($res);//for live
// $res = $EmpDataServiceController->getDeletionBasePremium(["13248","13250","13249","13247"], json_decode('{"employeeIds":["13248","13250","13249","13247"],"client_id":"3927","client_policy_id":"6183","client_branch_id":"1874","cd_ac_no":"CD9751909505","endorsement_no":"END1238","count":4,"event_name":"deletion","policy_name":"GMC","user_id":"48"}', true)); dd($res);//for live
// $res = $EmpDataServiceController->makeEntryForBDSPolicyTransaction(json_decode('{"client_policy_id":"6187","endorsement_no":null,"emp_count":5,"action_type":"inception","no_of_insured":3,"no_of_dependent":0}', true)); dd($res);//for live
// $res = $EmpDataServiceController->sendMailForDownloadingECard($ids);
// $res = $EmpDataServiceController->sendMailForDownloadingECard(['ids' => $ids, 'client_policy_id' => $client_policy_id]);
// $res = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result);
// $res = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1);
// return $this->downloadInsurerExcelExport($batch_data);

View File

@ -710,7 +710,7 @@ class DashboardController extends AdminController
// print_r(($ids)); die;
// print_r($this->clientPolicyModel->getLastQuery()); die;
// $this->myLogger->logme('error', "Policy details fetched: " . json_encode($client_policy_data));
Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => $ids]);
Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => ['ids' => $ids, 'client_policy_id' => $policy_id]]);
// $empEmpDataServiceController = new EmpDataServiceController();
// $empEmpDataServiceController->sendMailForDownloadingECard($ids);

View File

@ -2204,7 +2204,7 @@ class EmpDataServiceController extends BaseController
if ($get_policy_type['policy_type_id'] != 1) {
$job_details = new Jobs();
$r = Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => $emp_policy_ids]);
$r = Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => ['ids' => $emp_policy_ids, 'client_policy_id' => $client_policy_id]]);
}
}
@ -4866,15 +4866,24 @@ class EmpDataServiceController extends BaseController
return true;
}
public function sendMailForDownloadingECard(array $ids, $single_mail = null)
{
public function sendMailForDownloadingECard($params, $single_mail = null)
{
// dd($params);
$this->myLogger->logme('info', 'sendMailForDownloadingECard - Function called');
$ids = $params['ids'] ?? null;
$client_policy_id = $params['client_policy_id'] ?? null;
if (empty($ids)) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - employee_policy_ids are empty');
return false;
return ['status' => false , 'message' => 'employee_policy_ids are empty'];
}
if (empty($client_policy_id)) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - client_policy_id are empty');
return ['status' => false , 'message' => 'client_policy_id are empty'];
}
$temp_id = $ids[0];
$get_client_info = $this->employeePolicyModel
@ -4897,10 +4906,11 @@ class EmpDataServiceController extends BaseController
if (!$get_client_info) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - No client information found for the first ID');
return false;
return ['status' => false , 'message' => 'No client information found for the first ID'];
}
$client_data = $this->clientModel->where('id', $get_client_info['client_id'])->first();
$notification = $this->notificationModel
->where('client_id', $get_client_info['client_id'])
->where('template_name', 'member_ecard_mail')
@ -4908,9 +4918,143 @@ class EmpDataServiceController extends BaseController
if (empty($notification) || $notification['enabled'] != 1) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Notification setup not enabled or missing for E-Card Notification');
return false;
return ['status' => false , 'message' => 'Notification setup not enabled or missing for E-Card Notification'];
}
$client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first();
// print_rr($client_policy_data); die;
// this for handle the GMC - Parants to send the E-Card mail
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Processing the GMC - Patents E-Card Mail send');
try {
$emp_details = $this->employeePolicyModel
->select("
employees.id as emp_id,
employees.client_id,
employees.client_branch_id,
employees.relationship,
employees.emp_code,
employees.email_corporate,
employees.name,
employees.mobile,
employee_polices.basic_cover_si,
(
SELECT self_data.email_corporate
FROM employees AS self_data
WHERE self_data.is_active = 1
AND self_data.emp_status = 'active'
AND self_data.family_floater_key = 'self'
AND self_data.emp_code = employees.emp_code
LIMIT 1
) AS self_mail,
cp.policy_type_id,
cp.is_addon,
cp.policy_no,
employee_polices.id as emp_policy_id,
employee_polices.client_policy_id,
employee_polices.rand_string,
employee_polices.tpa_id
")
->join('employees', 'employees.id = employee_polices.employee_id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id')
->where('employees.emp_status', 'active')
->where('employees.is_active', 1)
->where('employee_polices.status', 'active')
->where('employee_polices.is_active', 1)
->whereIn('employee_polices.id', $ids)
->groupBy('employees.emp_code')
->findAll();
// dd($emp_details);
if (!empty($emp_details)) {
$count = 0;
$processedCount = 0;
$wholeData = [];
foreach ($emp_details as $emp_value) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Processing send mail for the employee_policy_id: {id}', ['id' => $emp_value['emp_policy_id']]);
if (!empty($emp_value['self_mail'])) {
$params = [
'rand_string' => $emp_value['rand_string'],
'tpa_id' => $emp_value['tpa_id'],
'notification' => $notification,
'client_data' => $client_data,
'get_emp_email_and_other_details' => $emp_value,
'id' => $emp_value['emp_id'],
'emp_code' => $emp_value['emp_code'],
'policy_no' => $emp_value['policy_no'],
'client_policy_id' => $emp_value['client_policy_id'],
];
if(empty($single_mail)){
$params['all_member'] = 1;
}
$params['common'] = [
'client_id' => $emp_value['client_id'],
'client_branch_id' => $emp_value['client_branch_id'],
'client_policy_id' => $emp_value['client_policy_id'],
'employee_policy_id' => $emp_value['emp_policy_id'],
'employee_id' => $emp_value['emp_id'],
'mail_type' => 'member_ecard_mail',
];
$wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
$count++;
}else{
$this->myLogger->logme('error', 'sendMailForDownloadingECard - process skiped - self mail not found for the dependent employee_policy_id: {id}', ['id' => $emp_value['emp_policy_id']]);
}
$processedCount++;
// Send batch emails or handle single email
if ($count == 20 || $processedCount == count($ids)) {
if (!empty($wholeData)) {
if ($single_mail == 1) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Sending single mail');
$mail_result = MailHelper::send_email($wholeData[0]);
$this->myLogger->logme('info', 'sendMailForDownloadingECard - Single mail result: {result}', ['result' => $mail_result]);
return ['status' => true , 'data' =>$mail_result, 'message' => 'Email processing completed'];
} else {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Creating a job for bulk mail');
Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]);
$wholeData = [];
$count = 0;
}
}
}
}
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Email processing completed');
return ['status' => true , 'message' => 'Email processing completed'];
}else{
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Employee Data not found');
return ['status' => false , 'message' => 'Employee Data not found'];
}
} catch (\Exception $e) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Exception occurred: {message}', ['message' => $e->getMessage()]);
return ['status' => false , 'message' => 'Exception occurred' . $e->getMessage()];
}
}
try {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Inside try block');
@ -4985,6 +5129,8 @@ class EmpDataServiceController extends BaseController
$wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
// $wholeMailData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
$count++;
}else{
$this->myLogger->logme('error', 'sendMailForDownloadingECard - process skiped - Self not found : {id}', ['id' => $id]);
}
$processedCount++;
@ -4996,7 +5142,7 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Sending single mail');
$mail_result = MailHelper::send_email($wholeData[0]);
$this->myLogger->logme('info', 'sendMailForDownloadingECard - Single mail result: {result}', ['result' => $mail_result]);
return $mail_result;
return ['status' => true , 'data' =>$mail_result, 'message' => 'Email processing completed'];
} else {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Creating a job for bulk mail');
Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]);
@ -5011,11 +5157,11 @@ class EmpDataServiceController extends BaseController
// dd($wholeMailData);
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Email processing completed');
return true;
return ['status' => true , 'message' => 'Email processing completed'];
} catch (\Exception $e) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Exception occurred: {message}', ['message' => $e->getMessage()]);
return false;
return ['status' => false , 'message' => 'Exception occurred' . $e->getMessage()];
}
}

View File

@ -2564,16 +2564,16 @@ class EmployeeController extends AdminController
}
}
public function send_mail_for_individual_employee_ecard($id)
public function send_mail_for_individual_employee_ecard($id, $client_policy_id)
{
$ids[] = $id;
$empDataServiceController = new EmpDataServiceController();
$result = $empDataServiceController->sendMailForDownloadingECard($ids, 1);
$result = $empDataServiceController->sendMailForDownloadingECard(['ids' => $ids, 'client_policy_id' => $client_policy_id], 1);
if ($result) {
return $this->respond(['status' => true,'code' => 200,'message' => 'Mail sent successfully', 'result' => $result,], 200);
if (isset($result['status']) && $result['status'] == true) {
return $this->respond(['status' => true,'code' => 200,'message' => 'Mail sent successfully', 'result' => $result], 200);
} else {
return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to sent mail.'], 404);
return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to sent mail.', 'result' => $result], 200);
}
}

View File

@ -392,7 +392,7 @@ class MediAssistApiController extends BaseController
// send e-card
if(!empty($employee_policy_ids)){
log_message('error', "sendMailForDownloadingECard JOB PUSHED.");
Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => $employee_policy_ids]);
Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => ['ids' => $employee_policy_ids, 'client_policy_id' => $client_policy_id]]);
}
// update file table status after the tpa id successfully updated

View File

@ -63,6 +63,19 @@ class RuleImportController extends AdminController
public function commissionFileUploadList()
{
// print_rr($this->ruleImportService->processUpload([
// 'id' => 60,
// 'file_name' => 'Sample_commission_file-New.xlsx',
// 'insurer_id' => 77,
// 'department' => 'motor',
// 'commission_month' => '2025-11-10',
// 'created_by' => 10
// ]));
// die();
$data['page_name'] = "Commision File Upload";
$data['departments'] = $this->departments;
$data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll();

View File

@ -10,11 +10,19 @@ class CommissionApiFilter implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
return null;
// return null;
// Read API key from header
// $authHeader = $request->getHeaderLine('X');
$authHeader = $request->getHeaderLine('AUTHORIZATION');
if(empty($authHeader))
{
$authHeader = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
// echo $authHeader;die();
}
// $requestHeaders = getallheaders();
// // $authHeader = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
// // $authHeader = $_SERVER['Authorization'];
// print_r($authHeader);
// print_r($_SERVER);die();
if (empty($authHeader)) {
return service('response')->setJSON([
'success' => false,

View File

@ -36,6 +36,7 @@ class RuleImportService
];
// Column name constants
private const COL_SNO = 'S.No';
private const COL_RULE_NAME = 'Rule Name';
private const COL_POLICY_BUSINESS_TYPE = 'Policy Business Type';
private const COL_POLICY_NAME = 'Policy Name';
@ -52,12 +53,17 @@ class RuleImportService
private const COL_VEHICLE_WEIGHT_MIN = 'Vehicle Weight Min';
private const COL_VEHICLE_WEIGHT_MAX = 'Vehicle Weight Max';
private const COL_RTO_STATE = 'RTO State';
private const COL_RTO_CITY = 'RTO City';
private const COL_RTO_CITY = 'RTO Code';
private const COL_RENEWAL_TYPE = 'Renewal Type';
private const COL_RENEWAL_SUB_TYPE = 'Renewal Sub Type';
private const COL_COMMISSION_TYPE = 'Commission Type';
private const COL_COMMISSION_VALUE = 'Commission Value';
private const COL_COMMISSION_PARAMS = 'Commission Params(TP:OD:PA)';
private const COL_COMMISSION_PARAMS_OD = 'Commission Params (OD)';
private const COL_COMMISSION_PARAMS_PA = 'Commission Params (PA)';
private const COL_COMMISSION_PARAMS_TP = 'Commission Params (TP)';
private const COL_NOTES = 'Notes';
protected array $expectedColumns;
@ -82,9 +88,10 @@ class RuleImportService
private function initializeExpectedColumns(): void
{
$this->expectedColumns = [
self::COL_RULE_NAME,
self::COL_POLICY_BUSINESS_TYPE,
self::COL_POLICY_NAME,
// self::COL_RULE_NAME,
// self::COL_POLICY_BUSINESS_TYPE,
// self::COL_POLICY_NAME,
self::COL_SNO,
self::COL_PREMIUM_TYPE,
self::COL_VEHICLE_TYPE,
self::COL_VEHICLE_SUB_TYPE,
@ -100,11 +107,13 @@ class RuleImportService
self::COL_RTO_STATE,
self::COL_RTO_CITY,
self::COL_RENEWAL_TYPE,
self::COL_RENEWAL_SUB_TYPE,
// self::COL_RENEWAL_SUB_TYPE,
self::COL_COMMISSION_TYPE,
self::COL_COMMISSION_VALUE,
self::COL_COMMISSION_PARAMS,
self::COL_NOTES
self::COL_COMMISSION_PARAMS_TP,
self::COL_COMMISSION_PARAMS_OD,
self::COL_COMMISSION_PARAMS_PA,
// self::COL_NOTES
];
}
@ -123,7 +132,7 @@ class RuleImportService
self::COL_FUEL_TYPE => 'validateCommaList',
self::COL_COMMISSION_TYPE => 'validateCommissionType',
self::COL_COMMISSION_VALUE => 'validateNumeric',
self::COL_COMMISSION_PARAMS => 'validateCompositeParams',
// self::COL_COMMISSION_PARAMS => 'validateCompositeParams',
];
}
@ -402,13 +411,16 @@ class RuleImportService
{
$commissionType = strtolower($rowData[self::COL_COMMISSION_TYPE] ?? '');
$commissionValue = $rowData[self::COL_COMMISSION_VALUE] ?? '';
$commissionParams = $rowData[self::COL_COMMISSION_PARAMS] ?? '';
// $commissionParams = $rowData[self::COL_COMMISSION_PARAMS] ?? '';
$commissionParams_od = $rowData[self::COL_COMMISSION_PARAMS_OD] ?? '';
$commissionParams_pa = $rowData[self::COL_COMMISSION_PARAMS_PA] ?? '';
$commissionParams_tp = $rowData[self::COL_COMMISSION_PARAMS_TP] ?? '';
// Composite commission requires params
if ($commissionType === self::COMMISSION_COMPOSITE && empty($commissionParams)) {
if ($commissionType === self::COMMISSION_COMPOSITE && empty($commissionParams_od) && empty($commissionParams_pa) && empty($commissionParams_tp)) {
$this->validationResult->addError(
$rowNum,
self::COL_COMMISSION_PARAMS,
self::COL_COMMISSION_PARAMS_OD,
"Required when commission type is composite"
);
}
@ -1255,10 +1267,14 @@ class RuleImportService
$commissionType = strtolower(trim($rowData[self::COL_COMMISSION_TYPE] ?? ''));
$commissionValue = $rowData[self::COL_COMMISSION_VALUE] ?? '';
$commissionParams = $rowData[self::COL_COMMISSION_PARAMS] ?? '';
$commissionParams_od = $rowData[self::COL_COMMISSION_PARAMS_OD] ?? '';
$commissionParams_pa = $rowData[self::COL_COMMISSION_PARAMS_PA] ?? '';
$commissionParams_tp = $rowData[self::COL_COMMISSION_PARAMS_TP] ?? '';
$commission = $commissionParams_tp.':'.$commissionParams_od.':'. $commissionParams_pa;
switch ($commissionType) {
case 'composite':
return $this->buildCompositeCalculation($commissionParams);
return $this->buildCompositeCalculation($commission);
case 'percentage':
return $this->buildPercentageCalculation($commissionValue);

View File

@ -203,7 +203,7 @@
<?php } ?>
<?php if($employee['relationship'] == 'Self' && in_array($employee['policy_type_id'], [2,3,4,5]) && $employee['email_corporate'] != '' && $employee['emp_status'] == 'active' && $employee['status'] == 'active' && !empty($employee['tpa_id'])) { ?>
<a class="dropdown-item" onclick="send_mail_for_individual_employee_ecard('<?= $employee['id'];?>')" ><i class="mdi mdi-email-alert mr-2 text-muted font-18 vertical-middle"></i>Send E-Card Mail</a>
<a class="dropdown-item" onclick="send_mail_for_individual_employee_ecard('<?= $employee['id'];?>', '<?= $employee['client_policy_id'];?>')" ><i class="mdi mdi-email-alert mr-2 text-muted font-18 vertical-middle"></i>Send E-Card Mail</a>
<?php } ?>
</div>
@ -553,7 +553,7 @@
});
}
function send_mail_for_individual_employee_ecard(id){
function send_mail_for_individual_employee_ecard(id, client_policy_id){
Swal.fire({
title: "Do you want to send Ecard Mail?",
@ -570,7 +570,7 @@
$.ajax({
url: '<?php echo base_url('util/send_mail_for_individual_employee_ecard/');?>'+id,
url: '<?php echo base_url('util/send_mail_for_individual_employee_ecard/');?>'+id + '/' + client_policy_id,
type: "GET",
dataType: 'json',
success: function (res) {

View File

@ -189,7 +189,7 @@
<div class="card-body">
<div class="row" style="margin-bottom:1rem;">
<div class="col-6" style="align-self: center;">
<h4 style="position: relative;">Add Endorsement</h4>
<h4 id="page_title" style="position: relative;">Add Endorsement</h4>
</div>
<div class="col-6" style="text-align: right;">
<a href="<?= base_url('policy_tranction/endorsement/list2') ?>" id="btnAdd" class="btn btn-primary waves-effect waves-light"
@ -2166,7 +2166,7 @@
</div>
</div>
<div class="form-row mb-2 card_group_7" style="display:none;">
<div class="form-row mb-2 card_group_7">
<div class="col-6"><label class="card_label_7">Base </label></div>
<div class="col-6">
<input type="text" class="form-control right-align-input" id="co_premium_${insurerCount}" name="co_premium[]" oninput="amountCalculation('${insurerCount}')" onkeypress="return onlyNumbers(event)">
@ -2234,31 +2234,31 @@
<div class="form-row">
<div class="col-12">
<div class="form-row mb-1 text-success small font-weight-bold">
<div class="col-4">Remuneration</div>
<div class="col-4"></div>
<div class="col-4 hidetp"></div>
<div class="col-4 hideter" style="display:none;"></div>
<div class="col-4 csslabel">Remuneration</div>
<div class="col-4 cssbp"></div>
<div class="col-4 hidetp csstp"></div>
<div class="col-4 hideter csstep" style="display:none;"></div>
</div>
</div>
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_14">Agreed (%)</label></div>
<div class="col-4 card_group_14">
<div class="col-4 csslabel"><label class="card_label_14">Agreed (%)</label></div>
<div class="col-4 card_group_14 cssbp">
<div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp; </span>
<input type="text" class="form-control right-align-input input-content" id="agreed_bp_${insurerCount}" name="agreed_bp[]" oninput="amountCalculation('${insurerCount}'); validateRange(this)" onkeypress="return onlyNumbers(event)" >
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_15 hidetp">
<div class="col-4 card_group_15 hidetp csstp">
<div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp; </span>
<input type="text" class="form-control right-align-input input-content" id="agreed_tp_${insurerCount}" name="agreed_tp[]" oninput="amountCalculation('${insurerCount}'); validateRange(this)" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_16 hideter" style="display:none;">
<div class="col-4 card_group_16 hideter csstep" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp; </span>
<input type="text" class="form-control right-align-input input-content" id="agreed_tep_${insurerCount}" name="agreed_ter[]" oninput="amountCalculation('${insurerCount}'); validateRange(this)" onkeypress="return onlyNumbers(event)" >
@ -2281,22 +2281,22 @@
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_18">Standard</label></div>
<div class="col-4 card_group_18">
<div class="col-4 csslabel"><label class="card_label_18">Standard</label></div>
<div class="col-4 card_group_18 cssbp">
<div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-color right-align-input input-content" id="standard_bp_${insurerCount}" name="standard_bp[]" onkeypress="return onlyNumbers(event)" readonly>
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_19 hidetp">
<div class="col-4 card_group_19 hidetp csstp">
<div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-color right-align-input input-content" id="standard_tp_${insurerCount}" name="standard_tp[]" onkeypress="return onlyNumbers(event)" readonly >
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_20 hideter" style="display:none;">
<div class="col-4 card_group_20 hideter csstep" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-color right-align-input input-content" id="standard_tep_${insurerCount}" name="standard_ter[]" onkeypress="return onlyNumbers(event)" readonly></td>
@ -2320,22 +2320,22 @@
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_24">Actual (%)</label></div>
<div class="col-4 card_group_24">
<div class="col-4 csslabel"><label class="card_label_24">Actual (%)</label></div>
<div class="col-4 card_group_24 cssbp">
<div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input input-content" id="actual_bp_per_${insurerCount}" name="actual_bp_per[]" onchange="actualAmountCalculation('${insurerCount}', 'bp_per')" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_22 hidetp">
<div class="col-4 card_group_22 hidetp csstp">
<div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input input-content" id="actual_tp_per_${insurerCount}" name="actual_tp_per[]" onchange="actualAmountCalculation('${insurerCount}', 'tp_per')" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_23 hideter" style="display:none;">
<div class="col-4 card_group_23 hideter csstep" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input input-content" id="actual_tep_per_${insurerCount}" name="actual_tep_per[]" onchange="actualAmountCalculation('${insurerCount}', 'tep_per')" onkeypress="return onlyNumbers(event)">
@ -2347,20 +2347,20 @@
` : ''}
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_21">Actual brokerage Amount</label></div>
<div class="col-4 card_group_21">
<div class="col-4 csslabel "><label class="card_label_21">Actual Amount</label></div>
<div class="col-4 card_group_21 cssbp">
<div class="input-wrap">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_bp_brokerage_amt_${insurerCount}" name="actual_bp_brokerage_amt[]" onchange="actualAmountCalculation('${insurerCount}', 'bp_broker_amt')" onkeypress="return onlyNumbers(event)">
</div>
</div>
<div class="col-4 card_group_22 hidetp">
<div class="col-4 card_group_22 hidetp csstp">
<div class="input-wrap">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_tp_brokerage_amt_${insurerCount}" name="actual_tp_brokerage_amt[]" onchange="actualAmountCalculation('${insurerCount}', 'tp_broker_amt' )" onkeypress="return onlyNumbers(event)">
</div>
</div>
<div class="col-4 card_group_23 hideter" style="display:none;">
<div class="col-4 card_group_23 hideter csstep" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_tep_brokerage_amt_${insurerCount}" name="actual_tep_brokerage_amt[]" onchange="actualAmountCalculation('${insurerCount}', 'tep_broker_amt')" onkeypress="return onlyNumbers(event)">
@ -2449,38 +2449,68 @@
// Instead of manipulating global classes like $('.hideter').show(), we manipulate classes on the card elements.
// General reset/hide for the current card
if(allocg == "EB"){
$('.hideter').hide();
$('.hidetp').hide();
$('.hidecoter').hide()
$('.hidecotp').hide()
}else{
console.log(allocg);
console.log("*(");
var $allPremiumCols = $('.csslabel, .cssbp , .csstp,.csstep');
$('.hidetp').show();
if(is_co_pay_yes == 1){
$('.hidecotp').show();
$('#table_tr_7').show();
$('#table_tr_35').show();
$('#table_tr_3').show();
}else{
$('.hidecotp').hide();
$('#table_tr_7').hide();
$('#table_tr_35').hide();
$('#table_tr_3').hide();
}
if (allocg == "EB") {
// ----------------------------------------------------
// CASE: 2 Columns Visible (Label, BP)
// Goal: Both must be col-6 to fill the row (6 + 6 = 12)
// ----------------------------------------------------
$('.hideter').hide();
$('.hidetp').hide();
$('.hidecoter').hide();
$('.hidecotp').hide();
if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){
$('.hideter').show();
if(is_co_pay_yes == 1){
$('.hidecoter').show();
}else{
$('.hidecoter').hide();
}
}else{
$('.hideter').hide();
}
// Select ONLY the currently visible columns and set them to col-6
// Since TP and TEP have the hidetp/hideter classes, they are hidden and excluded by :visible.
$allPremiumCols.filter(':visible').removeClass('col-3 col-4').addClass('col-6');
} else {
// TP column is visible here
$('.hidetp').show();
if (is_co_pay_yes == 1) {
$('.hidecotp').show();
$('#table_tr_7').show();
$('#table_tr_35').show();
$('#table_tr_3').show();
} else {
$('.hidecotp').hide();
$('#table_tr_7').hide();
$('#table_tr_35').hide();
$('#table_tr_3').hide();
}
if (bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull') {
// ----------------------------------------------------
// CASE: 4 Columns Visible (Label, BP, TP, TEP)
// Goal: All must be col-3 (3 + 3 + 3 + 3 = 12)
// ----------------------------------------------------
$('.hideter').show();
if (is_co_pay_yes == 1) {
$('.hidecoter').show();
} else {
$('.hidecoter').hide();
}
// Action for 4 visible columns: Select ALL and set them to col-3
$allPremiumCols.removeClass('col-4 col-6').addClass('col-3');
} else {
// ----------------------------------------------------
// CASE: 3 Columns Visible (Label, BP, TP)
// Goal: All three must be col-4 (4 + 4 + 4 = 12)
// ----------------------------------------------------
$('.hideter').hide();
// Action for 3 visible columns: Select ONLY visible and set them to col-4
// TEP is hidden and excluded by :visible.
$allPremiumCols.filter(':visible').removeClass('col-3 col-6').addClass('col-4');
}
}
// --- 3. Set Standard Percentages ---
var std_bp = 0;
var std_tp = 0;
@ -2973,7 +3003,7 @@
if (tpValueField) {
tpValueField.forEach((field) => { field.value = inputValue; });
console.log("Updated", tpValueFields.length, "hidden tp premiums");
console.log("Updated", tpValueField.length, "hidden tp premiums");
} else {
console.error("Error: Element with class '.tp_value' not found.");
}

View File

@ -318,7 +318,7 @@
<div class="col-1" style="text-align: right; position: relative; left: 193px;">
<a href="<?= base_url('policy_tranction/inception/list2') ?>" type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light">Back</a>
</div>
</div>
</div><!-- row -->
<form role="form" class="parsley-examples" method="post" id="inception_form_id" enctype="multipart/form-data">
<input type="hidden" name="id" id="policy_tranction_primarykey">
@ -520,10 +520,10 @@
</div>
</div>
</div>
</div>
</div> <!-- default_row -->
<!-- Vehicle Quick Add DIV -->
<div class="row" id="vehicle_row_div"></div>
<div class="row" id="vehicle_row_div"></div><!-- vehicle_row_div -->
<!-- Client Details Row -->
<div class="row">
@ -535,8 +535,8 @@
<a id="toggleIcon" class="text-dark float-right" data-toggle="collapse" href="#collapseOne"
aria-expanded="true">
<i id="icon" class="mdi mdi-chevron-up mr-1 text-primary" style="font-size: 28px;"></i>
</a>
</label>
</a><!-- toggleIcon -->
</label><!-- policyAccordion -->
<div class="card mb-1">
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_0">
<div class="card-body">
@ -581,7 +581,7 @@
</select>
</div> -->
</div>
</div><!-- actcual_clients -->
<div class="row" id="policyholdernamediv" style="display: none;">
<div class="form-group col-md-3">
@ -597,7 +597,7 @@
<label for="same_as_proposer"
style="position: relative;top: 31px;left: 17px;">Insured (Same as Proposer)</label>
</div>
</div>
</div><!-- policyholdernamediv -->
<div class="row" id="family_details" style="display: none;">
<div class="col-md-12">
<div class="form-section">
@ -605,16 +605,16 @@
<div id="dynamic-form-container-for-insured"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div> <!-- family_details -->
</div><!-- card-body -->
</div><!-- collapseOne -->
</div><!-- card mb-1 -->
</div><!-- accordion_0 closed -->
</div> <!-- Section 1 closed -->
</div><!-- Client Details Row closed -->
<!-- Client Quick Add DIV -->
<div class="row" id="client_row_div"></div>
<div class="row" id="client_row_div"></div><!-- client_row_div -->
<!-- Sales Row -->
<div class="row" id="sales_row" style="display: none;">
@ -629,153 +629,136 @@
</label>
<div class="card mb-1">
<div id="collapseThree" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_2">
<div class="card-body">
<div class="row">
<div class="card-body">
<div class="row">
<div class="form-group col-md-12" id="renewal" style="display: none;">
<label for="addon_policy"> Renewal Source Policy <span id="base_danger"class="text-danger"></span></label>
<select class="form-control" id="source_client_policy_id"name="source_client_policy_id" onchange="setRenewalPolicyData(this)">
<option value="" selected>Select Renewal Source Policy</option>
</select>
</div>
<div class="form-group col-md-12" id="renewal" style="display: none;">
<label for="addon_policy"> Renewal Source Policy <span id="base_danger"class="text-danger"></span></label>
<select class="form-control" id="source_client_policy_id"name="source_client_policy_id" onchange="setRenewalPolicyData(this)">
<option value="" selected>Select Renewal Source Policy</option>
</select>
</div> <!-- renewal -->
<div class="form-group col-md-3" id="base_policy_id" style="display: none;">
<label for="addon_policy">Base Policy<span id="base_danger"
class="text-danger">*</span></label>
<select class="form-control" id="base_policy" name="base_policy">
<option value="" selected>Select Base Policy</option>
</select>
</div>
<div class="form-group col-md-3">
<label for="addon_policy">Policy No<span id="base_danger"class="text-danger">*</span></label>
<input type="text" class="form-control" id="policy_no" name="policy_no"placeholder="Enter Policy No" >
</div>
<div class="form-group col-md-3">
<div class="form-group col-md-3" id="base_policy_id" style="display: none;">
<label for="addon_policy">Base Policy<span id="base_danger"
class="text-danger">*</span></label>
<select class="form-control" id="base_policy" name="base_policy">
<option value="" selected>Select Base Policy</option>
</select>
</div><!-- base_policy_id -->
<label for="addon_policy" class="d-flex align-items-center">
<span class="flex-grow-1">Policy Issue Date<span id="base_danger" class="text-danger">*</span></span>
<small id="policy_issue_month_info"
class="text-right"
style="font-size: x-small;">
</small>
</label>
<input type="text" class="form-control" id="policy_issue_date" name="policy_issue_date" placeholder="DD/MM/YYYY" >
</div>
<div class="d-none">
<label for="addon_policy">Policy Issue Month<span id="base_danger" class="text-danger">*</span></label>
<input type="text" class="form-control readonly-select" id="month" name="month" placeholder="MM/YYYY" >
</div>
<div class="form-group col-md-3">
<label for="addon_policy">Policy No<span id="base_danger"class="text-danger">*</span></label>
<input type="text" class="form-control" id="policy_no" name="policy_no"placeholder="Enter Policy No" >
</div><!-- form-group col-md-3 Policy No -->
<div class="form-group col-md-3">
<label for="bp_cgst">D.O.C</label>
<input id="policy_start_date" type="text" class="form-control" name="policy_start_date" placeholder="DD/MM/YYYY" >
</div>
<div class="form-group col-md-3">
<label for="addon_policy" class="d-flex align-items-center">
<span class="flex-grow-1">Policy Issue Date<span id="base_danger" class="text-danger">*</span></span>
<small id="policy_issue_month_info"
class="text-right"
style="font-size: x-small;">
</small>
</label>
<input type="text" class="form-control" id="policy_issue_date" name="policy_issue_date" placeholder="DD/MM/YYYY" >
</div><!-- form-group col-md-3 Policy Issue Date -->
<div class="form-group col-md-3">
<label for="bp_igst">D.O.E</label>
<input id="policy_end_date" type="text" class="form-control" name="policy_end_date" placeholder="DD/MM/YYYY" >
</div>
<!--
<div class="form-group col-md-3" id="tpa_div">
<label for="tpa"> TPA <span id="tpa_danger"class="text-danger"></span></label>
<select class="form-control" id="tpa" name="tpa" >
<option value="" selected>Select TPA</option>
<?php foreach ($tpa as $value) { ?>
<option value="<?= $value['id'] . '-' . $value['tpa_id'] ?>">
<?= $value['tpa_short_name'] . '-' . $value['branch_code'] ?>
</option>
<?php } ?>
</select>
</div> -->
<div class="d-none">
<label for="addon_policy">Policy Issue Month<span id="base_danger" class="text-danger">*</span></label>
<input type="text" class="form-control readonly-select" id="month" name="month" placeholder="MM/YYYY" >
</div><!-- Policy Issue Month -->
<div class="form-group col-md-3" id="no_of_insured_div">
<label for="addon_policy">No of Insured<span id="base_danger"class="text-danger"></span></label>
<input type="text" class="form-control" id="emp_count" name="emp_count" placeholder="Enter Employeee" onkeypress="return onlyNumbers(event)">
</div>
<div class="form-group col-md-3">
<label for="bp_cgst">D.O.C</label>
<input id="policy_start_date" type="text" class="form-control" name="policy_start_date" placeholder="DD/MM/YYYY" >
</div><!-- D.O.C -->
<div class="form-group col-md-3" id="no_of_dependents_div">
<label for="addon_policy">No of Dependents<span id="base_danger" class="text-danger"></span></label>
<input type="text" class="form-control" id="dependent_count" name="dependent_count" placeholder="Enter Dependent" onkeypress="return onlyNumbers(event)">
</div>
<div class="form-group col-md-3">
<label for="bp_igst">D.O.E</label>
<input id="policy_end_date" type="text" class="form-control" name="policy_end_date" placeholder="DD/MM/YYYY" >
</div><!-- D.O.E -->
<div class="form-group col-md-3">
<label for="installment">Installment &nbsp; <i id="infoIcon" class="mdi mdi-information-outline info-icon" data-toggle="tooltip" title="Click for Installment details" style="margin-left: 5px;"></i></label>
<input id="installment" value="" type="text" class="form-control" name="installment">
</div>
<div class="form-group col-md-3" id="no_of_insured_div">
<label for="addon_policy">No of Insured<span id="base_danger"class="text-danger"></span></label>
<input type="text" class="form-control" id="emp_count" name="emp_count" placeholder="Enter Employeee" onkeypress="return onlyNumbers(event)">
</div><!-- no_of_insured_div -->
<div class="form-group col-md-3">
<label for="installment_data">
Installment Data
</label>
<input id="installment_data" class="form-control" name="installment_data">
</div>
<div class="form-group col-md-3" id="no_of_dependents_div">
<label for="addon_policy">No of Dependents<span id="base_danger" class="text-danger"></span></label>
<input type="text" class="form-control" id="dependent_count" name="dependent_count" placeholder="Enter Dependent" onkeypress="return onlyNumbers(event)">
</div><!-- no_of_dependents_div -->
<!-- <div class="form-group col-md-3">
<label for="spl">SPL</label>
<input id="spl" value="" type="text" class="form-control" name="spl">
</div> -->
<div class="form-group col-md-3">
<label for="installment">Installment &nbsp; <i id="infoIcon" class="mdi mdi-information-outline info-icon" data-toggle="tooltip" title="Click for Installment details" style="margin-left: 5px;"></i></label>
<input id="installment" value="" type="text" class="form-control" name="installment">
</div><!-- Installment -->
<div class="form-group col-md-3">
<label class="card_label_4">Base Premium<span id="base_danger" class="text-danger">*</span></label>
<input type="text" class="form-control right-align-input" id="base_premium" name="base_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setBPValue(this.value)" required>
</div>
<div class="form-group col-md-3 hidetp">
<label class="card_label_5">TP Premium</label>
<input type="text" class="form-control right-align-input" id="tp_premium" name="tp_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setTPValue(this.value)">
</div>
<div class="form-group col-md-3">
<label for="installment_data">
Installment Data
</label>
<input id="installment_data" class="form-control" name="installment_data">
</div><!-- Installment Data -->
<div class="form-group col-md-3 hideter card_group_6" style="display:none;">
<label class="card_label_6">TEP Premium</label>
<input type="text" class="form-control right-align-input" id="ter_premium" name="ter_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setTEPValue(this.value)">
</div>
<div class="form-group col-md-2">
<label class="switch" style="position: relative;top: 30px;left: 4px;">
<input id="cop_yes" type="checkbox" name="co_share">
<span class="slider round" style="height: 27px;"></span>
</label>
<label for="inception_type"
style="position: relative;top: 31px;left: 17px;">CoP Yes</label>
</div>
<div class="form-group col-md-4 payby d-none">
<label class="switch" style="position: relative;top: 30px;left: 4px;">
<input id="bro_payable_by" type="checkbox" name="bro_payable_by" checked>
<span class="slider round" style="height: 27px;"></span>
</label>
<label for="inception_type" style="position: relative;top: 31px;left: 17px;">Remuneration Pay By Leader</label>
</div>
<div class="form-group col-md-4">
<label for="renewal_date">Renewal Date<span id="base_danger"
class="text-danger">*</span></label>
<input type="text" class="form-control" id="renewal_date"
name="renewal_date" placeholder="DD/MM/YYYY">
</div>
<div class="form-group col-md-3">
<label class="card_label_4">Base Premium<span id="base_danger" class="text-danger">*</span></label>
<input type="text" class="form-control right-align-input" id="base_premium" name="base_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setBPValue(this.value)" required>
</div><!-- Base Premium -->
<div class="form-group col-md-3 hidetp">
<label class="card_label_5">TP Premium</label>
<input type="text" class="form-control right-align-input" id="tp_premium" name="tp_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setTPValue(this.value)">
</div><!-- TP Premium -->
</div>
<!-- <div class="row"> -->
<!-- <div class="form-group col-md-3">
<label for="location">Location<span id="base_danger"class="text-danger"></span></label>
<input type="text" class="form-control" id="location" name="location"placeholder="Enter location" >
</div> -->
<!-- </div> -->
</div>
</div>
<div class="form-group col-md-3 hideter card_group_6" style="display:none;">
<label class="card_label_6">TEP Premium</label>
<input type="text" class="form-control right-align-input" id="ter_premium" name="ter_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setTEPValue(this.value)">
</div><!-- TEP Premium -->
<div class="form-group col-md-2">
<label class="switch" style="position: relative;top: 30px;left: 4px;">
<input id="cop_yes" type="checkbox" name="co_share">
<span class="slider round" style="height: 27px;"></span>
</label>
<label for="inception_type"
style="position: relative;top: 31px;left: 17px;">CoP Yes</label>
</div><!-- CoP Yes -->
<div class="form-group col-md-4 payby d-none">
<label class="switch" style="position: relative;top: 30px;left: 4px;">
<input id="bro_payable_by" type="checkbox" name="bro_payable_by" checked>
<span class="slider round" style="height: 27px;"></span>
</label>
<label for="inception_type" style="position: relative;top: 31px;left: 17px;">Remuneration Pay By Leader</label>
</div><!-- Remuneration Pay By Leader -->
<div class="form-group col-md-4">
<label for="renewal_date">Renewal Date<span id="base_danger"
class="text-danger">*</span></label>
<input type="text" class="form-control" id="renewal_date"
name="renewal_date" placeholder="DD/MM/YYYY">
</div><!-- Renewal Date -->
</div><!-- collapseThree card-body row -->
</div><!-- collapseThree card-body -->
</div><!-- collapseThree -->
</div><!-- card mb-1 -->
</div> <!-- accordion_2 div closed here -->
</div><!-- 1st col-md-12 div closed here -->
<!-- Premium Details -->
</div> <!-- sales_row div closed here -->
<!-- Premium Details Row -->
<div class="row" id="premium_details_row">
<div class="col-md-12">
<div id="accordion_3" class="mb-0">
<label id="policyAccordion" class="m-1 d-flex justify-content-between align-items-center">
<span class="font-color-black">Premium Details</span>
@ -783,36 +766,31 @@
aria-expanded="true">
<i id="icon" class="mdi mdi-chevron-up mr-1 text-primary" style="font-size: 28px;"></i>
</a>
</label>
</label><!-- Premium Details policyAccordion -->
<div class="card mb-0">
<div id="collapseFour" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_3">
<div class="card-body">
<div id="allInsurerCards"></div>
</div>
</div> <!-- collapseFour div closed here -->
</div>
</div> <!-- accordion_3 div closed here -->
<!-- ends Premium Details -->
</div> <!-- sales_row div closed here -->
<div class="row">
<div class="col-12">
<div class="form-group text-right mt-2 m-b-0" id="submitButton">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
id="btnSubmit">Submit</button>
</div>
</div> <!-- Premium Details collapseFour div card-body closed here -->
</div> <!-- Premium Details collapseFour div closed here -->
</div><!-- Premium Details policyAccordion card -->
</div> <!-- Premium Details accordion_3 div closed here -->
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- end form row -->
</div><!-- ends Premium Details -->
<div class="form-group text-right mt-3 m-b-0" id="submitButton">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnSubmit">Submit</button>
</div><!-- submitButton -->
</form><!-- role="form" -->
</div><!-- card-body -->
</div><!-- card -->
</div><!-- col-xl-12 -->
</div><!-- end inception_form row -->
</div><!-- tab-pane -->
<!-- Vehicle form content modal-->
<div class="modal fade" id="vehicle_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" data-backdrop="static">
@ -4482,31 +4460,31 @@
<div class="form-row">
<div class="col-12">
<div class="form-row mb-1 text-success small font-weight-bold">
<div class="col-4">Remuneration</div>
<div class="col-4"></div>
<div class="col-4 hidetp"></div>
<div class="col-4 hideter" style="display:none;"></div>
<div class="col-4 csslabel">Remuneration</div>
<div class="col-4 cssbp"></div>
<div class="col-4 csstp hidetp"></div>
<div class="col-4 csstep hideter" style="display:none;"></div>
</div>
</div>
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_14">Agreed (%)</label></div>
<div class="col-4 card_group_14">
<div class="col-4 csslabel "><label class="card_label_14">Agreed (%)</label></div>
<div class="col-4 cssbp card_group_14">
<div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp; </span>
<input type="text" class="form-control right-align-input input-content" id="agreed_bp_${insurerCount}" name="agreed_bp[]" oninput="validateRange(this);" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_15 hidetp">
<div class="col-4 card_group_15 csstp hidetp">
<div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp; </span>
<input type="text" class="form-control right-align-input input-content" id="agreed_tp_${insurerCount}" name="agreed_tp[]" oninput="validateRange(this);" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_16 hideter" style="display:none;">
<div class="col-4 card_group_16 csstep hideter" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp; </span>
<input type="text" class="form-control right-align-input input-content" id="agreed_ter_${insurerCount}" name="agreed_ter[]" oninput="validateRange(this);" onkeypress="return onlyNumbers(event)">
@ -4529,22 +4507,22 @@
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_18">Standard</label></div>
<div class="col-4 card_group_18">
<div class="col-4 csslabel "><label class="card_label_18">Standard</label></div>
<div class="col-4 cssbp card_group_18">
<div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-color right-align-input input-content" id="standard_bp_${insurerCount}" name="standard_bp[]" readonly>
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_19 hidetp">
<div class="col-4 card_group_19 csstp hidetp">
<div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-color right-align-input input-content" id="standard_tp_${insurerCount}" name="standard_tp[]" readonly>
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_20 hideter" style="display:none;">
<div class="col-4 card_group_20 csstep hideter" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-color right-align-input input-content" id="standard_tep_${insurerCount}" name="standard_ter[]" readonly>
@ -4567,22 +4545,22 @@
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_24">Actual (%)</label></div>
<div class="col-4 card_group_24">
<div class="col-4 csslabel "><label class="card_label_24">Actual (%)</label></div>
<div class="col-4 cssbp card_group_24">
<div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input input-content" id="actual_bp_per_${insurerCount}" name="actual_bp_per[]" onchange="actualAmountCalculation('${insurerCount}', 'bp_per')" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_22 hidetp">
<div class="col-4 card_group_22 csstp hidetp">
<div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input input-content" id="actual_tp_per_${insurerCount}" name="actual_tp_per[]" onchange="actualAmountCalculation('${insurerCount}', 'tp_per')" onkeypress="return onlyNumbers(event)">
<span class="input-symbol">%</span>
</div>
</div>
<div class="col-4 card_group_23 hideter" style="display:none;">
<div class="col-4 card_group_23 csstep hideter" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input input-content" id="actual_tep_per_${insurerCount}" name="actual_tp_per[]" onchange="actualAmountCalculation('${insurerCount}', 'tep_per')" onkeypress="return onlyNumbers(event)">
@ -4596,20 +4574,20 @@
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_21">Actual Amount</label></div>
<div class="col-4 card_group_21">
<div class="col-4 csslabel "><label class="card_label_21">Actual Amount</label></div>
<div class="col-4 cssbp card_group_21">
<div class="input-wrap">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_bp_amt_${insurerCount}" name="actual_bp_amt[]">
</div>
</div>
<div class="col-4 card_group_22 hidetp">
<div class="col-4 card_group_22 csstp hidetp">
<div class="input-wrap">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_tp_amt_${insurerCount}" name="actual_tp_amt[]">
</div>
</div>
<div class="col-4 card_group_23 hideter" style="display:none;">
<div class="col-4 card_group_23 csstep hideter" style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_tep_amt_${insurerCount}" name="actual_tep_amt[]">
@ -4620,20 +4598,20 @@
<div class="col-12">
<div class="form-row mb-2 align-items-center">
<div class="col-4"><label class="card_label_27">Remuneration Amount</label></div>
<div class="col-4 card_group_27">
<div class="col-4 csslabel "><label class="card_label_27">Remuneration Amount</label></div>
<div class="col-4 cssbp card_group_27">
<div class="input-wrap">
<span class="input-prefix">BP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_bp_brokerage_amt_${insurerCount}" name="actual_bp_brokerage_amt[]">
</div>
</div>
<div class="col-4 card_group_28 hidetp">
<div class="col-4 card_group_28 csstp hidetp">
<div class="input-wrap">
<span class="input-prefix">TP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_tep_brokerage_amt_${insurerCount}" name="actual_tep_brokerage_amt[]">
</div>
</div>
<div class="col-4 card_group_29" style="display:none;">
<div class="col-4 card_group_29 csstep hideter " style="display:none;">
<div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span>
<input type="text" class="form-control readonly-select right-align-input" id="actual_tep_brokerage_amt_dup_${insurerCount}" name="actual_tep_brokerage_amt_dup[]">
@ -4683,8 +4661,10 @@
let allocg = selectedOption.data('allocg');
let is_co_pay_yes = $('#cop_yes').prop('checked') ? 1 : 0;
var $allPremiumCols = $('.csslabel, .cssbp , .csstp,.csstep');
if (allocg == "EB") {
$('.hideter,.hidetp,.hidecoter,.hidecotp').hide();
$allPremiumCols.filter(':visible').removeClass('col-3 col-4').addClass('col-6');
} else {
$('.hidetp').show();
is_co_pay_yes ? $('.hidecotp').show() : $('.hidecotp').hide();
@ -4692,8 +4672,10 @@
if (['Fire','Marine Cargo','Marine Hull'].includes(bap)) {
$('.hideter').show();
is_co_pay_yes ? $('.hidecoter').show() : $('.hidecoter').hide();
$allPremiumCols.removeClass('col-4 col-6').addClass('col-3');
} else {
$('.hideter').hide();
$allPremiumCols.filter(':visible').removeClass('col-3 col-6').addClass('col-4');
}
}
@ -6642,7 +6624,7 @@
if (tpValueField) {
tpValueField.forEach((field) => { field.value = inputValue; });
console.log("Updated", tpValueFields.length, "hidden tp premiums");
console.log("Updated", tpValueField.length, "hidden tp premiums");
} else {
console.error("Error: Element with class '.tp_value' not found.");
}

0
public/assets/images/action_on_policies_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
public/assets/images/active_bds.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 537 B

After

Width:  |  Height:  |  Size: 537 B

0
public/assets/images/active_claims.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
public/assets/images/active_leads_and_bds_renewal.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
public/assets/images/active_pending_actions.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 826 B

After

Width:  |  Height:  |  Size: 826 B

0
public/assets/images/app_content_mng_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

0
public/assets/images/background_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 665 KiB

After

Width:  |  Height:  |  Size: 665 KiB

0
public/assets/images/bg_image.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 10 MiB

After

Width:  |  Height:  |  Size: 10 MiB

0
public/assets/images/chatbot.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

0
public/assets/images/claims_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

0
public/assets/images/clients_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

0
public/assets/images/inactive_bds.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 664 B

0
public/assets/images/inactive_claims.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

0
public/assets/images/inactive_pending_actions.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 775 B

After

Width:  |  Height:  |  Size: 775 B

0
public/assets/images/leads_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

0
public/assets/images/login_bg.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 219 KiB

0
public/assets/images/masters_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

0
public/assets/images/policy_transactions_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

0
public/assets/images/ticket.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

0
public/assets/images/user_manual_sb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
public/claim_sample_forms/DIGITLIF.pdf Normal file → Executable file
View File

0
public/claim_sample_forms/ICICIPRU.pdf Normal file → Executable file
View File

0
public/claim_sample_forms/MAXLIFE.pdf Normal file → Executable file
View File

0
public/claim_sample_forms/NIA.pdf Normal file → Executable file
View File

0
public/claim_sample_forms/OIC.pdf Normal file → Executable file
View File

0
public/claim_sample_forms/PIFL.pdf Normal file → Executable file
View File

0
public/claim_sample_forms/RELIANCE.pdf Normal file → Executable file
View File

0
public/oauth-412703-c47b73db19c0.json Normal file → Executable file
View File

0
public/sample_excel/Sample_Member_Data.xlsx Normal file → Executable file
View File

0
public/sample_excel/Sample_Member_Data_1.xlsx Normal file → Executable file
View File

0
public/sample_excel/insurer_stament_sample.xlsx Normal file → Executable file
View File

0
public/sample_excel/insurer_stament_sample_old.xlsx Normal file → Executable file
View File

0
public/sample_excel/sample_bds_bulk_upload_excel.xlsx Normal file → Executable file
View File

10
public/sample_excel/sample_commission.csv Normal file → Executable file
View File

@ -1,5 +1,5 @@
Rule Name,Policy Business Type,Policy Name,Premium Type,Vehicle Type,Vehicle Sub Type,Make,Model,CC Min,CC Max,Fuel Type,Vehicle Age Min,Vehicle Age Max,Vehicle Weight Min,Vehicle Weight Max,RTO State,RTO City,Renewal Type,Renewal Sub Type,Commission Type,Commission Value,Commission Params(TP:OD:PA),Notes
Motor sample 1,Retail,,,Two Wheeler,,,,100,100,,,,,,,,,,composite,,10:25:0,"id: rule_68bc096e6d7df; conditions: vehicle_type == Two Wheeler; cubic_capcity == 100; calculation: composite 10% on tp_premium, 25% on od_premium"
Motor sample 2,Retail,,,Four Wheeler,,,,1000,1000,,5,5,,,,,,,percentage,10,,id: rule_68fb5ad42f3c4; conditions: vehicle_type == Four Wheeler; cubic_capcity >= 1000; vehicle_age <= 5; calculation: 10% on premium
Sample 2,Retail,,TP,Four Wheeler,,,,1000,1000,,,,,,,,,,composite,,10:0:0,id: rule_691438a7cb08b; conditions: vehicle_type == Four Wheeler; policy_type == TP; is_new_vehicle == true; cubic_capcity > 1000; calculation: composite 10% on tp_premium
Sample 2 test,Retail,,,"Two Wheeler,Four Wheeler",,,,2500,2500,,,,,,,,,,flat,500,,"id: rule_6916ad2837807; conditions: vehicle_type in [Two Wheeler, Four Wheeler]; cubic_capcity == 2500; calculation: fixed 500 on premium"
S.No,Premium Type,Vehicle Type,Vehicle Sub Type,Make,Model,CC Min,CC Max,Fuel Type,Vehicle Age Min,Vehicle Age Max,Vehicle Weight Min,Vehicle Weight Max,RTO State,RTO Code,Renewal Type,Commission Type,Commission Value,Commission Params (TP),Commission Params (OD),Commission Params (PA)
1,OD,Car,Honda i10,Honda,2014,1000,3000,Petrol,5,10,2000,3000,RJ,41,Online,percentage,15,,,
2,TP,Two Wheeler,Passion Pro,Hero,2019,100,150,Petrol,1,5,100,150,RJ,57,Cash,composite,,18,10,
3,COM,PCV,Toyota,Toyota,2020,2000,8000,Diesel,5,20,3000,5000,GJ,33,Card,percentage,25,,,
4,COM,GCV,Tata,Tata,2023,2000,8000,Diesel,5,20,5000,10000,PB,19,Cash,composite,,,10,

1 Rule Name S.No Policy Business Type Premium Type Policy Name Vehicle Type Vehicle Sub Type Make Model CC Min CC Max Fuel Type Vehicle Age Min Vehicle Age Max Vehicle Weight Min Vehicle Weight Max RTO State RTO Code Renewal Type RTO City Commission Type Commission Value Renewal Sub Type Commission Params (TP) Commission Params (OD) Commission Params (PA) Commission Params(TP:OD:PA) Notes
2 Motor sample 1 1 Retail OD Two Wheeler Car Honda i10 Honda 2014 100 1000 100 3000 Petrol 5 10 2000 3000 RJ 41 Online composite percentage 15 10:25:0 id: rule_68bc096e6d7df; conditions: vehicle_type == Two Wheeler; cubic_capcity == 100; calculation: composite 10% on tp_premium, 25% on od_premium
3 Motor sample 2 2 Retail TP Four Wheeler Two Wheeler Passion Pro Hero 2019 1000 100 1000 150 Petrol 5 1 5 100 150 RJ 57 Cash percentage composite 10 18 10 id: rule_68fb5ad42f3c4; conditions: vehicle_type == Four Wheeler; cubic_capcity >= 1000; vehicle_age <= 5; calculation: 10% on premium
4 Sample 2 3 Retail TP COM Four Wheeler PCV Toyota Toyota 2020 1000 2000 1000 8000 Diesel 5 20 3000 5000 GJ 33 Card composite percentage 25 10:0:0 id: rule_691438a7cb08b; conditions: vehicle_type == Four Wheeler; policy_type == TP; is_new_vehicle == true; cubic_capcity > 1000; calculation: composite 10% on tp_premium
5 Sample 2 test 4 Retail COM Two Wheeler,Four Wheeler GCV Tata Tata 2023 2500 2000 2500 8000 Diesel 5 20 5000 10000 PB 19 Cash flat composite 500 10 id: rule_6916ad2837807; conditions: vehicle_type in [Two Wheeler, Four Wheeler]; cubic_capcity == 2500; calculation: fixed 500 on premium

View File

@ -0,0 +1,5 @@
Rule Name,Policy Business Type,Policy Name,Premium Type,Vehicle Type,Vehicle Sub Type,Make,Model,CC Min,CC Max,Fuel Type,Vehicle Age Min,Vehicle Age Max,Vehicle Weight Min,Vehicle Weight Max,RTO State,RTO City,Renewal Type,Renewal Sub Type,Commission Type,Commission Value,Commission Params(TP:OD:PA),Notes
Motor sample 1,Retail,,,Two Wheeler,,,,100,100,,,,,,,,,,composite,,10:25:0,"id: rule_68bc096e6d7df; conditions: vehicle_type == Two Wheeler; cubic_capcity == 100; calculation: composite 10% on tp_premium, 25% on od_premium"
Motor sample 2,Retail,,,Four Wheeler,,,,1000,1000,,5,5,,,,,,,percentage,10,,id: rule_68fb5ad42f3c4; conditions: vehicle_type == Four Wheeler; cubic_capcity >= 1000; vehicle_age <= 5; calculation: 10% on premium
Sample 2,Retail,,TP,Four Wheeler,,,,1000,1000,,,,,,,,,,composite,,10:0:0,id: rule_691438a7cb08b; conditions: vehicle_type == Four Wheeler; policy_type == TP; is_new_vehicle == true; cubic_capcity > 1000; calculation: composite 10% on tp_premium
Sample 2 test,Retail,,,"Two Wheeler,Four Wheeler",,,,2500,2500,,,,,,,,,,flat,500,,"id: rule_6916ad2837807; conditions: vehicle_type in [Two Wheeler, Four Wheeler]; cubic_capcity == 2500; calculation: fixed 500 on premium"
1 Rule Name Policy Business Type Policy Name Premium Type Vehicle Type Vehicle Sub Type Make Model CC Min CC Max Fuel Type Vehicle Age Min Vehicle Age Max Vehicle Weight Min Vehicle Weight Max RTO State RTO City Renewal Type Renewal Sub Type Commission Type Commission Value Commission Params(TP:OD:PA) Notes
2 Motor sample 1 Retail Two Wheeler 100 100 composite 10:25:0 id: rule_68bc096e6d7df; conditions: vehicle_type == Two Wheeler; cubic_capcity == 100; calculation: composite 10% on tp_premium, 25% on od_premium
3 Motor sample 2 Retail Four Wheeler 1000 1000 5 5 percentage 10 id: rule_68fb5ad42f3c4; conditions: vehicle_type == Four Wheeler; cubic_capcity >= 1000; vehicle_age <= 5; calculation: 10% on premium
4 Sample 2 Retail TP Four Wheeler 1000 1000 composite 10:0:0 id: rule_691438a7cb08b; conditions: vehicle_type == Four Wheeler; policy_type == TP; is_new_vehicle == true; cubic_capcity > 1000; calculation: composite 10% on tp_premium
5 Sample 2 test Retail Two Wheeler,Four Wheeler 2500 2500 flat 500 id: rule_6916ad2837807; conditions: vehicle_type in [Two Wheeler, Four Wheeler]; cubic_capcity == 2500; calculation: fixed 500 on premium

0
public/sample_excel/sample_multievent_file.xls Normal file → Executable file
View File

0
public/sample_excel/sample_multievent_file.xlsx Normal file → Executable file
View File

0
public/sample_import_excel/sample_import_Addition.xlsx Normal file → Executable file
View File

0
public/sample_import_excel/sample_import_Deletion.xlsx Normal file → Executable file
View File

View File

View File

View File

View File