diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 92d08b1c..22e9c343 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -9,6 +9,8 @@ use CodeIgniter\Router\RouteCollection;
$routes->get('/swagger', 'SwaggerController::index', ['filter' => 'authMVC']);
+// Reminder Mail Notification
+$routes->get("reminder_mail", "NotificationController::reminder_mail");
// $routes->get('/', 'LoginController::index');
$routes->get('/test', 'Home::index');
@@ -18,6 +20,7 @@ $routes->get('/oauth2callback', 'LoginController::receiveGoogleOAuthResponse');
$routes->get('/auth/google', 'LoginController::initiateGoogleOAuth');
$routes->get('/update-emp-policy-status', 'ClientController::updateEmpAndPolicyStatus');
$routes->get('download-e-card/(:segment)', 'EmployeeController::generateIDCardForEmployee/$1');
+$routes->get('download-kyc-docs/(:segment)', 'ClientController::downloadKYCDocument/$1');
@@ -223,6 +226,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');
@@ -250,7 +254,6 @@ $routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfi
$routes->post("/calculatePremium", "EmployeeRestController::calculatePremium");
-$routes->post("employeeUpload", "EmployeeRestController::employeeUpload");
$routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) {
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index da023bbd..a6cd25ce 100644
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -267,9 +267,9 @@ 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) {
$clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date));
@@ -280,10 +280,8 @@ class ClientController extends AdminController
$editData['notification'] =$this->notificationModel->select('template_name,enabled')->where('client_id',$id)->findAll();
- $editData['placeHolders'] = ['user_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'ecard_link', 'app_link', 'member_summary'];
+ $editData['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'client_name'];
- // echo "
";
- // dd($editData); die;
echo view('layout/header', $headerData);
echo view('client_onboarding', $editData);
@@ -593,7 +591,14 @@ class ClientController extends AdminController
$data['insurer_id'] = $insurerId;
$tpaValue = (string) $this->request->getPost('tpa');
- list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
+
+ if ($tpaValue === null || $tpaValue === '') {
+ $tpaBranchId = null;
+ $tpaId = null;
+ } else {
+ list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
+ }
+
$data['client_id'] = $client_id;
$data['tpa_branch_id'] = $tpaBranchId;
@@ -615,28 +620,33 @@ 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();
- if ( $this->request->getPost('is_addon') == 2 || $this->request->getPost('is_addon') == 3) {
+ if ($this->request->getPost('is_addon') == 2 || $this->request->getPost('is_addon') == 3) {
if ($this->request->getPost('is_addon') == 3) {
$policyTerm = $policy_terms['policy_terms'];
$decoded_policyTerm = json_decode($policyTerm, true);
- $decoded_policyTerm['family_floater'] =0;
- $decoded_policyTerm['family_floaters']['self'] =0;
- $decoded_policyTerm['family_floaters']['spouse'] =0;
- $decoded_policyTerm['family_floaters']['childrens'] =0;
- $decoded_policyTerm['family_floaters']['parents'] =0;
- $decoded_policyTerm['family_floaters']['parents-in-law'] =0;
- $decoded_policyTerm['family_floaters']['either-parents-pil'] =0;
+ $decoded_policyTerm['family_floater'] = 0;
+ $decoded_policyTerm['family_floaters']['self'] = 0;
+ $decoded_policyTerm['family_floaters']['spouse'] = 0;
+ $decoded_policyTerm['family_floaters']['childrens'] = 0;
+ $decoded_policyTerm['family_floaters']['parents'] = 0;
+ $decoded_policyTerm['family_floaters']['parents-in-law'] = 0;
+ $decoded_policyTerm['family_floaters']['either-parents-pil'] = 0;
$data['policy_terms'] = json_encode($decoded_policyTerm);
- }else{
- $data['policy_terms'] = $policy_terms['policy_terms'];
+ } else {
+ if ($this->request->getPost('policy_type_id') != 3) {
+
+ $data['policy_terms'] = $policy_terms['policy_terms'];
+ }
}
}
@@ -702,6 +712,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();
@@ -753,12 +765,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'));
@@ -782,10 +801,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];
@@ -794,7 +817,26 @@ class ClientController extends AdminController
$policyPremium = $this->policyPremium1Model->insert($data);
}
- } else {
+
+ } 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'));
@@ -804,6 +846,7 @@ class ClientController extends AdminController
$policyPremium = $this->policyPremium1Model->insert($data);
}
+
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '2') {
@@ -825,6 +868,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[]');
@@ -838,6 +883,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[]');
@@ -853,19 +900,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[]');
@@ -924,6 +975,7 @@ class ClientController extends AdminController
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '11') {
+
$premium = $this->request->getPost('11_premium[]');
$sum_insure = $this->request->getPost('11_si[]');
$grade = $this->request->getPost('11_grade[]');
@@ -932,7 +984,7 @@ class ClientController extends AdminController
$data['premium'] = str_replace(',', '', $premium[$i]);
$data['si'] = str_replace(',', '', $sum_insure[$i]);
$data['grade'] = $grade[$i];
- $data['max_si'] = $max_sum_insure[$i];
+ $data['max_si'] = str_replace(',', '', $max_sum_insure[$i]);
$dataa = $this->policyPremium2Model->insert($data);
}
$data = $this->request->getPost();
@@ -1123,12 +1175,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;
}
}
@@ -1307,6 +1360,13 @@ class ClientController extends AdminController
$data['familytransportationbenefit'] =str_replace(',', '',$this->request->getPost("familytransportationbenefit"));
$data['reasonableandcustomarycharges'] =str_replace(',', '',$this->request->getPost("reasonableandcustomarycharges"));
$data['ayudhtreatmentcover'] =str_replace(',', '',$this->request->getPost("ayudhtreatmentcover"));
+
+ if ($data['ayudhtreatmentcover'] == 1) {
+ $data['ayushTreatmentCoverData'] = str_replace(',', '',$this->request->getPost("ayushTreatmentCoverData"));
+ }else{
+ $data['ayushTreatmentCoverData'] ="";
+ }
+
$data['armdcovered'] =str_replace(',', '',$this->request->getPost("armdcovered"));
$data['suminsuredenhancement'] =str_replace(',', '',$this->request->getPost("suminsuredenhancement"));
$data['automaticsuminsuredreinstatement'] =str_replace(',', '',$this->request->getPost("automaticsuminsuredreinstatement"));
@@ -1322,6 +1382,15 @@ class ClientController extends AdminController
$data['special_condition_label'] = str_replace(',', '',$this->request->getPost("special_condition_label")) ?? [];
$data['special_condition_input'] = str_replace(',', '',$this->request->getPost("special_condition_input")) ?? [];
+ $data['cataract'] =str_replace(',', '',$this->request->getPost("cataract"));
+
+ if ($data['cataract'] == 1) {
+ $data['cataractData'] = str_replace(',', '',$this->request->getPost("cataractData"));
+ }else{
+ $data['cataractData'] ="";
+ }
+
+
$jsonData = json_encode($data);
$dataa = array(
'policy_terms' => $jsonData,
@@ -1360,23 +1429,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);
}
}
@@ -1438,6 +1508,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(
@@ -1486,77 +1559,82 @@ class ClientController extends AdminController
public function updateClientPolicyStatus()
{
- $client_policy_id = $this->request->getGet('client_policy_id');
- $record = $this->clientPolicyModel->where('id', $client_policy_id)->first();
- $message = 'Policy updated Successfully' ;
- if($record['open_for_enrollment'] == 0){
- $open_for_enrollment_update_value = 1;
- $message = 'Update Open Enrollment Successfully';
- }else if($record['open_for_enrollment'] == 1){
- $open_for_enrollment_update_value = 0;
- $message = 'Update Open Enrollment Successfully';
- }
-
- $data = $this->policesModel->getPolicyPremium($record['policy_id']);
- $pattern = '/gmc/i';
- $subject = $data[0]->policy_type;
- if (preg_match($pattern, $subject)) {
- $search_term = 'GMC';
- } else {
- $search_term = 'GPA';
- }
-
- if($search_term === 'GPA'){
- $racRate = $this->policyPremium1Model->where(['client_id' => $record['client_id'], 'client_policy_id' => $client_policy_id, 'is_active' => 1])->countAllResults();
- }else if($search_term === 'GMC'){
- $racRate = $this->policyPremium2Model->where(['client_id' => $record['client_id'], 'client_policy_id' => $client_policy_id, 'is_active' => 1])->countAllResults();
- }
-
- $termsData = $this->clientPolicyModel->where(['id' => $client_policy_id, 'is_active' => 1])->first();
- if(empty($termsData['policy_terms'])){
- return $this->respond(['status' => false,'code' => 200,'message' => 'Please define policy terms '], 200);
- }
+ $client_policy_id = $this->request->getGet('client_policy_id');
+ $message = 'Policy updated Successfully';
- $termsData = json_decode($termsData['policy_terms']);
+ $record = $this->clientPolicyModel->where('id', $client_policy_id)->first();
- if (isset($termsData->sum_insured) && empty($termsData->sum_insured)) {
- return $this->respond(['status' => false,'code' => 200,'message' => 'The Policy terms Sum Insured field is empty', 'data' => $record], 200);
- }
+ if ($record['open_for_enrollment'] == 0) {
+ $open_for_enrollment_update_value = 1;
+ $message = 'Enrollment Opened Successfully';
+ } else if ($record['open_for_enrollment'] == 1) {
+ $open_for_enrollment_update_value = 0;
+ $message = 'Enrollment Closed Successfully';
+ }
- if (isset($termsData->SumInsured) && empty($termsData->sum_insured)) {
- return $this->respond(['status' => false,'code' => 200,'message' => 'The Policy terms Sum Insured field is empty'], 200);
- }
-
- // Check if 'family_floater' key exists and has a value
- if (isset($termsData->family_floater) && empty($termsData->family_floater)) {
- return $this->respond(['status' => false,'code' => 200,'message' => 'The Policy terms Family Floater field is empty'], 200);
- }
-
- // Check if 'family_floaters' key exists and has a value
- if (isset($termsData->family_floaters) && is_array($termsData->family_floaters) && count($termsData->family_floaters) <= 0) {
- return $this->respond(['status' => false,'code' => 200,'message' => 'The Policy terms Family Members field is empty'], 200);
- $familyFloatersCount = count($termsData->family_floaters);
- }
+ $data = $this->policesModel->getPolicyPremium($record['policy_id']);
+ $pattern = '/gmc/i';
+ $subject = $data[0]->policy_type;
+ if (preg_match($pattern, $subject)) {
+ $search_term = 'GMC';
+ } else {
+ $search_term = 'GPA';
+ }
- if($racRate == 0){
+ if ($search_term === 'GPA') {
+ $racRate = $this->policyPremium1Model->where(['client_id' => $record['client_id'], 'client_policy_id' => $client_policy_id, 'is_active' => 1])->countAllResults();
+ } else if ($search_term === 'GMC') {
+ $racRate = $this->policyPremium2Model->where(['client_id' => $record['client_id'], 'client_policy_id' => $client_policy_id, 'is_active' => 1])->countAllResults();
+ }
- return $this->respond(['status' => false,'code' => 200,'message' => 'Please define policy premium'], 200);
- }
+ $termsData = $this->clientPolicyModel->where(['id' => $client_policy_id, 'is_active' => 1])->first();
+ if (empty($termsData['policy_terms'])) {
+ return $this->respond(['status' => false, 'code' => 200, 'message' => 'Please define policy terms '], 200);
+ }
- $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) {
- $open_for_enrollment_1 = $this->clientPolicyModel->where('id', $client_policy_id )->find();
- $open_for_enrollment_value = $open_for_enrollment_1[0]['open_for_enrollment'];
- $client_policy_id_value = $client_policy_id;
- $json_data = json_encode(['open_for_enrollment' => $open_for_enrollment_value, 'client_policy_id' => $client_policy_id_value]);
- }
+ $termsData = json_decode($termsData['policy_terms']);
- return $this->respond(['status' => true,'code' => 200, 'message' => $message, 'data' => $termsData, 'racRate' => $racRate, 'open_for_enrollment' => $json_data], 200);
+ if (isset($termsData->sum_insured) && empty($termsData->sum_insured)) {
+ return $this->respond(['status' => false, 'code' => 200, 'message' => 'The Policy terms Sum Insured field is empty', 'data' => $record], 200);
+ }
+ if (isset($termsData->SumInsured) && empty($termsData->sum_insured)) {
+ return $this->respond(['status' => false, 'code' => 200, 'message' => 'The Policy terms Sum Insured field is empty'], 200);
+ }
+
+ // Check if 'family_floater' key exists and has a value
+ 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);
+ }
+
+ // Check if 'family_floaters' key exists and has a value
+ if (isset($termsData->family_floaters) && is_array($termsData->family_floaters) && count($termsData->family_floaters) <= 0) {
+ return $this->respond(['status' => false, 'code' => 200, 'message' => 'The Policy terms Family Members field is empty'], 200);
+ $familyFloatersCount = count($termsData->family_floaters);
+ }
+
+ if ($racRate == 0) {
+
+ 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();
+
+ $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) {
+ $open_for_enrollment_1 = $this->clientPolicyModel->where('id', $client_policy_id)->find();
+ $open_for_enrollment_value = $open_for_enrollment_1[0]['open_for_enrollment'];
+ $client_policy_id_value = $client_policy_id;
+
+ $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, 'client_policy_data' => $record], 200);
}
@@ -1606,4 +1684,17 @@ class ClientController extends AdminController
}
+
+
+ public function downloadKYCDocument($file_name)
+ {
+
+ $file = WRITEPATH . 'uploads/client_kyc_documents/' . $file_name; // Example file path
+
+ if (file_exists($file)) {
+ return $this->response->download($file, null)->setFileName($file_name);
+ } else {
+ return "File not found.";
+ }
+ }
}
\ No newline at end of file
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index a061f32d..1a9421f4 100644
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -9,6 +9,7 @@ use Psr\Log\LoggerInterface;
use App\Helpers\DepositHelper;
use App\Helpers\MailHelper;
+use App\Helpers\sendMailNotification;
use App\Models\EmployeeModel;
@@ -28,6 +29,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;
@@ -111,16 +113,24 @@ class EmpDataServiceController extends BaseController
{
// Fetch employee data for export from the database
$objects = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($export_data);
+
+ $insurer_id = $this->clientPolicyModel->where('id', $export_data['client_policy_id'])->first();
- // dd($objects);
-
+ $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) {
$totals += $value->total;
}
-
+ if((int) $cash_balance['balance'] < (int) $totals){
+
+ return 0;
+ }
+
+
// Log the count of exported data
$count = count($objects);
$export_data['count'] = $count;
@@ -1621,41 +1631,23 @@ class EmpDataServiceController extends BaseController
// print_r($notification);
// die;
$client_data = $this->clientModel->where('id',$get_emp_email_and_other_details['client_id'])->first();
+
$notification = $this->notificationModel->where('client_id',$get_emp_email_and_other_details['client_id'])->where('template_name','member_ecard_mail')->first();
if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "" && $notification['enabled'] == 1) {
$rand_string = $get_emp_email_and_other_details['rand_string'];
$tpa_id = $get_emp_email_and_other_details['tpa_id'];
-
- $mail_content = $notification['mail_content'];
-
- $mail = $get_emp_email_and_other_details['email_corporate'];
-
- $subject = $notification['subject'];
-
- $link = generate_download_link($rand_string);
-
-
-
- $app_link = $_ENV['App_Url'];
- $name = $get_emp_email_and_other_details['name'];
-
- $mail_content = $notification['mail_content'];
-
- $nhance_logo = $_ENV['NHANCE_LOGO'];
+ $params['rand_string'] = $rand_string;
+ $params['tpa_id'] = $tpa_id;
+ $params['notification'] = $notification;
+ $params['client_data'] = $client_data;
+ $params['notification'] = $notification;
+ $params['notification'] = $notification;
+ $params['get_emp_email_and_other_details'] = $get_emp_email_and_other_details;
+ $wholeData = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
-
- $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
-
- $mail_content = str_replace("[[user_name]]", $name, $mail_content);
- $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
- $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content);
- $mail_content = str_replace("[[ecard_download_link]]", "Download Insurance Card", $mail_content);
-
- $message = $mail_content;
$count++;
- $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $message,'cc'=> $client_data['common_mails']];
if($count == 20 || $count == count($ids)-1){
$job_details = new Jobs();
@@ -1672,4 +1664,5 @@ class EmpDataServiceController extends BaseController
return false; // Email(s) sending failed
}
}
-}
+
+ }
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 5b73effc..b1b33241 100644
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -16,9 +16,10 @@ 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 ;
+use App\Controllers\Jobs;
+use App\Controllers\JobWorker;
use App\Controllers\Jobs\SubJob;
use App\Controllers\EmployeeServiceController;
use App\Controllers\EmpDataServiceController;
@@ -30,10 +31,12 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Dompdf\Dompdf;
+use Dompdf\Options;
+
class EmployeeController extends AdminController
{
-
+
use ResponseTrait;
protected $myLogger;
@@ -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,32 +71,28 @@ 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['employees'] = $this->employeePolicyModel->getEmployeePolicy(client_id: $filterData['client_id'], policy_id: $filterData['policy_id'], status: $filterData['status']);
$data['getData'] = $filterData;
}
- $this->myLogger->logme('error','list called');
- $this->loadLayout('employee_list',$data);
+ $this->myLogger->logme('error', 'list called');
+ $this->loadLayout('employee_list', $data);
}
public function getClientWithPolicies()
{
//echo $this->request->isAJAX();die();
- $result = $this->clientModel->clientsWithPolicies();
+ $result = $this->clientModel->clientsWithPolicies();
- // print_r($result);die();
- if(!count($result))
- {
- return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'no data found'], 200);
- }
- else
- {
-
- return $this->respond(['dataStatus' => true,'code' => 200,'data' => $result], 200);
- }
+ // print_r($result);die();
+ if (!count($result)) {
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
+ } else {
+
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $result], 200);
+ }
}
@@ -103,22 +104,19 @@ class EmployeeController extends AdminController
// $file_id = $this->request->getGet();
// echo $file_id;die();
$file = $this->fileModel->find($file_id);
- // print_r($result);die();
- if(!isset($file))
- {
- return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'no data found'], 200);
- }
- else
- {
-
- return $this->respond(['dataStatus' => true,'code' => 200,'data' => $file['reason']], 200);
- }
+ // print_r($result);die();
+ if (!isset($file)) {
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
+ } else {
+
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $file['reason']], 200);
+ }
}
//handles employee & dependent bulk upload with events like inception,addition,deletion, correction and SI enhancements
public function employeesUplodWithEvents()
{
-
+
// $job_details = new Jobs();
// $r = Jobs::addJob(['job_name' => 'add','payload' => ['a' => 10, 'b' => 35]]);
// print_r($r);//die();
@@ -143,7 +141,7 @@ class EmployeeController extends AdminController
// $empServiceController = new EmployeeServiceController();
// $res = $empServiceController->employeesSIEnhanceProcess(['file_id' => '38']);
// dd($res);
-
+
// $empServiceController = new EmployeeServiceController();
// $res = $empServiceController->employeesCorrectionProcess(['file_id' => '37']);
// // dd($res);
@@ -163,86 +161,78 @@ class EmployeeController extends AdminController
// $this->fileModel->where('id', '12')->set(['status' => 'failed','reason' => $failure_reason])->update();
// dd($failure_reason);
// }
-
- if($this->request->getMethod() == 'post')
- {
+
+ if ($this->request->getMethod() == 'post') {
//validate uploaded file
- $filename = '';
- $validated = $this->validate([
- 'emplist' => [
- 'uploaded[emplist]',
- 'mime_in[emplist,application/vnd.ms-excel,application/vnd,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.spreadsheet]',
- 'max_size[emplist,8192]',
- ],
- ]);
-
- if ($validated) {
- $avatar = $this->request->getFile('emplist');
- $is_moved = $avatar->move(WRITEPATH . 'uploads/excel/');
- $filename = $avatar->getName();
-
- }
- else
- {
- return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'invalid file'], 200);
- }
+ $filename = '';
+ $validated = $this->validate([
+ 'emplist' => [
+ 'uploaded[emplist]',
+ 'mime_in[emplist,application/vnd.ms-excel,application/vnd,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.spreadsheet]',
+ 'max_size[emplist,8192]',
+ ],
+ ]);
- //process post variable entry in file table
- $loggedInUserID = get_session_userid();
- // $loggedInUserID = 8;
+ if ($validated) {
+ $avatar = $this->request->getFile('emplist');
+ $is_moved = $avatar->move(WRITEPATH . 'uploads/excel/');
+ $filename = $avatar->getName();
+ } else {
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'invalid file'], 200);
+ }
- $client_id = $this->request->getPost('client_id');
- $policy_id = $this->request->getPost('policy_id');
- $action = $this->request->getPost('upload-action-type');
- $status = 'inprogress';
+ //process post variable entry in file table
+ $loggedInUserID = get_session_userid();
+ // $loggedInUserID = 8;
- $file_id = $this->fileModel->insert(['file_name' => $filename,'client_id' => $client_id,'policy_id' => $policy_id,'created_by' => $loggedInUserID,'status' => $status,'action' => $action]);//here field policy_id have client_policy_id and not policy id from policy master
- $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]);
+ $client_id = $this->request->getPost('client_id');
+ $policy_id = $this->request->getPost('policy_id');
+ $action = $this->request->getPost('upload-action-type');
+ $status = 'inprogress';
- //start validation process
-
- $empServiceController = new EmployeeServiceController();
- $result = $empServiceController->excelFileFormatValidation(['file_id' => $file_id]);
- //endof validation process
- if(isset($result['error_summary']) && count($result['error_summary']))
- {
- return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'file rejected with errors'], 200);
- }
+ $file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $loggedInUserID, 'status' => $status, 'action' => $action]); //here field policy_id have client_policy_id and not policy id from policy master
+ $this->myLogger->logme("error", '{file_id} uploaded success', ['file_id' => $file_id]);
- return $this->respond(['dataStatus' => true,'code' => 200,'data' => 'file upload success'], 200);
+ //start validation process
+ $empServiceController = new EmployeeServiceController();
+ $result = $empServiceController->excelFileFormatValidation(['file_id' => $file_id]);
+ //endof validation process
+ 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);
}
-
- $data['events'] = ['inception' => 'Inception (Employee + Dependents)','addition' => 'Addition (Employee + Dependents)','dependent_addition' => 'Dependent Addition (Only Dependents)','deletion' => 'Deletion','correction' =>'Correction','si_enhancement' =>'SI Enhancement'];
- $data['actions'] = ['inception' => 'Inception (Employee + Dependents)','addition' => 'Addition (Employee + Dependents)','dependent_addtion' => 'Dependent Addition (Only Dependents)','deletion' => 'Deletion','correction' =>'Correction','si_enhancement' =>'SI Enhancement'];
-
- $data['import_or_export'] = ['import' => 'Import','export' =>'Export'];
- $data['insurer_or_tpa'] = ['insurer' => 'Insurer','tpa' =>'TPA'];
+
+ $data['events'] = ['inception' => 'Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement'];
+ $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addtion' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement'];
+
+ $data['import_or_export'] = ['import' => 'Import', 'export' => 'Export'];
+ $data['insurer_or_tpa'] = ['insurer' => 'Insurer', 'tpa' => 'TPA'];
$data['fileList'] = $this->fileModel
- ->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name', 'cp.id as client_policy_id'])
- ->join('user_profiles up','files.created_by = up.id')
- ->join('client_policy cp','files.policy_id = cp.id','left')
- ->join('policies pm','cp.policy_id = pm.id','left')
- ->join('clients c','files.client_id = c.id and files.client_id = cp.client_id','left')
- ->where('files.created_by',get_session_userid())->orderBy('files.created_at','desc')->findAll();
+ ->select(['files.*', 'up.emp_code', 'up.first_name', 'pm.name as policy_name', 'c.short_name', 'cp.id as client_policy_id'])
+ ->join('user_profiles up', 'files.created_by = up.id')
+ ->join('client_policy cp', 'files.policy_id = cp.id', 'left')
+ ->join('policies pm', 'cp.policy_id = pm.id', 'left')
+ ->join('clients c', 'files.client_id = c.id and files.client_id = cp.client_id', 'left')
+ ->where('files.created_by', get_session_userid())->orderBy('files.created_at', 'desc')->findAll();
$data['batch_list'] = $this->batchFileModel->select('batch_files.*, policies.name as policy_name, clients.short_name as client_short_name')
- ->join('client_policy', 'client_policy.id = batch_files.client_policy_id')
- ->join('policies', 'policies.id = client_policy.policy_id')
- ->join('clients', 'clients.id = client_policy.client_id')
- ->orderBy('batch_files.id','desc')
- ->findAll();
+ ->join('client_policy', 'client_policy.id = batch_files.client_policy_id')
+ ->join('policies', 'policies.id = client_policy.policy_id')
+ ->join('clients', 'clients.id = client_policy.client_id')
+ ->orderBy('batch_files.id', 'desc')
+ ->findAll();
// dd($data['fileList']);die();
- if($this->request->getMethod() == "get")
- {
- $this->loadLayout('import_export',$data);
+ 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');
@@ -285,23 +274,23 @@ class EmployeeController extends AdminController
// $actionType = $this->request->getGet();
$filePath = '';
// Path to your file
- if($actionType == 'inception'){
+ if ($actionType == 'inception') {
$filePath = ROOTPATH . 'public/sample_excel/sample_inception.xls';
- }else if($actionType == 'correction'){
+ } else if ($actionType == 'correction') {
$filePath = ROOTPATH . 'public/sample_excel/sample_correction .xls';
- }else if($actionType == 'si_enhancement'){
+ } else if ($actionType == 'si_enhancement') {
$filePath = ROOTPATH . 'public/sample_excel/sample_si_enhancement.xls';
- }else if($actionType == 'dependent_addtion'){
+ } else if ($actionType == 'dependent_addtion') {
$filePath = ROOTPATH . 'public/sample_excel/sample_dependent_addition.xls';
- }else if($actionType == 'addition'){
+ } else if ($actionType == 'addition') {
$filePath = ROOTPATH . 'public/sample_excel/sample_addition.xls';
- }else if($actionType == 'deletion'){
+ } else if ($actionType == 'deletion') {
$filePath = ROOTPATH . 'public/sample_excel/sample_deletion.xls';
}
-
+
// Check if the file exists
if (file_exists($filePath)) {
-
+
// Set the appropriate MIME type
$mimeType = mime_content_type($filePath);
@@ -327,19 +316,19 @@ class EmployeeController extends AdminController
public function importExport()
{
- $this->myLogger->logme('error','importExport function called');
+ $this->myLogger->logme('error', 'importExport function called');
$empDataServiceController = new EmpDataServiceController();
$client_id = $this->request->getPost('client_id');
$client_policy_id = $this->request->getPost('client_policy_id');
$insurer_or_tpa = $this->request->getPost('insurer_or_tpa');
$event_type = $this->request->getPost('event_type');
- $actions = $this->request->getPost('action_type');
+ $actions = $this->request->getPost('action_type');
$client_data = $this->clientModel->where('id', $client_id)->first();
$policy_name = $this->clientPolicyModel->select('policies.name')->join('policies', 'policies.id = client_policy.policy_id')->where('client_policy.id', $client_policy_id)->first();
$file_name = generate_filename($client_data['short_name'], $event_type, $actions, $insurer_or_tpa, $policy_name['name']);
-
+
$batch_data = [
'client_id' => $client_id,
'client_policy_id' => $client_policy_id,
@@ -347,157 +336,141 @@ class EmployeeController extends AdminController
'event_type' => $event_type,
'actions' => $actions,
'file_name' => $file_name,
- ];
+ ];
// $event_type = 'si_enhancement';
- if($actions == 'export'){
+ if ($actions == 'export') {
- if($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition' ){
+ 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'));
+ }
- $return = $empDataServiceController->generateExcelForAdditionandInception($batch_data);
- if(!$return){
- if($insurer_or_tpa == 'tpa'){
+ 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'){
+ 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'));
+ return redirect()->to(base_url('employee/upload'));
}
- } else{
- $this->myLogger->logme('error','Successfully exported Excel file in {data}.', ['data' => $event_type]);
+
+ } else {
+ $this->myLogger->logme('error', 'Successfully exported Excel file in {data}.', ['data' => $event_type]);
}
+ } else if ($event_type == 'correction') {
- } else if($event_type == 'correction'){
-
- $return = $empDataServiceController->generateExcelForCorrection($batch_data);
- if(!$return){
+ $return = $empDataServiceController->generateExcelForCorrection($batch_data);
+ if (!$return) {
session()->setFlashdata('error', 'No data found about this action');
- return redirect()->to(base_url('employee/upload'));
- } else{
- $this->myLogger->logme('error','Successfully exported Excel file in Correction.');
- }
+ return redirect()->to(base_url('employee/upload'));
+ } else {
+ $this->myLogger->logme('error', 'Successfully exported Excel file in Correction.');
+ }
+ } else if ($event_type == 'si_enhancement') {
- } else if($event_type == 'si_enhancement'){
-
- $return = $empDataServiceController->generateExcelForSIEnhancement($batch_data);
- if(!$return){
+ $return = $empDataServiceController->generateExcelForSIEnhancement($batch_data);
+ if (!$return) {
session()->setFlashdata('error', 'No data found about this action');
- return redirect()->to(base_url('employee/upload'));
- } else{
- $this->myLogger->logme('error','Successfully exported Excel file in SI_Enhancement.');
- }
+ return redirect()->to(base_url('employee/upload'));
+ } else {
+ $this->myLogger->logme('error', 'Successfully exported Excel file in SI_Enhancement.');
+ }
+ } else if ($event_type == 'deletion') {
- }else if($event_type == 'deletion'){
-
- $return = $empDataServiceController->generateExcelForDeletion($batch_data);
- if(!$return){
+ $return = $empDataServiceController->generateExcelForDeletion($batch_data);
+ if (!$return) {
session()->setFlashdata('error', 'No data found about this action');
- return redirect()->to(base_url('employee/upload'));
- } else{
- $this->myLogger->logme('error','Successfully exported Excel file in Deletion.');
- }
+ return redirect()->to(base_url('employee/upload'));
+ } else {
+ $this->myLogger->logme('error', 'Successfully exported Excel file in Deletion.');
+ }
}
-
-
- }else if($actions == 'import'){
+ } else if ($actions == 'import') {
$batch_data['file'] = $this->request->getFile('import_file_data');
- if($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition'){
+ if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') {
$return = $empDataServiceController->importExcelDataForInception($batch_data);
- if($return == 1){
+ if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 2){
+ } 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){
+ } else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file.');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 3){
+ } 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){
+ } 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){
+ } 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'){
+ }
+ } else if ($event_type == 'correction') {
$return = $empDataServiceController->importExcelDataForCorrection($batch_data);
- if($return == 1){
+ if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 2){
+ } else if ($return == 2) {
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 0){
+ } else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file');
return redirect()->to(base_url('employee/upload'));
- }else if($return == 3){
+ } else if ($return == 3) {
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
-
- }else if($event_type == 'si_enhancement'){
+ } else if ($event_type == 'si_enhancement') {
$return = $empDataServiceController->importExcelDataForSIEnhancement($batch_data);
- if($return == 1){
+ if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 2){
+ } else if ($return == 2) {
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 0){
+ } else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file');
return redirect()->to(base_url('employee/upload'));
- }else if($return == 3){
+ } else if ($return == 3) {
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
-
- }else if($event_type == 'deletion'){
+ } else if ($event_type == 'deletion') {
$return = $empDataServiceController->importExcelDataForDeletion($batch_data);
- if($return == 1){
+ if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 2){
+ } else if ($return == 2) {
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
-
- }else if($return == 0){
+ } else if ($return == 0) {
session()->setFlashdata('error', 'Please upload the correct file');
return redirect()->to(base_url('employee/upload'));
- }else if($return == 3){
+ } else if ($return == 3) {
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
-
}
-
}
-
-
}
-
+
// -------------------------------------------------------------------------------------------
@@ -512,18 +485,17 @@ class EmployeeController extends AdminController
{
$data = [];
- $data['status'] = ['pending' => 'Pending', 'inprogress' => 'In-Progress', 'complete'=>'Complete'];
- if(count($this->request->getGet()))
- {
+ $data['status'] = ['pending' => 'Pending', 'inprogress' => 'In-Progress', 'complete' => 'Complete'];
+ 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['employees'] = $this->employeePolicyModel->getEmployeeEndorsementList(client_id: $filterData['client_id'], policy_id: $filterData['policy_id'], status: $filterData['status']);
$data['getData'] = $filterData;
// echo "";
// print_r($data); die;
}
-
- $this->myLogger->logme('error','list called');
- $this->loadLayout('endorsement_list',$data);
+
+ $this->myLogger->logme('error', 'list called');
+ $this->loadLayout('endorsement_list', $data);
}
@@ -541,13 +513,13 @@ class EmployeeController extends AdminController
{
// Create instance of EmpDataServiceController
$empDataServiceController = new EmpDataServiceController();
-
+
// Check if $id is provided
if ($id) {
// Retrieve group key and actions based on $id
$group_key_actions = $this->empEndorsementModel->select('group_key, actions')->where('id', $id)->first();
$groupedData = $this->empEndorsementModel->where('group_key', $group_key_actions['group_key'])->findAll();
-
+
// If group key and actions are found
if ($group_key_actions) {
// Retrieve endorsement data based on actions
@@ -567,7 +539,7 @@ class EmployeeController extends AdminController
$formatedData[0]['new_value'] = formatDateOrReturn($formatedData[0]['new_value']);
break;
}
-
+
// Return response with data
return $this->respond([
'dataStatus' => true,
@@ -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);
@@ -591,21 +562,21 @@ class EmployeeController extends AdminController
// this funciton initiate Inception/adition/DA of employees data only form enrollment app when passing
// client_policy_id pull draft and enrolled status employees and proceed to calculatin and make entry in DB
public function initiateManualEmployeesOnboardProcess($client_policy_id)
- {
- $client_data = $this->clientPolicyModel->select('clients.client_name as client_name, policies.name as policy_name')
- ->join('clients', 'clients.id = client_policy.client_id')
- ->join('policies', 'policies.id = client_policy.policy_id')
- ->where('client_policy.id', $client_policy_id)
- ->first();
+ {
+ $client_data = $this->clientPolicyModel->select('clients.client_name as client_name, policies.name as policy_name')
+ ->join('clients', 'clients.id = client_policy.client_id')
+ ->join('policies', 'policies.id = client_policy.policy_id')
+ ->where('client_policy.id', $client_policy_id)
+ ->first();
- $empServiceController = new EmployeeServiceController();
- $res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id]);
- // dd($res);
+ $empServiceController = new EmployeeServiceController();
+ $res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id]);
+ // dd($res);
- $count = count($res);
- $message = $count . ' Employees are Initiate Onboard Process againts Client '. $client_data['client_name'] . ' and the Policy is ' . $client_data['policy_name'] ;
- session()->setFlashdata('success1', $message);
- return redirect()->to(base_url('/employee/upload'));
+ $count = count($res);
+ $message = $count . ' Employees are Initiate Onboard Process againts Client ' . $client_data['client_name'] . ' and the Policy is ' . $client_data['policy_name'];
+ session()->setFlashdata('success1', $message);
+ return redirect()->to(base_url('/employee/upload'));
}
@@ -641,18 +612,17 @@ class EmployeeController extends AdminController
echo $errorMessage;
}
}
-
-
+
+
public function featchEmpList()
{
- $client_id = $this->request->getGet('client_id');
- $policy_id = $this->request->getGet('policy_id');
+ $client_id = $this->request->getGet('client_id');
+ $policy_id = $this->request->getGet('policy_id');
- $emp_data['employees'] = $this->employeePolicyModel->getEmployeePolicyForFileList($client_id, $policy_id);
- $html = view('employee_data_list', $emp_data);
-
- return $this->respond(['dataStatus' => true,'code' => 200,'data' => $html], 200);
+ $emp_data['employees'] = $this->employeePolicyModel->getEmployeePolicyForFileList($client_id, $policy_id);
+ $html = view('employee_data_list', $emp_data);
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html], 200);
}
@@ -662,37 +632,35 @@ class EmployeeController extends AdminController
// $emp_data['employees'] = $this->employeePolicyModel->getViewEmpSuccessList($file_id);
// $html = view('view_file_upload_emp_list', $emp_data);
$file_name = $this->fileModel
- ->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name', 'cp.id as client_policy_id'])
- ->join('user_profiles up','files.created_by = up.id')
- ->join('client_policy cp','files.policy_id = cp.id','left')
- ->join('policies pm','cp.policy_id = pm.id','left')
- ->join('clients c','files.client_id = c.id and files.client_id = cp.client_id','left')
- ->where('files.id', $file_id)->first();
-
+ ->select(['files.*', 'up.emp_code', 'up.first_name', 'pm.name as policy_name', 'c.short_name', 'cp.id as client_policy_id'])
+ ->join('user_profiles up', 'files.created_by = up.id')
+ ->join('client_policy cp', 'files.policy_id = cp.id', 'left')
+ ->join('policies pm', 'cp.policy_id = pm.id', 'left')
+ ->join('clients c', 'files.client_id = c.id and files.client_id = cp.client_id', 'left')
+ ->where('files.id', $file_id)->first();
+
try {
$filePath = WRITEPATH . '/uploads/excel/' . $file_name['file_name'];
-
+
if (file_exists($filePath)) {
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
-
+
$highestRowAndColumn = $sheet->getHighestRowAndColumn();
$excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
// dd($excel_data);
$emp_data['thead'] = $excel_data[0];
unset($excel_data[0]);
$emp_data['tbody'] = $excel_data;
-
- $html = view('view_file_upload_emp_list', $emp_data);
+ $html = view('view_file_upload_emp_list', $emp_data);
} else {
$html = 'No Data Found
';
}
-
- return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html, 'file_data' => $file_name, 'excel_data' => $excel_data], 200);
+ 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,209 +670,297 @@ class EmployeeController extends AdminController
}
}
- public function getEmpCount($id = null){
- $data = $this->employeePolicyModel->select('employee_polices.id')
- ->where('employee_polices.is_active', 1)
- ->where('employee_polices.client_policy_id', $id)
- ->findAll();
+ public function getEmpCount($id = null)
+ {
- $emp_count = count($data);
+ $data = $this->employeePolicyModel->select('employee_polices.id')
+ ->where('employee_polices.is_active', 1)
+ ->where('employee_polices.client_policy_id', $id)
+ ->findAll();
- if($data){
- return $this->respond(['dataStatus' => true, 'code' => 200, 'emp_count' => $emp_count], 200);
-
- }else{
-
- return $this->respond(['dataStatus' => false, 'code' => 404], 404);
-
- }
+ $emp_count = count($data);
+ 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
$file_data = $this->fileModel->find($file_id);
$error = json_decode($file_data['reason']);
- // echo '';
- // print_r($error); die;
- // dd($error);
-
- // Check if the file exists
- if (!$file_data) {
- $error_message = "File not found";
- $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
- return $error_message;
- }
-
- $fileName = $file_data['file_name'];
- $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
-
- // Check if the file exists
- if (!file_exists($filePath)) {
- $error_message = "File not found";
- $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
- return $error_message;
- }
-
- // Load the Excel file
- $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
- $sheet = $spreadsheet->getActiveSheet();
-
- // echo '';
-
- foreach ($error->error_data as $index => $error_data) {
-
- $rowIndex = $index+1;
-
- if( $error->error_type == 1 ){
-
- foreach ($error_data as $key => $value) {
-
- $colIndex = $value->col_idx+1;
-
- $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
-
- $newValue = implode(', ',$value->error);
- $val = $originalValue . ' ( ' . $newValue . ' )';
- $sheet->setCellValue([$colIndex, $rowIndex], $val);
-
- $style = [
- 'fill' => [
- 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
- 'startColor' => ['rgb' => 'ffad99'] // Red color
- ]
- ];
-
- $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
-
- }
- }else if( $error->error_type == 2){
-
-
- foreach ($error_data as $key => $value) {
-
-
- $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
-
- $newValue = implode(', ',$value->error);
- $val = $originalValue . ' ( ' . $newValue . ' )';
- $sheet->setCellValue([$colIndex, $rowIndex], $val);
-
- $style = [
- 'fill' => [
- 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
- 'startColor' => ['rgb' => 'ffad99'] // Red color
- ]
- ];
- $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
-
- }
-
- }
+ // echo '';
+ // print_r($error); die;
+ // dd($error);
+ // Check if the file exists
+ if (!$file_data) {
+ $error_message = "File not found";
+ $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+ return $error_message;
}
-
-
- // Create a new filename for the modified Excel file
- $newFileName = 'error_with_highlight_' . $fileName;
-
- // Save the modified Excel file to a new location
- $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
- $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
- $writer->save($newFilePath);
-
- // Set headers to force download
- $response = service('response');
- $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
- $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
- $response->setHeader('Cache-Control', 'max-age=0');
- $response->setHeader('Content-Length', filesize($newFilePath));
- $response->setBody(file_get_contents($newFilePath));
-
- // Delete the temporary file
- unlink($newFilePath);
-
- // Return the response
- return $response;
+ $fileName = $file_data['file_name'];
+ $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
+
+ // Check if the file exists
+ if (!file_exists($filePath)) {
+ $error_message = "File not found";
+ $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+ return $error_message;
+ }
+
+ // Load the Excel file
+ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
+ $sheet = $spreadsheet->getActiveSheet();
+
+ // echo '';
+
+ foreach ($error->error_data as $index => $error_data) {
+
+ $rowIndex = $index + 1;
+
+ if ($error->error_type == 1) {
+
+ foreach ($error_data as $key => $value) {
+
+ $colIndex = $value->col_idx + 1;
+
+ $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
+
+ $newValue = implode(', ', $value->error);
+ $val = $originalValue . ' ( ' . $newValue . ' )';
+ $sheet->setCellValue([$colIndex, $rowIndex], $val);
+
+ $style = [
+ 'fill' => [
+ 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+ 'startColor' => ['rgb' => 'ffad99'] // Red color
+ ]
+ ];
+
+ $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+ }
+ } else if ($error->error_type == 2) {
+
+
+ foreach ($error_data as $key => $value) {
+
+
+ $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
+
+ $newValue = implode(', ', $value->error);
+ $val = $originalValue . ' ( ' . $newValue . ' )';
+ $sheet->setCellValue([$colIndex, $rowIndex], $val);
+
+ $style = [
+ 'fill' => [
+ 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+ 'startColor' => ['rgb' => 'ffad99'] // Red color
+ ]
+ ];
+ $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+ }
+ }
+ }
+
+
+
+ // Create a new filename for the modified Excel file
+ $newFileName = 'error_with_highlight_' . $fileName;
+
+ // Save the modified Excel file to a new location
+ $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
+ $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
+ $writer->save($newFilePath);
+
+ // Set headers to force download
+ $response = service('response');
+ $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+ $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
+ $response->setHeader('Cache-Control', 'max-age=0');
+ $response->setHeader('Content-Length', filesize($newFilePath));
+ $response->setBody(file_get_contents($newFilePath));
+
+ // Delete the temporary file
+ unlink($newFilePath);
+
+ // Return the response
+ return $response;
}
+
public function generateIDCardForEmployee($rand_string)
{
- $get_emp_code_and_client_policy_id = $this->employeePolicyModel
- ->select('employee_polices.client_policy_id, employees.emp_code')
- ->join('employees', 'employees.id = employee_polices.employee_id')
- ->where('employees.emp_status', 'active')
- ->where('employees.is_active', '1')
- ->where('employee_polices.status', 'active')
- ->where('employee_polices.is_active', '1')
- ->where('employee_polices.rand_string', $rand_string)->first();
- if($get_emp_code_and_client_policy_id == null || $get_emp_code_and_client_policy_id == ""){
+ try {
- $data['message'] = 'Record Not Found';
- return view('errors/404', $data);
+ $get_emp_code_and_client_policy_id = $this->employeePolicyModel
+ ->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);
- $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);
+ if ($get_emp_code_and_client_policy_id == null || $get_emp_code_and_client_policy_id == "") {
- $dompdf = new Dompdf();
- $dompdf->loadHtml($html);
- $dompdf->setPaper('A4', 'landscape');
- $dompdf->render();
-
- $filename = 'ECard.pdf'; // Default filename
-
- foreach ($data['data'] as $key => $value) {
-
- if ($value['relationship'] == "Self") {
-
- $filename = $value['tpa_id']; // Update filename if relationship is "Self"
-
- } elseif (!empty($value['tpa_id']) && $filename == 'ECard.pdf') {
-
- $filename = $value['tpa_id'];
+ $data['message'] = 'Record Not Found';
+ return view('errors/404', $data);
}
- }
- $dompdf->stream($filename);
+ $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);
+ $data = $this->employeePolicyModel->getECardDataUsingMd5($client_policy_id, $emp_code);
+
+ $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;
+
+ if (!file_exists($final_path)) {
+
+ $data['message'] = 'Record Not Found';
+ return view('errors/404', $data);
+ }
+
+ $tmplt_data = file_get_contents($final_path);
+
+
+ $html = ""; // Initialize the HTML variable
+ foreach ($data as $key => $value) {
+
+ // 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 '' . $html . '
+ ';
+
+
+
+ // $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);
+ }
}
+
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);
- // $file_id = 112;
- $file = $this->fileModel->find($file_id);
- // $file['action'] = 'si_enhancement';
- // $result = [];
- // !dd($file);
- 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']);
+ $file_id = $this->request->uri->getSegment(3);
+ // $file_id = 112;
+ $file = $this->fileModel->find($file_id);
+ // $file['action'] = 'si_enhancement';
+ // $result = [];
+ // !dd($file);
+ 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))
- {
- return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'File data already processed'], 200);
- }
- else
- {
+ if (count($result)) {
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200);
+ } else {
//update emp and emp plocies
$db = db_connect();
@@ -916,41 +972,69 @@ 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' => round($affectedRows/2)], 200);
- }
- }
- else if($file['action'] == 'si_enhancement' || $file['action'] == 'correction' || $file['action'] == 'deletion')
- {
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => round($affectedRows / 2)], 200);
+ }
+ } 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()
- ->where('emp_endorsement.endorsement_id is not null')
- ->orwhereIn('emp_endorsement.status',['complete'])
- ->groupEnd()
- ->get()
- ->getResult();
+ ->where('emp_endorsement.file_id', $file_id)
+ ->groupStart()
+ ->where('emp_endorsement.endorsement_id is not null')
+ ->orwhereIn('emp_endorsement.status', ['complete'])
+ ->groupEnd()
+ ->get()
+ ->getResult();
// print_r($this->empEndorsementModel->getLastQuery());
- // echo $res[0]->count;die();
- if($res[0]->count == 0)
- {
+ // echo $res[0]->count;die();
+ if ($res[0]->count == 0) {
//update truncated status to db
- $this->empEndorsementModel->where('file_id',$file_id)
- ->set(['status' => 'truncated'])
- ->update();
+ $this->empEndorsementModel->where('file_id', $file_id)
+ ->set(['status' => 'truncated'])
+ ->update();
//update file status
$this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
- return $this->respond(['dataStatus' => true,'code' => 200,'data' => 'success'], 200);
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'success'], 200);
+ } else {
+ return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200);
}
- else
- {
- return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'File data already processed'], 200);
- }
- }
-
+ }
}
-
-
-
-
-
-}
\ No newline at end of file
+
+
+ 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;
+
+
+ }
+
+}
diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index f1486087..3c8a145d 100644
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -9,10 +9,13 @@ use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
+use App\Helpers\sendMailNotification;
+
use App\Models\EmployeeModel;
use App\Models\EmployeePolicyModel;
use App\Models\ClientModel;
+use App\Models\ClientRMModel;
use App\Models\PolicesModel;
use App\Models\RelationshipModel;
use App\Models\FileModel;
@@ -21,6 +24,7 @@ use App\Models\PolicyPremium1Model;
use App\Models\PolicyPremium2Model;
use App\Models\PolicyTypeModel;
use App\Models\NotificationModel;
+use App\Models\UserModel;
use App\Controllers\Jobs ;
use App\Controllers\JobWorker ;
@@ -43,6 +47,7 @@ class EmployeeRestController extends AdminController
protected $employeeModel;
protected $employeePolicyModel;
protected $clientModel;
+ protected $clientRMModel;
protected $fileModel;
protected $policesModel;
protected $relationshipModel;
@@ -51,6 +56,7 @@ class EmployeeRestController extends AdminController
protected $policyPremium2Model;
protected $policyTypeModel;
protected $notificationModel;
+ protected $userModel;
public function __construct()
{
@@ -60,6 +66,7 @@ class EmployeeRestController extends AdminController
$this->employeeModel = new EmployeeModel();
$this->employeePolicyModel = new EmployeePolicyModel();
$this->clientModel = new ClientModel();
+ $this->clientRMModel = new ClientRMModel();
$this->policesModel = new PolicesModel();
$this->relationshipModel = new RelationshipModel();
$this->fileModel= new FileModel();
@@ -68,6 +75,7 @@ class EmployeeRestController extends AdminController
$this->policyPremium2Model = new PolicyPremium2Model();
$this->policyTypeModel = new PolicyTypeModel();
$this->notificationModel = new NotificationModel();
+ $this->userModel = new UserModel();
}
@@ -307,7 +315,7 @@ class EmployeeRestController extends AdminController
->where('client_policy_id',$value['policy_details']['client_policy_id'] )
->where('employee_id' , $value['temp']['emp_id'] )
->where('is_active', 1 )
- ->set(array('premium'=> $value['policy_details']['premium'] , 'gst'=> $value['policy_details']['gst'] ))
+ ->set(array('premium'=> $value['policy_details']['premium'] , 'rata_premimum'=> $value['policy_details']['rata_premimum'] , 'gst'=> $value['policy_details']['gst'] ))
->update();
}
@@ -870,36 +878,14 @@ class EmployeeRestController extends AdminController
if ($notification['enabled'] == 1) {
//trigger
if ($dataToInsert[$a]['relationship'] == 'Self') {
- $mail = $dataToInsert[$a]['email_corporate'];
-
-
- $subject = $notification['subject'];
- // $subject = 'Welcome, Employee Benefit Program Enrolment';
- // $message = 'Dear ' . $dataToInsert[$a]['name'] . ",
We are glad to welcome you to the employee benefit program ," .$policy_name['name'] ."offered by your employer,
Click on the link below to review your personal and family details:
Review Details" ;
- // $data['employee_name']=$dataToInsert[$a]['name'];
- $data['policy_name']=$policy['name'];
- // $data['App_Url'] = $_ENV['App_Url'];
- $app_link = $_ENV['App_Url'];
- $employee_name =$dataToInsert[$a]['name'];
-
-
- $mail_content = $notification['mail_content'];
-
- $nhance_logo = $_ENV['NHANCE_LOGO'];
-
-
- $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
- $mail_content = str_replace("[[user_name]]", $employee_name, $mail_content);
- $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
-
- $message = $mail_content;
- if ($dataToInsert[$a]['relationship'] == 'Self' && $mail != null || $mail != '') {
- $count++;
- $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $message,'cc'=> $client_data['common_mails']];
- }
+ $params['dataToInsert'] = $dataToInsert[$a];
+ $params['notification'] = $notification;
+ $params['client_data'] = $client_data;
+
+ $wholeData[] = sendMailNotification::sendMailNotification('member_welcome_mail', $params);
+ $count++;
}
-
if($count == 20 || $a == count($dataToInsert)-1){
$job_details = new Jobs();
$r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]);
@@ -978,6 +964,7 @@ public function getEmployeePolicy()
// Filter employee data where the family_floater_key is 'self'
$selfData = array_filter($empData, fn($arr) => trim(strtolower($arr['family_floater_key'])) === 'self');
+ $employee_policy = $this->employeePolicyModel->where('employee_id',$selfData[0]['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow();
$self['is_value_exist'] = true;
$self['data']['family_floater_key'] = 'self';
@@ -987,6 +974,7 @@ public function getEmployeePolicy()
$self['data']['dob'] = $this->convertDateFormatDMY($selfData[0]['dob']);
$self['data']['mobile'] = $selfData[0]['mobile'];
$self['data']['client_policy_id'] = $array->ClientPolicyId;
+ $self['data']['basic_cover_si'] = $employee_policy->basic_cover_si;
$array->mapped_family_floaters = $self;
@@ -1025,6 +1013,7 @@ public function getEmployeePolicy()
if(count($empData)){
foreach ($empData as $key => $value) {
if ($value['family_floater_key'] === $dependent) {
+ $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow();
$temp['is_value_exist'] = true;
$temp['data']['family_floater_key'] = $familyFloatesValue;
$temp['data']['employee_id'] = $value['id'];
@@ -1032,7 +1021,12 @@ public function getEmployeePolicy()
$temp['data']['name'] = $value['name'];
$temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']);
$temp['data']['client_policy_id'] = $array->ClientPolicyId;
- $temp['data']['form_type'] = $dependent;
+ $temp['data']['form_type'] = $dependent;
+ $temp['data']['basic_cover_si'] = $employee_policy->basic_cover_si;
+ $ageKey = ($dependent == 'parent' || $dependent == 'parent_in_law') ? 'elders' : $dependent;
+
+ $temp['data']['age_validation'] = $decodedArray->age_ratio->$ageKey;
+
array_push($data,$temp);
unset($empData[$key]);
$floters = array_diff($floters, [$familyFloatesValue]);
@@ -1041,7 +1035,9 @@ public function getEmployeePolicy()
}
}
}
-
+ // dd($data);
+
+
// Remove Unwanted floter key from floters array based on either-parents-pil term value
if($familyFloates->{'either-parents-pil'} == 1 && count($floters))
{
@@ -1176,13 +1172,16 @@ public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
// Convert familyFloaters terms data to plain array
$floters = $this->FloterConvertion($familyFloates);
-
$data = [];
foreach ($floters as $familyFloatesValue) {
$dependent = preg_replace('/\d/', '', $familyFloatesValue);
+
+
if(count($empData)){
foreach ($empData as $key => $value) {
if ($value['family_floater_key'] === $dependent) {
+ $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow();
+ // dd( $employee_policy);
$temp['is_value_exist'] = true;
$temp['data']['family_floater_key'] = $familyFloatesValue;
$temp['data']['employee_id'] = $value['id'];
@@ -1190,7 +1189,11 @@ public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
$temp['data']['name'] = $value['name'];
$temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']);
$temp['data']['client_policy_id'] = $array->ClientPolicyId;
- $temp['data']['form_type'] = $dependent;
+ $temp['data']['form_type'] = $dependent;
+ $temp['data']['basic_cover_si'] = $employee_policy->basic_cover_si;
+ $ageKey = ($dependent == 'parent' || $dependent == 'parent_in_law') ? 'elders' : $dependent;
+ $temp['data']['age_validation'] = $array->Policy_Terms->age_ratio->$ageKey;
+
array_push($data,$temp);
unset($empData[$key]);
$floters = array_diff($floters, [$familyFloatesValue]);
@@ -1329,6 +1332,7 @@ public function getAddOnPolicy()
if(count($clientPolicy))
{
+ $band = $addOnEmployeeData = $this->employeeModel->where('is_active', 1 )->where('emp_code',$this->request->getGet('emp_code'))->where('client_id',$this->request->getGet('client_id'))->where('family_floater_key','self')->get()->getRow()->band;
$PolicyData = [];
foreach ($clientPolicy as $key => $array) {
$responce = [];
@@ -1336,9 +1340,26 @@ public function getAddOnPolicy()
$decodedArray = json_decode($array['policy_terms']);
$policy_terms = $decodedArray;
$getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array['id'],$array['client_id']);
+ $uniqueData = [];
+ $siValues = [];
+ foreach ($getSlabAndGridData['slab_rates'] as $item) {
+ if($getSlabAndGridData['grid_master']['emp_band'] == 1 ){
+ if ($item['grade'] == $band) {
+ $uniqueData[] = $item;
+ }
+ }else{
+ if (!in_array($item['si'], $siValues)) {
+ $uniqueData[] = $item;
+ $siValues[] = $item['si'];
+ }
+ }
+
+ }
+
+
$responce['policy_name'] = $this->policesModel->where('id',$array['policy_id'])->get()->getRow()->name;
- $responce['SlabRates'] = $getSlabAndGridData['slab_rates'];
+ $responce['SlabRates'] = $uniqueData;
$responce['GridMaster'] = $getSlabAndGridData['grid_master'];
$responce['client_id'] = $array['client_id'];
$responce['client_policy_id'] = $array['id'];
@@ -1489,11 +1510,12 @@ public function getAddOnPolicy()
}else if($array['is_addon'] == 2 && $array['policy_type_id'] == 4)//Topup policy
{
+
$whereArray = [];
foreach ( $decodedArray->family_floaters as $key => $value) {
if($value != 0){
- if($key == 'parents'){ $text = 'parent'; }else if($key == 'childrens'){ $text = 'child'; }else{ $text = $key; }
+ if($key == 'parents'){ $text = 'parent'; }else if($key == 'childrens'){ $text = 'child'; }else if($key == 'parents-in-law'){$text = 'parent_in_law';}else{ $text = $key; }
array_push($whereArray,$text);
}
}
@@ -1512,7 +1534,7 @@ public function getAddOnPolicy()
$employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow();
if(isset($employee_policy->basic_cover_si)){ $only_si_value = $employee_policy->basic_cover_si; }
- if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->premium;}
+ if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum;}
if(isset($employee_policy->gst)){ $only_si_gst_value = $only_si_gst_value + $employee_policy->gst;}
$temp3['is_value_exist'] = true;
$temp3['data']['employee_id'] = $value['id'];
@@ -1543,7 +1565,7 @@ public function getAddOnPolicy()
$whereArray = [];
foreach ( $decodedArray->family_floaters as $key => $value) {
if($value != 0){
- if($key == 'parents'){ $text = 'parent'; }else if($key == 'childrens'){ $text = 'child'; }else{ $text = $key; }
+ if($key == 'parents'){ $text = 'parent'; }else if($key == 'childrens'){ $text = 'child'; }else if($key == 'parents-in-law'){$text = 'parent_in_law';}else{ $text = $key; }
array_push($whereArray,$text);
}
}
@@ -1561,7 +1583,7 @@ public function getAddOnPolicy()
$employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow();
if(isset($employee_policy->basic_cover_si)){ $only_si_value = $employee_policy->basic_cover_si; }
- if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->premium;}
+ if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum;}
if(isset($employee_policy->gst)){ $only_si_gst_value = $only_si_gst_value + $employee_policy->gst;}
$temp3['is_value_exist'] = true;
$temp3['data']['employee_id'] = $value['id'];
@@ -1603,9 +1625,9 @@ public function getAddOnPolicy()
public function iAgreeForAddOn()
{
-
$postData = json_decode($this->request->getBody(), true);
+
$client_policy_id = $postData['client_policy_id'];
$emp_code = $postData['emp_code'];
$client_id = $postData['client_id'];
@@ -1618,15 +1640,41 @@ public function iAgreeForAddOn()
if (!is_null($client_policy_id) && is_array($client_policy_id))
{
+ $array_list = [];
foreach ($client_policy_id as $key => $value)
{
$this->employeePolicyModel->where('client_policy_id', $value )
->where('is_active', 1 )
->set(array('status'=>'enrolled'))
->update();
+ $find = $this->employeeModel->getEmpFamilybyEmpCode(client_policy_id: $value,emp_code: $emp_code,client_id: $client_id,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']);
+ $array_list[] = $find;
}
+ $params ['array_list'] = $array_list;
+ $params ['client_policy_id'] = $client_policy_id;
+ $params ['emp_code'] = $emp_code;
+ $params ['client_id'] = $client_id;
+ $wholeData =sendMailNotification::sendMailNotification('member_review_and_summary_mail', $params);
+
+ MailHelper::send_email($wholeData[0]);
+
+ if (isset($wholeData[0])) {
+
+ $account_manager_wholeData =sendMailNotification::sendMailNotification('account_maneger_summary_mail', $params);
+
+ foreach ($account_manager_wholeData as $key => $value) {
+ MailHelper::send_email($value);
+ }
+
+ $client_hr_wholeData =sendMailNotification::sendMailNotification('client_hr_summary_mail', $params);
+
+ foreach ($client_hr_wholeData as $key => $value) {
+ MailHelper::send_email($value);
+ }
+ }
+
}
-
+
return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200);
}
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index 48b19e71..ffdc8372 100644
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -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'];
@@ -263,19 +266,14 @@ class EmployeeServiceController extends AdminController
$result['error_summary'] = array_count_values($result['error_summary']);
$status = 'failed';
$failure_reason = ((json_encode($result)));
- $this->fileModel->where('id', $file_id)->set(['status' => $status,'reason' => $failure_reason])->update();
+ $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
{
//proceed next data level validation in JOB queue
$job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'excelFileDataValidation','payload' => ['file_id' => $file_id]]);
+ $r = Jobs::addJob(['job_name' => 'excelFileDataValidation','payload' => ['file_id' => $file_id]]);
// $jobWorker = new JobWorker();
// JobWorker::processJob($r);
}
@@ -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);
@@ -385,6 +383,18 @@ class EmployeeServiceController extends AdminController
$result['error_data'][ $res['row_id'] ]['sno']['error'][] = "Self not found ";
}
}
+
+ //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')
@@ -460,9 +470,8 @@ class EmployeeServiceController extends AdminController
else //inception OR addition OR dependent addition
{
//proceed next data level validation in JOB queue
- $job_details = new Jobs();
-
- $r = Jobs::addJob(['job_name' => 'employeesOnboardPreprocess','payload' => ['file_id' => $file_id]]);
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'employeesOnboardPreprocess','payload' => ['file_id' => $file_id]]);
// $jobWorker = new JobWorker();
// JobWorker::processJob($r);
}
diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php
index 3ec5bec3..a2c011a2 100644
--- a/app/Controllers/MasterController.php
+++ b/app/Controllers/MasterController.php
@@ -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,11 +510,23 @@ 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 "";
// 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');
diff --git a/app/Controllers/NotificationController.php b/app/Controllers/NotificationController.php
index 09938242..e0a6280c 100644
--- a/app/Controllers/NotificationController.php
+++ b/app/Controllers/NotificationController.php
@@ -10,82 +10,75 @@ use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use CodeIgniter\API\ResponseTrait;
-
+use App\Controllers\Jobs ;
use App\Models\NotificationModel;
use App\Models\ClientModel;
+use App\Models\EmployeeModel;
+use App\Models\UserModel;
+use App\Helpers\sendMailNotification;
class NotificationController extends AdminController
{
use ResponseTrait;
-
protected $myLogger;
protected $notificationModel;
public function __construct()
{
- // set_session_context('Client');
$this->myLogger = \Config\Services::mylogger();
-
$this->notificationModel = new NotificationModel();
}
- public function index()
- {
-
- }
-
- public function camelCaseToSnakeCase($input) {
+ // This is for Template Name Camel Case to Snake Case for store in DB
+ public function camelCaseToSnakeCase($input)
+ {
$input = preg_replace('/(?request->getPost());
-
- $data['template_name'] = $this->camelCaseToSnakeCase($this->request->getPost('template_name'));
- $data['subject'] = $this->request->getPost('subject');
- $data['mail_content'] = $this->request->getPost('editorContent');
- $data['client_id'] = $this->request->getPost('client_id');
+ // Create Or Update the Notification
+ public function createNotification()
+ {
+ $form_data['template_name'] = $this->camelCaseToSnakeCase($this->request->getPost('template_name'));
+ $form_data['subject'] = $this->request->getPost('subject');
+ $form_data['mail_content'] = $this->request->getPost('mailContent');
+ $form_data['client_id'] = $this->request->getPost('client_id');
$notificationModel = new NotificationModel();
- $find = $notificationModel->where('client_id',$data['client_id'])->where('template_name',$data['template_name'])->first();
- if ($find) {
- // print_r($find['id']);
- $id = $find['id'];
- $notificationModel->update($id,$data);
+ $find_notification = $notificationModel->where('client_id',$form_data['client_id'])->where('template_name',$form_data['template_name'])->first();
+ if ($find_notification) {
+ $id = $find_notification['id'];
+ $form_data['updated_by'] = get_session_userid();
+ $notificationModel->update($id,$form_data);
$complete = "Update";
}else{
- $notificationModel->insert($data);
+ $form_data['created_by'] = get_session_userid();
+ $notificationModel->insert($form_data);
$complete = "Inserted";
}
return json_encode($complete);
}
-
- public function update_enable(){
-
-
- // print_r();die;
-
+ // This is for the Enabls in Notification area and Update the Recipient and HR Mail Id in( Enables -> Notification table and Mail id's -> Client table)
+ public function update_enable()
+ {
$checkboxNames = [
'member_welcome_mail_btn',
- 'member_remider_mail_btn',
+ 'member_reminder_mail_btn',
'member_ecard_mail_btn',
'member_review_and_summary_mail_btn',
'account_maneger_summary_mail_btn',
'client_hr_summary_mail_btn'
];
-
$data = [];
-
- foreach ($checkboxNames as $checkboxName) {
+
+ foreach ($checkboxNames as $checkboxName)
+ {
$data[str_replace('_btn', '', $checkboxName)] = ($this->request->getPost($checkboxName) === "true") ? 1 : 0;
}
@@ -93,37 +86,74 @@ class NotificationController extends AdminController
$clientModel = new ClientModel();
$id =$this->request->getPost('client_id');
-
- $clientData['common_mails'] = $this->request->getPost('recipient_mail_ids');
+ $clientData['common_mails'] = $this->request->getPost('nhance_team_mail_ids');
+ $clientData['hr_mails'] = $this->request->getPost('hr_mail_id');
$clientModel->update($id,$clientData);
- foreach ($data as $key => $value) {
-
+ foreach ($data as $key => $value)
+ {
$find = $notificationModel->where('client_id',$this->request->getPost('client_id'))->where('template_name', $key)->first();
-
- if ($find) {
+ if ($find)
+ {
$id = $find['id'];
$changeData['enabled']= $value;
$update = $notificationModel->update($id, $changeData);
}
-
}
-
return json_encode("true");
}
- public function getMailTemplateData($template_name,$client_id){
-
+ // This for Load the Template Data for in View Page
+ public function getMailTemplateData($template_name,$client_id)
+ {
$notificationModel = new NotificationModel();
$value = $notificationModel->where('client_id',$client_id)->where('template_name',$template_name)->first();
- // print_r($value);die;
return json_encode($value);
}
+ // This will send the Reminder Mail
+ public function reminder_mail()
+ {
+ $clientModel = new ClientModel();
+ $employeeModel = new EmployeeModel();
+ $notificationModel = new NotificationModel();
+
+ $client_list = $clientModel->where('is_active',1)->findAll();
+ $wholeData = [];
+ foreach($client_list as $key=>$value){
+ $notification_data = $notificationModel->where('client_id',$value['id'])->where('template_name', 'member_reminder_mail')->first();
-
+ $client_data = $clientModel->where('id', $value['id'])->first();
+ if(isset($notification_data) && $notification_data['enabled'] == 1){
+ $emp_data = $employeeModel->where('client_id', $value['id'])->where('is_active',1)->where('emp_status','draft')->findAll();
+ if( count($emp_data) != 0)
+ {
+ $params['emp_data'] = $emp_data;
+ $params['client_data'] = $client_data;
+ $params['notification_data'] = $notification_data;
+ $wholeData[] =sendMailNotification::sendMailNotification('member_reminder_mail', $params);
+ }
+ }
+ }
+
+ $count = 0;
+ foreach ($wholeData as $index => $values) {
+ $whole_index = $index;
+ foreach ($values as $index => $value) {
+ $count++;
+ $temp_whole_data[] = $value;
+ if($count == 20 || $whole_index == count($wholeData)-1 && $index == count($values)-1){
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $temp_whole_data]);
+
+ $temp_whole_data = [];
+ $count = 0;
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/Helpers/MailHelper.php b/app/Helpers/MailHelper.php
index 8b053a7b..55d17264 100644
--- a/app/Helpers/MailHelper.php
+++ b/app/Helpers/MailHelper.php
@@ -17,10 +17,15 @@ class MailHelper
public static function send_email($params)
{
+ // print_r($params);die;
$emaill = $params['mail'];
$subject = $params['subject'];
$message = $params['message'];
- $cc = $params['cc'];
+ if (isset($params['bcc'])) {
+ $bcc = $params['bcc'];
+ }else{
+ $bcc= '';
+ }
try {
$email = \Config\Services::email();
@@ -29,11 +34,14 @@ class MailHelper
$email->setTo($emaill);
- $ccList = explode(',', $cc);
-
- // if (empty($cc)) {
- $email->setCC($cc);
- // }
+ if (!empty($bcc)) {
+ // Convert the comma-separated string into an array
+ $bccList = explode(',', $bcc);
+ // Trim whitespace from each email ID
+ $bccList = array_map('trim', $bccList);
+ // Set BCC recipients
+ $email->setBCC($bccList);
+ }
$email->setSubject($subject);
diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index 35ccad7e..26fc7dc2 100644
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -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 '
';
$currentDateTime = new DateTime();//die();
$passedDateTime = new DateTime($dob);
$interval = $currentDateTime->diff($passedDateTime);
- // echo $row[0].' - '.$row[3].' - '.$interval->y;echo '
';
- 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 '
';
$currentDateTime = new DateTime();//die();
+ // print_r($currentDateTime);
+ // die();
$passedDateTime = new DateTime($dob);
+ // 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..!';
@@ -1204,4 +1233,52 @@ 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;
+ }
}
\ No newline at end of file
diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php
new file mode 100644
index 00000000..f93e79f6
--- /dev/null
+++ b/app/Helpers/sendMailNotification.php
@@ -0,0 +1,413 @@
+", $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content);
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+ if ($dataToInsert['relationship'] == 'Self' && $mail != null || $mail != '') {
+ $wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails']];
+ }
+ return $wholeData;
+ } else if($action == 'member_reminder_mail'){
+
+ // print_r($params);die;
+ $EmployeeModel = new EmployeeModel();
+ $emp_data = $params['emp_data'];
+ $notification_data = $params['notification_data'];
+ $client_data = $params['client_data'];
+
+ $subject = $notification_data['subject'];
+ $app_link = $_ENV['App_Url'];
+ $mail_content = $notification_data['mail_content'];
+ $nhance_logo = $_ENV['NHANCE_LOGO'];
+
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ if ($emp_data && (isset($notification_data) && $notification_data['enabled'] == 1)) {
+ foreach ($emp_data as $key => $value) {
+ if ($value['relationship'] != 'Self') {
+
+ $emp_data = $EmployeeModel->where('client_id', $client_data['id'])->where('emp_code', $value['emp_code'])->where('is_active',1)->findAll();
+
+ foreach ($emp_data as $key => $value) {
+ if ($value['relationship'] == 'Self') {
+ $employee_name =$value['name'];
+ $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content);
+
+ $mail = $value['email_corporate'];
+ }
+ }
+ }else{
+ $employee_name =$value['name'];
+ $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content);
+ $mail = $value['email_corporate'];
+ }
+ $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+ }
+ return $wholeData;
+ }else{
+ return "false";
+ }
+ } else if($action == 'member_ecard_mail'){
+
+ $notification = $params['notification'];
+ $get_emp_email_and_other_details = $params['get_emp_email_and_other_details'];
+ $rand_string = $params['rand_string'];
+ $client_data = $params['client_data'];
+ $tpa_id = $params['tpa_id'];
+
+
+ $mail_content = $notification['mail_content'];
+ $mail = $get_emp_email_and_other_details['email_corporate'];
+ $subject = $notification['subject'];
+ $link = generate_download_link($rand_string);
+ $app_link = $_ENV['App_Url'];
+ $name = $get_emp_email_and_other_details['name'];
+ $mail_content = $notification['mail_content'];
+ $nhance_logo = $_ENV['NHANCE_LOGO'];
+
+ $client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
+ // $client_logo = $nhance_logo;
+
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+
+ $mail_content = str_replace("[[member_name]]", $name, $mail_content);
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+ // $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content);
+ $mail_content = str_replace("[[ecard_download_link]]", "Download Insurance Card", $mail_content);
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+
+ $wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails']];
+
+ return $wholeData;
+ } else if($action == 'member_review_and_summary_mail'){
+
+ $array_list = $params['array_list'];
+ $client_policy_id = $params['client_policy_id'];
+ $emp_code = $params['emp_code'];
+ $client_id = $params['client_id'];
+
+ $clientModel = new ClientModel();
+ $notificationModel = new NotificationModel();
+
+ $client_data =$clientModel->where('id', $client_id)->first();
+ $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
+
+ if ($notification_data['enabled'] == 1) {
+ $mail_content = $notification_data['mail_content'];
+ $subject = $notification_data['subject'];
+ $app_link = $_ENV['App_Url'];
+ $nhance_logo = $_ENV['NHANCE_LOGO'];
+
+ $client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
+ // $client_logo = $nhance_logo;
+
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ // Step 1: Replace the placeholder with an HTML table structure
+ $mail = '';
+ // print_r($array_list);die;
+ $table_content = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ foreach ($array_list as $item) {
+ $table_content .= 'Policy Name : ';
+ $temp_data ='';
+ foreach ($item as $inner_item) {
+ $policy_name = $inner_item['policy_name'];
+ $temp_data .= '| ' . $inner_item['name'] . ' | '.$inner_item['mobile'].' | ₹'.number_format($inner_item['basic_cover_si'], 2, '.', ',').' | '.\DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y').' |
';
+ if($inner_item['relationship'] == 'Self' || $inner_item['relationship'] == 'self'){
+ $mail = $inner_item['email_corporate'];
+ $name = $inner_item['name'];
+ }
+ // print_r($inner_item);die;
+ $is_addon = $inner_item['is_addon'];
+
+ if($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3){
+ $addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
+ $gst = $inner_item['gst'] + $gst;
+ }
+ }
+ $table_content .= $policy_name.'
| Name | Mobile Number | Sum Insure | Date Of Birth |
';
+ $table_content .= $temp_data;
+ $table_content .= '
';
+
+ if ($is_addon == 2 || $is_addon == 3) {
+ $addon_list_array = [
+ 'policy_name'=>$policy_name,
+ 'addtional_premium'=>$addtional_premium,
+ 'gst'=>$gst
+ ];
+ $Addon_list[]= $addon_list_array;
+
+ }
+
+
+ $temp_data = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ }
+
+ $table_content .='
| Policy Name | Additional Premium | GST | Total |
';
+ $sum_tolal = 0;
+ foreach ($Addon_list as $key => $value) {
+ $sum_tolal = $value['gst'] + $value['addtional_premium'] + $sum_tolal;
+ $table_content .= '| '.$value['policy_name'].' | ₹'.$value['addtional_premium'].' | '.$value['gst'].' | '.$value['gst'] + $value['addtional_premium'] .' |
';
+ }
+ $table_content .= ' | | Total | '.$sum_tolal.' |
';
+ $table_content .= '
';
+ $mail_content = str_replace("[[member_name]]", $name, $mail_content);
+
+ $mail_content = str_replace("[[member_summary]]", $table_content , $mail_content);
+ // $mail = "aadhavanvalli@gmail.com";
+
+ $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+
+ return $wholeData;
+
+ }
+ // print_r($wholeData);die;
+ } else if($action == 'account_maneger_summary_mail'){
+
+ $client_id = $params['client_id'];
+
+ $clientModel = new ClientModel();
+
+ $client_data =$clientModel->where('id', $client_id)->first();
+ $notificationModel = new NotificationModel();
+ $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
+ $clientRMModel =new ClientRMModel();
+
+ if ($notification_data['enabled'] == 1) {
+ $client_rm_data= $clientRMModel->where('client_id', $client_id)->where('is_active',1)->findAll();
+ $user_list= [];
+ foreach ($client_rm_data as $key => $value) {
+ if($value['level'] == 3){
+ $userModel = new UserModel();
+ $user_data = $userModel->where('id', $value['user_id'])->first();
+ $user_list[]=$user_data;
+ }
+ }
+
+
+
+ $mail_content = $notification_data['mail_content'];
+ $subject = $notification_data['subject'];
+ $app_link = $_ENV['App_Url'];
+ $nhance_logo = $_ENV['NHANCE_LOGO'];
+
+ $client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
+ // $client_logo = $nhance_logo;
+
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ // Step 1: Replace the placeholder with an HTML table structure
+ $mail = '';
+ // print_r($array_list);die;
+ $table_content = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ $array_list = $params['array_list'];
+
+ foreach ($array_list as $item) {
+ $table_content .= 'Policy Name : ';
+ $temp_data ='';
+ foreach ($item as $inner_item) {
+ $policy_name = $inner_item['policy_name'];
+ $temp_data .= '| ' . $inner_item['name'] . ' | '.$inner_item['mobile'].' | ₹'.number_format($inner_item['basic_cover_si'], 2, '.', ',').' | '.\DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y').' |
';
+ // print_r($inner_item);die;
+ $is_addon = $inner_item['is_addon'];
+
+ if($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3){
+ $addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
+ $gst = $inner_item['gst'] + $gst;
+ }
+ }
+ $table_content .= $policy_name.'
| Name | Mobile Number | Sum Insure | Date Of Birth |
';
+ $table_content .= $temp_data;
+ $table_content .= '
';
+
+ if ($is_addon == 2 || $is_addon == 3) {
+ $addon_list_array = [
+ 'policy_name'=>$policy_name,
+ 'addtional_premium'=>$addtional_premium,
+ 'gst'=>$gst
+ ];
+ $Addon_list[]= $addon_list_array;
+
+ }
+
+
+ $temp_data = '';
+ $addtional_premium = 0;
+ $gst = 0;
+
+ }
+
+ $table_content .='
| Policy Name | Additional Premium | GST | Total |
';
+ $sum_tolal = 0;
+ foreach ($Addon_list as $key => $value) {
+ $sum_tolal = $value['gst'] + $value['addtional_premium'] + $sum_tolal;
+ $table_content .= '| '.$value['policy_name'].' | ₹'.$value['addtional_premium'].' | '.$value['gst'].' | '.$value['gst'] + $value['addtional_premium'] .' |
';
+ }
+ $table_content .= ' | | Total | '.$sum_tolal.' |
';
+ $table_content .= '
';
+
+ $mail_content = str_replace("[[member_summary]]", $table_content , $mail_content);
+
+ $account_manager_mail_list = [];
+ foreach ($user_list as $key => $value) {
+ $full_name = $value['first_name'] .' ' .$value['last_name'];
+ $mail_content = str_replace("[[member_name]]", $full_name , $mail_content);
+
+ $wholeData[] = ['mail' => $value['email'], 'subject' => $subject,'message'=> $mail_content];
+ // $wholeData[] = ['mail' => $value['email'], 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+ }
+ return $wholeData;
+ }
+ } else if($action == 'client_hr_summary_mail'){
+
+ $client_id = $params['client_id'];
+
+ $clientModel = new ClientModel();
+
+ $client_data =$clientModel->where('id', $client_id)->first();
+ $notificationModel = new NotificationModel();
+ $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
+ $clientRMModel =new ClientRMModel();
+
+ if ($notification_data['enabled'] == 1) {
+ $client_rm_data= $clientRMModel->where('client_id', $client_id)->where('is_active',1)->findAll();
+ $user_list= [];
+ foreach ($client_rm_data as $key => $value) {
+ if($value['level'] == 3){
+ $userModel = new UserModel();
+ $user_data = $userModel->where('id', $value['user_id'])->first();
+ $user_list[]=$user_data;
+ }
+ }
+
+
+
+ $mail_content = $notification_data['mail_content'];
+ $subject = $notification_data['subject'];
+ $app_link = $_ENV['App_Url'];
+ $nhance_logo = $_ENV['NHANCE_LOGO'];
+
+ $client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
+ // $client_logo = $nhance_logo;
+
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ // Step 1: Replace the placeholder with an HTML table structure
+ $mail = '';
+ // print_r($array_list);die;
+ $table_content = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ $array_list = $params['array_list'];
+
+ foreach ($array_list as $item) {
+ $table_content .= 'Policy Name : ';
+ $temp_data ='';
+ foreach ($item as $inner_item) {
+ $policy_name = $inner_item['policy_name'];
+ $temp_data .= '| ' . $inner_item['name'] . ' | '.$inner_item['mobile'].' | ₹'.number_format($inner_item['basic_cover_si'], 2, '.', ',').' | '.\DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y').' |
';
+ // print_r($inner_item);die;
+ $is_addon = $inner_item['is_addon'];
+
+ if($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3){
+ $addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
+ $gst = $inner_item['gst'] + $gst;
+ }
+ }
+ $table_content .= $policy_name.'
| Name | Mobile Number | Sum Insure | Date Of Birth |
';
+ $table_content .= $temp_data;
+ $table_content .= '
';
+
+ if ($is_addon == 2 || $is_addon == 3) {
+ $addon_list_array = [
+ 'policy_name'=>$policy_name,
+ 'addtional_premium'=>$addtional_premium,
+ 'gst'=>$gst
+ ];
+ $Addon_list[]= $addon_list_array;
+
+ }
+
+
+ $temp_data = '';
+ $addtional_premium = 0;
+ $gst = 0;
+
+ }
+
+ $table_content .='
| Policy Name | Additional Premium | GST | Total |
';
+ $sum_tolal = 0;
+ foreach ($Addon_list as $key => $value) {
+ $sum_tolal = $value['gst'] + $value['addtional_premium'] + $sum_tolal;
+ $table_content .= '| '.$value['policy_name'].' | ₹'.$value['addtional_premium'].' | '.$value['gst'].' | '.$value['gst'] + $value['addtional_premium'] .' |
';
+ }
+ $table_content .= ' | | Total | '.$sum_tolal.' |
';
+ $table_content .= '
';
+
+ $mail_content = str_replace("[[member_summary]]", $table_content , $mail_content);
+
+
+ $hr_mails = $client_data['hr_mails'];
+ $mail_array = explode(',', $hr_mails);
+ $mail_array = array_map('trim', $mail_array);
+
+ foreach ($mail_array as $key => $value) {
+ $wholeData[] = ['mail' => $value, 'subject' => $subject,'message'=> $mail_content];
+ // $wholeData[] = ['mail' => $value, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+ }
+
+ return $wholeData;
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php
index 7e74234c..220f06f6 100644
--- a/app/Helpers/utility_helper.php
+++ b/app/Helpers/utility_helper.php
@@ -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;
+ }
+}
+
+
diff --git a/app/Models/BatchFileModel.php b/app/Models/BatchFileModel.php
index 5976d6a2..1d2b4a0d 100644
--- a/app/Models/BatchFileModel.php
+++ b/app/Models/BatchFileModel.php
@@ -22,6 +22,8 @@ class BatchFileModel extends Model
"updated_by",
"is_active",
"amount",
+ "status",
+ "error_data",
];
// Callbacks
diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php
index e71c8348..27b48bc9 100644
--- a/app/Models/ClientModel.php
+++ b/app/Models/ClientModel.php
@@ -26,7 +26,8 @@ class ClientModel extends Model
"created_by",
"updated_by",
"is_active",
- "common_mails"
+ "common_mails",
+ "hr_mails"
];
@@ -44,6 +45,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;
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index d0d80b54..291b13f9 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -34,6 +34,7 @@ class ClientPolicyModel extends Model
"policy_terms",
"open_for_enrollment",
"is_addon",
+ "inception_type",
"base_policy",
"created_by",
"updated_by",
@@ -75,12 +76,13 @@ class ClientPolicyModel extends Model
->select('policy_type.policy_type as policy_type_name')
->join('insurers', 'insurers.id = client_policy.insurer_id')
->join('insurer_branch', 'client_policy.insurer_branch_id = insurer_branch.id')
- ->join('tpa', 'tpa.id = client_policy.tpa_id')
- ->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id')
+ ->join('tpa', 'tpa.id = client_policy.tpa_id', 'left')
+ ->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id', 'left')
->join('policies', 'policies.id = client_policy.policy_id')
->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();
diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php
index f67671b3..7ec30755 100644
--- a/app/Models/EmployeeModel.php
+++ b/app/Models/EmployeeModel.php
@@ -96,17 +96,19 @@ 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'])
+ $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','policies.name as policy_name','client_policy.is_addon'])
->join('employee_polices', 'employee_polices.employee_id = employees.id')
+ ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id')
+ ->join('policies', 'policies.id = client_policy.policy_id')
->where('employees.is_active',1)
->when($client_policy_id, function($query) use ($client_policy_id){
return $query->where('employee_polices.client_policy_id',$client_policy_id);
})
-
+
->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 +117,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);
})
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index 0b824d77..ef52cb07 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -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;
+
}
diff --git a/app/Models/InsurerModel.php b/app/Models/InsurerModel.php
index c23804c1..acda3845 100644
--- a/app/Models/InsurerModel.php
+++ b/app/Models/InsurerModel.php
@@ -14,6 +14,7 @@ class InsurerModel extends Model
"category",
"name",
"short_name",
+ "insurer_logo",
"created_by",
"updated_by",
"is_active",
diff --git a/app/Models/PolicyPremium1Model.php b/app/Models/PolicyPremium1Model.php
index 814c0e51..5609ba08 100644
--- a/app/Models/PolicyPremium1Model.php
+++ b/app/Models/PolicyPremium1Model.php
@@ -24,6 +24,7 @@ class PolicyPremium1Model extends Model
"created_by",
"updated_by",
'is_active',
+ 'grade',
'premium_type',
];
diff --git a/app/Models/TPAModel.php b/app/Models/TPAModel.php
index 50bb07b8..215c734d 100644
--- a/app/Models/TPAModel.php
+++ b/app/Models/TPAModel.php
@@ -12,6 +12,9 @@ class TPAModel extends Model
"id",
"name",
"short_name",
+ "front_card",
+ "back_card",
+ "tpa_logo",
"created_by",
"updated_by",
"is_active",
diff --git a/app/Views/batch_list.php b/app/Views/batch_list.php
index dea70840..fd853354 100644
--- a/app/Views/batch_list.php
+++ b/app/Views/batch_list.php
@@ -40,7 +40,7 @@
|
|
- |
+ 5 ? substr($file['file_name'], 0, 10) . "..." : $file['file_name'] ?> |
|
|
|
diff --git a/app/Views/client_basic_info.php b/app/Views/client_basic_info.php
index 3f08c20a..68749f6f 100644
--- a/app/Views/client_basic_info.php
+++ b/app/Views/client_basic_info.php
@@ -203,11 +203,13 @@ input:checked + .slider:before {
document.addEventListener("DOMContentLoaded", function() {
const switchCheckbox = document.getElementById('switch-checkbox');
const switchInner = document.querySelector('.switch-inner');
-
- switchInner.addEventListener('click', function() {
+ if (switchInner) {
+ switchInner.addEventListener('click', function() {
switchCheckbox.checked = !switchCheckbox.checked;
switchInner.style.transform = switchCheckbox.checked ? 'translateX(100%)' : 'translateX(0)';
});
+ }
+
});
diff --git a/app/Views/client_kyc.php b/app/Views/client_kyc.php
index d842b1f4..f53b7c16 100644
--- a/app/Views/client_kyc.php
+++ b/app/Views/client_kyc.php
@@ -176,6 +176,26 @@
$('#name_'+item.kyc_doc_type_id).html(item.file_name);
$('#form_'+item.kyc_doc_type_id).hide();
+ console.log('step 1')
+
+ if(item.file_name != null && item.file_name != ""){
+ console.log('step 2')
+
+ $('#download_'+item.kyc_doc_type_id).show();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '= base_url('download-kyc-docs/') ?>' + item.file_name);
+ $('#delete_'+item.kyc_doc_type_id).show();
+
+ }
+ else{
+ console.log('step 3')
+
+ $('#download_'+item.kyc_doc_type_id).hide();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '#');
+ $('#delete_'+item.kyc_doc_type_id).hide();
+
+ }
+ console.log('step 4')
+
});
},
@@ -212,19 +232,27 @@
var tbody = $('#tbody');
tbody.empty();
- $.each(res.data, function (index, item) {
+ $.each(res.data, function(index, item) {
var row = `
- | ${item.file_name} |
- |
+ ${item.file_name} |
+
+
+ |
|
- |
+
+
+
+ |
`;
tbody.append(row);
});
+
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
@@ -250,7 +278,10 @@
| ${item.other_docs_name} |
${item.file_name} |
- |
+
+
+
+ |
`;
@@ -267,6 +298,29 @@
$('#name_'+item.kyc_doc_type_id).show();
$('#name_'+item.kyc_doc_type_id).html(item.file_name);
$('#form_'+item.kyc_doc_type_id).hide();
+
+ console.log('step 1')
+
+ if(item.file_name != null && item.file_name != ""){
+ console.log('step 2')
+
+ $('#download_'+item.kyc_doc_type_id).show();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '= base_url('download-kyc-docs/') ?>' + item.file_name);
+ $('#delete_'+item.kyc_doc_type_id).show();
+
+
+ }
+ else{
+ console.log('step 3')
+
+ $('#download_'+item.kyc_doc_type_id).hide();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '#');
+ $('#delete_'+item.kyc_doc_type_id).hide();
+
+
+ }
+ console.log('step 4')
+
}, 1000);
});
@@ -335,7 +389,10 @@
| ${item.other_docs_name} |
${item.file_name} |
- |
+
+
+
+ |
`;
}
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index d47726fb..8ee76ec5 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -14,6 +14,7 @@
Policy |
TPA |
Date |
+ Enrollment Status |
Status |
Action |
@@ -79,7 +80,7 @@
-
+
+
+
+
+
+
+
+
@@ -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,15 +247,42 @@
} 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 = 'Open'
+
+
+ }else if(item.open_for_enrollment == 0){
+
+ enrollmentStatus = 'Closed'
+
+ }
+
+ }
+
+ var tpaValue = 'TPA Unavailable';
+
+ if (item.tpa_short && item.tpa_branch_code) {
+ tpaValue = item.tpa_short + '-' + item.tpa_branch_code;
+ }
- console.log('search_term :', search_term)
policyTable += `
| ${item.insurer_short} - ${item.insurer_branch_name} |
${item.policy_name} (${item.policy_type_name}) |
- ${item.tpa_short} - ${item.tpa_branch_code} |
+ ${tpaValue} |
${(item.policy_start_date)} / ${(item.policy_end_date)} |
+ ${(enrollmentStatus)} |
${checkDateStatus(item.policy_end_date, 1)} |
@@ -248,16 +290,7 @@
|
@@ -284,6 +317,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 +331,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,14 +408,41 @@
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 = 'Open'
+
+
+ }else if(item.open_for_enrollment == 0){
+
+ enrollmentStatus = 'Closed'
+
+ }
+
+ }
+
+ var tpaValue = 'TPA Unavailable';
+
+ if (item.tpa_short && item.tpa_branch_code) {
+ tpaValue = item.tpa_short + '-' + item.tpa_branch_code;
+ }
policyTable += `
| ${item.insurer_short} - ${item.insurer_branch_name} |
${item.policy_name} (${item.policy_type_name}) |
- ${item.tpa_short} - ${item.tpa_branch_code} |
+ ${tpaValue} |
${rearrangeDateFormat(item.policy_start_date)} - ${rearrangeDateFormat(item.policy_end_date)} |
+ ${(enrollmentStatus)} |
${checkDateStatus(item.policy_end_date, 1)} |
@@ -368,16 +450,7 @@
|
@@ -408,6 +481,7 @@
}, 1000);
}
});
+
});
$(document).ready(function() {
@@ -461,7 +535,8 @@
'">' + item.name + '( ' + item.policy_type + ' )';
}
} 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 += '';
+ 'selected="selected"' : '') + '>' + item.name + '( ' + item.policy_type + ' )';
});
$('#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 +803,27 @@
});
});
-
$('body').on('click', '.btnOpenEnroll', function() {
Swal.fire({
title: "Are you sure?",
- text: "You need to approve this!",
- icon: "warning",
- showCancelButton: true,
- confirmButtonColor: "#3085d6",
- cancelButtonColor: "#d33",
- confirmButtonText: "Yes, delete it!"
+ text: "You need to approve this!",
+ icon: "info",
+ showCancelButton: true,
+ confirmButtonColor: "#3085d6",
+ 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);
+
+ 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('policy_id', policy_id)
+ console.log('client_id', client_id)
if (client_policy_id) {
$('.loader').fadeIn();
@@ -671,30 +837,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('Open Enrollment');
+ $(element).html('Open');
}
});
+
} else {
+
$('.btnOpenEnroll').each(function(index, element) {
if ($(element).data('id') == client_policy_id) {
- $(element).css({
- 'background-color': '',
- });
- $(element).html('Open Enrollment');
+ $(element).html('Closed');
}
});
}
@@ -734,6 +898,7 @@
});
+
function appendPolicyFormFields(policy_type, data = false) {
var html = '';
@@ -1028,6 +1193,10 @@
gpaSumInsureMultiplier(input);
}
+ if (input.id == 'gpa_sum_si2') {
+ gpaSumInsureMultiplier(input);
+ }
+
// if(input.id == 'basic_pay'){
// var inputNumber = input.value;
// if (inputNumber) {
@@ -1133,11 +1302,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 +1317,7 @@
$('#first').show();
$('#second').show();
+ $('#third').show();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
}
@@ -1176,9 +1348,22 @@
var OptionsHTML = '';
OptionsHTML += '';
$.each(res.data, function(index, item) {
- OptionsHTML += '';
+ if ($('#policy_type').val() == 1) {
+
+ console.log('if')
+
+ if (item.policy_type_id == 1 || item.policy_type_id == 2) {
+ console.log('if 2')
+ OptionsHTML += '';
+ }
+
+ } else {
+ console.log('if')
+ OptionsHTML += '';
+ }
});
$('#base_policy').html(OptionsHTML);
},
@@ -1195,7 +1380,7 @@
}
-
+ var dataId = 0;
$(document).ready(function() {
$('#base_policy').change(function() {
@@ -1204,6 +1389,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 +1429,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 += '';
- // }
- // }
});
+
$('#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 +1471,7 @@
}, 500);
}
});
+
});
})
diff --git a/app/Views/client_rm.php b/app/Views/client_rm.php
index 539a0c8f..a47280ee 100644
--- a/app/Views/client_rm.php
+++ b/app/Views/client_rm.php
@@ -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);
}
});
diff --git a/app/Views/id_card_view.php b/app/Views/ecard_template/default_ecard.php
similarity index 95%
rename from app/Views/id_card_view.php
rename to app/Views/ecard_template/default_ecard.php
index 7c781b31..0ed04d23 100644
--- a/app/Views/id_card_view.php
+++ b/app/Views/ecard_template/default_ecard.php
@@ -3,7 +3,7 @@
- NHANCE
+ E-Card
@@ -23,6 +23,7 @@
+
@@ -49,6 +50,7 @@
= htmlspecialchars(formatDateOrReturn($value['policy_end_date'])) ?>
+
@@ -77,6 +79,12 @@
+
+
+ button
+
+
|