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

This commit is contained in:
bitbucket 2024-05-10 17:30:57 +05:30
commit e921764e99
43 changed files with 3726 additions and 1527 deletions

View File

@ -218,6 +218,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->get("init-Emp-onboard/(:any)", "EmployeeController::initiateManualEmployeesOnboardProcess/$1");
$routes->get("full-excel-error-file/(:any)", "EmployeeController::downloadFullExcelErrorFile/$1");
$routes->get("id-card", "EmployeeController::viewECard/$1");
$routes->get("preview-card/(:any)", "EmployeeController::previewTemplate/$1");
});
$routes->cli('cli/processjob', 'JobWorker::processJob');

View File

@ -264,20 +264,20 @@ class ClientController extends AdminController
$editData['client_kyc'] = $this->clientKYCDocsModel->where('client_id', $id)->findAll();
$editData['client_branch'] = $this->clientBranchModel->where(['client_id' => $id, 'is_active' => 1])->findAll();
$editData['client_relation'] = $this->clientRMModel->where(['client_id' => $id, 'is_active' => 1])->findAll();
// dd('Hi');
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($id);
// dd($this->clientPolicyModel->getLastQuery());
// foreach ($clientPoliceData as $key => $value) {
foreach ($clientPoliceData as $key => $value) {
$clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date));
$clientPoliceData[$key]->policy_end_date = date('d-M-Y', strtotime($value->policy_end_date));
}
// $clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date));
// $clientPoliceData[$key]->policy_end_date = date('d-M-Y', strtotime($value->policy_end_date));
// }
$editData['client_policy'] = $clientPoliceData;
// echo "<pre>";
// dd($editData); die;
// dd($clientPoliceData); die;
echo view('layout/header', $headerData);
echo view('client_onboarding', $editData);
@ -609,6 +609,8 @@ class ClientController extends AdminController
$data['is_addon'] = $this->request->getPost('is_addon');
$data['base_policy'] = $this->request->getPost('base_policy');
$data['policy_status'] = 1;
$data['inception_type'] = $this->request->getPost('inception_type') ? 2 : 1;
@ -629,8 +631,11 @@ class ClientController extends AdminController
$data['policy_terms'] = json_encode($decoded_policyTerm);
} else {
$data['policy_terms'] = $policy_terms['policy_terms'];
if ($this->request->getPost('policy_type_id') != 3) {
$data['policy_terms'] = $policy_terms['policy_terms'];
}
}
}
@ -696,6 +701,8 @@ class ClientController extends AdminController
$data['is_addon'] = $this->request->getPost('is_addon');
$data['base_policy'] = $this->request->getPost('base_policy');
$data['policy_status'] = 1;
$data['inception_type'] = $this->request->getPost('inception_type') ? 2 : 1;
$policy_terms = $this->clientPolicyModel->where('id', $this->request->getPost('base_policy'))->first();
@ -747,12 +754,19 @@ class ClientController extends AdminController
$policy_type = $this->request->getPost('policy_type');
$client_id = $this->request->getPost('client_id');
$client_policy_id = $this->request->getPost('client_policy_id');
$premium_type = $this->request->getPost('premium_type');
// $premium_type = $this->request->getPost('premium_type');
if (!empty($client_id) && $client_id != null) {
$client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first();
$client_id = $client_policy_data['client_id'];
}
$policy_grid_id = $this->request->getPost('policy_grid_id');
if($policy_grid_id == 10 || $policy_grid_id == 11){
$premium_type = 1;
}else{
$premium_type = 2;
}
$si_or_bp = $this->request->getPost('si_or_bp');
$basic_multiplier = str_replace(',', '', $this->request->getPost('basic_multiplier'));
$premium_multiplier = str_replace(',', '', $this->request->getPost('premium_multiplier'));
@ -776,10 +790,14 @@ class ClientController extends AdminController
if ($policy_grid_id == '1') {
if ($si_or_bp == '1') {
$premium = str_replace(',', '', $this->request->getPost('gpa_sum_premium[]'));
$sum_insure = str_replace(',', '', $this->request->getPost('gpa_sum_si[]'));
$multiplier = $this->request->getPost('gpa_sum_multiplier');
for ($i = 0; $i < count($premium); $i++) {
$data['si'] = $sum_insure[$i];
$data['premium'] = $premium[$i];
@ -788,7 +806,26 @@ class ClientController extends AdminController
$policyPremium = $this->policyPremium1Model->insert($data);
}
} else if ($si_or_bp == '3') {
$premium = str_replace(',', '', $this->request->getPost('gpa_sum_premium2[]'));
$sum_insure = str_replace(',', '', $this->request->getPost('gpa_sum_si2[]'));
$multiplier = $this->request->getPost('gpa_sum_multiplier2');
$grade = $this->request->getPost('gpa_band[]');
for ($i = 0; $i < count($premium); $i++) {
$data['si'] = $sum_insure[$i];
$data['premium'] = $premium[$i];
$data['grade'] = $grade[$i];
$data['multiplier'] = $multiplier;
$data['si_or_bp'] = $this->request->getPost('si_or_bp');
$policyPremium = $this->policyPremium1Model->insert($data);
}
}else {
$data['premium'] = str_replace(',', '', $this->request->getPost('gpa_basic_premium'));
$data['si'] = str_replace(',', '', $this->request->getPost('gpa_basic_si'));
$data['basic_multiplier'] = str_replace(',', '', $this->request->getPost('basic_multiplier'));
@ -798,6 +835,7 @@ class ClientController extends AdminController
$policyPremium = $this->policyPremium1Model->insert($data);
}
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '2') {
@ -819,6 +857,8 @@ class ClientController extends AdminController
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '4') {
$premium = $this->request->getPost('4_premium[]');
$sum_insure = $this->request->getPost('4_si');
$age_from = $this->request->getPost('4_age_from[]');
@ -832,6 +872,8 @@ class ClientController extends AdminController
}
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '5') {
$premium = $this->request->getPost('5_premium[]');
$sum_insure = $this->request->getPost('5_si[]');
@ -847,19 +889,23 @@ class ClientController extends AdminController
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '6') {
$premium = $this->request->getPost('6_premium[]');
$sum_insure = $this->request->getPost('6_si[]');
$sum_insure = $this->request->getPost('6_si');
$age_from = $this->request->getPost('6_age_from[]');
$age_to = $this->request->getPost('6_age_to[]');
for ($i = 0; $i < count($premium); $i++) {
$data['premium'] = str_replace(',', '', $premium[$i]);
$data['si'] = str_replace(',', '', $sum_insure[$i]);
$data['si'] = str_replace(',', '', $sum_insure);
$data['age_from'] = $age_from[$i];
$data['age_to'] = $age_to[$i];
$dataa = $this->policyPremium2Model->insert($data);
}
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '7') {
$premium = $this->request->getPost('7_premium[]');
$sum_insure = $this->request->getPost('7_si[]');
@ -1117,12 +1163,13 @@ class ClientController extends AdminController
try {
foreach ($results as $index => $record) {
if ($self->self == 1 && $self->spouse == 0 && $self->childrens == 0 && $self->parents == 0 && $self->{'parents-in-law'} == 0 && $self->{'either-parents-pil'} == 0 && $family_floater == 0) {
if ($index == '0' || $index == '1' || $index == '2') {
// if ($self->self == 1 && $self->spouse == 0 && $self->childrens == 0 && $self->parents == 0 && $self->{'parents-in-law'} == 0 && $self->{'either-parents-pil'} == 0 && $family_floater == 0) {
if ($family_floater == 1) {
if ($index == '7' || $index == '8' || $index == '9' || $index == '10') {
$resultss[$index] = $record;
}
} else {
if ($index == '3' || $index == '4' || $index == '5' || $index == '6' || $index == '8' || $index == '7' || $index == '9' || $index == '10') {
if ($index == '0' || $index == '1' || $index == '2' || $index == '3' || $index == '4' || $index == '5' || $index == '6') {
$resultss[$index] = $record;
}
}
@ -1174,7 +1221,8 @@ class ClientController extends AdminController
public function policyGMCTerms()
{
try {
// print_r($this->request->getPost('family_floaters'));die;
// echo "<pre>";
// print_r($this->request->getPost());die;
$this->myLogger->logme('error','Terms CREATE function called');
/*** Client Policy Table Primary Key(ID) ***/
@ -1185,6 +1233,18 @@ class ClientController extends AdminController
$data['corporatebuffer'] = $this->request->getPost("corporatebuffer");
$data['family_floaters'] = $this->request->getPost("family_floaters") ?? [];
// print_r($this->request->getPost());die;
$data['age_ratio']['self']['min'] = $this->request->getPost("self_min_age");
$data['age_ratio']['self']['max'] = $this->request->getPost("self_max_age");
$data['age_ratio']['spouse']['min'] = $this->request->getPost("spouse_min_age");
$data['age_ratio']['spouse']['max'] = $this->request->getPost("spouse_max_age");
$data['age_ratio']['child']['min'] = $this->request->getPost("child_min_age");
$data['age_ratio']['child']['max'] = $this->request->getPost("child_max_age");
$data['age_ratio']['elders']['min'] = $this->request->getPost("other_member_min_age");
$data['age_ratio']['elders']['max'] = $this->request->getPost("other_member_max_age");
// if (!in_array("self", $data['family_floaters'])) {
// array_unshift($data['family_floaters'], "self");
// }
@ -1255,6 +1315,7 @@ class ClientController extends AdminController
}
}
$data['family_floaters']['elders_count'] =$this->request->getPost("member_count");
$data['waiverofpreexistingdiseases'] =$this->request->getPost("waiverofpreexistingdiseases");
if ($data['waiverofpreexistingdiseases'] == 1) {
@ -1340,23 +1401,24 @@ class ClientController extends AdminController
$record = $this->clientPolicyModel->where('id', $client_policy_id)->first();
$policy_name = $this->policesModel->select('name')->where('id', $record['policy_id'])->first();
$emp_count = $this->employeeModel ->join('client_policy cp',"employees.client_id = cp.client_id")
->join('employee_polices ep',"cp.id = ep.client_policy_id AND employees.id = ep.employee_id")
->where("employees.client_id", $record['client_id'])
->where("employees.emp_status",'active')
->countAllResults();
// $emp_count = $this->employeeModel ->join('client_policy cp',"employees.client_id = cp.client_id")
// ->join('employee_polices ep',"cp.id = ep.client_policy_id AND employees.id = ep.employee_id")
// ->where("employees.client_id", $record['client_id'])
// ->where("employees.emp_status",'active')
// ->countAllResults();
$emp_count_by_policy = $this->employeePolicyModel->where('client_policy_id',$client_policy_id)->where('is_active',1)->countAllResults();
if($emp_count == 0){
$emp_count = true;
}else{
$emp_count = false;
}
// if($emp_count == 0){
// $emp_count = true;
// }else{
// $emp_count = false;
// }
if ($record) {
return $this->respond(['Status' => true,'code' => 200,'data' => $record['policy_terms'], 'count' => $emp_count, 'policy_name' => $policy_name,'policy_addon' => $record['is_addon'], 'emp_count_by_policy'=>$emp_count_by_policy], 200);
return $this->respond(['Status' => true,'code' => 200,'data' => $record['policy_terms'], 'policy_name' => $policy_name,'policy_addon' => $record['is_addon'], 'emp_count_by_policy'=>$emp_count_by_policy], 200);
} else {
return $this->respond(['Status' => false,'code' => 200,'message' => 'Record not found.', 'count' => $emp_count, 'policy_name' => $policy_name], 200);
return $this->respond(['Status' => false,'code' => 200,'message' => 'Record not found.', 'policy_name' => $policy_name], 200);
}
}
@ -1371,6 +1433,8 @@ class ClientController extends AdminController
$data['sumInsured2'] =str_replace(',', '', $this->request->getPost("sumInsured2"));
$data['totalSumInsured'] =str_replace(',', '',$this->request->getPost("totalSumInsured"));
$data['age_ratio']['self']['min'] = $this->request->getPost("self_min_age");
$data['age_ratio']['self']['max'] = $this->request->getPost("self_max_age");
$data['accidentalDeathBenefit'] =str_replace(',', '',$this->request->getPost("accidentalDeathBenefit"));
$data['permanentTotalDisablement'] =str_replace(',', '',$this->request->getPost("permanentTotalDisablement"));
$data['permanentPartialDisablement'] =$this->request->getPost("permanentPartialDisablement");
@ -1416,6 +1480,9 @@ class ClientController extends AdminController
$data['animalSnakeInsectBite'] = $this->request->getPost("animalSnakeInsectBite");
$data['terrorism'] = $this->request->getPost("terrorism");
$data['worldwideCover'] = $this->request->getPost("worldwideCover");
$data['gpa_special_condition_label'] = str_replace(',', '',$this->request->getPost("gpa_special_condition_label")) ?? [];
$data['gpa_special_condition_input'] = str_replace(',', '',$this->request->getPost("gpa_special_condition_input")) ?? [];
$jsonData = json_encode($data);
$dataa = array(
@ -1465,14 +1532,17 @@ class ClientController extends AdminController
{
$client_policy_id = $this->request->getGet('client_policy_id');
$record = $this->clientPolicyModel->where('id', $client_policy_id)->first();
$message = 'Policy updated Successfully';
$record = $this->clientPolicyModel->where('id', $client_policy_id)->first();
if ($record['open_for_enrollment'] == 0) {
$open_for_enrollment_update_value = 1;
$message = 'Update Open Enrollment Successfully';
$message = 'Enrollment Opened Successfully';
} else if ($record['open_for_enrollment'] == 1) {
$open_for_enrollment_update_value = 0;
$message = 'Update Open Enrollment Successfully';
$message = 'Enrollment Closed Successfully';
}
$data = $this->policesModel->getPolicyPremium($record['policy_id']);
@ -1507,7 +1577,7 @@ class ClientController extends AdminController
}
// Check if 'family_floater' key exists and has a value
if (isset($termsData->family_floater) && empty($termsData->family_floater)) {
if (isset($termsData->family_floater) && $termsData->family_floater == null) {
return $this->respond(['status' => false, 'code' => 200, 'message' => 'The Policy terms Family Floater field is empty'], 200);
}
@ -1522,7 +1592,8 @@ class ClientController extends AdminController
return $this->respond(['status' => false, 'code' => 200, 'message' => 'Please define policy premium'], 200);
}
$policy_status = $this->clientPolicyModel->where('id', $client_policy_id )->set('policy_status', 1)->update();
// $policy_status = $this->clientPolicyModel->where('id', $client_policy_id )->set('policy_status', 1)->update();
$json_data = '';
$open_for_enrollment = $this->clientPolicyModel->where('id', $client_policy_id)->set('open_for_enrollment', $open_for_enrollment_update_value)->update();
if ($open_for_enrollment) {
@ -1533,8 +1604,9 @@ class ClientController extends AdminController
$json_data = json_encode(['open_for_enrollment' => $open_for_enrollment_value, 'client_policy_id' => $client_policy_id_value]);
}
return $this->respond(['status' => true,'code' => 200, 'message' => $message, 'data' => $termsData, 'racRate' => $racRate, 'open_for_enrollment' => $json_data], 200);
return $this->respond(['status' => true, 'code' => 200, 'message' => $message, 'data' => $termsData, 'racRate' => $racRate, 'open_for_enrollment' => $json_data, 'client_policy_data' => $record], 200);
}

View File

@ -27,6 +27,7 @@ use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Exception as SpreadsheetReaderException;
use PhpParser\Node\Expr\Cast\Double;
use function PHPUnit\Framework\returnSelf;
@ -109,7 +110,10 @@ class EmpDataServiceController extends BaseController
// Fetch employee data for export from the database
$objects = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($export_data);
// dd($objects);
$insurer_id = $this->clientPolicyModel->where('id', $export_data['client_policy_id'])->first();
$cash_balance = $this->clientDepositModel->where('client_id',$export_data['client_id'] )->where('insurer_id', $insurer_id['insurer_id'])->orderBy('id', 'DESC')->first();
$totals = 0;
foreach ($objects as $key => $value) {
@ -117,6 +121,11 @@ class EmpDataServiceController extends BaseController
$totals += $value->total;
}
if((int) $cash_balance['balance'] < (int) $totals){
return 0;
}
// Log the count of exported data
$count = count($objects);
@ -1598,7 +1607,7 @@ class EmpDataServiceController extends BaseController
foreach ($ids as $key => $id) {
$get_emp_email_and_other_details = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.name, employees.id as employee_id, employees.emp_code employee_polices.rand_string, employee_polices.tpa_id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employees.emp_status', 'active')
->where('employees.is_active', '1')
@ -1608,7 +1617,9 @@ class EmpDataServiceController extends BaseController
if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "") {
$employee_id = $get_emp_email_and_other_details['employee_id'];
$name = $get_emp_email_and_other_details['name'];
$emp_code = $get_emp_email_and_other_details['name'];
$email = $get_emp_email_and_other_details['email_corporate'];
$rand_string = $get_emp_email_and_other_details['rand_string'];
$tpa_id = $get_emp_email_and_other_details['tpa_id'];
@ -1645,7 +1656,17 @@ class EmpDataServiceController extends BaseController
// dd($data);
$this->myLogger->logme('error', 'status : {status}, message : {message}, email : {email}', $data);
}else{
$this->myLogger->log('error', 'The employee (primaryKey : {id}, Name : {name}, Emp Code : {emp_code} ) has no corporate email.', ['id' => $employee_id, 'name' => $name, 'emp_code' => $emp_code]);
}
}else{
$this->myLogger->log('error', 'The employee policy ID ( {id} ) has no active policy or the employee is not active.', ['id' => $id]);
}
}
return true; // Email(s) sent successfully
@ -1655,4 +1676,5 @@ class EmpDataServiceController extends BaseController
return false; // Email(s) sending failed
}
}
}

View File

@ -16,6 +16,7 @@ use App\Models\BatchListModel;
use App\Models\BatchFileModel;
use App\Models\EmpEndorsementModel;
use App\Models\ClientPolicyModel;
use App\Models\TPAModel;
use App\Controllers\Jobs;
use App\Controllers\JobWorker;
@ -30,6 +31,8 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Dompdf\Dompdf;
use Dompdf\Options;
class EmployeeController extends AdminController
{
@ -45,6 +48,7 @@ class EmployeeController extends AdminController
protected $batchFileModel;
protected $empEndorsementModel;
protected $clientPolicyModel;
protected $TPAModel;
public function __construct()
{
@ -59,6 +63,7 @@ class EmployeeController extends AdminController
$this->batchFileModel = new BatchFileModel();
$this->empEndorsementModel = new EmpEndorsementModel();
$this->clientPolicyModel = new ClientPolicyModel();
$this->TPAModel = new TPAModel();
}
public function list()
@ -66,8 +71,7 @@ class EmployeeController extends AdminController
// $model = new UserModel();
$data = [];
$data['status'] = ['draft' => 'Draft', 'active' => 'Active', 'inactive' => 'In-Active', 'expired' => 'Expired'];
if(count($this->request->getGet()))
{
if (count($this->request->getGet())) {
$filterData = $this->request->getGet();
$data['employees'] = $this->employeePolicyModel->getEmployeePolicy(client_id: $filterData['client_id'], policy_id: $filterData['policy_id'], status: $filterData['status']);
$data['getData'] = $filterData;
@ -83,12 +87,9 @@ class EmployeeController extends AdminController
$result = $this->clientModel->clientsWithPolicies();
// print_r($result);die();
if(!count($result))
{
if (!count($result)) {
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
}
else
{
} else {
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $result], 200);
}
@ -104,12 +105,9 @@ class EmployeeController extends AdminController
// echo $file_id;die();
$file = $this->fileModel->find($file_id);
// print_r($result);die();
if(!isset($file))
{
if (!isset($file)) {
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
}
else
{
} else {
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $file['reason']], 200);
}
@ -164,8 +162,7 @@ class EmployeeController extends AdminController
// dd($failure_reason);
// }
if($this->request->getMethod() == 'post')
{
if ($this->request->getMethod() == 'post') {
//validate uploaded file
$filename = '';
$validated = $this->validate([
@ -180,10 +177,7 @@ class EmployeeController extends AdminController
$avatar = $this->request->getFile('emplist');
$is_moved = $avatar->move(WRITEPATH . 'uploads/excel/');
$filename = $avatar->getName();
}
else
{
} else {
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'invalid file'], 200);
}
@ -204,13 +198,11 @@ class EmployeeController extends AdminController
$empServiceController = new EmployeeServiceController();
$result = $empServiceController->excelFileFormatValidation(['file_id' => $file_id]);
//endof validation process
if(isset($result['error_summary']) && count($result['error_summary']))
{
if (isset($result['error_summary']) && count($result['error_summary'])) {
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'file rejected with errors'], 200);
}
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'file upload success'], 200);
}
@ -238,11 +230,9 @@ class EmployeeController extends AdminController
// dd($data['fileList']);die();
if($this->request->getMethod() == "get")
{
if ($this->request->getMethod() == "get") {
$this->loadLayout('import_export', $data);
}
}
public function getExcelFileErrors()
@ -261,7 +251,6 @@ class EmployeeController extends AdminController
$data['message'] = 'File Not Found Physically';
return view('errors/404', $data);
} else {
echo view('errors/html/production');
@ -356,19 +345,26 @@ class EmployeeController extends AdminController
if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') {
$return = $empDataServiceController->generateExcelForAdditionandInception($batch_data);
if($return == 0){
session()->setFlashdata('error', "The insurer has an insufficient deposit amount.");
return redirect()->to(base_url('employee/upload'));
}
if (!$return) {
if ($insurer_or_tpa == 'tpa') {
session()->setFlashdata('error', "No data was found for this action. The TPA ID has already been updated.");
return redirect()->to(base_url('employee/upload'));
} else if ($insurer_or_tpa == 'insurer') {
session()->setFlashdata('error', "No data was found for this action. The UHID has already been updated.");
return redirect()->to(base_url('employee/upload'));
}
} else {
$this->myLogger->logme('error', 'Successfully exported Excel file in {data}.', ['data' => $event_type]);
}
} else if ($event_type == 'correction') {
$return = $empDataServiceController->generateExcelForCorrection($batch_data);
@ -378,7 +374,6 @@ class EmployeeController extends AdminController
} else {
$this->myLogger->logme('error', 'Successfully exported Excel file in Correction.');
}
} else if ($event_type == 'si_enhancement') {
$return = $empDataServiceController->generateExcelForSIEnhancement($batch_data);
@ -388,7 +383,6 @@ class EmployeeController extends AdminController
} else {
$this->myLogger->logme('error', 'Successfully exported Excel file in SI_Enhancement.');
}
} else if ($event_type == 'deletion') {
$return = $empDataServiceController->generateExcelForDeletion($batch_data);
@ -399,8 +393,6 @@ class EmployeeController extends AdminController
$this->myLogger->logme('error', 'Successfully exported Excel file in Deletion.');
}
}
} else if ($actions == 'import') {
$batch_data['file'] = $this->request->getFile('import_file_data');
@ -411,40 +403,31 @@ class EmployeeController extends AdminController
if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 2) {
session()->setFlashdata('error', 'The TPA ID column is either partially or entirely empty.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 3) {
session()->setFlashdata('error', 'The list of employees provided has already been updated with the TPA ID, or this is not the correct file');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 4) {
session()->setFlashdata('error', 'The UHID column is either partially or entirely empty.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 5) {
session()->setFlashdata('error', 'The list of employees provided has already been updated with the UHID, or this is not the correct file');
return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'correction') {
$return = $empDataServiceController->importExcelDataForCorrection($batch_data);
if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 2) {
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file');
return redirect()->to(base_url('employee/upload'));
@ -452,18 +435,15 @@ class EmployeeController extends AdminController
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'si_enhancement') {
$return = $empDataServiceController->importExcelDataForSIEnhancement($batch_data);
if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 2) {
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file');
return redirect()->to(base_url('employee/upload'));
@ -471,18 +451,15 @@ class EmployeeController extends AdminController
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'deletion') {
$return = $empDataServiceController->importExcelDataForDeletion($batch_data);
if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 2) {
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file');
return redirect()->to(base_url('employee/upload'));
@ -490,12 +467,8 @@ class EmployeeController extends AdminController
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
}
}
}
// -------------------------------------------------------------------------------------------
@ -513,8 +486,7 @@ class EmployeeController extends AdminController
$data = [];
$data['status'] = ['pending' => 'Pending', 'inprogress' => 'In-Progress', 'complete' => 'Complete'];
if(count($this->request->getGet()))
{
if (count($this->request->getGet())) {
$filterData = $this->request->getGet();
$data['employees'] = $this->employeePolicyModel->getEmployeeEndorsementList(client_id: $filterData['client_id'], policy_id: $filterData['policy_id'], status: $filterData['status']);
$data['getData'] = $filterData;
@ -575,7 +547,6 @@ class EmployeeController extends AdminController
'data' => $formatedData,
'data2' => $groupedData
], 200);
} else {
// Return response if group key and actions are not found
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
@ -652,7 +623,6 @@ class EmployeeController extends AdminController
$html = view('employee_data_list', $emp_data);
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html], 200);
}
@ -685,14 +655,12 @@ class EmployeeController extends AdminController
$emp_data['tbody'] = $excel_data;
$html = view('view_file_upload_emp_list', $emp_data);
} else {
$html = '<div class="text-center">No Data Found</div>';
}
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html, 'file_data' => $file_name, 'excel_data' => $excel_data], 200);
} catch (\Exception $e) {
// Handle exception
$errorMessage = 'Error occurred: ' . $e->getMessage();
@ -702,7 +670,9 @@ class EmployeeController extends AdminController
}
}
public function getEmpCount($id = null){
public function getEmpCount($id = null)
{
$data = $this->employeePolicyModel->select('employee_polices.id')
->where('employee_polices.is_active', 1)
@ -713,16 +683,13 @@ class EmployeeController extends AdminController
if ($data) {
return $this->respond(['dataStatus' => true, 'code' => 200, 'emp_count' => $emp_count], 200);
} else {
return $this->respond(['dataStatus' => false, 'code' => 404], 404);
}
}
}
public function downloadFullExcelErrorFile($file_id, $rowIndex = 1, $colIndex = 1)
{
// Get file data from the database
@ -780,7 +747,6 @@ class EmployeeController extends AdminController
];
$sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
}
} else if ($error->error_type == 2) {
@ -801,11 +767,8 @@ class EmployeeController extends AdminController
]
];
$sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
}
}
}
@ -833,60 +796,157 @@ class EmployeeController extends AdminController
return $response;
}
public function generateIDCardForEmployee($rand_string)
{
try {
$get_emp_code_and_client_policy_id = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.emp_code')
->select('employee_polices.client_policy_id, employees.emp_code, tpa.short_name')
->join('client_policy', 'client_policy.id = employee_polices.client_policy_id')
->join('employees', 'employees.id = employee_polices.employee_id')
->join('tpa', 'tpa.id = client_policy.tpa_id')
->where('employees.emp_status', 'active')
->where('employees.is_active', '1')
->where("employee_polices.tpa_id IS NOT NULL AND employee_polices.tpa_id <> ''")
->where('employee_polices.status', 'active')
->where('employee_polices.is_active', '1')
->where('employee_polices.rand_string', $rand_string)->first();
// dd($get_emp_code_and_client_policy_id);
if ($get_emp_code_and_client_policy_id == null || $get_emp_code_and_client_policy_id == "") {
$data['message'] = 'Record Not Found';
return view('errors/404', $data);
}
$client_policy_id = $get_emp_code_and_client_policy_id['client_policy_id'];
$emp_code = $get_emp_code_and_client_policy_id['emp_code'];
$data['data'] = $this->employeePolicyModel->getECardDataUsingMd5($client_policy_id, $emp_code);
// $this->loadLayout('id_card_view', $data);exit;
$html = view('id_card_view', $data);
// $data['data'] = $this->employeePolicyModel->getECardDataUsingMd5($client_policy_id, $emp_code);
$data = $this->employeePolicyModel->getECardDataUsingMd5($client_policy_id, $emp_code);
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$template_data_path = WRITEPATH . 'e_card_template/';
$tpa_short_name = strtolower(str_replace(' ', '_', $get_emp_code_and_client_policy_id['short_name'])) . '.html';
$final_path = $template_data_path . $tpa_short_name;
$filename = 'ECard.pdf'; // Default filename
if (!file_exists($final_path)) {
foreach ($data['data'] as $key => $value) {
$data['message'] = 'Record Not Found';
return view('errors/404', $data);
}
if ($value['relationship'] == "Self") {
$tmplt_data = file_get_contents($final_path);
$filename = $value['tpa_id']; // Update filename if relationship is "Self"
} elseif (!empty($value['tpa_id']) && $filename == 'ECard.pdf') {
$html = ""; // Initialize the HTML variable
foreach ($data as $key => $value) {
$filename = $value['tpa_id'];
// Get the HTML content from the template
// $htmlContent = view('ecard_template/md_tpa');
$htmlContent = $tmplt_data;
// Define the placeholders and their corresponding values
$placeholders = [
'{TPA_ID}' => $value['tpa_id'],
'{NAME}' => $value['name'],
'{UHID}' => $value['uhid'],
'{GENDER}' => $value['gender'],
'{DOB}' => date('d-M-Y', strtotime($value['dob'])),
'{SELF_NAME}' => $value['self'] ?? $value['name'],
'{POLICY_DATE}' => date('d-M-Y', strtotime($value['policy_end_date'])),
'{INSURER_NAME}' => $value['insurer_name'],
'{INSURER_LOGO}' => base_url() . 'public/uploads/logo/' . $value['insurer_logo'],
'{FRONT_CARD}' => base_url() . 'public/uploads/template_bg/' . $value['front_card'],
'{BACK_CARD}' => base_url() . 'public/uploads/logo/' . $value['back_card'],
'{EMP_ID}' =>$value['emp_code'],
'{CORPORATE_NAME}' =>$value['client_name'],
'{AGE}' =>$value['emp_age'],
];
// Replace placeholders with values in HTML content
foreach ($placeholders as $placeholder => $replaceValue) {
$htmlContent = str_replace($placeholder, $replaceValue, $htmlContent);
}
$html .= $htmlContent;
}
echo '<button id="downloadBtn" style="display: block;margin: 30px;position: relative;left: 220px;">Print</button>' . $html . '</button>
<script>
document.getElementById("downloadBtn").addEventListener("click", function() {
this.style.display = "none";
window.print();
this.style.display = "block";
});
</script>';
// $file_name = $get_emp_code_and_client_policy_id['short_names'] ?? 'md_tpa';
// $file_name = strtolower(str_replace(' ', '_', $file_name));
// $file_path = ROOTPATH . 'app/Views/ecard_template/' . $file_name . '.php';
// if (is_file($file_path)) {
// $view_file = 'ecard_template/' . $file_name;
// } else {
// $view_file = 'ecard_template/default_ecard';
// }
// $dpi = 132;
// $html = view('ecard_template/md_tpa');
// // echo $html; die;
// $options = new Options();
// $options->set('isRemoteEnabled', true);
// $options->set('isPhpEnabled', true);
// $options->setDpi($dpi);
// $dompdf = new Dompdf($options);
// $dompdf->loadHtml($html);
// $dompdf->setPaper('A4', 'portrait');
// $dompdf->render();
// $filename = 'ECard.pdf'; // Default filename
// foreach ($data['data'] as $key => $value) {
// if ($value['relationship'] == "Self") {
// $filename = $value['tpa_id'] . '.pdf'; // Update filename if relationship is "Self"
// } elseif (!empty($value['tpa_id']) && $filename == 'ECard.pdf') {
// $filename = $value['tpa_id'] . '.pdf';
// }
// }
// $dompdf->stream($filename, array("Attachment" => false));
} catch (\Exception $e) {
$data['message'] = 'Record Not Founds';
return view('errors/404', $data);
}
}
$dompdf->stream($filename);
}
public function viewECard()
{
$this->loadLayout('id_card_view');
$this->loadLayout('ecard_template/default_ecard');
}
public function truncateFileData() //truncateFileDataIn DB (de activate rows)
{
$file_id = $this->request->uri->getSegment(3);
@ -895,16 +955,12 @@ class EmployeeController extends AdminController
// $file['action'] = 'si_enhancement';
// $result = [];
// !dd($file);
if($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition')
{
if ($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition') {
$result = $this->employeeModel->getEmpListByFileId(file_id: $file_id, emp_status: ['active'], policy_status: ['active']);
// ~dd($result);
if(count($result))
{
if (count($result)) {
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200);
}
else
{
} else {
//update emp and emp plocies
$db = db_connect();
@ -918,9 +974,7 @@ class EmployeeController extends AdminController
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => round($affectedRows / 2)], 200);
}
}
else if($file['action'] == 'si_enhancement' || $file['action'] == 'correction' || $file['action'] == 'deletion')
{
} else if ($file['action'] == 'si_enhancement' || $file['action'] == 'correction' || $file['action'] == 'deletion') {
$res = $this->empEndorsementModel->select(['count(id) as count'])
->where('emp_endorsement.file_id', $file_id)
->groupStart()
@ -931,8 +985,7 @@ class EmployeeController extends AdminController
->getResult();
// print_r($this->empEndorsementModel->getLastQuery());
// echo $res[0]->count;die();
if($res[0]->count == 0)
{
if ($res[0]->count == 0) {
//update truncated status to db
$this->empEndorsementModel->where('file_id', $file_id)
->set(['status' => 'truncated'])
@ -940,17 +993,48 @@ class EmployeeController extends AdminController
//update file status
$this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'success'], 200);
}
else
{
} else {
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200);
}
}
}
public function previewTemplate($id = null){
$tpa_id = $this->TPAModel->where('id', $id)->first();
$template_data_path = WRITEPATH . 'e_card_template/';
$tpa_short_name = strtolower(str_replace(' ', '_', $tpa_id['short_name'])) . '.html';
$final_path = $template_data_path . $tpa_short_name;
if (!file_exists($final_path)) {
$data['message'] = 'Record Not Found';
return view('errors/404', $data);
}
$tmplt_data = file_get_contents($final_path);
$placeholders = [
'{FRONT_CARD}' => base_url() . 'public/uploads/template_bg/' . $tpa_id['front_card'],
'{BACK_CARD}' => base_url() . 'public/uploads/logo/' . $tpa_id['back_card'],
];
// Get the values to replace the placeholders
$replaceValues = array_values($placeholders);
// Get the placeholders to search for
$searchPlaceholders = array_keys($placeholders);
// Replace placeholders with values in HTML content
$htmlContent = str_replace($searchPlaceholders, $replaceValues, $tmplt_data);
echo $htmlContent;
}
}

View File

@ -34,7 +34,7 @@ class EmployeeServiceController extends AdminController
protected $policiesModel;
protected $empEndorsementModel;
protected $general_relationships = ['self' => ['name' => 'Self', 'gender' => 'M','age_min' => 18,'age_max' => null], 'spouse' => ['name' => 'Spouse', 'gender' => 'F','age_min' => 18,'age_max' => null], 'son' => ['name' => 'Son', 'gender' => 'M','age_min' => null,'age_max' => 25], 'daughter' => ['name' => 'Daughter', 'gender' => 'F','age_min' => null,'age_max' => 25], 'father' => ['name' => 'Father', 'gender' => 'M','age_min' => 18,'age_max' => null], 'mother' => ['name' => 'Mother', 'gender' => 'F','age_min' => 18,'age_max' => null], 'father-in-law' => ['name' => 'Father in Law', 'gender' => 'M','age_min' => 18,'age_max' => null], 'mother-in-law' => ['name' => 'Mother in Law', 'gender' => 'F','age_min' => 18,'age_max' => null]];
protected $inception_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'dob'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'DOB','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_dob_diff','params'=>['row','relationship']],'gender'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Gender','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['M','F']],'relationship'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'RELATIONSHIP','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_relationship','params'=>['row','relationship','policy_terms']],'basic_cover_si'=>['col_idx'=>6,'col_cell_name'=>'G','col_name'=>'BASIC COVER SI','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_si','params' => ['row','policy_terms','slab_details']],'doc'=>['col_idx'=>7,'col_cell_name'=>'H','col_name'=>'Date of Coverage','is_mandatory'=>['A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'params'=>['row']],'doj'=>['col_idx'=>8,'col_cell_name'=>'I','col_name'=>'DOJ','is_mandatory'=>false,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_doj','params'=>['row']],'basic_pay'=>['col_idx'=>9,'col_cell_name'=>'J','col_name'=>'Basic Pay','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_basic_pay','params'=>['row','policy_terms','slab_details']],'band_grade'=>['col_idx'=>10,'col_cell_name'=>'K','col_name'=>'Band/Grade','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_employee_band','params'=>['row','policy_terms','slab_details']],'designation'=>['col_idx'=>11,'col_cell_name'=>'L','col_name'=>'Designation','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'phone'=>['col_idx'=>12,'col_cell_name'=>'M','col_name'=>'Phone','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'email'=>['col_idx'=>13,'col_cell_name'=>'N','col_name'=>'Email','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'pre_existing_ailments'=>['col_idx'=>14,'col_cell_name'=>'O','col_name'=>'PRE EXISTING AILMENTS','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['0','1']],'change_event'=>['col_idx'=>15,'col_cell_name'=>'P','col_name'=>'Change event','is_mandatory'=>['A','DA','D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>16,'col_cell_name'=>'Q','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>17,'col_cell_name'=>'R','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
protected $inception_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'dob'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'DOB','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_dob_diff','params'=>['row','relationship','default_age_ratio']],'gender'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Gender','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['M','F']],'relationship'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'RELATIONSHIP','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_relationship','params'=>['row','relationship','policy_terms']],'basic_cover_si'=>['col_idx'=>6,'col_cell_name'=>'G','col_name'=>'BASIC COVER SI','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_si','params' => ['row','policy_terms','slab_details']],'doc'=>['col_idx'=>7,'col_cell_name'=>'H','col_name'=>'Date of Coverage','is_mandatory'=>['A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'params'=>['row']],'doj'=>['col_idx'=>8,'col_cell_name'=>'I','col_name'=>'DOJ','is_mandatory'=>false,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_doj','params'=>['row']],'basic_pay'=>['col_idx'=>9,'col_cell_name'=>'J','col_name'=>'Basic Pay','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_basic_pay','params'=>['row','policy_terms','slab_details']],'band_grade'=>['col_idx'=>10,'col_cell_name'=>'K','col_name'=>'Band/Grade','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_employee_band','params'=>['row','policy_terms','slab_details']],'designation'=>['col_idx'=>11,'col_cell_name'=>'L','col_name'=>'Designation','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'phone'=>['col_idx'=>12,'col_cell_name'=>'M','col_name'=>'Phone','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'email'=>['col_idx'=>13,'col_cell_name'=>'N','col_name'=>'Email','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'pre_existing_ailments'=>['col_idx'=>14,'col_cell_name'=>'O','col_name'=>'PRE EXISTING AILMENTS','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['0','1']],'change_event'=>['col_idx'=>15,'col_cell_name'=>'P','col_name'=>'Change event','is_mandatory'=>['A','DA','D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>16,'col_cell_name'=>'Q','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>17,'col_cell_name'=>'R','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
protected $deletion_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'change_event'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'Change event','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
@ -140,11 +140,12 @@ class EmployeeServiceController extends AdminController
// dd($columns_to_check);die();
// get policy and rack details
$policy_terms = $this->clientPolicyModel->getPolicyDetails($file['client_id'],$file['policy_id']);
$policy_terms = json_decode($policy_terms[0]->policy_terms);
$policy_details = $this->clientPolicyModel->getPolicyDetails($file['client_id'],$file['policy_id']);
$policy_terms = json_decode($policy_details[0]->policy_terms);
$policy_terms = (array) $policy_terms;// convert obj to array
$default_age_ratio = isset($policy_details[0]->age_ratio) ? json_decode($policy_details[0]->age_ratio) : [];
//
// dd($policy_terms);
// dd($default_age_ratio);
//get policy slab rates
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($file['policy_id'],$file['client_id']);
@ -169,10 +170,12 @@ class EmployeeServiceController extends AdminController
{
break;
}
//iterate each row
//iterate each row for columns validations
foreach ($row as $col_key => $col)
{
$is_mandatory = $columns_to_check[$keys[$col_key]]['is_mandatory'];
$format = $columns_to_check[$keys[$col_key]]['format'];
$allowed_values = $columns_to_check[$keys[$col_key]]['allowed_values'];
@ -265,11 +268,6 @@ class EmployeeServiceController extends AdminController
$failure_reason = ((json_encode($result)));
$this->fileModel->where('id', $file_id)->set(['status' => $status,'reason' => $failure_reason])->update();
$this->myLogger->logme("error",'{file_id} uploaded failed',['file_id' => $file_id]);
//return $this->respond(['dataStatus' => true,'code' => 404,'data' => 'file upload failed with errors'], 200);
// dd($failure_reason);
//print_r($r);
}
else //trigger next data validation via job queue server
{
@ -375,7 +373,7 @@ class EmployeeServiceController extends AdminController
}
}
if(($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'dependent_addition') && ($policy_details['is_addon'] != 3)) // 3 is dependent addon
if(($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'dependent_addition') && ($policy_details['policy_type_id'] != 3)) // 3 is GMC parents (base policy or dep addon)
{
$res = check_self_available_in_family($family,$file['action']);
// dd($res);
@ -386,6 +384,18 @@ class EmployeeServiceController extends AdminController
}
}
//check self avaialbe where self data is not available either in excel or same policy (i.e.) gMC parents
if($policy_details['policy_type_id'] == 3) // 3 is GMC parents (base policy or dep addon)
{
$self_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],emp_status: ['active'],policy_status:['active']);
// dd($self_details);
if(!count($self_details))
{
array_push($result['error_summary'],14); // Self not found
$result['error_data'][ $family[0][0] ]['sno']['error'][] = "Self not found ";
}
}
if($file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'inception')
{
@ -461,7 +471,6 @@ class EmployeeServiceController extends AdminController
{
//proceed next data level validation in JOB queue
$job_details = new Jobs();
$r = Jobs::addJob(['job_name' => 'employeesOnboardPreprocess','payload' => ['file_id' => $file_id]]);
// $jobWorker = new JobWorker();
// JobWorker::processJob($r);

View File

@ -7,6 +7,7 @@ use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use CodeIgniter\API\ResponseTrait;
use CodeIgniter\Files\File;
use App\Models\UserModel;
use App\Models\ClientModel;
@ -186,8 +187,11 @@ class MasterController extends AdminController
{
$this->myLogger->logme('error','Insurer general info function called');
$uploadFilePath = ROOTPATH . 'public/uploads/logo/';
$file_name = file_Upload($this->request->getFile('insurer_logo'), $uploadFilePath);
$data = $this->request->getPost();
$data['created_by'] = get_session_userid();
$data['insurer_logo'] = $file_name;
$insert = $this->insurerModel->insert($data);
if($insert){
@ -249,9 +253,18 @@ class MasterController extends AdminController
public function editInsurerGeneralInfo()
{
$this->myLogger->logme('error','edit Insurer general info function called');
$uploadFilePath = ROOTPATH . 'public/uploads/logo/';
$file_name = file_Upload($this->request->getFile('insurer_logo'), $uploadFilePath);
$id = $this->request->getPost('PrimaryKey');
$data = $this->request->getPost();
$data['updated_by'] = get_session_userid();
if(!empty($file_name)){
$data['insurer_logo'] = $file_name;
}
$update = $this->insurerModel->update($id,$data);
if($update){
echo json_encode(array("status" => true , 'data' => $data));
@ -399,10 +412,50 @@ class MasterController extends AdminController
{
$this->myLogger->logme('error','TPA general info function called');
$uploadFilePath = ROOTPATH . 'public/uploads/logo/';
$file_name = file_Upload($this->request->getFile('tpa_logo'), $uploadFilePath);
$template_bg_path = ROOTPATH . 'public/uploads/template_bg';
$front_card_file_name = file_Upload($this->request->getFile('fc'), $template_bg_path);
$back_card_file_name = file_Upload($this->request->getFile('bc'), $template_bg_path);
$eCardTemplate = $this->request->getPost('ecard_content');
$data = $this->request->getPost();
$data['created_by'] = get_session_userid();
$data['tpa_logo'] = $file_name;
$data['front_card'] = $front_card_file_name;
$data['back_card'] = $back_card_file_name;
$insert = $this->tpaModel->insert($data);
$tpa_name = (string) $this->request->getPost('name');
$short_name = (string) $this->request->getPost('short_name');
$filename = strtolower(str_replace(' ', '_', $short_name)) . '.html';
$file_directory = WRITEPATH . 'e_card_template/';
$file_path = $file_directory . $filename;
// Ensure that the directory exists, if not, create it
if (!is_dir($file_directory)) {
mkdir($file_directory, 0777, true);
}
// Set the appropriate content type
header('Content-type:text/html; charset=utf-8');
// Write the HTML content to the file
$data = file_put_contents($file_path, $eCardTemplate);
if ($data !== false) {
$this->myLogger->logme('error', 'TPA: {tpa}, e-Card HTML template file saved successfully: {data}, filepath is: {path}', ['data' => $filename, 'tpa' => $tpa_name, 'path' => $file_path]);
} else {
$this->myLogger->logme('error', 'TPA: {tpa}, e-Card HTML template file unable to save: {data}', ['data' => $filename, 'tpa' => $tpa_name]);
}
if($insert){
$tpa_data = $this->tpaModel->where(['id' => $insert, 'is_active' => 1])->first();
echo json_encode(array("status" => true , 'data' => $tpa_data));
@ -457,10 +510,22 @@ class MasterController extends AdminController
$this->myLogger->logme('error','Edit TPA Onboarding function called');
$headerData['page_name'] = 'Edit TPA Master';
$editData['tpa'] = $this->tpaModel->where(['id' => $id, 'is_active' => 1])->first();
$tpa_data = $this->tpaModel->where(['id' => $id, 'is_active' => 1])->first();
$editData['tpa'] = $tpa_data;
$editData['tpa_branch'] = $this->tpaBranchModel->where(['tpa_id' => $id, 'is_active' => 1])->findAll();
$editData['state'] = $this->stateModel->getAllStates();
$filename = strtolower(str_replace(' ', '_', $tpa_data['short_name'])) . '.html';
$template_data_path = WRITEPATH . 'e_card_template/';
$final_path = $template_data_path . $filename;
if (file_exists($final_path)) {
$tmplt_data = file_get_contents($final_path);
$editData['template_data'] = $tmplt_data;
}
// echo "<pre>";
// print_r($editData); die;
@ -477,10 +542,61 @@ class MasterController extends AdminController
public function editTPAGeneralInfo()
{
$this->myLogger->logme('error','edit TPA general info function called');
$uploadFilePath = ROOTPATH . 'public/uploads/logo/';
$file_name = file_Upload($this->request->getFile('tpa_logo'), $uploadFilePath);
$template_bg_path = ROOTPATH . 'public/uploads/template_bg';
$front_card_file_name = file_Upload($this->request->getFile('fc'), $template_bg_path);
$back_card_file_name = file_Upload($this->request->getFile('bc'), $template_bg_path);
$id = $this->request->getPost('PrimaryKey');
$data = $this->request->getPost();
$data['updated_by'] = get_session_userid();
if(!empty($file_name)){
$data['tpa_logo'] = $file_name;
}
if(!empty($front_card_file_name)){
$data['front_card'] = $front_card_file_name;
}
if(!empty($back_card_file_name)){
$data['back_card'] = $back_card_file_name;
}
$update = $this->tpaModel->update($id,$data);
$tpa_name = (string) $this->request->getPost('name');
$short_name = (string) $this->request->getPost('short_name');
$eCardTemplate = $this->request->getPost('ecard_content');
$filename = strtolower(str_replace(' ', '_', $short_name)) . '.html';
$file_directory = WRITEPATH . 'e_card_template/';
$file_path = $file_directory . $filename;
// Ensure that the directory exists, if not, create it
if (!is_dir($file_directory)) {
mkdir($file_directory, 0777, true);
}
// Set the appropriate content type
header('Content-type:text/html; charset=utf-8');
// Write the HTML content to the file
$data = file_put_contents($file_path, $eCardTemplate);
if ($data !== false) {
$this->myLogger->logme('error', 'TPA: {tpa}, e-Card HTML template file saved successfully: {data}, filepath is: {path}', ['data' => $filename, 'tpa' => $tpa_name, 'path' => $file_path]);
} else {
$this->myLogger->logme('error', 'TPA: {tpa}, e-Card HTML template file unable to save: {data}', ['data' => $filename, 'tpa' => $tpa_name]);
}
if($update){
echo json_encode(array("status" => true , 'data' => $data));
}else{
@ -504,9 +620,6 @@ class MasterController extends AdminController
}
public function editTPABranch()
{
$this->myLogger->logme('error','TPA branch CREATE function called');
@ -548,8 +661,6 @@ class MasterController extends AdminController
}
public function tpaBranchList($id = null)
{
$this->myLogger->logme('error','TPA List function called');

View File

@ -79,8 +79,8 @@ if(!function_exists('check_relationship'))
$slug = \Config\Services::slug();
$col = $slug->slugify($row[5]);
// echo $col;//die();
// if($col != 'self' && $col != 'spouse')
// {
if($col != 'self' && $col != 'spouse')
{
if(!isset($relationship[ $col ]))
{
return array('status' => false,'error' => 'Rule Conflict: Unknown Relationship');
@ -105,7 +105,7 @@ if(!function_exists('check_relationship'))
}
// }
}
return array('status' => true);
}
else
@ -143,6 +143,13 @@ if(!function_exists('check_employee_band'))
if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA']))// check rule only of action column data available
{
$is_emp_band_needed = $slab_details['grid_master']['emp_band'];
if($slab_details['grid_master']['ui_type'] == 1) //gpa rack rate 1
{
if($slab_details['slab_rates'][0]['si_or_bp'] == 3)
{
$is_emp_band_needed = true;
}
}
$slug = \Config\Services::slug();
$relationship = $slug->slugify($row[5]);
// echo $relationship;echo $row[7];
@ -190,17 +197,27 @@ if(!function_exists('check_si'))
}
// check age slab
if($row[3] != null)// dob
if($row[3] != null && DateTime::createFromFormat('d-M-Y', $row[3]) !== false)// dob
{
$dob = change_date_format($row[3],'d-M-Y','Y-m-d');
// echo $row[3].' - '.$dob;echo '<br>';
$currentDateTime = new DateTime();//die();
$passedDateTime = new DateTime($dob);
$interval = $currentDateTime->diff($passedDateTime);
// echo $row[0].' - '.$row[3].' - '.$interval->y;echo '<br>';
if(!$is_age_slab_found && ($slab_value['age_from'] !== null && $slab_value['age_to'] !== null) && ($slab_value['age_from'] <= $interval->y && $slab_value['age_to'] >= $interval->y) && $slab_value['si'] == $received_si)
if(!$is_age_slab_found)
{
$is_age_slab_found = true;
if(isset($slab_value['age_from']) && isset($slab_value['age_to']))
{
if($slab_value['age_from'] !== null && $slab_value['age_to'] !== null && $slab_value['age_from'] <= $interval->y && $slab_value['age_to'] >= $interval->y && $slab_value['si'] == $received_si)
{
$is_age_slab_found = true;// send true if age slab found
}
}
else
{
$is_age_slab_found = true;// send true if age conditin is not applicable
}
}
}//end of check age slab
@ -242,18 +259,31 @@ if(!function_exists('check_basic_pay'))
if (!function_exists('check_dob_diff'))
{
function check_dob_diff($row,$relationships) {
function check_dob_diff($row,$relationships,$default_age_ratio) {
// echo 'called';
if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA']))// check rule only of action column data available
{
if($row[3] != null && $row[5] != null)
{
if (DateTime::createFromFormat('d-M-Y', $row[3]) === false)
{
return array('status' => false,'error' => 'Not a valid Date');
}
// return array('status' => true);
$dob = change_date_format($row[3],'d-M-Y','Y-m-d');
// echo $row[3].' - '.$dob;echo '<br>';
$currentDateTime = new DateTime();//die();
// print_r($currentDateTime);
// die();
$passedDateTime = new DateTime($dob);
$interval = $currentDateTime->diff($passedDateTime);
// print_r($passedDateTime);
$interval = $currentDateTime->diff($passedDateTime);
//remap default age ratio data into relationship array
if(count($default_age_ratio))
{
$relationships = remap_default_age_ratio_into_relationship($relationships,$default_age_ratio);
}
$slug = \Config\Services::slug();
$relationship = $slug->slugify($row[5]);
$age_min = isset($relationships[$relationship]['age_min']) ? $relationships[$relationship]['age_min'] : NULL;
@ -429,9 +459,9 @@ if (!function_exists('check_dependent_conflict'))
$self_emp_row_id = null;
$temp_counts = [2,3,4,5,6,7,8,9,10]; //temp variable for check relation repetaed count
$slug = \Config\Services::slug();
// if($policy_terms['family_floater'] == true)
// {
// dd($policy_terms);
if(isset($policy_terms['family_floater']) && !empty($policy_terms['family_floaters']))
{
// $temp_string = implode(" ",$policy_terms['family_floaters']);
$temp = $policy_terms['family_floaters'];
@ -535,15 +565,12 @@ if (!function_exists('check_dependent_conflict'))
}
// }
// else
// {
// if(count($family_data) > 1)
// {
// $result['status'] = false;
// $result['error_data'][] = ['code' => 11,'col_name' => 'sno','msg' => 'Rule conflict: Dependents not allowed','row_id' => $row[0]];//dependents not allowed
// }
// }
}
else
{
$result['status'] = true;
}
return $result;
@ -737,9 +764,10 @@ if (!function_exists('premium_calculation_manager'))
case "1":
//GPA - Sum Insured (SI) * Multiplier
$employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
$employee_received_band = $emp_data['temp']['band'];
foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{
if($slab_value['si'] == $employee_received_si)
if(($slab_value['si'] == $employee_received_si) || ($slab_value['grade'] != null && $slab_value['grade'] == $employee_received_band && $slab_value['si'] == $employee_received_si))
{
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
@ -1031,7 +1059,8 @@ if (!function_exists('premium_calculation_manager'))
}
if(!$is_match_found)
{
$log_message = '[ client_policy_id : ' .$emp_data['policy_details']['client_policy_id'].' - '. $emp_data['emp_code'].' - '.$emp_data['name'] .' - '. $emp_data['policy_details']['basic_cover_si'] . ' ]';
$age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
$log_message = '[ client_policy_id : ' .$emp_data['policy_details']['client_policy_id'].' - '. $emp_data['emp_code'].' - '.$emp_data['name'] .' - '. $emp_data['policy_details']['basic_cover_si'] . ', Age : '. $age.' ]';
if($slab_details['slab_rates'][0]['premium_type'] == 1)
{
$log_message .= ' - skipping, calculating only self..!';
@ -1205,3 +1234,51 @@ if(!function_exists('get_premium_for_si'))
return 0;
}
}
if(!function_exists('remap_default_age_ratio_into_relationship'))
{
function remap_default_age_ratio_into_relationship(array $general_relationships,array $default_age_ratio)
{
foreach ($default_age_ratio as $relationship => $age_ratio)
{
switch ($relationship) {
case 'child':
if (isset($general_relationships['son'])) {
$general_relationships['son']['age_min'] = $age_ratio['min'];
$general_relationships['son']['age_max'] = $age_ratio['max'];
}
if (isset($general_relationships['daughter'])) {
$general_relationships['daughter']['age_min'] = $age_ratio['min'];
$general_relationships['daughter']['age_max'] = $age_ratio['max'];
}
break;
case 'elders':
if (isset($general_relationships['father'])) {
$general_relationships['father']['age_min'] = $age_ratio['min'];
$general_relationships['father']['age_max'] = $age_ratio['max'];
}
if (isset($general_relationships['mother'])) {
$general_relationships['mother']['age_min'] = $age_ratio['min'];
$general_relationships['mother']['age_max'] = $age_ratio['max'];
}
if (isset($general_relationships['father-in-law'])) {
$general_relationships['father-in-law']['age_min'] = $age_ratio['min'];
$general_relationships['father-in-law']['age_max'] = $age_ratio['max'];
}
if (isset($general_relationships['mother-in-law'])) {
$general_relationships['mother-in-law']['age_min'] = $age_ratio['min'];
$general_relationships['mother-in-law']['age_max'] = $age_ratio['max'];
}
break;
default:
if (isset($general_relationships[$relationship])) {
$general_relationships[$relationship]['age_min'] = $age_ratio['min'];
$general_relationships[$relationship]['age_max'] = $age_ratio['max'];
}
break;
}
}
return $general_relationships;
}
}

View File

@ -167,6 +167,24 @@ if (!function_exists('generate_random_alphanumeric')) {
if (!function_exists('get_base64_image')) {
function get_base64_image($path)
{
// Get file extension
$type = pathinfo($path, PATHINFO_EXTENSION);
// Read file content
$dataContent = file_get_contents($path);
// Encode as base64
$base64Image = 'data:image/' . $type . ';base64,' . base64_encode($dataContent);
return $base64Image;
}
}

View File

@ -43,6 +43,7 @@ class ClientModel extends Model
->join('policies p', 'p.id = client_policy.policy_id')
->where('client_policy.client_id',$client['id'])
->where('client_policy.is_active', 1)
->where('client_policy.policy_status', 1)
->findAll();
$client['policies'] = $clientPolicies;

View File

@ -34,6 +34,7 @@ class ClientPolicyModel extends Model
"policy_terms",
"open_for_enrollment",
"is_addon",
"inception_type",
"base_policy",
"created_by",
"updated_by",
@ -81,6 +82,7 @@ class ClientPolicyModel extends Model
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->where('client_policy.client_id', $client_id)
->where('client_policy.policy_status', 1)
->where('client_policy.is_active', 1)
->get()
->getResult();

View File

@ -96,7 +96,7 @@ class EmployeeModel extends Model
}
public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [])
public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [],array $relationship = [])
{
$result = $this->select(['employees.id as emp_id', 'employees.client_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit'])
->join('employee_polices', 'employee_polices.employee_id = employees.id')
@ -106,7 +106,7 @@ class EmployeeModel extends Model
})
->where('employee_polices.is_active',1)
// ->where('employees.emp_status', ($emp_status !== null ? $emp_status : 'active'))
->where('employees.is_active',1)
// ->where('employees.emp_code',$emp_code)
->when($emp_code, function($query) use ($emp_code){
return $query->where('employees.emp_code',$emp_code);
@ -115,6 +115,9 @@ class EmployeeModel extends Model
->when(count($emp_status), function($query) use ($emp_status){
return $query->whereIn('employees.emp_status', $emp_status);
})
->when(count($relationship), function($query) use ($relationship){
return $query->whereIn('employees.relationship', $relationship);
})
->when(count($policy_status), function($query) use ($policy_status){
return $query->whereIn('employee_polices.status', $policy_status);
})

View File

@ -720,6 +720,8 @@ class EmployeePolicyModel extends Model
e.doj,
e.band,
TIMESTAMPDIFF(YEAR, e.dob, CURDATE()) AS emp_age,
(SELECT name FROM employees WHERE relationship = "Self" and emp_code = ' . $this->db->escape($emp_code) . ') AS self,
ep.tpa_id,
ep.uhid,
@ -728,12 +730,22 @@ class EmployeePolicyModel extends Model
clients.client_name,
clients.short_name AS client_short_name,
cp.policy_start_date,
policies.name AS policy_name,
insurers.name AS insurer_name,
insurers.short_name AS insurer_short_name,
insurers.insurer_logo,
insurer_branch.branch_name,
insurer_branch.branch_code,
insurer_branch.city as insurer_branch_city,
tpa.name AS tpa_name,
tpa.tpa_logo AS tpa_logo,
tpa.front_card,
tpa.back_card,
tpa.short_name AS tpa_short_name'
)
@ -742,7 +754,9 @@ class EmployeePolicyModel extends Model
->join('clients', 'clients.id = cp.client_id')
->join('policies', 'policies.id = cp.policy_id')
->join('insurers', 'insurers.id = cp.insurer_id')
->join('insurer_branch', 'insurer_branch.id = cp.insurer_branch_id')
->join('tpa', 'tpa.id = cp.tpa_id')
->where("ep.tpa_id IS NOT NULL AND ep.tpa_id <> ''")
->where('e.emp_status', 'active')
->where('e.is_active', '1')
->where('ep.status', 'active')
@ -753,6 +767,7 @@ class EmployeePolicyModel extends Model
->getResultArray();
return $result;
}

View File

@ -14,6 +14,7 @@ class InsurerModel extends Model
"category",
"name",
"short_name",
"insurer_logo",
"created_by",
"updated_by",
"is_active",

View File

@ -24,6 +24,7 @@ class PolicyPremium1Model extends Model
"created_by",
"updated_by",
'is_active',
'grade',
'premium_type',
];

View File

@ -12,6 +12,9 @@ class TPAModel extends Model
"id",
"name",
"short_name",
"front_card",
"back_card",
"tpa_logo",
"created_by",
"updated_by",
"is_active",

View File

@ -40,7 +40,7 @@
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<td><?php echo $file['batch_code']?></td>
<td><?php echo $file['file_name']?></td>
<td data-toggle="tooltip" data-placement="top" title="<?php echo $file['file_name'] ?>" ><?php echo strlen($file['file_name']) > 5 ? substr($file['file_name'], 0, 10) . "..." : $file['file_name'] ?></td>
<td><?php echo $file['client_short_name']?></td>
<td><?php echo $file['policy_name']?></td>
<td><?php echo $file['event_type']?></td>

View File

@ -34,6 +34,7 @@ body {
</style>
<div class="row" id="client_add">
<div class="col-12">
<div class="card">
@ -95,8 +96,8 @@ body {
</div>
<script>
<script>
// $(document).ready(function(){
// var tabid = localStorage.getItem('tabId');
// console.log(tabid)
@ -210,3 +211,4 @@ body {
});
</script>

View File

@ -14,6 +14,7 @@
<th>Policy</th>
<th>TPA</th>
<th>Date</th>
<th>Enrollment Status</th>
<th>Status</th>
<th>Action</th>
</tr>
@ -105,6 +106,16 @@
</div>
</div>
<div class="form-row" id="third" style="display: none; position: relative;top: 22px;">
<label class="switch">
<input id="inception_type" type="checkbox" name="inception_type">
<span class="slider round" style="height: 27px;"></span>
</label>
<label for="inception_type" style="position: relative;bottom: 5px;left: 10px;">Enable Employee Enrolment Process</label>
</div>
<div id="policy_fields"></div>
</div>
@ -151,6 +162,7 @@
onChange: function(selectedDates, dateStr, instance) {
var endDate = new Date(selectedDates[0]);
endDate.setFullYear(endDate.getFullYear() + 1);
endDate.setDate(endDate.getDate() - 1); // Set end date to last day of selected year
endDatePicker.setDate(endDate);
}
});
@ -158,6 +170,7 @@
// Calculate the end date (today + 1 year)
var endDate = new Date(today);
endDate.setFullYear(endDate.getFullYear() + 1);
endDate.setDate(endDate.getDate() - 1); // Set end date to last day of next year
// Initialize Flatpickr for the end date with the calculated end date
var endDatePicker = flatpickr("#end_date", {
@ -167,6 +180,7 @@
});
$('#add_form').hide();
$('.btnBack').hide();
@ -192,6 +206,7 @@
$('#first').hide();
$('#second').hide();
$('#third').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
@ -232,8 +247,28 @@
} else {
search_term = subject; // Set default value if neither 'GMC' nor 'GPA' exists
}
// console.log('search_term :', search_term)
var enrollmentStatus = '';
if(item.inception_type == 1){
enrollmentStatus = 'N/A'
}else if(item.inception_type == 2){
if(item.open_for_enrollment == 1){
enrollmentStatus = '<a href="#" data-id="'+ item.id +'" id="' + item.policy_id + '" class="btnOpenEnroll" data-toggle="tooltip" data-placement="left" title="Click To Close Enrollment">Open</a>'
}else if(item.open_for_enrollment == 0){
enrollmentStatus = '<a href="#" data-toggle="tooltip" data-placement="top" title="Click To Open Enrollment" data-id="'+ item.id +'" id="' + item.policy_id + '" class="btnOpenEnroll">Closed</a>'
}
}
console.log('search_term :', search_term)
policyTable += `
<tr>
@ -241,6 +276,7 @@
<td>${item.policy_name} (${item.policy_type_name})</td>
<td>${item.tpa_short} - ${item.tpa_branch_code}</td>
<td>${(item.policy_start_date)} / ${(item.policy_end_date)}</td>
<td style="text-align: center;">${(enrollmentStatus)}</td>
<td>${checkDateStatus(item.policy_end_date, 1)}</td>
<td>
<div class="btn-group dropdown">
@ -249,15 +285,6 @@
<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnPolicyEdit"><i class="mdi mdi-lead-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<a href="#" data-id="${item.id}" id="${search_term}" class="dropdown-item btnPolicyMaster" data-toggle="modal"><i class="mdi mdi-wrench mr-2 text-muted font-18 vertical-middle"></i>Terms</a>
<a href="#" data-id="${item.id}" id="${search_term}"class="dropdown-item btnPolicyModel" data-toggle="modal" data-target="#bs-example-modal-lg"><i class="mdi mdi-book-open mr-2 text-muted font-18 vertical-middle"></i>Rack Rate</a>
`;
if (item.open_for_enrollment == 0) {
policyTable +=
`<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnOpenEnroll"><i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle"></i>Open Enrollment</a> `;
} else {
policyTable +=
`<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnOpenEnroll" style="background-color: lightgrey;"><i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle" ></i>Open Enrollment</a> `;
}
policyTable += `
</div>
</div>
</td>
@ -284,6 +311,12 @@
policy_PrimaryKey = $('#client_id_policy').val();
policy_client = $('#policy_PrimaryKey').val();
var policyDataId = $('#policy').children('option:selected').attr('data-id');
var basePolicyDataId = $('#base_policy').children('option:selected').attr('data-id');
console.log('policyDataId', policyDataId);
console.log('basePolicyDataId', basePolicyDataId);
if (policy_PrimaryKey === '' && policy_client === '') {
toastr.error('Client is required', 'Error');
$('#insurer').val('');
@ -292,6 +325,22 @@
return;
}
if (basePolicyDataId == policyDataId) {
toastr.warning('The policy cannot be the same as the base policy.', 'Warning');
return;
}
if (basePolicyDataId == 3 || basePolicyDataId == 2) {
if (policyDataId == 1) {
toastr.warning('The GPA policy cannot be Select.', 'Warning');
return;
}
}
var isValid = $('#policy_form').parsley().validate();
if (!isValid) {
console.log('Form is Empty', 'Warning');
@ -353,7 +402,27 @@
subject; // Set default value if neither 'GMC' nor 'GPA' exists
}
console.log('search_term :', search_term)
// console.log('search_term :', search_term)
var enrollmentStatus = '';
if(item.inception_type == 1){
enrollmentStatus = 'N/A'
}else if(item.inception_type == 2){
if(item.open_for_enrollment == 1){
enrollmentStatus = '<a data-toggle="tooltip" data-placement="top" title="Click To Close Enrollment" href="#" data-id="'+ item.id +'" id="' + item.policy_id + '" class="btnOpenEnroll">Open</a>'
}else if(item.open_for_enrollment == 0){
enrollmentStatus = '<a data-toggle="tooltip" data-placement="top" title="Click To Open Enrollment" href="#" data-id="'+ item.id +'" id="' + item.policy_id + '" class="btnOpenEnroll">Closed</a>'
}
}
policyTable += `
<tr>
@ -361,6 +430,7 @@
<td>${item.policy_name} (${item.policy_type_name})</td>
<td>${item.tpa_short} - ${item.tpa_branch_code}</td>
<td>${rearrangeDateFormat(item.policy_start_date)} - ${rearrangeDateFormat(item.policy_end_date)}</td>
<td style="text-align: center;">${(enrollmentStatus)}</td>
<td>${checkDateStatus(item.policy_end_date, 1)}</td>
<td>
<div class="btn-group dropdown">
@ -369,15 +439,6 @@
<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnPolicyEdit"><i class="mdi mdi-lead-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<a href="#" data-id="${item.id}" id="${search_term}" class="dropdown-item btnPolicyMaster" data-toggle="modal"><i class="mdi mdi-wrench mr-2 text-muted font-18 vertical-middle"></i>Terms</a>
<a href="#" data-id="${item.id}" id="${search_term}"class="dropdown-item btnPolicyModel" data-toggle="modal" data-target="#bs-example-modal-lg"><i class="mdi mdi-book-open mr-2 text-muted font-18 vertical-middle"></i>Rack Rate</a>
`;
if (item.open_for_enrollment == 0) {
policyTable +=
`<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnOpenEnroll"><i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle"></i>Open Enrollment</a> `;
} else {
policyTable +=
`<a href="#" data-id="${item.id}" id="${item.policy_id}" class="dropdown-item btnOpenEnroll" style="background-color: lightgrey;"><i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle" ></i>Open Enrollment</a> `;
}
policyTable += `
</div>
</div>
</td>
@ -408,6 +469,7 @@
}, 1000);
}
});
});
$(document).ready(function() {
@ -461,7 +523,8 @@
'">' + item.name + '( ' + item.policy_type + ' )</option>';
}
} else if ($policy_type_value == 1) {
if (item.policy_type_id == 1 || item.policy_type_id == 2) {
if (item.policy_type_id == 1 || item.policy_type_id == 2 || item.policy_type_id == 3) {
OptionsHTML += '<option data-id="' + item.policy_type_id + '" value="' +
item.id +
@ -492,6 +555,9 @@
console.log('id', id)
$('#policy_type_id').val(dataId);
var base_policy_dataId = $('#base_policy').children('option:selected').attr('data-id');
// $('#base_policy option').each(function() {
// var val = $(this).val();
// if (val == id) {
@ -508,6 +574,42 @@
// appendPolicyFormFields(2);
// }
if($('#policy_type').val() == 1){
console.log('step 1')
if (dataId == 3) {
console.log('step 2')
var displayStatus = $('#base_policy_id').css('display');
$('#base_policy_id').show();
$('#base_policy').prop('required', true);
if (displayStatus === 'none') {
console.log('step 2.1')
$('#base_policy').val('').change();
}
// $('#base_policy').find('option[data-id="3"]').hide();
} else {
console.log('step 3')
var displayStatus = $('#base_policy_id').css('display');
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
if (displayStatus === 'none') {
console.log('step 3.1')
$('#base_policy').val('').change();
}
}
}
});
});
@ -557,24 +659,55 @@
$('#policy_status').val(checkDateStatus(res.data.policy_end_date));
$('#policy_status_field').show();
if (res.data.inception_type == 2) {
$('#inception_type').prop('checked', true);
} else {
$('#inception_type').prop('checked', false);
}
if (res.data.is_addon != '1' && res.data.is_addon != '0') {
$('#base_policy_id').show();
$('#base_policy').prop('required', true);
$('#first').show();
$('#second').show();
$('#third').show();
} else if (res.data.is_addon == '0') {
$('#first').hide();
$('#second').hide();
$('#third').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
} else if (res.data.is_addon == '1') {
$('#first').show();
$('#second').show();
$('#third').show();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
}
if(res.data.is_addon == 1 && res.data.base_policy > 0){
// $("#insurer").next(".select2-container").css({
// 'pointer-events': 'none',
// });
// $('#select2-insurer-container').css({
// 'background-color': '#ebebe0',
// });
// $("#tpa").next(".select2-container").css({
// 'pointer-events': 'none',
// });
// $('#select2-tpa-container').css({
// 'background-color': '#ebebe0',
// });
}
if (res.data.is_addon == 2 || res.data.is_addon == 3) {
$("#insurer").next(".select2-container").css({
'pointer-events': 'none',
});
@ -619,14 +752,17 @@
$.each(res.client_policy_list, function(index, item) {
OptionsHTML += '<option data-id="' + item.policy_type_id +
'" value="' + item.id + '" ' + (res.data.base_policy === item.id ?
'selected="selected"' : '') + '>' + item.name + '</option>';
'selected="selected"' : '') + '>' + item.name + '( ' + item.policy_type + ' )</option>';
});
$('#base_policy').html(OptionsHTML);
setTimeout(function() {
$('#policy').val(res.data.policy_id).change();
$('#base_policy').val(res.data.base_policy);
$('#base_policy').change();
}, 3000);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
@ -640,24 +776,27 @@
});
});
$('body').on('click', '.btnOpenEnroll', function() {
Swal.fire({
title: "Are you sure?",
text: "You need to approve this!",
icon: "warning",
icon: "info",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "Yes, delete it!"
confirmButtonText: "Yes",
}).then((result) => {
if (result.isConfirmed) {
var client_policy_id = $(this).attr('data-id');
var policy_id = $(this).attr('id');
var client_id = $('#client_id_policy').val()
// console.log('client_policy_id', client_policy_id);
console.log('client_policy_id', client_policy_id)
console.log('policy_id', policy_id)
console.log('client_id', client_id)
if (client_policy_id) {
$('.loader').fadeIn();
@ -671,30 +810,28 @@
client_policy_id: client_policy_id,
},
success: function(res) {
console.log(res);
console.log(res.client_policy_data);
if (res) {
if (res.open_for_enrollment) {
var json_decode = JSON.parse(res.open_for_enrollment);
var open_for_enrollment = json_decode.open_for_enrollment;
var client_policy_id = json_decode.client_policy_id;
if (open_for_enrollment == 1) {
// console.log($('[data-id="' + client_policy_id + '"]');
$('.btnOpenEnroll').each(function(index, element) {
if ($(element).data('id') == client_policy_id) {
$(element).css({
'background-color': 'lightgrey',
});
$(element).html('<i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle"></i>Open Enrollment');
$(element).html('<a data-toggle="tooltip" data-placement="top" title="Click To Close Enrollment" href="#" data-id="' + res.client_policy_data.id + '" id="' + res.client_policy_data.policy_id + '" class="btnOpenEnroll">Open</a>');
}
});
} else {
$('.btnOpenEnroll').each(function(index, element) {
if ($(element).data('id') == client_policy_id) {
$(element).css({
'background-color': '',
});
$(element).html('<i class="mdi mdi-file-lock mr-2 text-muted font-18 vertical-middle"></i>Open Enrollment');
$(element).html('<a data-toggle="tooltip" data-placement="top" title="Click To Open Enrollment" href="#" data-id="' + res.client_policy_data.id + '" id="' + res.client_policy_data.policy_id + '" class="btnOpenEnroll">Closed</a>');
}
});
}
@ -734,6 +871,7 @@
});
function appendPolicyFormFields(policy_type, data = false) {
var html = '';
@ -1028,6 +1166,10 @@
gpaSumInsureMultiplier(input);
}
if (input.id == 'gpa_sum_si2') {
gpaSumInsureMultiplier(input);
}
// if(input.id == 'basic_pay'){
// var inputNumber = input.value;
// if (inputNumber) {
@ -1133,11 +1275,13 @@
$('#base_policy').prop('required', true);
$('#first').show();
$('#second').show();
$('#third').show();
} else if ($(this).val() == '0') {
$('#first').hide();
$('#second').hide();
$('#third').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
@ -1146,6 +1290,7 @@
$('#first').show();
$('#second').show();
$('#third').show();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
}
@ -1176,9 +1321,22 @@
var OptionsHTML = '';
OptionsHTML += '<option value="" selected>Select Base Policy</option>';
$.each(res.data, function(index, item) {
if ($('#policy_type').val() == 1) {
console.log('if')
if (item.policy_type_id == 1 || item.policy_type_id == 2) {
console.log('if 2')
OptionsHTML += '<option data-id="' + item.policy_type_id + '" value="' + item.id +
'">' + item.name + '( ' + item.policy_type + ' )</option>';
}
} else {
console.log('if')
OptionsHTML += '<option data-id="' + item.policy_type_id + '" value="' + item.id +
'">' + item.name + '( ' + item.policy_type + ' )</option>';
}
});
$('#base_policy').html(OptionsHTML);
},
@ -1195,7 +1353,7 @@
}
var dataId = 0;
$(document).ready(function() {
$('#base_policy').change(function() {
@ -1204,6 +1362,12 @@
var policy_type = $('#policy_type').val()
console.log(client_policy_id);
dataId = $('#policy').children('option:selected').attr('data-id');
console.log('dataId', dataId)
base_policy_data_id = $(this).children('option:selected').attr('data-id');
console.log('base_policy_data_id', base_policy_data_id);
var queryParams = {
client_policy_id: client_policy_id,
policy_type: policy_type,
@ -1238,26 +1402,37 @@
$('#start_date').val(rearrangeDateFormat(res.data.policy_start_date)).change();
$('#end_date').val(rearrangeDateFormat(res.data.policy_end_date)).change();
var policeOptionHTML = '';
$policy_type_value = $('#policy_type').val();
$.each(res.policy, function(index, item) {
// if ($policy_type_value == 3) {
// if (item.policy_type_id == 5) {
console.log(item);
policeOptionHTML += '<option data-id="' + item.policy_type_id +
'" value="' + item.id + '" ' + (res.data.policy_id === item.id ?
'selected="selected"' : '') + '>' + item.name + '</option>';
// }
// }
});
$('#policy').html(policeOptionHTML);
if (dataId == 3 || policy_type == 1) {
console.log('step 1')
setTimeout(function() {
console.log('step 2')
var $option = $('#policy').find('option[data-id="3"]');
if ($option.length > 0) {
console.log('step 3')
$option.prop('selected', true).change();
} else {
console.log('step 4');
toastr.warning('The insurer does not have a GMC-Parents policy.', 'Warning');
}
}, 1500);
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
@ -1269,6 +1444,7 @@
}, 500);
}
});
});
})

View File

@ -157,8 +157,7 @@ $(document).ready(function(){
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 1000);
console.log('Something Wrong!', 'warning'); }, 1000);
}
});

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title>NHANCE</title>
<title>E-Card</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="A fully featured CRM" name="description" />
<meta content="Venba info tech" name="author" />
@ -23,6 +23,7 @@
<!-- Left side of the ID card -->
<div
style="width: 400px; height: 250px; background-color: #f0f0f0; border: 1px solid #ccc; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; margin: 0 10px;">
<div style="padding: 20px; box-sizing: border-box; border-right: 1px solid #ccc;">
<div style="margin-bottom: 10px; display: flex; justify-content: space-between;">
<label style="font-weight: bold;">Name:</label>
@ -49,6 +50,7 @@
<span><?= htmlspecialchars(formatDateOrReturn($value['policy_end_date'])) ?></span>
</div>
</div>
</div>
</td>
<td>
@ -77,6 +79,12 @@
<?php } ?>
</table>
<?php if(!isset($data)) { ?>
<a href="<?= generate_download_link('HX3kUB') ?>"
target="_blank">button</a>
<?php } ?>
</body>
</html>

View File

@ -0,0 +1,203 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>E-Card</title>
<style>
ol {
list-style-type: decimal;
font-family: sans-serif;
}
</style>
</head>
<body>
<table style="width: 100%;">
<?php if(isset($data)) { ?>
<?php foreach ($data as $key => $value) { ?>
<tr>
<td style="padding-right: 50px;">
<div style="display: flex;justify-content: center;gap: 10px;">
<div
style="width: 100%;min-height: 320px; background-image:url(<?= base_url() . "public/assets/images/New-india-front.jpg"; ?>);background-size: 100% 100%;border: 1px solid black;line-height: 20px;padding-left: 20px;font-size: 14px;position: relative;">
<div>
<h3
style="font-family: sans-serif;margin-bottom: 40px;margin-top: 30px;padding-left: 100px;">
THE NEW INDIA ASSURANCE CO.LTD</h3>
<div style="display: flex;gap: 20px;">
<table>
<tr>
<td>
<div style="font-family: sans-serif;"><span>UHID No</span><span
style="margin-left: 52px;">:</span></div>
</td>
<td>
<div style="font-family: sans-serif;">NIAC49688264</div>
</td>
</tr>
<div style="font-family: sans-serif;"><b><?= htmlspecialchars($value['name']) ?></b></div>
<tr>
<td>
<div style="font-family: sans-serif;"><span>Age</span><span
style="margin-left:82px;">:</span></div>
</td>
<td>
<div style="font-family: sans-serif;"><?= htmlspecialchars($value['emp_age']) ?></div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;"><span>Relationship</span><span
style="margin-left: 29px;">:</span></div>
</td>
<td>
<div style="font-family: sans-serif;"><?= htmlspecialchars($value['relationship']) ?></div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;"><span>Plan Period</span><span
style="margin-left: 34px;">:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;"><?= htmlspecialchars($value['policy_start_date']) ?> To <?= htmlspecialchars($value['policy_end_date']) ?></div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;"><span>Policy No</span><span
style="margin-left: 47px;">:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;"><?= htmlspecialchars($value['tpa_id']) ?></div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;"><span>Insurer</span><span
style="margin-left: 62px;">:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">
<span>LCO</span><span>:</span><span><?= htmlspecialchars($value['branch_code']) ?></span><span>:</span><span><?= htmlspecialchars($value['insurer_branch_city']) ?></span>
</div>
</td>
</tr>
</table>
</div>
</div>
<div>
<img src="<?= base_url() . "public/assets/images/New_India_Assurance.png"; ?>" alt=""
width="70px" height="70px"
style="object-fit: fill;position: absolute;top: 6px;left: 38px;">
</div>
</div>
</div>
</td>
<td style="width: 50%; padding-left: 50px;">
<div style="display: flex;justify-content: center;gap: 10px;">
<div
style="width: 100%;min-height: 310px; background-image: url(<?= base_url() . "public/assets/images/New-india-back.jpg"; ?>);background-size: 100% 100%;border: 1px solid black;padding-top: 10px;padding-right: 10px;">
<h4 style="font-family: sans-serif;padding-left: 20px;margin:0px;">Instructions</h4>
<ul style="font-family: sans-serif;font-size: 11px;line-height: 15px;padding-left: 30px;">
<li>Card has to be presented to our network hospitals at the time of the admission while
availing cashless</li>
<li>Free authorizationfrom FHPL it must should be taken before 48 hrs for all planed
admissions & emergency admissions within 24 hrs of getting admitted to any network
hospitals FHPL</li>
<li>The issuance of this card doesnot guarantee cashless benefits /hospitalisation</li>
<li>The card is for the identification purpose.in case of without photograph
card.Alternative identification proof such as Voter ID/driving license etc...should be
produced</li>
<li>All insurance claim will be processed as per policy terms & conditions</li>
<li>For more details kindly referbook kindly provided</li>
</ul>
</div>
</div>
</td>
</tr>
<div
style="margin-left: 20%; position:relative; top:70px; width: 160%; display: flex;justify-content: center; line-height: 27px; ">
<span style="font-family: sans-serif;margin: 0px;margin-left: 30px;font-size: 15px;font-weight: 100;">TERMS
AND CONDITIONS:</span>
<div style=" font-size : 15px; justify-content: space-around;align-items: center;">
<ol type="number" style="font-family: sans-serif;">
<li>This card is generated as per the details given by your employer/HR. Incase of any
errors in the
details you may confirm the same through your employer for making required corrections.
</li>
<li>No physical card will be provided to you. For all requirements you may use this card
printed in black
and white or colour.</li>
<li>You can access our network hospitals list from our website https://www.fhpl.net for any
information
regarding hospitals available within your location or as required.</li>
<li>For the convenience of the members the guide book is made available on our website
https://www.fhpl.net for understanding protocols in the event of any hospitalization
assistance required
for availing cashless service and also to forward any claim where the member has spent
on his/her own.</li>
<li>All our network hospitals will accept the printed card and seek the preauthorization
from FHPL in the
event of any in-patient hospitalization.</li>
<li>Incase there is no photograph on the ID card, the member has to identify himself/herself
with any other
photo-card like: credit card, ration card, electoral card, Company ID card etc in
conjunction with this card.</li>
<li>This card is not transferable and cannot be forwarded further to any other person by
email/fax.</li>
<li> The card will be visible to any member as long the policy is valid after which this
service will be
withdrawn or till such time the member is employed with the current employer.</li>
<li>Usage of this card after the validity/policy expiry will not be entertained.</li>
<li>A fresh card will be generated subjected to the renewal of the policy.</li>
<li>For Any further queries, Please feel free to contact us on Toll—Free Helpline :1800 -
103 - 7519</li>
</ol>
</div>
</div>
<div style="padding-top: 500px;" ></div>
<?php } ?>
<?php } ?>
</table>
</body>
</html>

View File

@ -0,0 +1,179 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>E-Card</title>
</head>
<body>
<table style="width: 100%;">
<?php if(isset($data)) { ?>
<?php foreach ($data as $key => $value) { ?>
<tr>
<td style="width: 42%;">
<div
style="width: 97%; min-height: 330px; padding-left: 21px; line-height: 19px; font-size: 13px;background-image: url(<?= base_url() . "public/assets/images/icici-front.jpg"; ?>);background-size:100% 100%;">
<div >
<div style="font-weight: 600;font-family: sans-serif;margin-top: 50px;margin-bottom: 10px;">
MADRAS BOAT CLUB</div>
<div style="display: flex;gap: 20px; padding-top: 10px;">
<table>
<tr>
<td>
<div style="font-family: sans-serif;font-weight: 400;font-weight: bold;">
<span>Name</span><span >:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">MURUGAN M</div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;font-weight: 400;font-weight: bold;">
<span>Policy No</span><span >:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">4016/x/255486172/01/000</div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;font-weight: 400;font-weight: bold;">
<span>Card No</span><span>:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">IL22710628200</div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;font-weight: 400;font-weight: bold;">
<span>Emp ID</span><span>:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">60</div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;font-weight: 400;font-weight: bold;">
<span>Age</span><span >:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">51</div>
</td>
</tr>
<tr>
<td>
<div style="font-family: sans-serif;font-weight: 400;font-weight: bold;">
<span>Valid up</span><span>:</span>
</div>
</td>
<td>
<div style="font-family: sans-serif;">10-Aug-2024</div>
</td>
</tr>
</table>
</div>
</div>
<!-- </div> -->
</td>
<td style="padding-left: 30px; padding-bottom: 40px">
<div
style="width: 90%;min-height: 210px;background-image: url(<?= base_url() . "public/assets/images/icici-back.jpg"; ?>);background-size: 100% 100%;padding-top: 10px; position: relative;top: 18px;">
<ul style="font-family: sans-serif;font-size: 10px;margin-left: 0px;padding-left: 35px;">
<li>*For services like second opinion,doctor appointment,facilitating hospitalisation,post
hospitalisation care,call our health assistance helpline at 040-66274205{8AM-8PM Monday
to Saturday except public holidays}</li>
<li>This Card is non-Transferable and is valid at Network hospitals only</li>
<li>Use of this card is governed by the policy terms and conditions</li>
<li>Cashless access to the network provider can only be obtained When accompanied with the
authorization letter issued by ICICI Lombard GIC Ltd</li>
<li>In case of non photo cards,to prove your identy,please produce this card along with any
photo id card issued by government</li>
<li>valid up to policy expiry date or cancellation date whichever is earlier</li>
</ul>
<div style="padding-left: 20px;">
<div style="font-size: 10px;"><span style="color: #AA292E;font-family: sans-serif;">ICICI
Lombard Health Care Pays:</span><span style="font-family: sans-serif;">hospitalisation
bills for admissable claim,Subject
to prior prior approval.In case of Emergency.Approval can be taken with in 24 hours
of hospitalisation</span></div>
<div style="font-size: 10px;"><span style="color: #AA292E;font-family: sans-serif;">Insured
pays:</span><span style="font-family: sans-serif;">All non medical Hospitalisation
bills and expenses not covered Under the policy</span></div>
<div style="font-size: 10px;"><span style="color: #AA292E;font-family: sans-serif;">Mailing
Address:</span><span style="font-family: sans-serif;">ICICI Lombard GIC
Ltd,1st,4th,5th & 6th,Floor.Varun Towers-II,Opp,Hydrabad Public
School,Begumpet,Hyderabad-50016,Telangana</span></div>
<div style="font-size: 10px;"><span style="color: #AA292E;font-family: sans-serif;">Registered
Addresss:</span><span style="font-family: sans-serif;">ICICI Lombard General insurance
company
limited,ICICI Lombard House,414,savakar marg,near sidhivinayak
temple,prabhadevi,Mumbai-400025</span></div>
</div>
<div
style="display: flex;gap: 30px;padding-left: 20px;margin: 10px 0px 10px 0px;font-size: 10px;font-family: sans-serif;">
<div>
<div><span><b>Fax Number:</b></span><span>(040)6698916061</span></div>
<div><span><b>Email:</b></span><span>ihealth@icicilombard.com</span></div>
</div>
<div>
<div><span><b>Toll Free number:</b></span><span>18002666</span></div>
<div><span><b>Visit Us at:</b></span><span>www.icicilombard.com</span></div>
</div>
</div>
<div style="padding-left: 20px;">
<div style="font-family: sans-serif;font-size: 9px;">Insurance is the subject matter of the
soficitation.IRDA Reg no.115.CIN:L67200MH2000PLC129408</div>
<div style="font-family: sans-serif;font-size: 9px;">*The Mentioned Covers are add-ones by
paying additional premium and available only if opted by policyholders</div>
</div>
</div>
</td>
</tr>
<?php } ?>
<?php } ?>
</table>
</body>
</html>

View File

@ -0,0 +1,119 @@
<body>
<div style="display: flex;justify-content: center;gap: 10px; width:840px;margin:0 auto 15px; page-break-after: auto;">
<div style="border: 1px solid black;width: 400px;max-height: 300px;background: url('{FRONT_CARD}');background-size: 100% 100%;padding: 10px;">
<div style="display: flex;">
<div><img src="{INSURER_LOGO}" alt="" width="60px"
width="60px" style="object-fit: fill;;"></div>
<div style="text-align: center;font-family: sans-serif;font-weight: 600;margin-top: 10px;"><span>THE NEW
INDIA ASSURANCE CO.LTD.</span> <br><span style="font-size: 15px;">GOOD HEALTH MEDICLAIM
POLICY</span></div>
</div>
<table
style="font-family: sans-serif;font-size: 14px;width: 100%;margin-top: 20px;margin-left: 20px;line-height: 20px;">
<tbody>
<tr>
<td>MDID : {TPA_ID}</td>
</tr>
<tr>
<td colspan="2"><b>{NAME}</b></td>
</tr>
<tr>
<td>Certificate No : {UHID}</td>
</tr>
<tr>
<td><span>Sex : {GENDER} </span> <span style="margin-left: 30px;"> Date of Birth : {DOB}</span>
</td>
</tr>
<tr>
<td colspan="2"><b>{SELF_NAME}</b></td>
</tr>
<tr>
<td>Valid form :{POLICY_DATE}</td>
</tr>
</tbody>
</table>
</div>
<div style="border: 1px solid black;width: 400px;max-height: 300px;padding: 5px;">
<div style="font-size: 11px;text-align: center;">The card is for identification purpose only</div>
<table style="width: 100%;text-align: center;font-size: 11px;">
<tbody>
<tr>
<td>General & Claim Enquiry Helpline</td>
<td>Cashless Enquiry helpline</td>
</tr>
</tbody>
</table>
<table style="font-size: 11px;width: 100%;text-align: center;">
<tbody>
<tr>
<td style="border: 1px solid black;">Toll Free : 1800-209-7777 <br>Email :
citibank_chennai@mdindia.com</td>
<td style="border: 1px solid black;">Toll Free : 1800-209-7800 <br>Email:
authorisation@mdindia.com</td>
</tr>
</tbody>
</table>
<div style="font-size: 14px;text-align: center;">CITI MDIndia branch contact</div>
<div>
<table style="text-align: center;width: 100%;font-size: 12px;">
<thead>
<tr>
<th style="border: 1px solid black;">Center</th>
<th style="border: 1px solid black;">Ph.No/Fax.No.</th>
<th style="border: 1px solid black;">Center</th>
<th style="border: 1px solid black;">Ph.No/Fax.No.</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid black;">Chennai</td>
<td style="border: 1px solid black;">9381819401</td>
<td style="border: 1px solid black;">Delhi</td>
<td style="border: 1px solid black;">9310596976</td>
</tr>
<tr>
<td style="border: 1px solid black;">Chennai</td>
<td style="border: 1px solid black;">9381819501</td>
<td style="border: 1px solid black;">Mumbai</td>
<td style="border: 1px solid black;">9320373542</td>
</tr>
<tr>
<td style="border: 1px solid black;">Hyderabad</td>
<td style="border: 1px solid black;">9390838023</td>
<td style="border: 1px solid black;">Pune</td>
<td style="border: 1px solid black;">9371644536</td>
</tr>
<tr>
<td style="border: 1px solid black;">Bangalore</td>
<td style="border: 1px solid black;">9341555665</td>
<td style="border: 1px solid black;">Kolkata</td>
<td style="border: 1px solid black;">9333441389</td>
</tr>
</tbody>
</table>
</div>
<div>
<h6 style="margin: 5px;">TERMS AND CONDITIONS</h6>
<ol style="font-size: 11px;padding-left: 15px;margin-top: 0px;">
<li>Pre authorisation is compulsary from tpa prior to planned admission within 24hours for
emergencies.</li>
<li>Admission for Investigation/Evaluation Not covered.</li>
<li>All terms and conditions of the policy would be applicable</li>
<li>cashless hospitalisation in network hospitals can be obtained in conjunction with this card.an
authorisation letter issued by tpa and photo identification and such as Voters ID,Driver
Licence,Passport,etc.</li>
</ol>
</div>
</div>
</div>
</body>

View File

@ -44,7 +44,7 @@
<th class="font-weight-medium">Policy name</th>
<th class="font-weight-medium">Insurer name</th>
<th class="font-weight-medium">TPA ID</th>
<th class="font-weight-medium">UHID ID</th>
<th class="font-weight-medium">UHID</th>
<th class="font-weight-medium">Policy status</th>
<th class="font-weight-medium">Sum Insured</th>
<th class="font-weight-medium">Premium</th>

View File

@ -2,29 +2,23 @@
<div class="row">
<div class="col-12">
<div class="card-body">
<form role="form" class="parsley-examples" method="post" id="insurer_general_form"
enctype="multipart/form-data">
<form role="form" class="parsley-examples" method="post" id="insurer_general_form" enctype="multipart/form-data">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="insurer_General_PrimaryKey"
value="<?= isset($insurer['id']) ? $insurer['id'] : '' ?>" />
<input type="hidden" name="PrimaryKey" id="insurer_General_PrimaryKey" value="<?= isset($insurer['id']) ? $insurer['id'] : '' ?>" />
<input type="hidden" name="insurer_id" id="insurer_id" />
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<label for="insurer_name">Insurer Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="insurer_name"
placeholder="Enter Insurer Name"
value="<?= isset($insurer['name']) ? $insurer['name'] : '' ?>" name="name" required>
<input type="text" class="form-control" id="insurer_name" placeholder="Enter Insurer Name" value="<?= isset($insurer['name']) ? $insurer['name'] : '' ?>" name="name" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-2">
<label for="short_name">Insurer Short Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="short_name" placeholder="Enter Short Name"
value="<?= isset($insurer['short_name']) ? $insurer['short_name'] : '' ?>"
name="short_name" required minlength="3" maxlength="8">
<input type="text" class="form-control" id="short_name" placeholder="Enter Short Name" value="<?= isset($insurer['short_name']) ? $insurer['short_name'] : '' ?>" name="short_name" required minlength="3" maxlength="8">
</div>
</div>
@ -52,13 +46,24 @@
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="short_name">Insurer Logo<span class="text-danger"></span></label>
<input type="file" class="form-control" onchange="PreviewImage();" id="insurer_logo" name="insurer_logo" accept="image/jpeg, image/jpg, image/png">
</div>
<div class="form-group col-md-4 float-right" style="position: relative;left: 40px;bottom: 28px;">
<img src="<?= isset($insurer['insurer_logo']) && !empty($insurer['insurer_logo']) ? base_url() . "public/uploads/logo/" . $insurer['insurer_logo'] : base_url() . "public/assets/images/avatar_2x.png" ?>" width="100" height="100" id="uploadPreview" class="avatar img-circle img-thumbnail" alt="avatar" />
</div>
</div>
</div>
<div class="form-group text-right m-b-0">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
id="btnSubmit">Submit</button>
<button type="button" class="btn btn-secondary waves-effect btnBack"
id="btnBack">Cancel</button>
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnSubmit">Submit</button>
<button type="button" class="btn btn-secondary waves-effect btnBack" id="btnBack">Cancel</button>
</div>
</form>
</div>
@ -138,8 +143,7 @@ $(document).ready(function() {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 1000);
console.log('Something Wrong!', 'warning'); }, 1000);
}
});
}
@ -175,4 +179,13 @@ $(document).ready(function() {
});
function PreviewImage() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("insurer_logo").files[0]);
oFReader.onload = function(oFREvent) {
document.getElementById("uploadPreview").src = oFREvent.target.result;
};
};
</script>

View File

@ -304,8 +304,7 @@ $(document).ready(function () {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 1000);
console.log('Something Wrong!', 'warning'); }, 1000);
}
});
}

View File

@ -1,5 +1,13 @@
<!-- Modal content for the Large example -->
<style>
.underline-input {
border: none;
border-bottom: 1px solid grey; /* Underline style */
outline: none; /* Remove default focus outline */
padding: 2px 5px; /* Adjust padding (top/bottom right/left) */
font-size: 16px; /* Adjust font size */
}
.button-like {
display: inline-block;
padding: 8px 15px;
@ -10,6 +18,7 @@
cursor: pointer;
margin-right: -85px;
}
.radiobuttondiv {
margin-left: 32px;
}
@ -26,10 +35,12 @@
/* border:1px solid; */
/* background-color: #0001; */
}
.form-group-client-policy-masters {
display: -webkit-box;
max-width: 100% !important;
}
.flex-container {
display: block;
/* flex-wrap: wrap; */
@ -37,8 +48,10 @@
}
.flex-container>div {
flex: 1; /* Each div takes equal space */
flex: 1;
/* Each div takes equal space */
}
label {
padding-top: 7px;
width: 400px;
@ -46,9 +59,11 @@
height: 36px;
/* text-align: center; */
}
.jodit-status-bar {
display: none;
}
/* .jodit-container{
width: 821px !important;
margin-top: 3px;
@ -60,12 +75,15 @@
.input-group {
width: 64.5% !important;
}
.input-group-append-client-policy-master {
margin-top: 3px;
}
.jodit-wysiwyg {
margin-bottom: 162px;
}
.s {
margin-left: 30px;
width: 689px;
@ -111,21 +129,41 @@
<div class="col-md-6">
</div>
<div class="col-md-6" style="margin-bottom:10px">
<div style="margin-top:10px">
<span style="margin-right: 20px;">Self:</span>
<input type="checkbox" style="margin-right: 70px;" name="family_floaters[]" value="self" id="self" checked>
<span style="margin-right: 20px;">Spouse:</span>
<input type="checkbox" style="margin-right: 70px;"name="family_floaters[]" value="spouse" id="spouse">
</div>
<div style="margin-top:10px">
<span for="children">Children:</span>
<select name="family_floaters[]" id="children" style="margin-left: 109px;">
<table>
<tbody>
<tr>
<td style="width: 11%;"><span style="margin-right: 20px;">Self:</span></td>
<td style="width: 11%;"><input type="checkbox" style="margin-right: 70px;" name="family_floaters[]" value="self" id="self" checked> </td>
<td style="width: 28%;" ><div class="self-age"><span style="margin-right: 20px;">Min Age:</span><input class="underline-input min_age" value="<?php echo isset($self_min_age) ? $self_min_age : '18'; ?>" style="width: 18%;" type="number" name="self_min_age" id="self_min_age"></div></td>
<td style="width: 28%;" ><div class="self-age"><span style="margin-right: 20px;">Max Age:</span><input class="underline-input max_age" value="<?php echo isset($self_max_age) ? $self_max_age : '60'; ?>" style="width: 18%;" type="number" name="self_max_age" id="self_max_age"></div></td>
</tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>
<tr>
<td style="width: 11%;"><span style="margin-right: 20px;">Spouse:</span></td>
<td style="width: 11%;"><input type="checkbox" style="margin-right: 70px;"name="family_floaters[]" value="spouse" id="spouse"></td>
<td style="width: 28%;" ><div class="spouse-age"><span style="margin-right: 20px;">Min Age:</span><input class="underline-input min_age" value="<?php echo isset($spouse_min_age) ? $spouse_min_age : '18'; ?>" style="width: 18%;" type="number" name="spouse_min_age" id="spouse_min_age"></div></td>
<td style="width: 28%;" ><div class="spouse-age"><span style="margin-right: 20px;">Max Age:</span><input class="underline-input max_age" value="<?php echo isset($spouse_max_age) ? $spouse_max_age : '60'; ?>" style="width: 18%;" type="number" name="spouse_max_age" id="spouse_max_age"></div></td>
</tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>
<tr>
<td style="width: 11%;"><span for="children">Children:</span></td>
<td style="width: 11%;"><select name="family_floaters[]" id="children">
<option value="0">None</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>
<td style="width: 28%;" ><div class="child-age"><span style="margin-right: 20px;">Min Age:</span><input class="underline-input min_age" value="<?php echo isset($child_min_age) ? $child_min_age : '0'; ?>" style="width: 18%;" type="number" name="child_min_age" id="child_min_age"></div></td>
<td style="width: 28%;" ><div class="child-age"><span style="margin-right: 20px;">Max Age:</span><input class="underline-input max_age" value="<?php echo isset($child_max_age) ? $child_max_age : '25'; ?>" style="width: 18%;" type="number" name="child_max_age" id="child_max_age"></div></td>
</tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>
</tbody>
</table>
<div style="margin-top:10px">
</div>
<div style="margin-top:10px">
</div>
<div style="margin-top:10px">
<span for="family_floaters">Select Other Members:</span>
@ -137,12 +175,26 @@
<option value="2PIL">Only two parents in law (FIL + MIL)</option>
<option value="2EPORPIL">Parents or PIL (Any two of Father, Mother, MIl, FIL)</option>
<option value="EPORPIL">Either Parents or PIL (Parents or Parents In Law)</option>
<option value="4EPORPIL">Parents + PIL (Father + Mother + MIL + FIL)</option>
<option valueCONFLICT="4EPORPIL">Parents + PIL (Father + Mother + MIL + FIL)</option>
</select>
</div>
<div style="margin-top:10px">
<table>
<tbody>
<tr>
<td style="width: 22%;" ><div class="other-member-age"><span style="margin-right: 20px;">Elders Count:</span><input class="underline-input" id="member_count" style="width: 18%;" type="number" name="member_count" disabled id="member_count"></div></td>
<td style="width: 28%;" ><div class="other-member-age"><span style="margin-right: 20px;">Min Age:</span><input class="underline-input min_age" value="<?php echo isset($other_member_min_age) ? $other_member_min_age : '18'; ?>" style="width: 18%;" type="number" class="underline-input min_age" name="other_member_min_age" id="other_member_min_age"></div></td>
<td style="width: 28%;" ><div class="other-member-age"><span style="margin-right: 20px;">Min Age:</span><input class="underline-input max_age" value="<?php echo isset($other_member_max_age) ? $other_member_max_age : '60'; ?>" style="width: 18%;" type="number" class="underline-input max_age" name="other_member_max_age" id="other_member_max_age"></div></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<hr>
<div class="row" style="margin-bottom: 10px;display:none;">
<div class="col-md-6">
@ -154,6 +206,7 @@
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<label for="totalSumInsured">Waiver of Pre-existing Diseases</label>
@ -207,7 +260,8 @@
</div>
<div class="col-md-6">
<input type="radio" name="9monthwaitingperiodwaived" class="9monthwaitingperiodwaived" value="1"> Yes, waived off
<input type="radio" name="9monthwaitingperiodwaived" class="9monthwaitingperiodwaived" value="0" style="margin-left:10px"> No </div>
<input type="radio" name="9monthwaitingperiodwaived" class="9monthwaitingperiodwaived" value="0" style="margin-left:10px"> No
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
@ -255,7 +309,8 @@
</div>
<div class="col-md-6">
<input type="radio" name="congenitaldiseasesinternal" class="congenitaldiseasesinternal" value="internal"> Internal Covered
<input type="radio" name="congenitaldiseasesinternal" class="congenitaldiseasesinternal" value="no" style="margin-left:10px"> No </div>
<input type="radio" name="congenitaldiseasesinternal" class="congenitaldiseasesinternal" value="no" style="margin-left:10px"> No
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
@ -362,7 +417,8 @@
</div>
<div class="col-md-6">
<input type="radio" name="reasonableandcustomarycharges" class="reasonableandcustomarycharges" value="1">Applicable
<input type="radio" name="reasonableandcustomarycharges" class="reasonableandcustomarycharges" value="0" style="margin-left:10px">Not Applicable </div>
<input type="radio" name="reasonableandcustomarycharges" class="reasonableandcustomarycharges" value="0" style="margin-left:10px">Not Applicable
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
@ -371,7 +427,8 @@
</div>
<div class="col-md-6">
<input type="radio" name="daycaretreatment" class="daycaretreatment" value="1"> Yes
<input type="radio" name="daycaretreatment" class="daycaretreatment" value="0" style="margin-left:10px"> No </div>
<input type="radio" name="daycaretreatment" class="daycaretreatment" value="0" style="margin-left:10px"> No
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
@ -477,7 +534,7 @@
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<label for="totalSumInsured">Days of Discharge</label>
<label for="totalSumInsured">Claim Intimation Clause</label>
</div>
<div class="col-md-6">
<input type="text" id="days_of_discharge" name="days_of_discharge" class="form-control " placeholder="Enter the number of days">
@ -487,7 +544,7 @@
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<label for="totalSumInsured">Days from DOD</label>
<label for="totalSumInsured">Claim Submission</label>
</div>
<div class="col-md-6">
<input type="text" id="days_from_dod" name="days_from_dod" class="form-control " placeholder="Enter the number of days">
@ -495,10 +552,11 @@
</div>
</div>
<!-- <hr> -->
<hr>
<div class="form-column" id="grid_content_input">
</div>
<!-- <div class="form-row" id="grid_content_input">
</div> -->
<br>
</div>
@ -511,6 +569,7 @@
<script>
var policy_grid_id = $('#client_id').val();
var grid_html = '';
@ -566,6 +625,28 @@ var grid_html = '';
$("#policyJsonForm").submit(function(event) {
if (!$('#self').prop('checked')) {
$('#self_min_age').removeAttr('name')
$('#self_max_age').removeAttr('name')
}
if (!$('#spouse').prop('checked')) {
$('#spouse_min_age').removeAttr('name');
$('#spouse_max_age').removeAttr('name');
}
if ($('#children').val() == 0) {
$('#child_min_age').removeAttr('name');
$('#child_min_age').removeAttr('name');
}
if ($('#family_floaters').val() == 0) {
$('#member_count').removeAttr('name');
$('#other_member_min_age').removeAttr('name');
$('#other_member_max_age').removeAttr('name');
}
event.preventDefault();
var isValid = $('#policyJsonForm').parsley().validate();
@ -611,7 +692,7 @@ var grid_html = '';
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
console.log('Something Wrong!', 'warning');
}, 1000);
}
});
@ -654,7 +735,9 @@ var grid_html = '';
$.ajax({
url: '<?= base_url("client/policy/getterms") ?>',
method: 'GET',
data: {client_policy_id: client_policy_id},
data: {
client_policy_id: client_policy_id
},
success: function(response) {
console.log('response', response);
@ -667,32 +750,39 @@ var grid_html = '';
$('#nameOfThePolicyInGMC').html(' - ' + response.policy_name.name);
$('gmc_emp_count').val(response.count);
console.log('count--1', response.count);
$('emp_count').val(response.count)
if (response && response.hasOwnProperty('count')) {
if (response.count === false) {
console.log('count -- 2', response.count);
console.log(document.getElementById('btnGridSubmit1'))
$("#btnGridSubmit1").hide();
$("#myButtonSpecialCondition").hide();
} else {
$("#btnGridSubmit1").show();
$("#myButtonSpecialCondition").show();
console.log('count -- ', response.count);
}
} else {
console.error('Response object does not have a "count" property or is invalid.');
}
// console.log('count--1', response.count);
// $('emp_count').val(response.count)
// if (response && response.hasOwnProperty('count')) {
// if (response.count === false) {
// console.log('count -- 2', response.count);
// console.log(document.getElementById('btnGridSubmit1'))
// $("#btnGridSubmit1").hide();
// $("#myButtonSpecialCondition").hide();
// } else {
// $("#btnGridSubmit1").show();
// $("#myButtonSpecialCondition").show();
// console.log('count -- ', response.count);
// }
// } else {
// console.error('Response object does not have a "count" property or is invalid.');
// }
if (response) {
if ( response.emp_count_by_policy != 0) {
$('#btnGridSubmit1').hide();
if (response.emp_count_by_policy != 0) {
$('#btnGridSubmit1').hide();
$('#myButtonSpecialCondition').hide();
} else {
$('#btnGridSubmit1').show();
$('#myButtonSpecialCondition').show();
}
let jsonObject = JSON.parse(response.data);
Object.keys(jsonObject).forEach(function(key) {
if (key.includes("special_condition_label") || key.includes("special_condition_input")) {
if (key.includes("special_condition_label")) {
for (let index = 0; index < jsonObject[key].length; index++) {
@ -711,7 +801,9 @@ var grid_html = '';
if (key.includes("family_floaters")) {
let checkboxes = document.querySelectorAll(`input[name="${key}[]"]`);
if (jsonObject[key]) {
console.log(jsonObject[key]);
// console.log(jsonObject[key]);
if (jsonObject[key].childrens) {
$('#children').val(jsonObject[key].childrens);
}
@ -840,6 +932,22 @@ var grid_html = '';
element.value = jsonObject[key];
}
}
if (key.includes("age_ratio")) {
$('#self_min_age').val(jsonObject[key].self.min);
$('#self_max_age').val(jsonObject[key].self.max);
$('#spouse_min_age').val(jsonObject[key].spouse.min);
$('#spouse_max_age').val(jsonObject[key].spouse.max);
$('#child_min_age').val(jsonObject[key].child.min);
$('#child_max_age').val(jsonObject[key].child.max);
$('#other_member_min_age').val(jsonObject[key].elders.min);
$('#other_member_max_age').val(jsonObject[key].elders.max);
}
});
}
$("#sum_insured").trigger("keyup");
@ -848,6 +956,51 @@ var grid_html = '';
$(this).click();
});
if ($('#self').prop('checked')) {
$('.self-age').css('display','');
} else {
$('.self-age').css('display','none');
}
if ($('#spouse').prop('checked')) {
$('.spouse-age').css('display','');
} else {
$('.spouse-age').css('display','none');
}
console.log("child ");
console.log($('#children').val());
if($('#children').val() != 0){
$('.child-age').css('display','');
}else{
$('.child-age').css('display','none');
}
var family_floaters = $('#family_floaters').val();
if(family_floaters != 0){
$('.other-member-age').css('display','');
}else{
$('.other-member-age').css('display','none');
}
if (family_floaters == '1P') {
$('#member_count').val(1);
}else if(family_floaters == '2P'){
$('#member_count').val(2);
}else if(family_floaters == '1PIL'){
$('#member_count').val(1);
}else if(family_floaters == '2PIL'){
$('#member_count').val(2);
}else if(family_floaters == '2EPORPIL'){
$('#member_count').val(2);
}else if(family_floaters == 'EPORPIL'){
$('#member_count').val(2);
}else if(family_floaters == '4EPORPIL'){
$('#member_count').val(4);
}
},
error: function(xhr, status, error) {
@ -855,7 +1008,7 @@ var grid_html = '';
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
console.log('Something Wrong!', 'warning');
}, 1000);
}
});
@ -864,6 +1017,53 @@ var grid_html = '';
// toastr.warning('The terms has no data ', 'warning');
}
$(document).ready(function() {
if ($('#self').prop('checked')) {
$('.self-age').css('display','');
} else {
$('.self-age').css('display','none');
}
if ($('#spouse').prop('checked')) {
$('.spouse-age').css('display','');
} else {
$('.spouse-age').css('display','none');
}
console.log("child ");
console.log($('#children').val());
if($('#children').val() != 0){
$('.child-age').css('display','');
}else{
$('.child-age').css('display','none');
}
var family_floaters = $('#family_floaters').val();
if(family_floaters != 0){
$('.other-member-age').css('display','');
}else{
$('.other-member-age').css('display','none');
}
if (family_floaters == '1P') {
$('#member_count').val(1);
}else if(family_floaters == '2P'){
$('#member_count').val(2);
}else if(family_floaters == '1PIL'){
$('#member_count').val(1);
}else if(family_floaters == '2PIL'){
$('#member_count').val(2);
}else if(family_floaters == '2EPORPIL'){
$('#member_count').val(2);
}else if(family_floaters == 'EPORPIL'){
$('#member_count').val(2);
}else if(family_floaters == '4EPORPIL'){
$('#member_count').val(4);
}
})
});
$("#sum_insured").on("keyup", function() {
@ -876,6 +1076,7 @@ var grid_html = '';
$("#numberToWordGMC").text("");
}
});
</script>
@ -897,26 +1098,37 @@ var grid_html = '';
<!-- Policy terms Add Special Condition -->
<script>
document.getElementById('myButtonSpecialCondition').addEventListener('click', function(event) {
console.log('specialCondition callback clicked')
event.preventDefault();
specialCondition();
});
function specialCondition(count = 0) {
console.log('specialCondition function called')
console.log('before if count', count)
if (count === 0) {
console.log('after if count', count)
var index = $('.modifyclassinput').length;
var appendElement = `<div class="form-group col-md-6 form-group-client-policy-masters removeDom">
<label for="specialconditionlabel" class="special_condition_label[]" style="width: 400px;"><input name="special_condition_label[]" id="special_condition_label[]"><span class="specialConditionClose" style="color: red;margin-left: 20px;">X</span></label>
<label for="specialconditionlabel" class="special_condition_label[]" style="width: 450px;"><input name="special_condition_label[]" id="special_condition_label[]" style="position: relative;right: 15px;"><span class="specialConditionClose" style="color: red;margin-left: 5px;">X</span></label>
<input type="text" name="special_condition_input[]" id="special_condition_input[]" class="form-control s special_condition_input[]">
</div>`;
console.log($(this));
$('.form-column').each(function() {
$(this).append(appendElement);
});
}
else{
} else {
console.log('else')
}
}
@ -948,4 +1160,59 @@ var grid_html = '';
// input.value = value;
// }
$('#self').change(function () {
if ($(this).prop('checked')) {
$('.self-age').css('display','');
}else{
$('.self-age').css('display','none');
}
})
$('#spouse').change(function () {
if ($(this).prop('checked')) {
$('.spouse-age').css('display','');
}else{
$('.spouse-age').css('display','none');
}
})
$('#children').change(function () {
if ($(this).val() != 0) {
$('.child-age').css('display','');
}else{
$('.child-age').css('display','none');
}
})
$('#family_floaters').change(function () {
var family_floaters = $(this).val();
if($('#family_floaters').val() != 0){
$('.other-member-age').css('display','');
}else{
$('.other-member-age').css('display','none');
}
if (family_floaters == '1P') {
$('#member_count').val(1);
}else if(family_floaters == '2P'){
$('#member_count').val(2);
}else if(family_floaters == '1PIL'){
$('#member_count').val(1);
}else if(family_floaters == '2PIL'){
$('#member_count').val(2);
}else if(family_floaters == '2EPORPIL'){
$('#member_count').val(2);
}else if(family_floaters == 'EPORPIL'){
$('#member_count').val(2);
}else if(family_floaters == '4EPORPIL'){
$('#member_count').val(4);
}
})
</script>

View File

@ -40,8 +40,10 @@
}
.flex-container>div {
flex: 1; /* Each div takes equal space */
flex: 1;
/* Each div takes equal space */
}
label {
padding-top: 7px;
width: 400px;
@ -49,18 +51,23 @@
height: 36px;
/* text-align: center; */
}
.jodit-status-bar {
display: none;
}
.input-group {
width: 64.5% !important;
}
.input-group-append-client-policy-master {
margin-top: 3px;
}
.jodit-wysiwyg {
margin-bottom: 162px;
}
.form-control-client-policy-masters {
margin-left: 30px;
width: 689px;
@ -79,6 +86,7 @@
<div class="form-group">
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<label for="sumInsured">Sum Insured</label>
</div>
@ -105,6 +113,45 @@
<div id='numberToWordTotalSumInsured' class="text-danger-2" ></div>
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<label for=""></label>
</div>
<div class="col-md-6">
<table>
<tbody>
<tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>
<tr>
<td style="width: 5%;">
<span style="margin-right: 20px;">Self:</span>
</td>
<td style="width: 11%;">
<input disabled type="checkbox" style="margin-right: 70px;" name="family_floaters[]" value="self" id="self" checked>
</td>
<td style="width: 20%;">
<div class="self-age">
<span style="margin-right: 20px;">Min Age:</span>
<input class="underline-input min_age" value="<?php echo isset($self_min_age) ? $self_min_age : '18'; ?>" style="width: 35%;" type="number" name="self_min_age" id="self_min_age_gpa">
</div>
</td>
<td style="width: 20%;">
<div class="self-age">
<span style="margin-right: 20px;">Max Age:</span>
<input class="underline-input max_age" value="<?php echo isset($self_max_age) ? $self_max_age : '60'; ?>" style="width: 35%;" type="number" name="self_max_age" id="self_max_age_gpa">
</div>
</td>
<td ></td>
</tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>
</tbody>
</table>
</div>
<div class="col-md-6">
</div>
<div class="col-md-6">
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<label for="totalSumInsured">Accidental Death Benefit</label>
@ -277,10 +324,17 @@
<input type="radio" name="worldwideCover" value="0" style="margin-left:10px" checked> No
</div>
</div>
</div>
<hr>
<div class="gpa_special_condition">
</div>
<br>
<div class="form-group text-right m-b-0" style="margin-top: -49px;">
<a href="#" class="button-like" id="gpaButtonSpecialCondition" title="Special Condition">Special Condition</a>
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnGPATermsSubmit" style="margin-top: 100px;">Submit</button>
</div>
</div>
@ -372,6 +426,12 @@
$("#policyGPATerms").submit(function(event) {
if (!$('#self').prop('checked')) {
$('#self_min_age_gpa').removeAttr('name')
$('#self_max_age_gpa').removeAttr('name')
}
event.preventDefault();
var isValid = $('#policyGPATerms').parsley().validate();
console.log('isvalid', isValid);
@ -400,6 +460,7 @@
processData: false,
contentType: false,
success: function(res) {
$('#policyGPATerms')[0].reset();
$('.text-danger-2').html('');
console.log(res);
@ -429,7 +490,7 @@
$('.nav.nav-pills.navtab-bg').css('display', '');
$('.nav.nav-pills.navtab-bg').prev().css('display', '');
var message = 'Policy Terms Updated successfully';
toastr.success('message', 'Success');
toastr.success(message, 'Success');
}, 1000);
});
@ -459,11 +520,13 @@
$.ajax({
url: '<?= base_url("client/policy/getterms") ?>',
method: 'GET',
data: {client_policy_id: client_policy_id},
data: {
client_policy_id: client_policy_id
},
success: function(res) {
console.log(res);
console.log('count', res.count);
console.log('count', res.emp_count_by_policy);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
@ -472,15 +535,35 @@
$('#emp_count').val(res.count)
if(res.count === false){
if (res.emp_count_by_policy != 0) {
$("#btnGPATermsSubmit").hide();
$("#gpaButtonSpecialCondition").hide();
} else {
$("#btnGPATermsSubmit").show();
$("#gpaButtonSpecialCondition").show();
}
if (res) {
let gpaJsonObjectForSpecialCondition = JSON.parse(res.data);
Object.keys(gpaJsonObjectForSpecialCondition).forEach(function(key) {
if (key.includes("gpa_special_condition_label") || key.includes("gpa_special_condition_input")) {
if (key.includes("gpa_special_condition_label")) {
for (let index = 0; index < gpaJsonObjectForSpecialCondition[key].length; index++) {
specialConditionForGPA();
}
}
let elements = document.getElementsByName(`${key}[]`);
if (elements) {
elements.forEach((element, index) => {
element.value = gpaJsonObjectForSpecialCondition[key][index];
});
}
}
});
let jsonObject = JSON.parse(res.data);
$("#numberToWordSumInsured").text(convertCommaNumberToWords(jsonObject.sumInsured2));
$("#numberToWordTotalSumInsured").text(convertCommaNumberToWords(jsonObject.totalSumInsured));
@ -526,6 +609,15 @@
}
}
if (key.includes("age_ratio")) {
console.log("-------------------------");
console.log(jsonObject[key]);
console.log(jsonObject[key].self);
console.log(jsonObject[key].self.min);
$('#self_min_age_gpa').val(jsonObject[key].self.min);
$('#self_max_age_gpa').val(jsonObject[key].self.max);
}
});
}
@ -541,7 +633,7 @@
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
console.log('Something Wrong!', 'warning');
}, 1000);
}
});
@ -551,12 +643,47 @@
}
});
</script>
<script>
document.getElementById('gpaButtonSpecialCondition').addEventListener('click', function(event) {
console.log('specialConditionForGPA callback clicked')
event.preventDefault();
specialConditionForGPA();
});
function specialConditionForGPA(count = 0) {
console.log('specialConditionForGPA function called')
console.log('before if count', count)
if (count === 0) {
console.log('after if count', count)
var index = $('.modifyclassinput').length;
var appendElement = `<div class="form-group col-md-6 form-group-client-policy-masters removeDom">
<label for="specialconditionlabel" class="special_condition_label[]" style="width: 450px;"><input name="gpa_special_condition_label[]" id="gpa_special_condition_label[]" style="position: relative;right: 15px;"><span class="specialConditionClose" style="color: red;margin-left: 5px;">X</span></label>
<input type="text" name="gpa_special_condition_input[]" id="gpa_special_condition_input[]" class="form-control s special_condition_input[]">
</div>`;
console.log($(this));
$('.gpa_special_condition').each(function() {
$(this).append(appendElement);
});
} else {
console.log('else')
}
}
$(document).on('click', '#policyGPATermsClose', function() {
$('#policyGPATermsForm').css('display', 'none');
$('#police-tab').css('display', '');

View File

@ -27,7 +27,7 @@
</select>
</div>
<div class="form-group col-md-4" style="position: relative; left: 45px;display:none" id="premium_type">
<!-- <div class="form-group col-md-4" style="position: relative; left: 45px;display:none" id="premium_type">
<label for="css"> Premium Calculation </label>
<div style="display: flex; align-items: center;">
<input type="radio" id="individual" name="premium_type" value="2">
@ -35,8 +35,7 @@
<input type="radio" id="single" name="premium_type" value="1">
<label for="single" style="position: relative;top: 5px;left: 5px;"> Single Insurance </label>
</div>
</div>
</div> -->
</div>
@ -70,7 +69,6 @@ $('.close').click(function() {
for (var i = 1; i <= 13; i++) {
$('#grid_' + i).remove();
}
});
@ -87,7 +85,6 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
var selectElement = event.target;
var selectedOption = selectElement.options[selectElement.selectedIndex];
dataIdValue = selectedOption.getAttribute('data-id');
// console.log('dataIdValue', dataIdValue)
}
@ -100,20 +97,59 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
grid_html = `
<div class="form-row" id="grid_1">
<input value="1" type="hidden" name="policy_type">
<div class="form-group col-md-3">
<div class="form-group col-md-4">
<label for="mobile">Select <span class="text-danger">*</span></label>
<select class="form-control" id="si_or_bp" name="si_or_bp" onchange="si_orbp_change_function()" required>
<option value="2">Basic Pay</option>
<option value="1">Sum Insured</option>
<option value="3">Band/Grade</option>
</select>
</div>
<div id="si_or_bp_full_div" style="display:none">
<div id="si_or_bp_full_div" style="display:none;">
<div id="si_or_bp_grade" class="form-row">
<div class="form-row col-md-4" style="margin-left: 346px; margin-top: -114px;">
<label for="mobile">Premium Multiplier<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.multiplier : '') : ''}" type="text" class="form-control" placeholder="Multiplier" name="gpa_sum_multiplier2" id="gpa_sum_multiplier2" onkeyup="gpaSumInsureMultiplier(this)" required>
</div>
<div class="form-row" style="width:101%;padding: 10px;" id="removeChild_${Count}">
<div class="form-group col-md-2" id="">
<label for="mobile">Band/Grade<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.grade : '') : ''}" type="text" class="form-control" placeholder="Enter Band/Grade" name="gpa_band[]" id="gpa_band" required>
</div>
<div class="form-group col-md-4" id="">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.si : '') : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="gpa_sum_si2[]" id="gpa_sum_si2" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='gpa_sum_si_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-4">
<label for="mobile">Premium<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.premium : '') : ''}" type="text" class="form-control" placeholder="Enter Premium" name="gpa_sum_premium2[]" id="gpa_sum_premium2" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='gpa_sum_premium_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-4" style="position: absolute;left: 870px;">
<button style="margin-top: 44px;position: relative;right: 0px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton()">x</button>
<button style="margin-top: 44px;" type="button" class="btn btn-primary" id="gmc_add_more2" onclick="appendGridtHtml('1')">+</button>
</div>
</div>
<div id="si_or_bp_sum_insure_child"></div>
</div>
<div id="si_or_bp_sum_insure" class="form-row">
<div class="form-row col-md-4" style="margin-left: 323px; margin-top: -114px;">
<label for="mobile">Multiplier<span class="text-danger">*</span></label>
<div class="form-row col-md-4" style="margin-left: 346px; margin-top: -114px;">
<label for="mobile">Premium Multiplier<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '1' ? data.multiplier : '') : ''}" type="text" class="form-control" placeholder="Multiplier" name="gpa_sum_multiplier" id="gpa_sum_multiplier" onkeyup="gpaSumInsureMultiplier(this)" required>
</div>
<div class="form-row" style="width:84%" id="removeChild_${Count}">
<div class="form-row" style="width:101%;padding: 10px;" id="removeChild_${Count}">
<div class="form-group col-md-4" id="">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '1' ? data.si : '') : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="gpa_sum_si[]" id="gpa_sum_si" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
@ -125,40 +161,51 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
<div id='gpa_sum_premium_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-4">
<button style="margin-top: 44px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
<button style="margin-top: 44px;" type="button" class="btn btn-primary" id="gmc_add_more_${Count}" onclick="appendGridtHtml('1')">+</button>
<div class="form-group col-md-4" style="position: relative;right: 6px;">
<button style="margin-top: 44px;position: relative;right: 0px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton()">x</button>
<button style="margin-top: 44px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml('1')">+</button>
</div>
</div>
<div id="si_or_bp_sum_insure_child"></div>
</div>
<div id="si_or_bp_basic_pay" class="form-row">
<div class="form-row" style="margin-left: 301px;/* margin-bottom: -106px; */margin-top: -97px;">
<div class="form-col col-md-4">
<label for="mobile">Basic Multiplier<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.basic_multiplier : '') : ''}" type="text" class="form-control" placeholder="Multiplier" name="basic_multiplier" id="basic_multiplier" onkeyup='basicPayMultiple(this)' required>
</div>
<div class="form-col col-md-4">
<label for="mobile">Premium Multiplier<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.multiplier : '') : ''}" type="text" class="form-control" placeholder="Multiplier" name="premium_multiplier" id="premium_multiplier" onkeyup='basicPayMultiple(this)'required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4" id="" style="width:84%">
<div class="form-row" style="margin-left: 347px;/* margin-bottom: -106px; */margin-top: -97px;">
<div class="form-col col-md-6">
<label for="mobile">Basic Pay<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.basic_pay : '') : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="basic_pay" id="basic_pay" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.basic_pay : '') : ''}" type="text" class="form-control" placeholder="Enter Basic Pay" name="basic_pay" id="basic_pay" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='gpa_basic_pay_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-4" id="">
<div class="form-col col-md-6">
<label for="mobile">Basic Multiplier<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.basic_multiplier : '') : ''}" type="text" class="form-control" placeholder="Basic Multiplier" name="basic_multiplier" id="basic_multiplier" onkeyup='basicPayMultiple(this)' required>
</div>
</div>
<div class="form-row" style="padding: 10px;">
<div class="form-group col-md-4" id="" style="width:84%">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.si : '') : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="gpa_basic_si" id="gpa_basic_si" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='basic_gpa_si_number_word' class="text-danger-2" ></div>
</div>
<div class="form-col col-md-4">
<label for="mobile">Premium Multiplier<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.multiplier : '') : ''}" type="text" class="form-control" placeholder="Premium Multiplier" name="premium_multiplier" id="premium_multiplier" onkeyup='basicPayMultiple(this)'required>
</div>
<div class="form-group col-md-4">
<label for="mobile">Premium<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '2' ? data.premium : '') : ''}" type="text" class="form-control basic_gpa_premium" placeholder="Enter Premium" name="gpa_basic_premium" id="gpa_basic_premium" onkeypress="return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='basic_gpa_premium_number_word' class="text-danger-2" ></div>
</div>
</div>
</div>
</div>
@ -225,11 +272,11 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
<div class="form-row">
<div class="form-group col-md-3">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="4_age_from[]" id="4_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="4_age_from[]" id="4_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="4_age_to[]" id="4_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="4_age_to[]" id="4_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -259,11 +306,11 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="5_age_from[]" id="5_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="5_age_from[]" id="5_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="5_age_to[]" id="5_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="5_age_to[]" id="5_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -285,19 +332,19 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
grid_html = `
<div class="form-row" id="grid_6" style="width:84%">
<div class="form-group col-md-3">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="6_si[]" id="6_si" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="6_si" id="6_si" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='sum_insured_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-2">
<div class="form-row">
<div class="form-group col-md-3">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="6_age_from[]" id="6_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="6_age_from[]" id="6_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<div class="form-group col-md-3">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="6_age_to[]" id="6_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="6_age_to[]" id="6_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -308,7 +355,7 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
<button style="margin-top: 44px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(0,6)">x</button>
<button style="margin-top: 44px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(6)">+</button>
</div>
</div>
</div>`;
} else if (dataIdValue == '7') {
@ -327,11 +374,11 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="7_age_from[]" id="7_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="7_age_from[]" id="7_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="7_age_to[]" id="7_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="7_age_to[]" id="7_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -412,11 +459,11 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="10_age_from[]" id="10_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="10_age_from[]" id="10_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="10_age_to[]" id="10_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="10_age_to[]" id="10_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -516,11 +563,11 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="13_age_from[]" id="13_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="13_age_from[]" id="13_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="13_age_to[]" id="13_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="13_age_to[]" id="13_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">Relationship<span class="text-danger">*</span></label>
@ -559,11 +606,14 @@ function addGridHTML(event = false, data = false, ui_type = false, si_or_bp = fa
if (dataIdValue == '1') {
$('#gpa_sum_si').trigger('keyup');
$('#gpa_sum_si2').trigger('keyup');
// $('input[name="gpa_sum_si[]"]').each(function() {
// console.log($(this));
// $(this).trigger('keyup');
// });
}
$('#gpa_sum_insured').hide();
$('#btnGridSubmit').show();
@ -684,18 +734,19 @@ $('body').on('click', '.btnPolicyModel', function() {
$('#GridForm')[0].reset();
if(res.family_floater == 1){
$('#premium_type').show();
$('#individual').prop('checked', true)
}else{
$('#premium_type').hide();
$('#individual').prop('checked', false)
}
// if(res.family_floater == 1){
// $('#premium_type').show();
// $('#individual').prop('checked', true)
// }else{
// $('#premium_type').hide();
// $('#individual').prop('checked', false)
// }
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
console.log('policy grid responce', res);
var temp_for_premiumData = JSON.parse(res.premiumData);
console.log('policy grid responce', temp_for_premiumData);
@ -736,29 +787,30 @@ $('body').on('click', '.btnPolicyModel', function() {
});
$('#grid').html(policeGridOptionHTML);
if (res.premiumData[0].hasOwnProperty('premium_type')) {
// if (res.premiumData[0].hasOwnProperty('premium_type')) {
if (res.premiumData[0].premium_type == '2') {
// if (res.premiumData[0].premium_type == '2') {
$('#individual').prop('checked', true)
$('#single').prop('checked', false)
// $('#individual').prop('checked', true)
// $('#single').prop('checked', false)
} else if (res.premiumData[0].premium_type == '1') {
// } else if (res.premiumData[0].premium_type == '1') {
$('#single').prop('checked', true)
$('#individual').prop('checked', false)
// $('#single').prop('checked', true)
// $('#individual').prop('checked', false)
} else {
$('#single').prop('checked', false)
$('#individual').prop('checked', false)
}
// } else {
// $('#single').prop('checked', false)
// $('#individual').prop('checked', false)
// }
}
// }
var si_or_bp_value = '';
if (res.premiumData && res.premiumData.length > 0) {
if (res.premiumData[0].si_or_bp) {
si_or_bp_value = res.premiumData[0].si_or_bp;
}
@ -791,6 +843,10 @@ $('body').on('click', '.btnPolicyModel', function() {
$(this).trigger('keyup');
});
$('input[name="gpa_sum_si2[]"]').each(function() {
$(this).trigger('keyup');
});
$('input[name="gpa_sum_premium[]"]').each(function() {
$(this).trigger('keyup');
});
@ -805,6 +861,7 @@ $('body').on('click', '.btnPolicyModel', function() {
console.log($(this));
$(this).trigger('keyup');
});
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
@ -934,13 +991,26 @@ var Count = 1
function appendGridtHtml(ui_type = false, data = false, ) {
console.log('appendGridtHtml function called')
console.log(ui_type)
console.log(data)
var html = '';
// console.log('Grid Content',data)
Count++;
var container = document.getElementById('grid_content_input');
if (ui_type == '1') {
html = `<div class="form-row gpa_sum_insure_remove" style="width:84%" id="removeChild_${Count}">
console.log('step 1')
var currentTime = getCurrentTime();
console.log(currentTime);
if($("#si_or_bp").val() == 1 || data.si_or_bp == '1'){
console.log('step 2')
html = `<div class="form-row gpa_sum_insure_remove" style="width:101%" id="removeChild_${Count}">
<div class="form-group col-md-4" id="">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="gpa_sum_si[]" id="gpa_sum_si" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
@ -957,6 +1027,40 @@ function appendGridtHtml(ui_type = false, data = false, ) {
<button style="margin-top: 44px;" type="button" class="btn btn-primary" id="gmc_add_more_${Count}" onclick="appendGridtHtml('1')">+</button>
</div>
</div>`;
}else if($("#si_or_bp").val() == 3 || data.si_or_bp == '3'){
console.log('step 3')
html = `<div class="form-row gpa_band_remove" style="width:101%" id="removeChild_${Count}">
<div class="form-group col-md-2" id="">
<label for="mobile">Band/Grade<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.grade : '') : ''}" type="text" class="form-control" placeholder="Enter Band/Grade" name="gpa_band[]" id="gpa_band" required>
</div>
<div class="form-group col-md-4" id="">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.si : '') : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="gpa_sum_si2[]" id="gpa_sum_si2" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='gpa_si_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-4">
<label for="mobile">Premium<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? (data.si_or_bp == '3' ? data.premium : '') : ''}" type="text" class="form-control" placeholder="Enter Premium" name="gpa_sum_premium2[]" id="gpa_sum_premium2" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)" required>
<div id='gpa_premium_number_word' class="text-danger-2" ></div>
</div>
<div class="form-group">
<button style="margin-top: 44px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
<button style="margin-top: 44px;" type="button" class="btn btn-primary" id="gmc_add_more_${Count}" onclick="appendGridtHtml('1')">+</button>
</div>
</div>`;
}
console.log('step 4')
} else if (ui_type == '3') {
html = `
@ -985,11 +1089,11 @@ function appendGridtHtml(ui_type = false, data = false, ) {
<div class="form-row" id="removeChild_${Count}" style="width:84%">
<div class="form-group col-md-3">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="4_age_from[]" id="4_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="4_age_from[]" id="4_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="4_age_to[]" id="4_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter To Age" name="4_age_to[]" id="4_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -1014,11 +1118,11 @@ function appendGridtHtml(ui_type = false, data = false, ) {
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="5_age_from[]" id="5_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="5_age_from[]" id="5_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="5_age_to[]" id="5_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="5_age_to[]" id="5_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -1035,19 +1139,13 @@ function appendGridtHtml(ui_type = false, data = false, ) {
html = `
<div class="form-row" id="removeChild_${Count}" style="width:84%">
<div class="form-group col-md-3">
<label for="mobile">Sum Insured<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control" placeholder="Enter Sum Insured" name="6_si[]" id="6_si_${Count}" onkeypress = "return onlyNumbers(event)" onkeyup="formatNumber(this)"required>
<div id='sum_insured_number_word_${Count}' class="text-danger-2" ></div>
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="6_age_from[]" id="6_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="6_age_from[]" id="6_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<div class="form-group col-md-3">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="6_age_to[]" id="6_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="6_age_to[]" id="6_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -1071,11 +1169,11 @@ function appendGridtHtml(ui_type = false, data = false, ) {
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="7_age_from[]" id="7_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="7_age_from[]" id="7_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="7_age_to[]" id="7_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="7_age_to[]" id="7_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -1147,11 +1245,11 @@ function appendGridtHtml(ui_type = false, data = false, ) {
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="10_age_from[]" id="10_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="10_age_from[]" id="10_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="10_age_to[]" id="10_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="10_age_to[]" id="10_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Premium<span class="text-danger">*</span></label>
@ -1234,11 +1332,11 @@ function appendGridtHtml(ui_type = false, data = false, ) {
</div>
<div class="form-group col-md-2">
<label for="mobile">From Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="13_age_from[]" id="13_age_from" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control" placeholder="Enter From Age" name="13_age_from[]" id="13_age_from" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">To Age<span class="text-danger">*</span></label>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter TO Age" name="13_age_to[]" id="13_age_to" required>
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control" placeholder="Enter To Age" name="13_age_to[]" id="13_age_to" onkeypress = "return onlyNumbers(event)" required>
</div>
<div class="form-group col-md-2">
<label for="mobile">Relationship<span class="text-danger">*</span></label>
@ -1266,9 +1364,12 @@ function appendGridtHtml(ui_type = false, data = false, ) {
}
// console.log('html', html)
container.insertAdjacentHTML('beforeend', html);
$('#gmc_add_more').hide();
$('#gmc_add_more2').hide();
$('#gmc_remove').show();
Count--
$('#gmc_add_more_' + Count).hide()
@ -1307,16 +1408,20 @@ function removebutton(index, type) {
if (count == 2) {
$('#gmc_add_more').show();
$('#gmc_add_more2').show();
}
index--;
$('#gmc_add_more_' + index).show();
$('#gmc_add_more2_' + index).show();
}
}
function checkDuplicate() {
if ($('#grid')[0].value === '3') {
var siInputs = $('input[name="3_si[]"]');
var premiumInputs = $('input[name="3_premium[]"]');
@ -1634,10 +1739,110 @@ function checkDuplicate() {
} else {
return false;
}
}else if ($('#grid')[0].value === '1') {
var selectedValue = $('#si_or_bp').val();
if(selectedValue == 1){
var siInputs = $('input[name="gpa_sum_si[]"]');
var premiumInputs = $('input[name="gpa_sum_premium[]"]');
var siValues = [];
var premiumValues = [];
var siDuplicates = false;
var premiumDuplicates = false;
// Extract values from input arrays
siInputs.each(function() {
siValues.push($(this).val());
});
premiumInputs.each(function() {
premiumValues.push($(this).val());
});
for (var i = 0; i < siValues.length; i++) {
for (var j = i + 1; j < siValues.length; j++) {
if (siValues[i] === siValues[j]) {
siDuplicates = true;
}
}
}
console.log('siValues', siValues);
console.log('premiumValues', premiumValues);
console.log('siDuplicates', siDuplicates);
console.log('premiumDuplicates', premiumDuplicates);
if (siDuplicates || premiumDuplicates) {
toastr.warning('Duplicates found!', 'warning');
return true;
} else {
return false;
}
}else if(selectedValue == 3){
var siInputs = $('input[name="gpa_sum_si2[]"]');
var premiumInputs = $('input[name="gpa_sum_premium2[]"]');
var bandInputs = $('input[name="gpa_band[]"]');
var siValues = [];
var premiumValues = [];
var bandValues = [];
var siDuplicates = false;
var premiumDuplicates = false;
var bandDuplicates = false;
// Extract values from input arrays
siInputs.each(function() {
siValues.push($(this).val());
});
premiumInputs.each(function() {
premiumValues.push($(this).val());
});
bandInputs.each(function() {
bandValues.push($(this).val());
});
for (var i = 0; i < siValues.length; i++) {
for (var j = i + 1; j < siValues.length; j++) {
if (siValues[i] === siValues[j]) {
siDuplicates = true;
}
}
}
for (var i = 0; i < bandValues.length; i++) {
for (var j = i + 1; j < bandValues.length; j++) {
if (bandValues[i] === bandValues[j]) {
bandDuplicates = true;
}
}
}
console.log('siValues', siValues);
console.log('premiumValues', premiumValues);
console.log('bandValues', bandValues);
console.log('siDuplicates', siDuplicates);
console.log('premiumDuplicates', premiumDuplicates);
console.log('bandDuplicates', bandDuplicates);
if (siDuplicates || bandDuplicates || premiumDuplicates) {
toastr.warning('Duplicates found!', 'warning');
return true;
} else {
return false;
}
}
}
}
function basicPayMultiple(input) {
if (input.id == 'basic_pay') {
var multi = $('#basic_multiplier')[0].value.replace(/,/g, '') * input.value.replace(/,/g, '');
@ -1647,23 +1852,21 @@ function basicPayMultiple(input) {
'');
$('#gpa_basic_premium').val(multi_2).trigger('keyup');
} else if (input.id == 'basic_multiplier') {
var multi = input.value * $('#basic_pay')[0].value.replace(/,/g, '');
} else if (input.id == 'basic_multiplier') {
var multi = input.value * $('#basic_pay')[0].value.replace(/,/g, '');
$('#gpa_basic_si').val(multi).trigger('keyup');
var multi_2 = $('#gpa_basic_si')[0].value.replace(/,/g, '') * $('#premium_multiplier')[0].value.replace(/,/g,
'');
var multi_2 = $('#gpa_basic_si')[0].value.replace(/,/g, '') * $('#premium_multiplier')[0].value.replace(/,/g,'');
$('#gpa_basic_premium').val(multi_2).trigger('keyup');
} else if (input.id == 'premium_multiplier') {
var multi = input.value.replace(/,/g, '') * $('#gpa_basic_si')[0].value.replace(/,/g, '');
var multi = input.value.replace(/,/g, '') / 1000 * $('#gpa_basic_si')[0].value.replace(/,/g, '');
$('#gpa_basic_premium').val(multi).trigger('keyup');
} else if (input.id == 'gpa_basic_si') {
var multi = input.value.replace(/,/g, '') * $('#premium_multiplier')[0].value.replace(/,/g, '');
@ -1673,36 +1876,63 @@ function basicPayMultiple(input) {
}
function gpaSumInsureMultiplier(element) {
console.log(element);
var element = $('#gpa_sum_multiplier')[0];
var sumInsured = $('input[name="gpa_sum_si[]"]');
if ($('#si_or_bp').val() == 3) {
var element = $('#gpa_sum_multiplier2')[0]
var sumInsured = $('input[name="gpa_sum_si2[]"]')
}
// console.log('sumInsured', sumInsured);
if ($('#si_or_bp').val() == 2) {
var premium = $('input[name="premium[]"]');
} else if ($('#si_or_bp').val() == 3) {
var premium = $('input[name="gpa_sum_premium2[]"]');
}else {
var premium = $('input[name="gpa_sum_premium[]"]');
}
// console.log(premium);
sumInsured.each(function(index) {
var siValue = $(this).val().replace(/,/g, '');
var premiumValue = siValue * element.value;
// console.log('siValue', siValue);
var premiumValue = (siValue / 1000) * element.value;
// console.log('premiumValue', premiumValue);
var premiumValuedata = premium[index];
// console.log('premiumValuedata', premiumValuedata);
if (premiumValuedata) {
premiumValuedata.value = Math.floor(premiumValue);
}
// premium[index].value = Math.floor(premiumValue);
$(premium[index]).trigger('keyup');
// premium.eq(index).val(Math.floor(premiumValue));
});
}
function si_orbp_change_function() {
// $('.gpa_sum_insure_remove').remove();
var selectedValue = $('#si_or_bp').val();
if (selectedValue == 2) {
$('.gpa_sum_insure_remove').hide();
$('.gpa_band_remove').hide();
$('#si_or_bp_full_div').css({
'display': '',
});
@ -1712,10 +1942,20 @@ function si_orbp_change_function() {
$('#si_or_bp_basic_pay').css({
'display': ''
});
$('#si_or_bp_grade').css({
'display': 'none'
});
$('#gpa_sum_multiplier').removeAttr('required', false);
$('#gpa_sum_si').removeAttr('required', false);
$('#gpa_sum_premium').removeAttr('required', false);
$('#gpa_sum_multiplier2').removeAttr('required', false);
$('#gpa_sum_si2').removeAttr('required', false);
$('#gpa_band').removeAttr('required', false);
$('#gpa_sum_premium2').removeAttr('required', false);
$('#gpa_sum_multiplier').removeAttr('required');
$('#gpa_sum_si').removeAttr('required');
$('#gpa_sum_premium').removeAttr('required');
$('#basic_multiplier').attr('required', true);
$('#premium_multiplier').attr('required', true);
@ -1732,6 +1972,28 @@ function si_orbp_change_function() {
} else if (selectedValue == 1) {
$('.gpa_sum_insure_remove').show();
$('.gpa_band_remove').hide();
var count = $("div.form-row.gpa_sum_insure_remove").length;
if(count == 0){
$('#gmc_add_more').show();
}else{
$('#gmc_add_more').hide();
}
console.log('gmcBandInput', count)
var gpaBandRemoveElements = $("#grid_1").nextAll("div").find(".gpa_band_remove").length;
console.log("Elements with class 'gpa_band_remove' within next div siblings:", gpaBandRemoveElements);
var gmcBandInput = $("#grid_1").find('input[name="gmc_band[]"]').length
console.log('gmcBandInput', gmcBandInput)
$('#si_or_bp_full_div').css({
'display': '',
});
@ -1741,13 +2003,21 @@ function si_orbp_change_function() {
$('#si_or_bp_basic_pay').css({
'display': 'none'
});
$('#si_or_bp_grade').css({
'display': 'none'
});
$('#basic_multiplier').removeAttr('required');
$('#premium_multiplier').removeAttr('required');
$('#basic_pay').removeAttr('required');
$('#gpa_basic_si').removeAttr('required');
$('#gpa_basic_premium').removeAttr('required');
$('#basic_multiplier').removeAttr('required', false);
$('#premium_multiplier').removeAttr('required', false);
$('#basic_pay').removeAttr('required', false);
$('#gpa_basic_si').removeAttr('required', false);
$('#gpa_basic_premium').removeAttr('required', false);
$('#gpa_sum_multiplier2').removeAttr('required', false);
$('#gpa_sum_si2').removeAttr('required', false);
$('#gpa_band').removeAttr('required', false);
$('#gpa_sum_premium2').removeAttr('required', false);
$('#gpa_sum_multiplier').attr('required', true);
@ -1760,6 +2030,56 @@ function si_orbp_change_function() {
elementsToUnhide.show();
} else if (selectedValue == 3) {
$('.gpa_sum_insure_remove').hide();
$('.gpa_band_remove').show();
var count = $("div.form-row.gpa_band_remove").length;
if(count == 0){
$('#gmc_add_more2').show();
}else{
$('#gmc_add_more2').hide();
}
console.log('gmcBandInput', count)
$('#si_or_bp_full_div').css({
'display': '',
});
$('#si_or_bp_grade').css({
'display': ''
});
$('#si_or_bp_basic_pay').css({
'display': 'none'
});
$('#si_or_bp_sum_insure').css({
'display': 'none'
});
$('#basic_multiplier').removeAttr('required', false);
$('#premium_multiplier').removeAttr('required', false);
$('#basic_pay').removeAttr('required', false);
$('#gpa_basic_si').removeAttr('required', false);
$('#gpa_basic_premium').removeAttr('required', false);
$('#gpa_sum_multiplier').attr('required', false);
$('#gpa_sum_si').attr('required');
$('#gpa_sum_premium').attr('required');
$('#gpa_sum_multiplier2').removeAttr('required', true);
$('#gpa_sum_si2').removeAttr('required', true);
$('#gpa_band').removeAttr('required', true);
$('#gpa_sum_premium2').removeAttr('required', true);
var gridContentInput = $('#grid_content_input');
var elementsToUnhide = gridContentInput.find('.gpa_sum_insure_remove');
// elementsToUnhide.show();
} else {
$('#si_or_bp_full_div').css({
'display': 'none',
@ -1770,8 +2090,26 @@ function si_orbp_change_function() {
$('#si_or_bp_basic_pay').css({
'display': ''
});
$('#si_or_bp_grade').css({
'display': ''
});
}
}
function getCurrentTime() {
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // 0 should be considered as 12
minutes = minutes < 10 ? '0' + minutes : minutes; // Add leading zero if minutes < 10
var timeString = hours + ':' + minutes + ' ' + ampm;
return timeString;
}
</script>

View File

@ -16,16 +16,58 @@
<label for="short_name">TPA Short Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="short_name" placeholder="Enter Short Name" value="<?= isset($tpa['short_name']) ? $tpa['short_name'] : '' ?>" name="short_name" required>
</div>
<div class="form-group col-md-4">
<label for="short_name">TPA Logo<span class="text-danger"></span></label>
<input type="file" class="form-control" onchange="PreviewImage();" id="tpa_logo" name="tpa_logo" accept="image/jpeg, image/jpg, image/png">
</div>
</div>
<hr>
<div class="form-row">
<div class="form-group col-md-10">
<label for="tpa_name">E-Card Template<span class="text-danger"></span></label>
<textarea style="height: 100px;" class="form-control" id="ecard_content" placeholder="Enter E-card Content" name="ecard_content"><?= isset($template_data) ? $template_data : '' ?></textarea>
</div>
<div class="form-group col-md-2 float-right" style="position: relative;top: 0px;left: 40px;">
<label for="short_name">Logo Preview<span class="text-danger"></span></label>
<img src="<?= isset($tpa['tpa_logo']) && !empty($tpa['tpa_logo']) ? base_url() . "public/uploads/logo/" . $tpa['tpa_logo'] : base_url() . "public/assets/images/avatar_2x.png" ?>" width="100" height="100" id="uploadPreview" class="avatar img-circle img-thumbnail" alt="avatar" />
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<a href="<?= isset($tpa['id']) ? base_url('/util/preview-card/') . $tpa['id'] : '' ?>" class="btn btn-primary" id="preview" target="_blank">Preview</a>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="short_name">Front card Image<span class="text-danger"></span></label>
<input type="file" class="form-control" onchange="PreviewImage2();" id="fc" name="fc" accept="image/jpeg, image/jpg, image/png">
</div>
<div class="form-group col-md-4">
<label for="short_name">Back card Image<span class="text-danger"></span></label>
<input type="file" class="form-control" onchange="PreviewImage3();" id="bc" name="bc" accept="image/jpeg, image/jpg, image/png">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="short_name">Front card Preview<span class="text-danger"></span></label>
<img src="<?= isset($tpa['front_card']) && !empty($tpa['front_card']) ? base_url() . "public/uploads/template_bg/" . $tpa['front_card'] : base_url() . "public/assets/images/avatar_2x.png" ?>" width="100" height="100" id="uploadPreview2" class="avatar img-circle img-thumbnail" alt="avatar" />
</div>
<div class="form-group col-md-4">
<label for="short_name">Back card Preview<span class="text-danger"></span></label>
<img src="<?= isset($tpa['back_card']) && !empty($tpa['back_card']) ? base_url() . "public/uploads/template_bg/" . $tpa['back_card'] : base_url() . "public/assets/images/avatar_2x.png" ?>" width="100" height="100" id="uploadPreview3" class="avatar img-circle img-thumbnail" alt="avatar" />
</div>
</div>
</div>
<div class="form-group text-right m-b-0">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
id="btnSubmit">Submit</button>
<button type="button" class="btn btn-secondary waves-effect btnBack"
id="btnBack">Cancel</button>
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnSubmit">Submit</button>
<button type="button" class="btn btn-secondary waves-effect btnBack" id="btnBack">Cancel</button>
</div>
</form>
</div>
@ -34,8 +76,27 @@
</div>
<!-- end -->
<script>
<div id="full-width-modal-emp-list" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="fullWidthModalLabel" aria-hidden="true">
<div class="modal-dialog modal-full-width">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="fullWidthModalLabel">Preview<span id="title_header_name"></span></h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body" id="Preview_data">
</div>
<div class="modal-footer">
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
$(document).ready(function() {
$("#tpa_general_form").submit(function(events) {
@ -95,8 +156,7 @@ $(document).ready(function () {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 1000);
console.log('Something Wrong!', 'warning'); }, 1000);
}
});
}
@ -133,4 +193,78 @@ function validateForm() {
});
function PreviewImage() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("tpa_logo").files[0]);
oFReader.onload = function(oFREvent) {
document.getElementById("uploadPreview").src = oFREvent.target.result;
};
};
function PreviewImage2() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("fc").files[0]);
oFReader.onload = function(oFREvent) {
document.getElementById("uploadPreview2").src = oFREvent.target.result;
};
};
function PreviewImage3() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("bc").files[0]);
oFReader.onload = function(oFREvent) {
document.getElementById("uploadPreview3").src = oFREvent.target.result;
};
};
$('#preview').click(function() {
var ecardContent = $('#ecard_content').val();
$('#Preview_data').html(ecardContent);
});
// $(document).ready(function() {
// $('#preview').click(function() {
// // Get the value from the textarea
// var ecardContent = $('#ecard_content').val();
// var filename_front = $('#fc').val().split('\\').pop();
// var original_string_front = '{FRONT_CARD}';
// var replace_string_front = '<?= isset($tpa['front_card']) && !empty($tpa['front_card']) ? base_url() . "public/uploads/template_bg/" . $tpa['front_card'] : "" ?>';
// ecardContent = ecardContent.replace(original_string_front, replace_string_front);
// console.log(ecardContent);
// var filename_back = $('#fc').val().split('\\').pop();
// var original_string_back = '{BACK_CARD}';
// var replace_string_back = '<?= isset($tpa['back_card']) && !empty($tpa['back_card']) ? base_url() . "public/uploads/template_bg/" . $tpa['back_card'] : "" ?>';
// ecardContent = ecardContent.replace(original_string_back, replace_string_back);
// // console.log(ecardContent)
// // Open a new window for printing
// var printWindow = window.open('', '_blank');
// // Insert the textarea value into the new window
// printWindow.document.write('<html><head><title>Preview Page</title></head><body>');
// printWindow.document.write(ecardContent); // Use <pre> tag to preserve formatting
// printWindow.document.write('</body></html>');
// // Trigger the print functionality
// printWindow.print();
// printWindow.close();
// });
// });
</script>

View File

@ -14,6 +14,7 @@ table.dataTable tbody td {
<div class="table-rep-plugin">
<div class="table-responsive" data-pattern="priority-columns">
<table id="tech-companies-1" class="table table-striped">
<thead class="bg-light">
<?php foreach ($thead as $header): ?>
<th><?php echo $header; ?></th>
@ -36,3 +37,36 @@ table.dataTable tbody td {
</div> <!-- end .table-rep-plugin-->
</div> <!-- end .responsive-table-plugin-->
<script>
$('#tech-companies-1').DataTable({
// Enable sorting
"ordering": true,
// Enable filtering/search
"searching": true,
// Enable pagination
"paging": true,
// Set the number of records per page
"pageLength": 10, // Adjust as needed
// Define the initial sorting order (optional)
"order": [[ 0, "asc" ]], // Sort by the first column in ascending order
// Customization for the pagination buttons (optional)
"language": {
"paginate": {
"first": "First",
"last": "Last",
"next": "Next",
"previous": "Previous"
}
}
});
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
public/assets/images/qr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,62 @@
<body>
<div style="display: flex;justify-content:center;gap: 10px;">
<div style="border: 1px solid black;max-height: 250px;width: 400px;background-image: url({FRONT_CARD});background-size: 100% 100%;position: relative;">
<div style="height: 50px;width: 100px;position: absolute;top: 20px;right: 40px;">
<img src="../image/niva.png" alt="" width="100px" height="50px" style="object-fit: fill;">
</div>
<table style="width: 100%;font-family: sans-serif;font-size: 14px;margin-left: 20px;margin-top: 55px;line-height: 19px;">
<tbody>
<tr>
<td>Haamira Banu</td>
</tr>
<tr>
<td style="width: auto;"><b>Xoriant Solutions Pvt Ltd</b></td>
</tr>
<tr>
<td><span>Dob : 02/05/2000</span><span style="padding-left: 40px;">EMP ID : 73496</span></td>
</tr>
<tr>
<td>PHS ID : MBHI CHE 38728183 XSP E</td>
</tr>
<tr>
<td>Valid upto : 31/01/2024</td>
</tr>
</tbody>
</table>
</div>
<div style="border: 1px solid black;min-height: 250px;width: 400px;border: none;"></div>
</div>
<div style="display: flex;justify-content: space-around;justify-content: center;margin-top: 20px;">
<div style="border: 1px solid black;min-height: 450px;width: 800px;padding: 5px 5px 10px 5px ;">
<div style="font-family: sans-serif;line-height: 15px;">
<div style="font-size: 20px;font-weight: 600;margin-top: 10px;text-align: center;"><b>PARAMOUNT HEALTH SERVICES AND INSURANCE TPA PRIVATE.LTD</b></div>
<div style="font-size: 15px;font-weight: 500;text-align: center;margin-top: 10px;">Plot No:A42,Road no-28,M.I.D.C.industrial area,Ram Nagar,Wagle Estate,Thane(W) - 400 604</div>
</div>
<div style="border: 1px solid black;text-align: center;font-size: 16px;font-family: sans-serif;padding: 10px;margin-top: 10px;margin-left: 40px;margin-right: 40px;line-height: 25px;">Cashless Access to Network Hospitals can only be obtained <br> When accompanied with the Authorization letter issued by PHS</div>
<h2 style="font-family: sans-serif;text-align: center;margin: 5px;margin-bottom: 10px;">24 Hours Helpline - Mumbai:(022)-6662 0808</h2>
<div style="text-align: center;font-size: 17px;font-family: sans-serif;margin: 20px 20px;line-height: 25px;">
<b> Toll Free no -</b> 1800 22 6655 (Admission preferably)<br>Website :WWW.paramounttpa.com Email : contact.phs@paramounttpa.com
</div>
<div style="display: flex;justify-content: center;">
<table style="border-spacing:50px 10px;">
<tr>
<td><img src="../image/1 android.png" alt="" width="170px" height="135px"></td>
<td style="font-family: sans-serif;display: flex;align-items: start;font-size: 22px;"><b>Mobile App</b></td>
<td><img src="../image/1-ios.png" alt="" width="150px" height="140px"></td>
</tr>
</table>
</div>
<div style="text-align: center;font-family: sans-serif;font-size: 17px;line-height: 25px;">
please Quote Your PHS ID No.For HELP <br>Immediate intimation to PHS is a must in case of Capitalization
</div>
</div>
</div>
</body>

View File

@ -0,0 +1,119 @@
<body>
<div style="display: flex;justify-content: center;gap: 10px; width:840px;margin:0 auto 15px; page-break-after: auto;">
<div style="border: 1px solid black;width: 400px;max-height: 300px;background: url('{FRONT_CARD}');background-size: 100% 100%;padding: 10px;">
<div style="display: flex;">
<div><img src="{INSURER_LOGO}" alt="" width="60px"
width="60px" style="object-fit: fill;;"></div>
<div style="text-align: center;font-family: sans-serif;font-weight: 600;margin-top: 10px;"><span>THE NEW
INDIA ASSURANCE CO.LTD.</span> <br><span style="font-size: 15px;">GOOD HEALTH MEDICLAIM
POLICY</span></div>
</div>
<table
style="font-family: sans-serif;font-size: 14px;width: 100%;margin-top: 20px;margin-left: 20px;line-height: 20px;">
<tbody>
<tr>
<td>MDID : {TPA_ID}</td>
</tr>
<tr>
<td colspan="2"><b>{NAME}</b></td>
</tr>
<tr>
<td>Certificate No : {UHID}</td>
</tr>
<tr>
<td><span>Sex : {GENDER} </span> <span style="margin-left: 30px;"> Date of Birth : {DOB}</span>
</td>
</tr>
<tr>
<td colspan="2"><b>{SELF_NAME}</b></td>
</tr>
<tr>
<td>Valid form :{POLICY_DATE}</td>
</tr>
</tbody>
</table>
</div>
<div style="border: 1px solid black;width: 400px;max-height: 300px;padding: 5px;">
<div style="font-size: 11px;text-align: center;">The card is for identification purpose only</div>
<table style="width: 100%;text-align: center;font-size: 11px;">
<tbody>
<tr>
<td>General & Claim Enquiry Helpline</td>
<td>Cashless Enquiry helpline</td>
</tr>
</tbody>
</table>
<table style="font-size: 11px;width: 100%;text-align: center;">
<tbody>
<tr>
<td style="border: 1px solid black;">Toll Free : 1800-209-7777 <br>Email :
citibank_chennai@mdindia.com</td>
<td style="border: 1px solid black;">Toll Free : 1800-209-7800 <br>Email:
authorisation@mdindia.com</td>
</tr>
</tbody>
</table>
<div style="font-size: 14px;text-align: center;">CITI MDIndia branch contact</div>
<div>
<table style="text-align: center;width: 100%;font-size: 12px;">
<thead>
<tr>
<th style="border: 1px solid black;">Center</th>
<th style="border: 1px solid black;">Ph.No/Fax.No.</th>
<th style="border: 1px solid black;">Center</th>
<th style="border: 1px solid black;">Ph.No/Fax.No.</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid black;">Chennai</td>
<td style="border: 1px solid black;">9381819401</td>
<td style="border: 1px solid black;">Delhi</td>
<td style="border: 1px solid black;">9310596976</td>
</tr>
<tr>
<td style="border: 1px solid black;">Chennai</td>
<td style="border: 1px solid black;">9381819501</td>
<td style="border: 1px solid black;">Mumbai</td>
<td style="border: 1px solid black;">9320373542</td>
</tr>
<tr>
<td style="border: 1px solid black;">Hyderabad</td>
<td style="border: 1px solid black;">9390838023</td>
<td style="border: 1px solid black;">Pune</td>
<td style="border: 1px solid black;">9371644536</td>
</tr>
<tr>
<td style="border: 1px solid black;">Bangalore</td>
<td style="border: 1px solid black;">9341555665</td>
<td style="border: 1px solid black;">Kolkata</td>
<td style="border: 1px solid black;">9333441389</td>
</tr>
</tbody>
</table>
</div>
<div>
<h6 style="margin: 5px;">TERMS AND CONDITIONS</h6>
<ol style="font-size: 11px;padding-left: 15px;margin-top: 0px;">
<li>Pre authorisation is compulsary from tpa prior to planned admission within 24hours for
emergencies.</li>
<li>Admission for Investigation/Evaluation Not covered.</li>
<li>All terms and conditions of the policy would be applicable</li>
<li>cashless hospitalisation in network hospitals can be obtained in conjunction with this card.an
authorisation letter issued by tpa and photo identification and such as Voters ID,Driver
Licence,Passport,etc.</li>
</ol>
</div>
</div>
</div>
</body>