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); // $emp_data = $this->employeePolicyModel->getEmployeePolicyForEcard(12);
// $ids = array_column($emp_data, 'id'); // $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(); $EmpDataServiceController = new EmpDataServiceController();
// $res = $EmpDataServiceController->generateExcelForDeletion($batch_data); dd($return); die; // $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->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->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->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->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result);
// $res = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1); // $res = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1);
// return $this->downloadInsurerExcelExport($batch_data); // return $this->downloadInsurerExcelExport($batch_data);

View File

@ -710,7 +710,7 @@ class DashboardController extends AdminController
// print_r(($ids)); die; // print_r(($ids)); die;
// print_r($this->clientPolicyModel->getLastQuery()); die; // print_r($this->clientPolicyModel->getLastQuery()); die;
// $this->myLogger->logme('error', "Policy details fetched: " . json_encode($client_policy_data)); // $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 = new EmpDataServiceController();
// $empEmpDataServiceController->sendMailForDownloadingECard($ids); // $empEmpDataServiceController->sendMailForDownloadingECard($ids);

View File

@ -2204,7 +2204,7 @@ class EmpDataServiceController extends BaseController
if ($get_policy_type['policy_type_id'] != 1) { if ($get_policy_type['policy_type_id'] != 1) {
$job_details = new Jobs(); $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; 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'); $this->myLogger->logme('info', 'sendMailForDownloadingECard - Function called');
$ids = $params['ids'] ?? null;
$client_policy_id = $params['client_policy_id'] ?? null;
if (empty($ids)) { if (empty($ids)) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - employee_policy_ids are empty'); $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]; $temp_id = $ids[0];
$get_client_info = $this->employeePolicyModel $get_client_info = $this->employeePolicyModel
@ -4897,10 +4906,11 @@ class EmpDataServiceController extends BaseController
if (!$get_client_info) { if (!$get_client_info) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - No client information found for the first ID'); $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(); $client_data = $this->clientModel->where('id', $get_client_info['client_id'])->first();
$notification = $this->notificationModel $notification = $this->notificationModel
->where('client_id', $get_client_info['client_id']) ->where('client_id', $get_client_info['client_id'])
->where('template_name', 'member_ecard_mail') ->where('template_name', 'member_ecard_mail')
@ -4908,9 +4918,143 @@ class EmpDataServiceController extends BaseController
if (empty($notification) || $notification['enabled'] != 1) { if (empty($notification) || $notification['enabled'] != 1) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Notification setup not enabled or missing for E-Card Notification'); $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 { try {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Inside try block'); $this->myLogger->logme('error', 'sendMailForDownloadingECard - Inside try block');
@ -4985,6 +5129,8 @@ class EmpDataServiceController extends BaseController
$wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params); $wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
// $wholeMailData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params); // $wholeMailData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
$count++; $count++;
}else{
$this->myLogger->logme('error', 'sendMailForDownloadingECard - process skiped - Self not found : {id}', ['id' => $id]);
} }
$processedCount++; $processedCount++;
@ -4996,7 +5142,7 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Sending single mail'); $this->myLogger->logme('error', 'sendMailForDownloadingECard - Sending single mail');
$mail_result = MailHelper::send_email($wholeData[0]); $mail_result = MailHelper::send_email($wholeData[0]);
$this->myLogger->logme('info', 'sendMailForDownloadingECard - Single mail result: {result}', ['result' => $mail_result]); $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 { } else {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Creating a job for bulk mail'); $this->myLogger->logme('error', 'sendMailForDownloadingECard - Creating a job for bulk mail');
Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]); Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]);
@ -5011,11 +5157,11 @@ class EmpDataServiceController extends BaseController
// dd($wholeMailData); // dd($wholeMailData);
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Email processing completed'); $this->myLogger->logme('error', 'sendMailForDownloadingECard - Email processing completed');
return true; return ['status' => true , 'message' => 'Email processing completed'];
} catch (\Exception $e) { } catch (\Exception $e) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Exception occurred: {message}', ['message' => $e->getMessage()]); $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; $ids[] = $id;
$empDataServiceController = new EmpDataServiceController(); $empDataServiceController = new EmpDataServiceController();
$result = $empDataServiceController->sendMailForDownloadingECard($ids, 1); $result = $empDataServiceController->sendMailForDownloadingECard(['ids' => $ids, 'client_policy_id' => $client_policy_id], 1);
if ($result) { if (isset($result['status']) && $result['status'] == true) {
return $this->respond(['status' => true,'code' => 200,'message' => 'Mail sent successfully', 'result' => $result,], 200); return $this->respond(['status' => true,'code' => 200,'message' => 'Mail sent successfully', 'result' => $result], 200);
} else { } 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 // send e-card
if(!empty($employee_policy_ids)){ if(!empty($employee_policy_ids)){
log_message('error', "sendMailForDownloadingECard JOB PUSHED."); 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 // update file table status after the tpa id successfully updated

View File

@ -63,6 +63,19 @@ class RuleImportController extends AdminController
public function commissionFileUploadList() 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['page_name'] = "Commision File Upload";
$data['departments'] = $this->departments; $data['departments'] = $this->departments;
$data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll(); $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) public function before(RequestInterface $request, $arguments = null)
{ {
return null; // return null;
// Read API key from header // Read API key from header
// $authHeader = $request->getHeaderLine('X'); $authHeader = $request->getHeaderLine('AUTHORIZATION');
if(empty($authHeader))
{
$authHeader = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; $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)) { if (empty($authHeader)) {
return service('response')->setJSON([ return service('response')->setJSON([
'success' => false, 'success' => false,

View File

@ -36,6 +36,7 @@ class RuleImportService
]; ];
// Column name constants // Column name constants
private const COL_SNO = 'S.No';
private const COL_RULE_NAME = 'Rule Name'; private const COL_RULE_NAME = 'Rule Name';
private const COL_POLICY_BUSINESS_TYPE = 'Policy Business Type'; private const COL_POLICY_BUSINESS_TYPE = 'Policy Business Type';
private const COL_POLICY_NAME = 'Policy Name'; 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_MIN = 'Vehicle Weight Min';
private const COL_VEHICLE_WEIGHT_MAX = 'Vehicle Weight Max'; private const COL_VEHICLE_WEIGHT_MAX = 'Vehicle Weight Max';
private const COL_RTO_STATE = 'RTO State'; 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_TYPE = 'Renewal Type';
private const COL_RENEWAL_SUB_TYPE = 'Renewal Sub Type'; private const COL_RENEWAL_SUB_TYPE = 'Renewal Sub Type';
private const COL_COMMISSION_TYPE = 'Commission Type'; private const COL_COMMISSION_TYPE = 'Commission Type';
private const COL_COMMISSION_VALUE = 'Commission Value'; private const COL_COMMISSION_VALUE = 'Commission Value';
private const COL_COMMISSION_PARAMS = 'Commission Params(TP:OD:PA)'; 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'; private const COL_NOTES = 'Notes';
protected array $expectedColumns; protected array $expectedColumns;
@ -82,9 +88,10 @@ class RuleImportService
private function initializeExpectedColumns(): void private function initializeExpectedColumns(): void
{ {
$this->expectedColumns = [ $this->expectedColumns = [
self::COL_RULE_NAME, // self::COL_RULE_NAME,
self::COL_POLICY_BUSINESS_TYPE, // self::COL_POLICY_BUSINESS_TYPE,
self::COL_POLICY_NAME, // self::COL_POLICY_NAME,
self::COL_SNO,
self::COL_PREMIUM_TYPE, self::COL_PREMIUM_TYPE,
self::COL_VEHICLE_TYPE, self::COL_VEHICLE_TYPE,
self::COL_VEHICLE_SUB_TYPE, self::COL_VEHICLE_SUB_TYPE,
@ -100,11 +107,13 @@ class RuleImportService
self::COL_RTO_STATE, self::COL_RTO_STATE,
self::COL_RTO_CITY, self::COL_RTO_CITY,
self::COL_RENEWAL_TYPE, self::COL_RENEWAL_TYPE,
self::COL_RENEWAL_SUB_TYPE, // self::COL_RENEWAL_SUB_TYPE,
self::COL_COMMISSION_TYPE, self::COL_COMMISSION_TYPE,
self::COL_COMMISSION_VALUE, self::COL_COMMISSION_VALUE,
self::COL_COMMISSION_PARAMS, self::COL_COMMISSION_PARAMS_TP,
self::COL_NOTES 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_FUEL_TYPE => 'validateCommaList',
self::COL_COMMISSION_TYPE => 'validateCommissionType', self::COL_COMMISSION_TYPE => 'validateCommissionType',
self::COL_COMMISSION_VALUE => 'validateNumeric', 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] ?? ''); $commissionType = strtolower($rowData[self::COL_COMMISSION_TYPE] ?? '');
$commissionValue = $rowData[self::COL_COMMISSION_VALUE] ?? ''; $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 // 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( $this->validationResult->addError(
$rowNum, $rowNum,
self::COL_COMMISSION_PARAMS, self::COL_COMMISSION_PARAMS_OD,
"Required when commission type is composite" "Required when commission type is composite"
); );
} }
@ -1255,10 +1267,14 @@ class RuleImportService
$commissionType = strtolower(trim($rowData[self::COL_COMMISSION_TYPE] ?? '')); $commissionType = strtolower(trim($rowData[self::COL_COMMISSION_TYPE] ?? ''));
$commissionValue = $rowData[self::COL_COMMISSION_VALUE] ?? ''; $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] ?? '';
$commission = $commissionParams_tp.':'.$commissionParams_od.':'. $commissionParams_pa;
switch ($commissionType) { switch ($commissionType) {
case 'composite': case 'composite':
return $this->buildCompositeCalculation($commissionParams); return $this->buildCompositeCalculation($commission);
case 'percentage': case 'percentage':
return $this->buildPercentageCalculation($commissionValue); return $this->buildPercentageCalculation($commissionValue);

View File

@ -203,7 +203,7 @@
<?php } ?> <?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'])) { ?> <?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 } ?> <?php } ?>
</div> </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({ Swal.fire({
title: "Do you want to send Ecard Mail?", title: "Do you want to send Ecard Mail?",
@ -570,7 +570,7 @@
$.ajax({ $.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", type: "GET",
dataType: 'json', dataType: 'json',
success: function (res) { success: function (res) {

View File

@ -189,7 +189,7 @@
<div class="card-body"> <div class="card-body">
<div class="row" style="margin-bottom:1rem;"> <div class="row" style="margin-bottom:1rem;">
<div class="col-6" style="align-self: center;"> <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>
<div class="col-6" style="text-align: right;"> <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" <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> </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"><label class="card_label_7">Base </label></div>
<div class="col-6"> <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)"> <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="form-row">
<div class="col-12"> <div class="col-12">
<div class="form-row mb-1 text-success small font-weight-bold"> <div class="form-row mb-1 text-success small font-weight-bold">
<div class="col-4">Remuneration</div> <div class="col-4 csslabel">Remuneration</div>
<div class="col-4"></div> <div class="col-4 cssbp"></div>
<div class="col-4 hidetp"></div> <div class="col-4 hidetp csstp"></div>
<div class="col-4 hideter" style="display:none;"></div> <div class="col-4 hideter csstep" style="display:none;"></div>
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel"><label class="card_label_14">Agreed (%)</label></div>
<div class="col-4 card_group_14"> <div class="col-4 card_group_14 cssbp">
<div class="input-wrap mr-2"> <div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp; </span> <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)" > <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp; </span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp; </span> <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)" > <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel"><label class="card_label_18">Standard</label></div>
<div class="col-4 card_group_18"> <div class="col-4 card_group_18 cssbp">
<div class="input-wrap mr-2"> <div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span> <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> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span> <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 > <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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> <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel"><label class="card_label_24">Actual (%)</label></div>
<div class="col-4 card_group_24"> <div class="col-4 card_group_24 cssbp">
<div class="input-wrap mr-2"> <div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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)"> <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel "><label class="card_label_21">Actual Amount</label></div>
<div class="col-4 card_group_21"> <div class="col-4 card_group_21 cssbp">
<div class="input-wrap"> <div class="input-wrap">
<span class="input-prefix">BP &nbsp;</span> <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)"> <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> </div>
<div class="col-4 card_group_22 hidetp"> <div class="col-4 card_group_22 hidetp csstp">
<div class="input-wrap"> <div class="input-wrap">
<span class="input-prefix">TP &nbsp;</span> <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)"> <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> </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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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)"> <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. // Instead of manipulating global classes like $('.hideter').show(), we manipulate classes on the card elements.
// General reset/hide for the current card // General reset/hide for the current card
if(allocg == "EB"){ console.log(allocg);
$('.hideter').hide(); console.log("*(");
$('.hidetp').hide(); var $allPremiumCols = $('.csslabel, .cssbp , .csstp,.csstep');
$('.hidecoter').hide()
$('.hidecotp').hide()
}else{
$('.hidetp').show(); if (allocg == "EB") {
if(is_co_pay_yes == 1){ // ----------------------------------------------------
$('.hidecotp').show(); // CASE: 2 Columns Visible (Label, BP)
$('#table_tr_7').show(); // Goal: Both must be col-6 to fill the row (6 + 6 = 12)
$('#table_tr_35').show(); // ----------------------------------------------------
$('#table_tr_3').show(); $('.hideter').hide();
}else{ $('.hidetp').hide();
$('.hidecotp').hide(); $('.hidecoter').hide();
$('#table_tr_7').hide(); $('.hidecotp').hide();
$('#table_tr_35').hide();
$('#table_tr_3').hide();
}
if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){ // Select ONLY the currently visible columns and set them to col-6
$('.hideter').show(); // Since TP and TEP have the hidetp/hideter classes, they are hidden and excluded by :visible.
if(is_co_pay_yes == 1){ $allPremiumCols.filter(':visible').removeClass('col-3 col-4').addClass('col-6');
$('.hidecoter').show();
}else{ } else {
$('.hidecoter').hide(); // TP column is visible here
} $('.hidetp').show();
}else{
$('.hideter').hide(); 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 --- // --- 3. Set Standard Percentages ---
var std_bp = 0; var std_bp = 0;
var std_tp = 0; var std_tp = 0;
@ -2973,7 +3003,7 @@
if (tpValueField) { if (tpValueField) {
tpValueField.forEach((field) => { field.value = inputValue; }); tpValueField.forEach((field) => { field.value = inputValue; });
console.log("Updated", tpValueFields.length, "hidden tp premiums"); console.log("Updated", tpValueField.length, "hidden tp premiums");
} else { } else {
console.error("Error: Element with class '.tp_value' not found."); 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;"> <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> <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> </div><!-- row -->
<form role="form" class="parsley-examples" method="post" id="inception_form_id" enctype="multipart/form-data"> <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"> <input type="hidden" name="id" id="policy_tranction_primarykey">
@ -520,10 +520,10 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div> <!-- default_row -->
<!-- Vehicle Quick Add DIV --> <!-- 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 --> <!-- Client Details Row -->
<div class="row"> <div class="row">
@ -535,8 +535,8 @@
<a id="toggleIcon" class="text-dark float-right" data-toggle="collapse" href="#collapseOne" <a id="toggleIcon" class="text-dark float-right" data-toggle="collapse" href="#collapseOne"
aria-expanded="true"> aria-expanded="true">
<i id="icon" class="mdi mdi-chevron-up mr-1 text-primary" style="font-size: 28px;"></i> <i id="icon" class="mdi mdi-chevron-up mr-1 text-primary" style="font-size: 28px;"></i>
</a> </a><!-- toggleIcon -->
</label> </label><!-- policyAccordion -->
<div class="card mb-1"> <div class="card mb-1">
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_0"> <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_0">
<div class="card-body"> <div class="card-body">
@ -581,7 +581,7 @@
</select> </select>
</div> --> </div> -->
</div> </div><!-- actcual_clients -->
<div class="row" id="policyholdernamediv" style="display: none;"> <div class="row" id="policyholdernamediv" style="display: none;">
<div class="form-group col-md-3"> <div class="form-group col-md-3">
@ -597,7 +597,7 @@
<label for="same_as_proposer" <label for="same_as_proposer"
style="position: relative;top: 31px;left: 17px;">Insured (Same as Proposer)</label> style="position: relative;top: 31px;left: 17px;">Insured (Same as Proposer)</label>
</div> </div>
</div> </div><!-- policyholdernamediv -->
<div class="row" id="family_details" style="display: none;"> <div class="row" id="family_details" style="display: none;">
<div class="col-md-12"> <div class="col-md-12">
<div class="form-section"> <div class="form-section">
@ -605,16 +605,16 @@
<div id="dynamic-form-container-for-insured"></div> <div id="dynamic-form-container-for-insured"></div>
</div> </div>
</div> </div>
</div> </div> <!-- family_details -->
</div> </div><!-- card-body -->
</div> </div><!-- collapseOne -->
</div> </div><!-- card mb-1 -->
</div> </div><!-- accordion_0 closed -->
</div> </div> <!-- Section 1 closed -->
</div> </div><!-- Client Details Row closed -->
<!-- Client Quick Add DIV --> <!-- 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 --> <!-- Sales Row -->
<div class="row" id="sales_row" style="display: none;"> <div class="row" id="sales_row" style="display: none;">
@ -629,153 +629,136 @@
</label> </label>
<div class="card mb-1"> <div class="card mb-1">
<div id="collapseThree" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_2"> <div id="collapseThree" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_2">
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="form-group col-md-12" id="renewal" style="display: none;"> <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> <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)"> <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> <option value="" selected>Select Renewal Source Policy</option>
</select> </select>
</div> </div> <!-- renewal -->
<div class="form-group col-md-3" id="base_policy_id" style="display: none;"> <div class="form-group col-md-3" id="base_policy_id" style="display: none;">
<label for="addon_policy">Base Policy<span id="base_danger" <label for="addon_policy">Base Policy<span id="base_danger"
class="text-danger">*</span></label> class="text-danger">*</span></label>
<select class="form-control" id="base_policy" name="base_policy"> <select class="form-control" id="base_policy" name="base_policy">
<option value="" selected>Select Base Policy</option> <option value="" selected>Select Base Policy</option>
</select> </select>
</div> </div><!-- base_policy_id -->
<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">
<label for="addon_policy" class="d-flex align-items-center"> <div class="form-group col-md-3">
<span class="flex-grow-1">Policy Issue Date<span id="base_danger" class="text-danger">*</span></span> <label for="addon_policy">Policy No<span id="base_danger"class="text-danger">*</span></label>
<small id="policy_issue_month_info" <input type="text" class="form-control" id="policy_no" name="policy_no"placeholder="Enter Policy No" >
class="text-right" </div><!-- form-group col-md-3 Policy No -->
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"> <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" > <label for="addon_policy" class="d-flex align-items-center">
</div> <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"> <div class="d-none">
<label for="bp_igst">D.O.E</label> <label for="addon_policy">Policy Issue Month<span id="base_danger" class="text-danger">*</span></label>
<input id="policy_end_date" type="text" class="form-control" name="policy_end_date" placeholder="DD/MM/YYYY" > <input type="text" class="form-control readonly-select" id="month" name="month" placeholder="MM/YYYY" >
</div> </div><!-- Policy Issue Month -->
<!--
<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="form-group col-md-3" id="no_of_insured_div"> <div class="form-group col-md-3">
<label for="addon_policy">No of Insured<span id="base_danger"class="text-danger"></span></label> <label for="bp_cgst">D.O.C</label>
<input type="text" class="form-control" id="emp_count" name="emp_count" placeholder="Enter Employeee" onkeypress="return onlyNumbers(event)"> <input id="policy_start_date" type="text" class="form-control" name="policy_start_date" placeholder="DD/MM/YYYY" >
</div> </div><!-- D.O.C -->
<div class="form-group col-md-3" id="no_of_dependents_div"> <div class="form-group col-md-3">
<label for="addon_policy">No of Dependents<span id="base_danger" class="text-danger"></span></label> <label for="bp_igst">D.O.E</label>
<input type="text" class="form-control" id="dependent_count" name="dependent_count" placeholder="Enter Dependent" onkeypress="return onlyNumbers(event)"> <input id="policy_end_date" type="text" class="form-control" name="policy_end_date" placeholder="DD/MM/YYYY" >
</div> </div><!-- D.O.E -->
<div class="form-group col-md-3"> <div class="form-group col-md-3" id="no_of_insured_div">
<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> <label for="addon_policy">No of Insured<span id="base_danger"class="text-danger"></span></label>
<input id="installment" value="" type="text" class="form-control" name="installment"> <input type="text" class="form-control" id="emp_count" name="emp_count" placeholder="Enter Employeee" onkeypress="return onlyNumbers(event)">
</div> </div><!-- no_of_insured_div -->
<div class="form-group col-md-3"> <div class="form-group col-md-3" id="no_of_dependents_div">
<label for="installment_data"> <label for="addon_policy">No of Dependents<span id="base_danger" class="text-danger"></span></label>
Installment Data <input type="text" class="form-control" id="dependent_count" name="dependent_count" placeholder="Enter Dependent" onkeypress="return onlyNumbers(event)">
</label> </div><!-- no_of_dependents_div -->
<input id="installment_data" class="form-control" name="installment_data">
</div>
<!-- <div class="form-group col-md-3"> <div class="form-group col-md-3">
<label for="spl">SPL</label> <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="spl" value="" type="text" class="form-control" name="spl"> <input id="installment" value="" type="text" class="form-control" name="installment">
</div> --> </div><!-- Installment -->
<div class="form-group col-md-3"> <div class="form-group col-md-3">
<label class="card_label_4">Base Premium<span id="base_danger" class="text-danger">*</span></label> <label for="installment_data">
<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> Installment Data
</div> </label>
<input id="installment_data" class="form-control" name="installment_data">
<div class="form-group col-md-3 hidetp"> </div><!-- Installment Data -->
<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 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="form-group col-md-3 hideter card_group_6" style="display:none;">
<!-- <div class="row"> --> <label class="card_label_6">TEP Premium</label>
<!-- <div class="form-group col-md-3"> <input type="text" class="form-control right-align-input" id="ter_premium" name="ter_premium" oninput="" onkeypress="return onlyNumbers(event)" onchange="setTEPValue(this.value)">
<label for="location">Location<span id="base_danger"class="text-danger"></span></label> </div><!-- TEP Premium -->
<input type="text" class="form-control" id="location" name="location"placeholder="Enter location" >
</div> -->
<!-- </div> -->
</div> <div class="form-group col-md-2">
</div> <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> <!-- accordion_2 div closed here -->
</div><!-- 1st col-md-12 div closed here --> </div><!-- 1st col-md-12 div closed here -->
</div> <!-- sales_row div closed here -->
<!-- Premium Details -->
<!-- Premium Details Row -->
<div class="row" id="premium_details_row">
<div class="col-md-12">
<div id="accordion_3" class="mb-0"> <div id="accordion_3" class="mb-0">
<label id="policyAccordion" class="m-1 d-flex justify-content-between align-items-center"> <label id="policyAccordion" class="m-1 d-flex justify-content-between align-items-center">
<span class="font-color-black">Premium Details</span> <span class="font-color-black">Premium Details</span>
@ -783,36 +766,31 @@
aria-expanded="true"> aria-expanded="true">
<i id="icon" class="mdi mdi-chevron-up mr-1 text-primary" style="font-size: 28px;"></i> <i id="icon" class="mdi mdi-chevron-up mr-1 text-primary" style="font-size: 28px;"></i>
</a> </a>
</label> </label><!-- Premium Details policyAccordion -->
<div class="card mb-0"> <div class="card mb-0">
<div id="collapseFour" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_3"> <div id="collapseFour" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion_3">
<div class="card-body"> <div class="card-body">
<div id="allInsurerCards"></div> <div id="allInsurerCards"></div>
</div> </div> <!-- Premium Details collapseFour div card-body closed here -->
</div> <!-- collapseFour div closed here --> </div> <!-- Premium Details collapseFour div closed here -->
</div> </div><!-- Premium Details policyAccordion card -->
</div> <!-- accordion_3 div closed here --> </div> <!-- Premium Details 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> </div>
</div> </div><!-- ends Premium Details -->
</form>
</div> <div class="form-group text-right mt-3 m-b-0" id="submitButton">
</div> <button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnSubmit">Submit</button>
</div> </div><!-- submitButton -->
</div> </form><!-- role="form" -->
</div> </div><!-- card-body -->
<!-- end form row --> </div><!-- card -->
</div><!-- col-xl-12 -->
</div><!-- end inception_form row -->
</div><!-- tab-pane -->
<!-- Vehicle form content modal--> <!-- Vehicle form content modal-->
<div class="modal fade" id="vehicle_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" data-backdrop="static"> <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="form-row">
<div class="col-12"> <div class="col-12">
<div class="form-row mb-1 text-success small font-weight-bold"> <div class="form-row mb-1 text-success small font-weight-bold">
<div class="col-4">Remuneration</div> <div class="col-4 csslabel">Remuneration</div>
<div class="col-4"></div> <div class="col-4 cssbp"></div>
<div class="col-4 hidetp"></div> <div class="col-4 csstp hidetp"></div>
<div class="col-4 hideter" style="display:none;"></div> <div class="col-4 csstep hideter" style="display:none;"></div>
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel "><label class="card_label_14">Agreed (%)</label></div>
<div class="col-4 card_group_14"> <div class="col-4 cssbp card_group_14">
<div class="input-wrap mr-2"> <div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp; </span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp; </span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp; </span> <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)"> <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel "><label class="card_label_18">Standard</label></div>
<div class="col-4 card_group_18"> <div class="col-4 cssbp card_group_18">
<div class="input-wrap mr-2"> <div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span> <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> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span> <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> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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> <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel "><label class="card_label_24">Actual (%)</label></div>
<div class="col-4 card_group_24"> <div class="col-4 cssbp card_group_24">
<div class="input-wrap mr-2"> <div class="input-wrap mr-2">
<span class="input-prefix">BP &nbsp;</span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap mr-2">
<span class="input-prefix">TP &nbsp;</span> <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)"> <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> <span class="input-symbol">%</span>
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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)"> <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel "><label class="card_label_21">Actual Amount</label></div>
<div class="col-4 card_group_21"> <div class="col-4 cssbp card_group_21">
<div class="input-wrap"> <div class="input-wrap">
<span class="input-prefix">BP &nbsp;</span> <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[]"> <input type="text" class="form-control readonly-select right-align-input" id="actual_bp_amt_${insurerCount}" name="actual_bp_amt[]">
</div> </div>
</div> </div>
<div class="col-4 card_group_22 hidetp"> <div class="col-4 card_group_22 csstp hidetp">
<div class="input-wrap"> <div class="input-wrap">
<span class="input-prefix">TP &nbsp;</span> <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[]"> <input type="text" class="form-control readonly-select right-align-input" id="actual_tp_amt_${insurerCount}" name="actual_tp_amt[]">
</div> </div>
</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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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[]"> <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="col-12">
<div class="form-row mb-2 align-items-center"> <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 csslabel "><label class="card_label_27">Remuneration Amount</label></div>
<div class="col-4 card_group_27"> <div class="col-4 cssbp card_group_27">
<div class="input-wrap"> <div class="input-wrap">
<span class="input-prefix">BP &nbsp;</span> <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[]"> <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> </div>
<div class="col-4 card_group_28 hidetp"> <div class="col-4 card_group_28 csstp hidetp">
<div class="input-wrap"> <div class="input-wrap">
<span class="input-prefix">TP &nbsp;</span> <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[]"> <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> </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"> <div class="input-wrap">
<span class="input-prefix">TEP &nbsp;</span> <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[]"> <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 allocg = selectedOption.data('allocg');
let is_co_pay_yes = $('#cop_yes').prop('checked') ? 1 : 0; let is_co_pay_yes = $('#cop_yes').prop('checked') ? 1 : 0;
var $allPremiumCols = $('.csslabel, .cssbp , .csstp,.csstep');
if (allocg == "EB") { if (allocg == "EB") {
$('.hideter,.hidetp,.hidecoter,.hidecotp').hide(); $('.hideter,.hidetp,.hidecoter,.hidecotp').hide();
$allPremiumCols.filter(':visible').removeClass('col-3 col-4').addClass('col-6');
} else { } else {
$('.hidetp').show(); $('.hidetp').show();
is_co_pay_yes ? $('.hidecotp').show() : $('.hidecotp').hide(); is_co_pay_yes ? $('.hidecotp').show() : $('.hidecotp').hide();
@ -4692,8 +4672,10 @@
if (['Fire','Marine Cargo','Marine Hull'].includes(bap)) { if (['Fire','Marine Cargo','Marine Hull'].includes(bap)) {
$('.hideter').show(); $('.hideter').show();
is_co_pay_yes ? $('.hidecoter').show() : $('.hidecoter').hide(); is_co_pay_yes ? $('.hidecoter').show() : $('.hidecoter').hide();
$allPremiumCols.removeClass('col-4 col-6').addClass('col-3');
} else { } else {
$('.hideter').hide(); $('.hideter').hide();
$allPremiumCols.filter(':visible').removeClass('col-3 col-6').addClass('col-4');
} }
} }
@ -6642,7 +6624,7 @@
if (tpValueField) { if (tpValueField) {
tpValueField.forEach((field) => { field.value = inputValue; }); tpValueField.forEach((field) => { field.value = inputValue; });
console.log("Updated", tpValueFields.length, "hidden tp premiums"); console.log("Updated", tpValueField.length, "hidden tp premiums");
} else { } else {
console.error("Error: Element with class '.tp_value' not found."); 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 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)
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" 1,OD,Car,Honda i10,Honda,2014,1000,3000,Petrol,5,10,2000,3000,RJ,41,Online,percentage,15,,,
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 2,TP,Two Wheeler,Passion Pro,Hero,2019,100,150,Petrol,1,5,100,150,RJ,57,Cash,composite,,18,10,
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 3,COM,PCV,Toyota,Toyota,2020,2000,8000,Diesel,5,20,3000,5000,GJ,33,Card,percentage,25,,,
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" 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