diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a32b6788..b4380b4b 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -23,12 +23,6 @@ $routes->get('download-e-card/(:any)', 'EmployeeController::generateIDCardForEmp $routes->get('download-kyc-docs/(:segment)', 'ClientController::downloadKYCDocument/$1'); -$routes->get('get-notification', 'DashboardController::getDashboardNotifications'); -$routes->get('acknowledge-notification/(:segment)', 'DashboardController::acknowledgeMessage/$1'); -$routes->get('get-pending-action', 'PendingActionsController::getPendingActions'); - - - $routes->group("/user", ["filter" => "authMVC"], function ($routes) { $routes->post("create", "UserController::create"); $routes->get("create", "UserController::create"); @@ -42,6 +36,9 @@ $routes->group("/user", ["filter" => "authMVC"], function ($routes) { $routes->group("/dashboard", ["filter" => "authMVC"], function ($routes) { $routes->get("view", "DashboardController::dashboard"); + $routes->get('get-notification', 'DashboardController::getDashboardNotifications'); + $routes->get('acknowledge-notification/(:segment)', 'DashboardController::acknowledgeMessage/$1'); + $routes->get('get-pending-action', 'PendingActionsController::getPendingActions'); }); @@ -236,6 +233,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("has_policy_config_completed/(:any)", "EmployeeController::hasPolicyConfigCompleted/$1"); $routes->get("get-client-branch/(:any)", "ClientController::getClientBranch/$1"); $routes->get("get-client-details/(:any)", "ClientController::getClientAllDetailsByUsingClientID/$1"); + $routes->get("delete-additional-rack-rate/(:any)", "ClientController::deleteAdditionalRackRate/$1"); }); $routes->cli('cli/processjob', 'JobWorker::processJob'); @@ -243,6 +241,7 @@ $routes->cli('cli/processjobs', 'JobWorker::processJobs'); $routes->get("processjob", "JobWorker::processJob"); + //Employee login api's $routes->post("/employeeRest/verifyEmployeeNumber", "RestAuthenticationController::verifyEmployeeWithMobileNumber"); $routes->post("/employeeRest/getVerifiedUserData", "RestAuthenticationController::getVerifiedUserData"); @@ -255,15 +254,11 @@ $routes->group("/api", ["filter" => "authJWT"], function ($routes) { $routes->post("getId", "RestAuthenticationController::getUserIdFromToken"); }); - - - $routes->get("/getEmployeeProfile", "EmployeeRestController::getEmployeeProfile/$1"); $routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfile"); $routes->post("/calculatePremium", "EmployeeRestController::calculatePremium"); -$routes->get("getEmployeeActiveOrInactivePolicy", "EmployeeRestController::getEmployeeActiveOrInactivePolicy"); $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { diff --git a/app/Config/Session.php b/app/Config/Session.php index 591aefdc..e077df64 100644 --- a/app/Config/Session.php +++ b/app/Config/Session.php @@ -40,8 +40,7 @@ class Session extends BaseConfig * The number of SECONDS you want the session to last. * Setting to 0 (zero) means expire when the browser is closed. */ - // public int $expiration = 7200; - public int $expiration = 86400; //24 Hours + public int $expiration = 7200; /** * -------------------------------------------------------------------------- diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 7de442a9..52b3dbca 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -169,8 +169,9 @@ class ClientController extends AdminController // echo "
";
// print_r($data); die;
- $data['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'client_name'];
+ $data['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name'];
+ // dd($data['placeHolders']);
echo view('layout/header', $headerData);
echo view('client_onboarding', $data);
@@ -283,7 +284,7 @@ class ClientController extends AdminController
$editData['notification'] =$this->notificationModel->select('template_name,enabled')->where('client_id',$id)->findAll();
- $editData['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'client_name'];
+ $editData['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name'];
echo view('layout/header', $headerData);
@@ -585,13 +586,13 @@ class ClientController extends AdminController
$this->myLogger->logme('error','Client policy CREATE function called');
- $policy_id = $this->request->getPost('policy_id');
+ $policy_type_id = $this->request->getPost('policy_type_id');
$client_branch_id = $this->request->getPost('client_branch_id');
$policyCount = $this->clientPolicyModel
- ->where('policy_id', $policy_id)
+ ->where('policy_type_id', $policy_type_id)
->where('client_branch_id', $client_branch_id)
- ->countAllResult();
+ ->countAllResults();
if($policyCount > 0 ){
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($this->request->getPost('client_id'));
@@ -783,6 +784,9 @@ class ClientController extends AdminController
public function createClientPolicyPremium()
{
+
+ // echo json_encode(['key' => $this->request->getPost()]); die;
+
try {
$policy_type = $this->request->getPost('policy_type');
$client_id = $this->request->getPost('client_id');
@@ -793,6 +797,24 @@ class ClientController extends AdminController
$client_id = $client_policy_data['client_id'];
}
$policy_grid_id = $this->request->getPost('policy_grid_id');
+ $rack_rate_type = $this->request->getPost('rack_rate_type');
+
+ $self = $this->request->getPost('self') ? 1 : 0;
+ $spouse = $this->request->getPost('spouse')? 1 : 0;
+ $childrens = $this->request->getPost('childrens')? 1 : 0;
+ $parents = $this->request->getPost('parents')? 1 : 0;
+ $parents_in_law = $this->request->getPost('parents-in-law')? 1 : 0;
+ $either_parents_pil = $this->request->getPost('either-parents-pil')? 1 : 0;
+
+ $relation_data['self'] = $self;
+ $relation_data['spouse'] = $spouse;
+ $relation_data['childrens'] = $childrens;
+ $relation_data['parents'] = $parents;
+ $relation_data['parents-in-law'] = $parents_in_law;
+ $relation_data['either-parents-pil'] = $either_parents_pil;
+
+
+ $jsonDataForRelation = json_encode($relation_data);
// if($policy_grid_id == 10 || $policy_grid_id == 11){
// $premium_type = 1;
@@ -811,6 +833,11 @@ class ClientController extends AdminController
$data['client_policy_id'] = $client_policy_id;
$data['policy_grid_id'] = $policy_grid_id;
$data['premium_type'] = $premium_type;
+ $data['rack_rate_type'] = $rack_rate_type;
+
+ if($rack_rate_type == 1){
+ $data['additional_relationship'] = $jsonDataForRelation;
+ }
$premium = [];
@@ -818,7 +845,7 @@ class ClientController extends AdminController
if ($policy_grid_id == '1' || $policy_grid_id == '2') {
$this->policyPremium1Model->where('client_id', $client_id)->where('client_policy_id', $client_policy_id)->set('is_active', 0)->update();
} else {
- $this->policyPremium2Model->where('client_id', $client_id)->where('client_policy_id', $client_policy_id)->set('is_active', 0)->update();
+ $this->policyPremium2Model->where('client_id', $client_id)->where('client_policy_id', $client_policy_id)->where('rack_rate_type', $rack_rate_type)->set('is_active', 0)->update();
}
@@ -925,6 +952,9 @@ class ClientController extends AdminController
$premium = $this->request->getPost('6_premium[]');
+
+ print_r($premium);
+
$sum_insure = $this->request->getPost('6_si');
$age_from = $this->request->getPost('6_age_from[]');
$age_to = $this->request->getPost('6_age_to[]');
@@ -1135,21 +1165,24 @@ class ClientController extends AdminController
$self = $policy_terms_data->family_floaters;
}
- $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')
- ->where("ep.status", 'active')
- ->where("employees.is_active", 1)
- ->where("ep.is_active", 1)
+ // $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')
+ // ->where("ep.status", 'active')
+ // ->where("employees.is_active", 1)
+ // ->where("ep.is_active", 1)
+ // ->countAllResults();
+
+
+ $emp_count = $this->employeePolicyModel
+ ->join('client_policy cp', "cp.id = employee_polices.client_policy_id")
+ ->where("employee_polices.client_policy_id", $client_policy_id)
+ ->where("employee_polices.status", 'active')
+ ->where("employee_polices.is_active", 1)
->countAllResults();
-
- // $data = $this->employeePolicyModel->select('employee_polices.id')
- // ->where('employee_polices.is_active', 1)
- // ->where('employee_polices.client_policy_id', $client_policy_id)
- // ->findAll();
-
// $emp_count = count($data);
// if($emp_count == 0){
@@ -1184,6 +1217,11 @@ class ClientController extends AdminController
$premiumData = "";
}
+
+
+
+
+
// echo '';
// print_r($premiumData); die;
@@ -1240,19 +1278,28 @@ class ClientController extends AdminController
$premiumDataa = $premiumData;
}
- // print_r($premiumData);die;
+ // $premium1 = [];
+ // $premium2 = [];
- // print_r($data[0]->policy_type); die;
- // echo "hello";
- // return json_encode($premiumData);
+ // foreach ($premiumDataa as $key => $item) {
+ // if ($item['rack_rate_type'] == 0) {
+ // $premium1[] = $item;
+ // } elseif ($item['rack_rate_type'] == 1) {
+ // $premium2[] = $item;
+ // }
+ // }
+
+ // print_r($premium1);
+ // print_r($premium2); die;
+
+ return $this->respond(['status' => true, 'code' => 200, 'data' => $resultss, 'premiumData' => json_encode($premiumDataa), 'count' => $emp_count, 'policy_name' => $policy_name, 'family_floater' => $family_floater, 'self' => $self, 'client_policy_id' => $client_policy_id], 200);
- return $this->respond(['status' => true, 'code' => 200, 'data' => $resultss, 'premiumData' => json_encode($premiumDataa), 'count' => $emp_count, 'policy_name' => $policy_name, 'family_floater' => $family_floater, 'self' => $self], 200);
} else if ($search_term === 'GPA') {
- return $this->respond(['status' => true, 'code' => 200, 'data' => $results, 'premiumData' => json_encode($premiumData), 'count' => $emp_count, 'policy_name' => $policy_name, 'family_floater' => $family_floater, 'self' => $self], 200);
+ return $this->respond(['status' => true, 'code' => 200, 'data' => $results, 'premiumData' => json_encode($premiumData), 'count' => $emp_count, 'policy_name' => $policy_name, 'family_floater' => $family_floater, 'self' => $self, 'client_policy_id' => $client_policy_id], 200);
} else {
- return $this->respond(['status' => false, 'code' => 200, 'data' => $results, 'premiumData' => json_encode($premiumData), 'count' => $emp_count, 'policy_name' => $policy_name, 'family_floater' => $family_floater, 'self' => $self], 200);
+ return $this->respond(['status' => false, 'code' => 200, 'data' => $results, 'premiumData' => json_encode($premiumData), 'count' => $emp_count, 'policy_name' => $policy_name, 'family_floater' => $family_floater, 'self' => $self, 'client_policy_id' => $client_policy_id], 200);
}
}
@@ -2047,5 +2094,31 @@ class ClientController extends AdminController
}
+ public function deleteAdditionalRackRate($client_id, $client_policy_id, $rack_rate_type)
+ {
+ try {
+ $result = $this->policyPremium2Model
+ ->where('client_id', $client_id)
+ ->where('client_policy_id', $client_policy_id)
+ ->where('rack_rate_type', $rack_rate_type)
+ ->set('is_active', 0)
+ ->update();
+
+ if (!$result) {
+
+ return $this->respond(['status' => false,'code' => 200, 'message' => 'Failed to update the record.'], 200);
+ }
+ } catch (\Exception $e) {
+
+ log_message('error', $e->getMessage());
+ return $this->respond(['status' => false,'code' => 200, 'message' => 'Failed to update the record.'], 200);
+
+ }
+
+ return $this->respond(['status' => true,'code' => 200, 'message' => 'Additionaly Rack Rate Data Remove Successfully'], 200);
+ }
+
+
+
}
\ No newline at end of file
diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php
index 1378abbf..8642c0a5 100644
--- a/app/Controllers/DashboardController.php
+++ b/app/Controllers/DashboardController.php
@@ -18,11 +18,14 @@ class DashboardController extends AdminController
use ResponseTrait;
protected $messageModel;
protected $userMessageModel;
+ protected $myLogger;
public function __construct()
{
+ set_session_context('Dashboard');
$this->messageModel = new MessageModel();
$this->userMessageModel = new UserMessageModel();
+ $this->myLogger = \Config\Services::mylogger();
}
public function dashboard()
@@ -34,15 +37,20 @@ class DashboardController extends AdminController
public function getDashboardNotifications()
{
- //pull notofications to dashboard especially for file upload cases
+ // Pull notifications for the dashboard, especially for file upload cases.
$userId = get_session_userid();
$roleId = 5;
$teamId = 1;
-
- $messages = $this->messageModel->getMessagesForUser($userId, $roleId, $teamId);
-
- return $this->respond($messages);
+
+ if ($userId != null && $roleId != null && $teamId != null) {
+ $messages = $this->messageModel->getMessagesForUser($userId, $roleId, $teamId);
+ return $this->respond(['status' => true, 'code' => 200, 'message' => $messages], 200);
+ } else {
+ $this->myLogger->logme('error', 'The session is not set correctly. USER_ID : {user_id}, ROLE_ID : {role_id}, TEAM_ID : {team_id}', ['user_id' => $userId, 'role_id' => $roleId, 'team_id' => $teamId]);
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'No data found'], 200);
+ }
}
+
public function acknowledgeMessage($messageId)
{
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 9ea04893..6325255f 100644
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -111,7 +111,7 @@ class EmpDataServiceController extends BaseController
$batch_list_data['batch_code'] = $params['batch_code'];
$batch_list_data['emp_policy_id'] = $value['primaryKey'];
- $batch_list_data['created_by'] = get_session_userid();
+ $batch_list_data['created_by'] = $params['user_id'];
$this->batchListModel->insert($batch_list_data);
}
@@ -133,30 +133,29 @@ class EmpDataServiceController extends BaseController
public function generateExcelForAdditionandInception($export_data)
{
- $return = $this->removeOldExportInfoFromBatchFile($export_data);
-
// 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();
-
$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) {
+ // Calculate the total amount from the objects
+ $totals = array_reduce($objects, function ($carry, $item) {
+ return $carry + $item->total;
+ }, 0);
+
+ $totals = round($totals, 2);
+
+ $this->removeOldExportInfoFromBatchFile($export_data);
- $totals += $value->total;
- }
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $totals) {
+ $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
return 0;
}
- } else {
- // return 0;
}
@@ -171,6 +170,8 @@ class EmpDataServiceController extends BaseController
// If no data is found for export, return false
if ($count == 0) {
+
+ $this->myLogger->logme('error', 'No Record found. TPA ID or UHID are Alread Updated. Correction export data count : {data}', ['data' => $count]);
return false;
}
@@ -212,30 +213,35 @@ class EmpDataServiceController extends BaseController
// If Excel generation is successful
if ($success) {
-
- // Batch files and list entry
- // $return = $this->batchFilesAndBatchListEntry($export_data, $objects);
-
$random_number_count = 4;
$export_data['batch_code'] = generate_random_string($random_number_count);
$export_data['created_by'] = get_session_userid();
-
+
$insert = $this->batchFileModel->insert($export_data);
$batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
$batch_code = $batch_file_batch_code['batch_code'];
// $this->insertBatchList(['batch_code' => $batch_code, 'batch_list_data' => $objects ]);
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'insertBatchList','payload' => ['batch_code' => $batch_code, 'batch_list_data' => $objects ]]);
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'insertBatchList', 'payload' => ['batch_code' => $batch_code, 'user_id' => get_session_userid(), 'batch_list_data' => $objects]]);
// If batch operation is successful
if (true) {
+
+ // Clear the output buffer to avoid any unwanted output
+ if (ob_get_level()) {
+ ob_end_clean();
+ }
+
// Set headers for Excel file download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
- header('Content-Disposition: attachment;filename="' . $export_data['file_name'] . '"');
- header('Cache-Control: max-age=0');
+ header('Content-Disposition: attachment; filename="' . $export_data['file_name'] . '"');
+ header('Content-Transfer-Encoding: binary');
+ header('Cache-Control: must-revalidate');
+ header('Pragma: public');
+ header('Expires: 0');
// Output file contents
rewind($tempFile);
@@ -247,7 +253,7 @@ class EmpDataServiceController extends BaseController
return true; // Excel file successfully generated and exported
} else {
-
+
return false; // Batch operation failed
}
}
@@ -266,17 +272,18 @@ class EmpDataServiceController extends BaseController
$ids[] = $obj->id;
}
- // echo '';
- // print_r($objects); die;
-
$count = count($objects);
$export_data['count'] = $count;
$this->myLogger->logme('error', 'Correction export data count : {data}', ['data' => $count]);
if ($count == 0) {
- return false;
+ $this->myLogger->logme('error', 'No Record found. Endorsement ID Alread Updated. Correction export data count : {data}', ['data' => $count]);
+ return false;
}
+ $this->removeOldExportInfoFromBatchFile($export_data);
+
+
$this->myLogger->logme('error', 'Correction export file name : {data}', ['data' => $export_data['file_name']]);
$correction_data = transform_objects_to_array_for_correction($objects);
@@ -302,7 +309,11 @@ class EmpDataServiceController extends BaseController
$value = generate_excel($headers, $correction_data, $tempFile);
if ($value) {
+
+
+
$return = $this->batchFilesAndBatchListEntry($export_data, $objects);
+
if ($return) {
foreach ($ids as $key => $id) {
@@ -312,7 +323,6 @@ class EmpDataServiceController extends BaseController
}
}
-
// Set the appropriate headers for Excel file download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $export_data['file_name'] . '"');
@@ -329,7 +339,6 @@ class EmpDataServiceController extends BaseController
return true;
} else {
-
return false;
}
}
@@ -347,6 +356,7 @@ class EmpDataServiceController extends BaseController
$ids[] = $obj->endorsement_primarykey;
$totals += $obj->total;
}
+
$rounded_totals = round($totals, 2);
// echo '';
// print_r($ids); die;
@@ -354,13 +364,17 @@ class EmpDataServiceController extends BaseController
$count = count($objects);
$export_data['count'] = $count;
$export_data['amount'] = $rounded_totals;
+ $export_data['status'] = 'success';
$this->myLogger->logme('error', 'SI_Enhancement export data count : {data}', ['data' => $count]);
if ($count == 0) {
+
+ $this->myLogger->logme('error', 'No Record found. Endorsement ID Alread Updated. SI_Enhancement export data count : {data}', ['data' => $count]);
return false;
}
+ $this->removeOldExportInfoFromBatchFile($export_data);
$this->myLogger->logme('error', 'SI_Enhancement export file name : {data}', ['data' => $export_data['file_name']]);
$si_data = transform_objects_to_array_for_si_enhancement($objects);
@@ -440,21 +454,21 @@ class EmpDataServiceController extends BaseController
$totals += $obj->total;
}
$rounded_totals = round($totals, 2);
- // echo '';
- // print_r($ids);
- // print_r($objects); die;
$count = count($objects);
$export_data['count'] = $count;
$export_data['amount'] = $rounded_totals;
-
+ $export_data['status'] = 'success';
$this->myLogger->logme('error', 'Deletion export data count : {data}', ['data' => $count]);
if ($count == 0) {
+
+ $this->myLogger->logme('error', 'No Record found. Endorsement ID Alread Updated. Deletion export data count : {data}', ['data' => $count]);
return false;
}
+ $this->removeOldExportInfoFromBatchFile($export_data);
$this->myLogger->logme('error', 'Deletion export file name : {data}', ['data' => $export_data['file_name']]);
$si_data = transform_objects_to_array_for_deletion($objects);
@@ -539,48 +553,24 @@ class EmpDataServiceController extends BaseController
* - 0 if the provided data is incomplete or incorrect.
*/
- public function importExcelDataForInception($import_data)
- {
-
- $file = $import_data['file'];
-
- $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
- $filename = $file->getName();
- $this->myLogger->logme('error', 'Inception Import file name : {data}', ['data' => $filename]);
-
-
- $random_number_count = 4;
- $import_data['batch_code'] = generate_random_string($random_number_count);
- $import_data['created_by'] = get_session_userid();
- $import_data['status'] = 'pending';
- $import_data['file_name'] = $filename;
-
- $insert = $this->batchFileModel->insert($import_data);
-
- $file_id['file_id'] = $insert;
-
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'importInceptionFileValidation','payload' => ['file_id' => $insert]]);
-
- return 1;
- }
+ //Endorsement Inception
public function importInceptionFileValidation($params)
{
- $this->myLogger->logme('info', 'importInceptionFileValidation called');
+ $this->myLogger->logme('info', 'Inception File Validation -- Function called');
$file_id = $params['file_id'];
- $this->myLogger->logme('error', 'importInceptionFileValidation batch file table primary id : {data}', ['data' => $file_id]);
+ $this->myLogger->logme('error', 'Inception File Validation -- Batch File Table Primary ID : {data}', ['data' => $file_id]);
$file = $this->batchFileModel->where('id', $file_id)->first();
$client_id = $file['client_id'];
$client_policy_id = $file['client_policy_id'];
$client_branch_id = $file['client_branch_id'];
$batch_code = $file['batch_code'];
-
+ $user_id = $file['created_by'];
$insurer_or_tpa = $file['insurer_or_tpa'];
if ($insurer_or_tpa == 'tpa') {
@@ -629,10 +619,12 @@ class EmpDataServiceController extends BaseController
->where('employees.client_id', $client_id)
->where('employees.client_branch_id', $client_branch_id)
->where("employee_polices.{$id} IS NULL OR employee_polices.{$id} = ''")
+ ->where('employee_polices.is_active', 1)
+ ->where('employee_polices.status', 'active')
+ ->where('employees.is_active', 1)
+ ->where('employees.emp_status', 'active')
->findAll();
- // echo '';
- // print_r($employee_data); die;
if ($employee_data == null || empty($employee_data)) {
@@ -644,12 +636,12 @@ class EmpDataServiceController extends BaseController
];
$this->batchFileModel->where('id', $file_id)->set($data)->update();
- $this->myLogger->logme('error', 'importInceptionFileValidation TPAID already updated');
+ $this->myLogger->logme('error', 'Inception File Validation -- TPAID already updated');
$file_data = $this->getDataByFileId($file_id, 'failure');
$this->setPullNotification($file_data);
- return 'The list of employees provided has already been updated with the TPA ID, or this is not the correct file';
+ return ['status' => 'error', 'message' => 'The list of employees provided has already been updated with the TPA ID, or this is not the correct file'];
} else if ($insurer_or_tpa == 'insurer') {
@@ -658,23 +650,23 @@ class EmpDataServiceController extends BaseController
];
$this->batchFileModel->where('id', $file_id)->set($data)->update();
- $this->myLogger->logme('error', 'importInceptionFileValidation UHID already updated');
+ $this->myLogger->logme('error', 'Inception File Validation -- UHID already updated');
$file_data = $this->getDataByFileId($file_id, 'failure');
$this->setPullNotification($file_data);
- return 'The list of employees provided has already been updated with the UHID, or this is not the correct file';
+ return ['status' => 'error', 'message' =>'The list of employees provided has already been updated with the UHID, or this is not the correct file'];
}
- $this->myLogger->logme('error', 'importInceptionFileValidation UHID or TPAID already updated or the uploadedfile is not correct');
+ $this->myLogger->logme('error', 'Inception File Validation -- UHID or TPAID already updated or the uploadedfile is not correct');
}
$excel_data_count = count($excel_data);
$emp_data_count = count($employee_data);
- $this->myLogger->logme('error', 'importInceptionFileValidation excel file count : {data}', ['data' => $excel_data_count]);
- $this->myLogger->logme('error', 'importInceptionFileValidation database count : {data}', ['data' => $emp_data_count]);
+ $this->myLogger->logme('error', 'Inception File Validation -- Excel File count : {data}', ['data' => $excel_data_count]);
+ $this->myLogger->logme('error', 'Inception File Validation -- Database count : {data}', ['data' => $emp_data_count]);
// dd($excel_data_count, $emp_data_count);
@@ -685,7 +677,7 @@ class EmpDataServiceController extends BaseController
$status = 'in-progress-partially';
$partially_updated_data = 'Expected : ' . $emp_data_count . ', ' . 'Updated : ' . $excel_data_count . ', ' . 'difference : ' . $difference;
- $this->myLogger->logme('error', 'importInceptionFileValidation excel file count partially : {data}', ['data' => $partially_updated_data]);
+ $this->myLogger->logme('error', 'Inception File Validation -- excel file count partially : {data}', ['data' => $partially_updated_data]);
}
@@ -697,12 +689,12 @@ class EmpDataServiceController extends BaseController
];
$this->batchFileModel->where('id', $file_id)->set($data)->update();
- $this->myLogger->logme('error', 'importInceptionFileValidation excel file count ( {excel} ) exceeds db count ( {db} )', ['db' => $emp_data_count, 'excel' => $excel_data_count]);
+ $this->myLogger->logme('error', 'Inception File Validation -- Excel File Count ( {excel} ) exceeds db count ( {db} )', ['db' => $emp_data_count, 'excel' => $excel_data_count]);
$file_data = $this->getDataByFileId($file_id, 'failure');
$this->setPullNotification($file_data);
- return 'The Excel record count exceeds the DB record count. excel file count : ' . $excel_data_count . 'db count : ' . $emp_data_count;
+ return ['status' => 'error', 'message' =>'The Excel record count exceeds the DB record count. excel file count : ' . $excel_data_count . 'db count : ' . $emp_data_count];
}
@@ -874,15 +866,11 @@ class EmpDataServiceController extends BaseController
$error_count = count($errors);
$json_errors = json_encode($errors);
- // echo $json_errors; die;
-
$missing_id_count = count($missing_id);
$json_missing_id = json_encode($missing_id);
// dd($error_count, $missing_id_count, $json_errors, $json_missing_id);
- // dd($batch_list_id);
-
if ($missing_id_count > 0) {
$data = [
@@ -897,14 +885,14 @@ class EmpDataServiceController extends BaseController
$file_data = $this->getDataByFileId($file_id, 'failure');
$this->setPullNotification($file_data);
- return 'The TPA ID column is either partially or entirely empty.';
+ return ['status' => 'error', 'message' =>'The TPA ID column is either partially or entirely empty.'];
} else if ($insurer_or_tpa == 'insurer') {
$file_data = $this->getDataByFileId($file_id, 'failure');
$this->setPullNotification($file_data);
- return 'The UHID column is either partially or entirely empty.';
+ return ['status' => 'error', 'message' =>'The UHID column is either partially or entirely empty.'];
}
}
@@ -916,8 +904,11 @@ class EmpDataServiceController extends BaseController
'status' => 'failed',
];
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
$this->batchFileModel->where('id', $file_id)->set($data)->update();
- return 0;
+ return ['status' => 'error', 'message' => 'Inception File Validation Failed Excel and Database Data are Mismatching'];
} else {
@@ -935,6 +926,7 @@ class EmpDataServiceController extends BaseController
$data = [
'emp_policy_id' => $value,
'batch_code' => $batch_code,
+ 'created_by' => $user_id
];
$insert = $this->batchListModel->insert($data);
@@ -946,9 +938,10 @@ class EmpDataServiceController extends BaseController
$job_details = new Jobs();
$r = Jobs::addJob(['job_name' => 'importInceptionUpdateTPAandUHID','payload' => ['file_id' => $file_id]]);
-
// $this->importInceptionUpdateTPAandUHID(['file_id' => $file_id]);
+ return ['status' => 'error', 'message' => 'Inception File Validation Successfully Completed'];
+
}
}
@@ -957,7 +950,7 @@ class EmpDataServiceController extends BaseController
public function importInceptionUpdateTPAandUHID($params)
{
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID called');
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- Function called');
$file_id = $params['file_id'];
$file = $this->batchFileModel->find($file_id);
@@ -968,12 +961,12 @@ class EmpDataServiceController extends BaseController
];
$this->batchFileModel->where('id', $file_id)->set($data)->update();
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID the Physical file not found - file id : {data}', ['data' => $file_id]);
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- The Physical file not found -- File id : {data}', ['data' => $file_id]);
$file_data = $this->getDataByFileId($file_id, 'failure');
$this->setPullNotification($file_data);
- return 'importInceptionUpdateTPAandUHID the Physical file not found'; // Return error code if file not found
+ return ['status' => 'error', 'message' => 'Inception Update TPA and UHID -- The Physical file not found']; // Return error code if file not found
}
$client_id = $file['client_id'];
@@ -986,11 +979,11 @@ class EmpDataServiceController extends BaseController
$get_policy_type = $this->clientPolicyModel
- ->select('policy_type.policy_type, policies.policy_type_id as policy_type_id')
- ->join('policies', 'policies.id = client_policy.policy_id')
- ->join('policy_type', 'policy_type.id = policies.policy_type_id')
- ->where('client_policy.id', $client_policy_id)
- ->first();
+ ->select('policy_type.policy_type, policies.policy_type_id as policy_type_id')
+ ->join('policies', 'policies.id = client_policy.policy_id')
+ ->join('policy_type', 'policy_type.id = policies.policy_type_id')
+ ->where('client_policy.id', $client_policy_id)
+ ->first();
$status_val = 'success';
@@ -999,7 +992,7 @@ class EmpDataServiceController extends BaseController
$status_val = 'partially success';
}
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID file name : {data}', ['data'=> $file['file_name']]);
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- file name : {data}', ['data' => $file['file_name']]);
$file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
@@ -1025,10 +1018,8 @@ class EmpDataServiceController extends BaseController
$uhid[] = $value[16];
$amount = $value[20];
- $totals += $amount;
+ $totals = $totals + $amount;
-
- // Execute the query
$query = $db->table('employee_polices');
$query->select('employee_polices.id');
$query->join('employees', 'employees.id = employee_polices.employee_id');
@@ -1045,45 +1036,19 @@ class EmpDataServiceController extends BaseController
$query->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")');
}
$query->where('employee_polices.is_active', 1);
+ $query->where('employee_polices.status', 'active');
+ $query->where('employees.is_active', 1);
+ $query->where('employees.emp_status', 'active');
$query->limit(1);
- // Get the result
$result = $query->get()->getRowArray();
if (isset($result['id']) && $result['id'] !== null) {
- $emp_policy_ids[] = $result['id'];
- $emp_details[] = array('id' => $result['id'],'tpa_id' => $value[15], 'uhid' => $value[16]);
+ $emp_policy_ids[] = $result['id']; //for cash deposite
+ $emp_details[] = array('id' => $result['id'], 'tpa_id' => $value[15], 'uhid' => $value[16]);
}
-
-
-
- // $sql = "
- // UPDATE employee_polices
- // JOIN employees ON employees.id = employee_polices.employee_id
- // SET tpa_id = ?
- // WHERE employees.name = ?
- // AND employees.emp_code = ?
- // AND employee_polices.client_policy_id = ?
- // AND (employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = '')";
-
- // $params = [$tpa_id, $name, $emp_code, $client_policy_id];
- // $db->query($sql, $params);
-
-
-
- // $sql = "
- // UPDATE employee_polices
- // JOIN employees ON employees.id = employee_polices.employee_id
- // SET employee_polices.uhid = ?
- // WHERE employees.name = ?
- // AND employees.emp_code = ?
- // AND employee_polices.client_policy_id = ?
- // AND (employee_polices.uhid IS NULL OR employee_polices.uhid = '')";
-
- // $params = [$uhid, $name, $emp_code, $client_policy_id];
- // $db->query($sql, $params);
}
- $return = $this->employeePolicyModel->bulkUpdate($emp_details);
+ $return = $this->employeePolicyModel->bulkUpdate($emp_details);
// Update batch file status and amount
$this->batchFileModel->update($file_id, [
@@ -1093,14 +1058,14 @@ class EmpDataServiceController extends BaseController
]);
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID employee count : {data}', ['data'=> $emp_count]);
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID batch file status : {data}', ['data'=> $status_val]);
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID total amount for cash deposite : {data}', ['data'=> $totals]);
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- employee count : {data}', ['data' => $emp_count]);
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- batch file status : {data}', ['data' => $status_val]);
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- total amount for cash deposite : {data}', ['data' => $totals]);
if ($file['insurer_or_tpa'] == 'tpa') {
- $this->myLogger->logme('error', 'importInceptionUpdateTPAandUHID set cashDepositCalculationForInception and sendMailForDownloadingECard in JOB QUEUE');
+ $this->myLogger->logme('error', 'Inception Update TPA and UHID -- set cashDepositCalculationForInception and sendMailForDownloadingECard in JOB QUEUE');
$policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id);
$depositeData = [
@@ -1116,8 +1081,8 @@ class EmpDataServiceController extends BaseController
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'cashDepositCalculationForInception','payload' => [
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'cashDepositCalculationForInception', 'payload' => [
'employeeIds' => $emp_policy_ids,
'client_id' => $client_id,
'client_policy_id' => $client_policy_id,
@@ -1127,12 +1092,11 @@ class EmpDataServiceController extends BaseController
'policy_name' => $policy_name['policy_name'],
'user_id' => $user_id,
]]);
-
- if($get_policy_type['policy_type_id'] != 1){
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'sendMailForDownloadingECard','payload' => $emp_policy_ids]);
+ if ($get_policy_type['policy_type_id'] != 1) {
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'sendMailForDownloadingECard', 'payload' => $emp_policy_ids]);
}
// $this->cashDepositCalculationForInception($depositeData);
@@ -1144,602 +1108,1474 @@ class EmpDataServiceController extends BaseController
$this->setPullNotification($file_data);
- return 'Import Inception Updated '. $status_val . '- Updated Count : ' . $emp_count;
+ return 'Import Inception Updated ' . $status_val . '- Updated Count : ' . $emp_count;
}
+ //Endorsement Correction
-
- public function importExcelDataForCorrection($import_data)
+ public function importCorrectionValidation($params)
{
- $client_id = $import_data['client_id'];
- $client_policy_id = $import_data['client_policy_id'];
- $client_branch_id = $import_data['client_branch_id'];
- $file = $import_data['file'];
+ $this->myLogger->logme('error', 'Correction File Validation -- Function called');
- $data = $this->readExcelToArray($file);
- unset($data[0]);
- $count = count($data);
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->where('id', $file_id)->first();
- $missing_id = [];
- $empty_emp_tpa_uh_ids = [];
- foreach ($data as $key => $value) {
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $client_branch_id = $file['client_branch_id'];
+ $batch_code = $file['batch_code'];
+ $user_id = $file['created_by'];
- try {
-
- if ($value[10] === null) {
- $missing_id[] = $key + 1;
- }
-
- $emp_code = $value[0];
- $uhid = $value[1];
- $endorsement_id = $value[10] != null ? $value[10] : '';
-
- $db = \Config\Database::connect();
-
- // Execute the query
- $query = $db->table('emp_endorsement')
- ->select('emp_endorsement.id')
- ->join('employees', 'employees.id = emp_endorsement.pk')
- ->join('employee_polices', 'employee_polices.employee_id = employees.id')
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employee_polices.uhid', $uhid)
- ->where('employees.emp_code', $emp_code)
- ->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
- ->groupBy('emp_endorsement.group_key')
- ->limit(1);
-
- // Get the result
- $result = $query->get()->getRowArray();
- if (isset($result['id']) && $result['id'] !== null) {
- $empty_emp_tpa_uh_ids[] = $result['id'];
- }
- } catch (\Exception $e) {
- // Handle the exception here
- return 0;
- }
- }
-
- $missing_id_count = count($missing_id);
- $empty_id_count = count($empty_emp_tpa_uh_ids);
-
- // if($missing_id_count != $count){
-
- // return 2;
- // }
-
- if ($missing_id_count != 0) {
-
- return 2;
- }
-
-
- if ($empty_id_count == 0) {
-
- return 3;
- }
-
- // dd($count, $missing_id, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
-
-
- $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
- $filename = $file->getName();
-
- $this->myLogger->logme('error', 'Correction Import file name : {data}', ['data' => $filename]);
- $random_number_count = 4;
- $batch_code = generate_random_string($random_number_count);
- $this->myLogger->logme('error', 'Correction Import BATCH CODE : {data}', ['data' => $batch_code]);
-
-
- $import_data['batch_code'] = $batch_code;
- $import_data['created_by'] = get_session_userid();
- $import_data['file_name'] = $filename;
- $insert = $this->batchFileModel->insert($import_data);
- $batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
-
- $batch_code_for_batch_list['batch_code'] = $batch_file_batch_code['batch_code'];
- $batch_code_for_batch_list['created_by'] = get_session_userid();
-
- $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $batch_file_batch_code['file_name'];
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
if (!file_exists($file_name_with_path)) {
- return 2;
+
+ $this->myLogger->logme('error', 'Correction File Validation -- The Physical file not found');
+ $this->myLogger->logme('error', 'Correction File Validation -- File Name : {data}', ['data' => $file['file_name']]);
+ $this->myLogger->logme('error', 'Correction File Validation -- File Path : {data}', ['data' => $file_name_with_path]);
+
+ return 'The Physical file not found';
}
- $data = read_excel_file_to_array($file_name_with_path);
- unset($data[0]);
- $count = count($data);
- $this->batchFileModel->where('id', $insert)->set('count', $count)->update();
- foreach ($data as $key => $value) {
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
- if (!empty($value) && isset($value[10])) {
- $emp_code = $value[0];
- $uhid = $value[1];
- $endorsement_id = $value[10] != null ? $value[10] : '';
+ $endorsement_data = $this->empEndorsementModel
+ ->select("
+ emp_endorsement.id,
+ emp_endorsement.pk,
+ emp_endorsement.emp_code,
+ emp_endorsement.endorsement_id,
+ emp_endorsement.old_value,
+ emp_endorsement.new_value,
+ emp_endorsement.field_name,
+ emp_endorsement.remarks,
+ emp_endorsement.actions,
+ employees.id AS primaryKey,
+ employees.name AS emp_name,
+ employees.dob AS emp_dob,
+ employees.gender AS emp_gender,
+ employees.client_id AS emp_client_id,
+ 'Has Define' AS emp_type,
+ employee_polices.uhid,
+ employees.relationship_code
+ ")
+ ->join("employees", "employees.id = emp_endorsement.pk", "left")
+ ->join("employee_polices", "employees.id = employee_polices.employee_id", "left")
+ ->where("employees.client_id", $client_id)
+ ->where("employee_polices.client_policy_id", $client_policy_id)
+ ->where("employees.client_branch_id", $client_branch_id)
+ ->where("employees.is_active", 1)
+ ->where("employees.emp_status", "active")
+ ->where("emp_endorsement.actions", "c")
+ ->where("(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')")
+ ->findAll();
- $val = $this->employeePolicyModel
- ->select('employees.id')
- ->join('employees', 'employees.id = employee_polices.employee_id')
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employee_polices.uhid', $uhid)
- ->where('employees.emp_code', $emp_code)
- ->where('employees.is_active', 1)
- ->first();
- $batch_code_for_batch_list['emp_policy_id'] = $val['id'];
- $this->batchListModel->insert($batch_code_for_batch_list);
- // $this->employeePolicyModel->updateCorrectionData($emp_code, $uhid, $endorsement_id);
+ // dd($endorsement_data, $excel_data);
- $queryData = $this->empEndorsementModel->select('emp_endorsement.*, employees.id as emp_id')
- ->join('employees', 'employees.id = emp_endorsement.pk')
- ->join('employee_polices', 'employee_polices.employee_id = employees.id')
- ->where('employees.emp_code', $emp_code)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('employee_polices.uhid', $uhid)
- ->get()
- ->getResultArray();
- // dd($queryData);
+ if ($endorsement_data == null || empty($endorsement_data)) {
- foreach ($queryData as $endorsementData) {
+ $data = [
+ 'status' => 'failed-1',
+ ];
- $emp_endoresment_id = $endorsementData['id'];
- $emp_id = $endorsementData['emp_id'];
- $field_name = $endorsementData['field_name'];
- $new_value = $endorsementData['new_value'];
- $endoresment_udate_data = [
- 'endorsement_id' => $endorsement_id,
- 'status' => 'complete',
- ];
- $this->empEndorsementModel->where('id', $emp_endoresment_id)->set($endoresment_udate_data)->update();
- $this->employeeModel->where('id', $emp_id)->set($field_name, $new_value)->update();
- }
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'correctionFileValidation ENDORSEMENT ID already updated');
- // $query = $this->employeePolicyModel->getLastQuery();
- // echo $query . "
";
- } else {
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
- return 0;
- }
+ return 'The list of employees provided has already been updated with the ENDORSEMENT ID, or this is not the correct file';
+
+ $this->myLogger->logme('error', 'correctionFileValidation ENDORSEMENT ID already updated or the uploadedfile is not correct');
+ }
+
+ $excel_data_count = count($excel_data);
+ $endorsement_data_count = count($endorsement_data);
+
+ $this->myLogger->logme('error', 'correctionFileValidation excel file count : {data}', ['data' => $excel_data_count]);
+ $this->myLogger->logme('error', 'correctionFileValidation database count : {data}', ['data' => $endorsement_data_count]);
+
+
+ $difference = $endorsement_data_count - $excel_data_count;
+
+ $status = 'in-progress';
+ if ($excel_data_count < $endorsement_data_count) {
+
+ $status = 'in-progress-partially';
+ $partially_updated_data = 'Expected : ' . $endorsement_data_count . ', ' . 'Updated : ' . $excel_data_count . ', ' . 'difference : ' . $difference;
+ $this->myLogger->logme('error', 'correctionFileValidation excel file count partially : {data}', ['data' => $partially_updated_data]);
}
- return 1;
- }
-
-
- public function importExcelDataForSIEnhancement($import_data)
- {
-
- $client_id = $import_data['client_id'];
- $client_policy_id = $import_data['client_policy_id'];
- $client_branch_id = $import_data['client_branch_id'];
- $file = $import_data['file'];
-
- $data = $this->readExcelToArray($file);
- unset($data[0]);
- $count = count($data);
+
+ if ($endorsement_data_count < $excel_data_count) {
+
+ $data = [
+ 'status' => 'failed-3',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'correctionFileValidation excel file count ( {excel} ) exceeds db count ( {db} )', ['db' => $endorsement_data_count, 'excel' => $excel_data_count]);
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The Excel record count exceeds the DB record count. excel file count : ' . $excel_data_count . 'db count : ' . $endorsement_data_count;
+ }
+ $errors = []; // Initialize an array to store errors
$missing_id = [];
- $empty_emp_tpa_uh_ids = [];
- $totals = 0;
- foreach ($data as $key => $value) {
+ $batch_list_id = [];
- try {
- if ($value[19] === null) {
- $missing_id[] = $key + 1;
- }
+ foreach ($endorsement_data as $key => $endorsement_value) {
- $totals += $value[18];
+ $key = $key + 1;
- $emp_name = $value[1];
- $emp_code = $value[2];
- $endorsement_id = $value[19] != null ? $value[19] : '';
-
- $db = \Config\Database::connect();
-
- // Execute the query
- $query = $db->table('emp_endorsement')
- ->select('emp_endorsement.id')
- ->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
- ->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
- ->where('employees.emp_code', $emp_code)
- ->where('employees.name', $emp_name)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('emp_endorsement.actions', 'si')
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
- ->groupBy('emp_endorsement.group_key');
-
- // Get the result
- $result = $query->get()->getRowArray();
- if (isset($result['id']) && $result['id'] !== null) {
- $empty_emp_tpa_uh_ids[] = $result['id'];
- }
- } catch (\Exception $e) {
- // Handle the exception here
- return 0;
+ if (!isset($excel_data[$key])) {
+ break;
}
+
+
+ if ($excel_data[$key][10] === null) {
+ $missing_id[$key][] = [
+ 'row' => $key,
+ 'column' => 10,
+ ];
+ }
+
+
+ if ($endorsement_value['emp_name'] != $excel_data[$key][2]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 2,
+ 'db_data' => $endorsement_value['emp_name'],
+ 'excel_data' => $excel_data[$key][2]
+ ];
+ }
+
+ if ($endorsement_value['emp_code'] != $excel_data[$key][0]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 0,
+ 'db_data' => $endorsement_value['emp_code'],
+ 'excel_data' => $excel_data[$key][0]
+ ];
+ }
+
+ if ($endorsement_value['emp_dob'] != $excel_data[$key][5]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 5,
+ 'db_data' => $endorsement_value['emp_dob'],
+ 'excel_data' => $excel_data[$key][5]
+ ];
+ }
+
+ if ($endorsement_value['emp_gender'] != $excel_data[$key][6]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 6,
+ 'db_data' => $endorsement_value['emp_gender'],
+ 'excel_data' => $excel_data[$key][6]
+ ];
+ }
+
+ if ($endorsement_value['old_value'] != $excel_data[$key][7]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 7,
+ 'db_data' => $endorsement_value['old_value'],
+ 'excel_data' => $excel_data[$key][7]
+ ];
+ }
+
+ if ($endorsement_value['new_value'] != $excel_data[$key][8]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 8,
+ 'db_data' => $endorsement_value['new_value'],
+ 'excel_data' => $excel_data[$key][8]
+ ];
+ }
+
+
+
+ if ($endorsement_value['uhid'] != $excel_data[$key][1]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 1,
+ 'db_data' => $endorsement_value['uhid'],
+ 'excel_data' => $excel_data[$key][1]
+ ];
+ }
+
+ $batch_list_id[] = $endorsement_value['primaryKey'];
}
- $rounded_totals = round($totals, 2);
+
+
+ $error_count = count($errors);
+ $json_errors = json_encode($errors);
+
$missing_id_count = count($missing_id);
- $empty_id_count = count($empty_emp_tpa_uh_ids);
+ $json_missing_id = json_encode($missing_id);
- // if($missing_id_count != $count){
+ // dd($error_count, $missing_id_count, $json_errors, $json_missing_id, $batch_list_id);
- // return 2;
- // }
- if ($missing_id_count != 0) {
+ if ($missing_id_count > 0) {
- return 2;
+ $data = [
+
+ 'count' => $endorsement_data_count,
+ 'error_data' => $json_missing_id,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The ENDORSEMENT ID column is either partially or entirely empty.';
+
}
- // if($empty_emp_tpa_uh_ids != $count){
- // return 3;
- // }
+ if ($error_count > 0) {
- if ($empty_id_count == 0) {
+ $data = [
- return 3;
- }
+ 'count' => $endorsement_data_count,
+ 'error_data' => $json_errors,
+ 'status' => 'failed',
+ ];
- // dd($count, $missing_id, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ return 'Correction Validation Failed';
- $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
- $filename = $file->getName();
+ } else {
- $this->myLogger->logme('error', 'SI_Enhancement Import file name : {data}', ['data' => $filename]);
- $random_number_count = 4;
- $batch_code = generate_random_string($random_number_count);
- $this->myLogger->logme('error', 'SI_Enhancement Import BATCH CODE : {data}', ['data' => $batch_code]);
+ $data = [
+ 'count' => $endorsement_data_count,
+ 'status' => $status,
+ 'error_data' => $partially_updated_data ?? null,
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
- $import_data['batch_code'] = $batch_code;
- $import_data['created_by'] = get_session_userid();
- $import_data['file_name'] = $filename;
- $import_data['amount'] = $rounded_totals;
- $insert = $this->batchFileModel->insert($import_data);
- $batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
+ foreach ($batch_list_id as $key => $value) {
- $batch_code_for_batch_list['batch_code'] = $batch_file_batch_code['batch_code'];
- $batch_code_for_batch_list['created_by'] = get_session_userid();
-
- $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $batch_file_batch_code['file_name'];
-
- if (!file_exists($file_name_with_path)) {
- return 2;
- }
-
- $data = read_excel_file_to_array($file_name_with_path);
- unset($data[0]);
- $count = count($data);
- $this->batchFileModel->where('id', $insert)->set('count', $count)->update();
- $employeeIds = [];
- foreach ($data as $key => $value) {
-
- if (!empty($value) && isset($value[19])) {
-
- $emp_name = $value[1];
- $emp_code = $value[2];
- // echo $emp_name .'-'. $emp_code; die;
- $endorsement_id = $value[19] != null ? $value[19] : '';
-
- $updateData = [
- 'emp_code' => $emp_code,
- 'client_id' => $client_id,
- 'client_policy_id' => $client_policy_id,
- 'emp_name' => $emp_name,
- 'endorsement_id' => $endorsement_id,
+ $data = [
+ 'emp_policy_id' => $value,
+ 'batch_code' => $batch_code,
+ 'created_by' => $user_id,
];
- $this->employeePolicyModel->updateEndoresmentIdForSIEnhancement($updateData);
-
- $queryData = $this->employeePolicyModel
- ->select('employee_polices.*')
- ->join('employees', 'employee_polices.employee_id = employees.id')
- ->where('employees.emp_code', $emp_code)
- ->where('employees.name', $emp_name)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('employee_polices.is_active', 1)
- ->first();
-
- $queryData['is_active'] = 0;
- $this->employeePolicyModel->save($queryData);
-
- unset($queryData['id']);
- unset($queryData['created_by']);
- unset($queryData['created_at']);
- unset($queryData['updated_by']);
- unset($queryData['updated_at']);
- unset($queryData['is_active']);
-
- $queryData['basic_cover_si'] = $value[8];
- $queryData['premium'] = $value[14];
- $queryData['si_enhancement_date'] = $value[10];
- $queryData['rata_premimum'] = $value[16];
- $queryData['gst'] = $value[17];
- $queryData['created_by'] = get_session_userid();
-
- //new insert
- $this->employeePolicyModel->save($queryData);
-
- $val = $this->employeePolicyModel
- ->select('employee_polices.id')
- ->join('employees', 'employees.id = employee_polices.employee_id')
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employees.name', $emp_name)
- ->where('employees.emp_code', $emp_code)
- ->where('employee_polices.is_active', 1)
- ->first();
-
- if ($val !== null) {
- $id = $val['id'];
- $batch_code_for_batch_list['emp_policy_id'] = $id;
- $this->batchListModel->insert($batch_code_for_batch_list);
- array_push($employeeIds, $id);
- }
- } else {
-
- return 0;
+ $insert = $this->batchListModel->insert($data);
}
+
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importCorrectionUpdateEndorsementID','payload' => ['file_id' => $file_id]]);
+
+ // $this->importCorrectionUpdateEndorsementID(['file_id' => $file_id]);
+
+ return 'Correction Validation Success';
}
-
- $policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id);
- $depositeData = [
- 'employeeIds' => $employeeIds,
- 'client_id' => $client_id,
- 'client_policy_id' => $client_policy_id,
- 'client_branch_id' => $client_branch_id,
- 'count' => $count,
- 'event' => $import_data['event_type'],
- 'policy_name' => $policy_name['policy_name'],
- ];
-
- // dd($depositeData);
- $this->cashDepositCalculationForSIEnhancement($depositeData);
-
- return 1;
}
- public function importExcelDataForDeletion($import_data)
+ public function importCorrectionUpdateEndorsementID($params){
+
+ $this->myLogger->logme('error', 'importCorrectionUpdateEndorsementID called');
+
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->find($file_id);
+ if (!$file) {
+
+ $data = [
+ 'status' => 'failed-4',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'importCorrectionUpdateEndorsementID the Physical file not found - file id : {data}', ['data' => $file_id]);
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'importCorrectionUpdateEndorsementID the Physical file not found'; // Return error code if file not found
+ }
+
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $client_branch_id = $file['client_branch_id'];
+ $insurer_or_tpa = $file['insurer_or_tpa'];
+ $status = $file['status'];
+ $batch_code = $file['batch_code'];
+ $user_id = $file['created_by'];
+
+
+ $status_val = 'success';
+ if ($status == 'in-progress-partially') {
+
+ $status_val = 'partially success';
+ }
+
+ $this->myLogger->logme('error', 'importCorrectionUpdateEndorsementID file name : {data}', ['data'=> $file['file_name']]);
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
+
+ $emp_ids = [];
+ $emp_details = [];
+ $endorsement_id = [];
+ $endorsement_details = [];
+
+ $emp_count = count($excel_data);
+ $db = \Config\Database::connect();
+
+
+ foreach ($excel_data as $key => $value) {
+
+ $emp_code = $value[0];
+ $old_value = $value[7];
+ $endorsement_id[] = $value[10];
+ $uhid = $value[1];
+
+
+ $result = $this->empEndorsementModel
+ ->select('emp_endorsement.*, employees.id as emp_id')
+ ->join('employees', 'employees.id = emp_endorsement.pk')
+ ->join('employee_polices', 'employee_polices.employee_id = employees.id')
+ ->where('employees.emp_code', $emp_code)
+ ->where('employees.client_id', $client_id)
+ ->where('employees.client_branch_id', $client_branch_id)
+ ->where('employee_polices.client_policy_id', $client_policy_id)
+ ->where('employee_polices.uhid', $uhid)
+ ->where('emp_endorsement.old_value', $old_value)
+
+ ->where('employee_polices.is_active', 1)
+ ->where('employee_polices.status', 'active')
+ ->where('employees.is_active', 1)
+ ->where('employees.emp_status', 'active')
+ ->first();
+
+ if (isset($result['id']) && $result['id'] !== null) {
+
+ // return $result;
+ $emp_details[] = array('id' => $result['emp_id'], 'group_key' => $result['group_key'], $result['field_name'] => $value[8]);
+ $endorsement_details[] = array('group_key' => $result['group_key'], 'id' => $result['id'], 'endorsement_id' => $value[10], 'status' => 'complete');
+ }
+
+ }
+
+ // return [$emp_details, $endorsement_details];
+
+ $this->empEndorsementModel->updateBatch($endorsement_details, 'group_key');
+ $this->employeeModel->updateBatch($emp_details);
+
+ // Update batch file status and amount
+ $this->batchFileModel->update($file_id, [
+ 'count' => $emp_count,
+ 'status' => $status_val,
+ ]);
+
+
+ $this->myLogger->logme('error', 'importCorrectionUpdateEndorsementID employee count : {data}', ['data'=> $emp_count]);
+ $this->myLogger->logme('error', 'importCorrectionUpdateEndorsementID batch file status : {data}', ['data'=> $status_val]);
+
+
+ $file_data = $this->getDataByFileId($file_id, 'success');
+ $this->setPullNotification($file_data);
+
+
+ return 'Import Correction Updated '. $status_val . '- Updated Count : ' . $emp_count;
+
+ }
+
+
+
+
+ //Endorsement SIEnhancement
+
+ public function importSIEnhancementValidation($params)
+ {
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->where('id', $file_id)->first();
+
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $client_branch_id = $file['client_branch_id'];
+ $batch_code = $file['batch_code'];
+ $user_id = $file['created_by'];
+
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+
+ if (!file_exists($file_name_with_path)) {
+ return 'The Physical file not found';
+ }
+
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
+
+
+ $db = \Config\Database::connect();
+
+ // Raw SQL query
+ $sql = "
+ SELECT
+ a.id as endorsement_primarykey,
+ a.group_key,
+ employee_polices.id AS primaryKey,
+ employees.id AS emp_primary,
+ employees.name AS emp_name,
+ employees.emp_code AS emp_code,
+ employees.dob AS emp_dob,
+ employees.gender AS emp_gender,
+ employees.relationship_code AS emp_relationship_code,
+ 'Has Define' AS emp_type,
+ employee_polices.uhid AS risk_id,
+ employee_polices.pre_existing_alignments,
+ employee_polices.policy_end_date,
+ employee_polices.basic_cover_si as old_basic_cover_si,
+ employee_polices.rata_premimum as old_si_premium,
+ sidata.new_basic_cover_si,
+ sidata.new_si_premium,
+ sidata.date_of_coverage,
+ DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days,
+ sidata.new_si_premium - employee_polices.rata_premimum AS difference_premium,
+ ROUND((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365, 2) AS pro_rata_premimum,
+ ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS gst,
+ ((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS total
+ FROM
+ emp_endorsement a
+ LEFT JOIN
+ employees ON employees.emp_code = a.emp_code
+ LEFT JOIN
+ employee_polices ON employees.id = employee_polices.employee_id
+ LEFT JOIN (
+ SELECT
+ aa.emp_code,
+ aa.new_value as new_basic_cover_si,
+ bb.new_value as new_si_premium,
+ cc.new_value as date_of_coverage
+ FROM (
+ SELECT
+ a1.emp_code,
+ a1.field_name,
+ a1.new_value
+ FROM
+ emp_endorsement as a1
+ WHERE
+ a1.field_name = 'basic_cover_si'
+ ) aa
+ LEFT JOIN (
+ SELECT
+ b1.emp_code,
+ b1.field_name,
+ b1.new_value
+ FROM
+ emp_endorsement as b1
+ WHERE
+ b1.field_name = 'premium'
+ ) bb ON aa.emp_code = bb.emp_code
+ LEFT JOIN (
+ SELECT
+ c1.emp_code,
+ c1.field_name,
+ c1.new_value
+ FROM
+ emp_endorsement as c1
+ WHERE
+ c1.field_name = 'si_enhancement_date'
+ ) cc ON aa.emp_code = cc.emp_code
+ ) as sidata ON a.emp_code = sidata.emp_code
+ WHERE
+ employee_polices.client_policy_id = '$client_policy_id'
+ AND employees.client_branch_id = '$client_branch_id'
+ AND employee_polices.is_active = '1'
+ AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
+ AND a.actions = 'si'
+ GROUP BY group_key
+ ";
+
+ // Execute the query
+ $query = $db->query($sql);
+
+ // Fetch the results
+ $endorsement_data = $query->getResultArray();
+
+
+
+ // dd($endorsement_data, $excel_data);
+
+
+ if ($endorsement_data == null || empty($endorsement_data)) {
+
+ $data = [
+ 'status' => 'failed-1',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'SI Enhancement_File Validation -- ENDORSEMENT ID already updated or the uploadedfile is not correct');
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The list of employees provided has already been updated with the ENDORSEMENT ID, or this is not the correct file';
+ }
+
+ $excel_data_count = count($excel_data);
+ $endorsement_data_count = count($endorsement_data);
+
+ $this->myLogger->logme('error', 'SI Enhancement_File Validation -- Excel file count : {data}', ['data' => $excel_data_count]);
+ $this->myLogger->logme('error', 'SI Enhancement File Validation -- Database count : {data}', ['data' => $endorsement_data_count]);
+
+
+ $difference = $endorsement_data_count - $excel_data_count;
+
+ $status = 'in-progress';
+ if ($excel_data_count < $endorsement_data_count) {
+
+ $status = 'in-progress-partially';
+ $partially_updated_data = 'Expected : ' . $endorsement_data_count . ', ' . 'Updated : ' . $excel_data_count . ', ' . 'difference : ' . $difference;
+ $this->myLogger->logme('error', 'SI Enhancement File Validation -- excel file count partially : {data}', ['data' => $partially_updated_data]);
+ }
+
+
+
+ if ($endorsement_data_count < $excel_data_count) {
+
+ $data = [
+ 'status' => 'failed-3',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'SI_Enhancement_FileValidation excel file count ( {excel} ) exceeds db count ( {db} )', ['db' => $endorsement_data_count, 'excel' => $excel_data_count]);
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The Excel record count exceeds the DB record count. excel file count : ' . $excel_data_count . 'db count : ' . $endorsement_data_count;
+ }
+
+
+ $errors = []; // Initialize an array to store errors
+ $missing_id = [];
+ $batch_list_id = [];
+
+ foreach ($endorsement_data as $key => $endorsement_value) {
+
+ $key = $key + 1;
+
+ if (!isset($excel_data[$key])) {
+ break;
+ }
+
+
+ if ($excel_data[$key][19] === null) {
+ $missing_id[$key][] = [
+ 'row' => $key,
+ 'column' => 19,
+ ];
+ }
+
+
+ if ($endorsement_value['emp_name'] != $excel_data[$key][1]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 1,
+ 'db_data' => $endorsement_value['emp_name'],
+ 'excel_data' => $excel_data[$key][1]
+ ];
+ }
+
+ if ($endorsement_value['emp_code'] != $excel_data[$key][2]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 2,
+ 'db_data' => $endorsement_value['emp_code'],
+ 'excel_data' => $excel_data[$key][2]
+ ];
+ }
+
+ if ($endorsement_value['emp_relationship_code'] != $excel_data[$key][4]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 4,
+ 'db_data' => $endorsement_value['emp_relationship_code'],
+ 'excel_data' => $excel_data[$key][4]
+ ];
+ }
+
+ if ($endorsement_value['emp_dob'] != $excel_data[$key][5]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 5,
+ 'db_data' => $endorsement_value['emp_dob'],
+ 'excel_data' => $excel_data[$key][5]
+ ];
+ }
+
+ if ($endorsement_value['emp_gender'] != $excel_data[$key][6]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 6,
+ 'db_data' => $endorsement_value['emp_gender'],
+ 'excel_data' => $excel_data[$key][6]
+ ];
+ }
+
+
+ if ($endorsement_value['pre_existing_alignments'] != $excel_data[$key][7]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 7,
+ 'db_data' => $endorsement_value['pre_existing_alignments'],
+ 'excel_data' => $excel_data[$key][7]
+ ];
+ }
+
+ if ($endorsement_value['new_basic_cover_si'] != $excel_data[$key][8]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 8,
+ 'db_data' => $endorsement_value['new_basic_cover_si'],
+ 'excel_data' => $excel_data[$key][8]
+ ];
+ }
+
+ if ($endorsement_value['old_basic_cover_si'] != $excel_data[$key][9]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 9,
+ 'db_data' => $endorsement_value['old_basic_cover_si'],
+ 'excel_data' => $excel_data[$key][9]
+ ];
+ }
+
+
+
+ if ($endorsement_value['date_of_coverage'] != $excel_data[$key][10]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 10,
+ 'db_data' => $endorsement_value['date_of_coverage'],
+ 'excel_data' => $excel_data[$key][10]
+ ];
+ }
+
+ if ($endorsement_value['policy_end_date'] != $excel_data[$key][11]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 11,
+ 'db_data' => $endorsement_value['policy_end_date'],
+ 'excel_data' => $excel_data[$key][11]
+ ];
+ }
+
+ if ($endorsement_value['no_of_days'] != $excel_data[$key][12]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 12,
+ 'db_data' => $endorsement_value['no_of_days'],
+ 'excel_data' => $excel_data[$key][12]
+ ];
+ }
+
+ if ($endorsement_value['old_si_premium'] != $excel_data[$key][13]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 13,
+ 'db_data' => $endorsement_value['old_si_premium'],
+ 'excel_data' => $excel_data[$key][13]
+ ];
+ }
+
+ if ($endorsement_value['new_si_premium'] != $excel_data[$key][14]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 14,
+ 'db_data' => $endorsement_value['new_si_premium'],
+ 'excel_data' => $excel_data[$key][14]
+ ];
+ }
+
+ if ($endorsement_value['difference_premium'] != $excel_data[$key][15]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 15,
+ 'db_data' => $endorsement_value['difference_premium'],
+ 'excel_data' => $excel_data[$key][15]
+ ];
+ }
+
+ if ($endorsement_value['pro_rata_premimum'] != $excel_data[$key][16]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 16,
+ 'db_data' => $endorsement_value['pro_rata_premimum'],
+ 'excel_data' => $excel_data[$key][16]
+ ];
+ }
+
+ if ($endorsement_value['gst'] != $excel_data[$key][17]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 17,
+ 'db_data' => $endorsement_value['gst'],
+ 'excel_data' => $excel_data[$key][17]
+ ];
+ }
+
+ $batch_list_id[] = $endorsement_value['primaryKey'];
+ }
+
+
+ $error_count = count($errors);
+ $json_errors = json_encode($errors);
+
+
+ $missing_id_count = count($missing_id);
+ $json_missing_id = json_encode($missing_id);
+
+ // dd($error_count, $missing_id_count, $json_errors, $json_missing_id, $batch_list_id);
+
+
+ if ($missing_id_count > 0) {
+
+ $data = [
+
+ 'count' => $endorsement_data_count,
+ 'error_data' => $json_missing_id,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The ENDORSEMENT ID column is either partially or entirely empty.';
+ }
+
+
+ if ($error_count > 0) {
+
+ $data = [
+
+ 'count' => $endorsement_data_count,
+ 'error_data' => $json_errors,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ return 'SI ENHANCEMENT File Validation Failed';
+ } else {
+
+ $data = [
+ 'count' => $endorsement_data_count,
+ 'status' => $status,
+ 'error_data' => $partially_updated_data ?? null,
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+
+ foreach ($batch_list_id as $key => $value) {
+
+ $data = [
+ 'emp_policy_id' => $value,
+ 'batch_code' => $batch_code,
+ 'created_by' => $user_id,
+ ];
+
+ $insert = $this->batchListModel->insert($data);
+ }
+
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importSIEnhancementUpdateEndorsementID', 'payload' => ['file_id' => $file_id]]);
+
+ // $this->importSIEnhancementUpdateEndorsementID(['file_id' => $file_id]);
+ return 'SI Enhancement_File Validation -- Success';
+ }
+ }
+
+
+ public function importSIEnhancementUpdateEndorsementID($params)
{
- $client_id = $import_data['client_id'];
- $client_policy_id = $import_data['client_policy_id'];
- $client_branch_id = $import_data['client_branch_id'];
- $file = $import_data['file'];
+ $this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Function called');
+
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->find($file_id);
+ if (!$file) {
+
+ $data = [
+ 'status' => 'failed-4',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- The Physical file not found -- File id : {data}', ['data' => $file_id]);
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'SI Enhancement Update Endorsement ID -- The Physical file not found'; // Return error code if file not found
+ }
+
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $client_branch_id = $file['client_branch_id'];
+ $status = $file['status'];
+ $batch_code = $file['batch_code'];
+ $user_id = $file['created_by'];
- $data = $this->readExcelToArray($file);
- unset($data[0]);
- array_pop($data);
- $count = count($data);
+ $status_val = 'success';
+ if ($status == 'in-progress-partially') {
+ $status_val = 'partially success';
+ }
- $missing_id = [];
- $empty_emp_tpa_uh_ids = [];
+ $this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- file name : {data}', ['data' => $file['file_name']]);
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
+
+ $emp_count = count($excel_data); //excel file count
+
+ $emp_policy_ids = [];
+ $employeeIds = [];
+ $emp_details = [];
+ $endorsement_id = [];
+ $endorsement_details = [];
$totals = 0;
- foreach ($data as $key => $value) {
- try {
+ foreach ($excel_data as $key => $value) {
- if ($value[15] === null) {
- $missing_id[] = $key + 1;
- }
+ $emp_name = $value[1];
+ $emp_code = $value[2];
+ $endorsement_id[] = $value[19];
+ $totals += $value[18];
- $totals += $value[13];
- $emp_name = $value[2]; //employee name
- $emp_code = $value[1]; //employee code
- $date_of_exit = $value[7]; // date of releving
- $endorsement_id = $value[15] != null ? $value[15] : ''; //endorsement id
+ $result = $this->empEndorsementModel
- $db = \Config\Database::connect();
+ ->select('emp_endorsement.*, employees.id as emp_id, employee_polices.id as emp_policy_id')
+ ->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
+ ->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
+ ->where('employees.emp_code', $emp_code)
+ ->where('employees.name', $emp_name)
+ ->where('employees.client_id', $client_id)
+ ->where('employees.client_branch_id', $client_branch_id)
+ ->where('emp_endorsement.actions', 'si')
+ ->where('employee_polices.client_policy_id', $client_policy_id)
+ ->where('employee_polices.is_active', 1)
+ ->where('employee_polices.status', 'active')
+ ->where('employees.is_active', 1)
+ ->where('employees.emp_status', 'active')
+ ->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
+ ->groupBy('emp_endorsement.group_key')
+ ->first();
- // Execute the query
- $query = $db->table('emp_endorsement')
- ->select('emp_endorsement.id')
- ->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
- ->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
- ->where('employees.emp_code', $emp_code)
- ->where('employees.name', $emp_name)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('emp_endorsement.actions', 'd')
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
- ->groupBy('emp_endorsement.group_key');
-
- $result = $query->get()->getRowArray();
- if (isset($result['id']) && $result['id'] !== null) {
- $empty_emp_tpa_uh_ids[] = $result['id'];
- }
- } catch (\Exception $e) {
- // Handle the exception here
- return 0;
+ if (isset($result['id']) && $result['id'] !== null) {
+ $emp_policy_ids[] = array('id' => $result['emp_policy_id'], 'is_active' => 0);
+ $employeeIds[] = $result['emp_policy_id'];
+ $endorsement_details[] = array('id' => $result['id'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[19], 'status' => 'complete');
}
+
+ $empData = $this->employeePolicyModel
+ ->select('employee_polices.*')
+ ->join('employees', 'employee_polices.employee_id = employees.id')
+ ->where('employees.emp_code', $emp_code)
+ ->where('employees.name', $emp_name)
+ ->where('employees.client_id', $client_id)
+ ->where('employees.client_branch_id', $client_branch_id)
+ ->where('employee_polices.client_policy_id', $client_policy_id)
+ ->where('employee_polices.is_active', 1)
+ ->where('employee_polices.status', 'active')
+ ->where('employees.is_active', 1)
+ ->where('employees.emp_status', 'active')
+ ->first();
+
+ unset($empData['id'], $empData['created_by'], $empData['created_at'], $empData['updated_by'], $empData['updated_at'], $empData['is_active']);
+
+ $empData['basic_cover_si'] = $value[8];
+ $empData['premium'] = $value[14];
+ $empData['si_enhancement_date'] = $value[10];
+ $empData['rata_premimum'] = $value[16];
+ $empData['gst'] = $value[17];
+ $empData['created_by'] = $user_id;
+
+ $emp_details[] = $empData;
}
$rounded_totals = round($totals, 2);
- $missing_id_count = count($missing_id);
- $empty_id_count = count($empty_emp_tpa_uh_ids);
- // if($missing_id_count != $count){
+ // dd($emp_policy_ids, $emp_details, $endorsement_details);
- // return 2;
+ $this->employeePolicyModel->updateBatch($emp_policy_ids, 'id');
+
+ $db = \Config\Database::connect();
+ $db->transStart();
+
+ $this->employeePolicyModel->insertBatch($emp_details);
+
+ $insertedIds = [];
+ $startId = $db->insertID(); // Get the first inserted ID
+
+ for ($i = 0; $i < count($emp_details); $i++) {
+ $insertedIds[] = $startId + $i;
+ }
+
+ $db->transComplete();
+
+ // if ($db->transStatus() === FALSE) {
+ // // Handle the error, rollback, etc.
+ // } else {
+ // // Transaction successful
+ // print_r($insertedIds); // This will print the array of inserted IDs
// }
+
+ $this->employeePolicyModel->bulkUpdateForEndorsement($endorsement_details);
- if ($missing_id_count != 0) {
-
- return 2;
- }
-
- // if($empty_emp_tpa_uh_ids != $count){
-
- // return 3;
- // }
-
- if ($empty_id_count == 0) {
-
- return 3;
- }
-
- // dd($count, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
-
- $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
- $filename = $file->getName();
-
- $this->myLogger->logme('error', 'Deletion Import file name : {data}', ['data' => $filename]);
- $random_number_count = 4;
- $batch_code = generate_random_string($random_number_count);
- $this->myLogger->logme('error', 'Deletion Import BATCH CODE : {data}', ['data' => $batch_code]);
+ // Update batch file status and amount
+ $this->batchFileModel->update($file_id, [
+ 'count' => $emp_count,
+ 'status' => $status_val,
+ 'amount' => $rounded_totals,
+ ]);
- $import_data['batch_code'] = $batch_code;
- $import_data['created_by'] = get_session_userid();
- $import_data['file_name'] = $filename;
- $import_data['amount'] = $rounded_totals;
- $insert = $this->batchFileModel->insert($import_data);
- $batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
-
- $batch_code_for_batch_list['batch_code'] = $batch_file_batch_code['batch_code'];
- $batch_code_for_batch_list['created_by'] = get_session_userid();
-
- $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $batch_file_batch_code['file_name'];
-
- if (!file_exists($file_name_with_path)) {
- return 2;
- }
-
- $data = read_excel_file_to_array($file_name_with_path);
- unset($data[0]);
- array_pop($data);
-
- $count = count($data);
- $this->batchFileModel->where('id', $insert)->set('count', $count)->update();
-
- $employeeIds = [];
- foreach ($data as $key => $value) {
-
- if (!empty($value) && isset($value[15])) {
-
- $emp_name = $value[2]; //employee name
- $emp_code = $value[1]; //employee code
- $date_of_exit = $value[7]; // date of releving
-
- // echo $emp_name .'-'. $emp_code .'-'. $date_of_exit; die;
- $endorsement_id = $value[15] != null ? $value[15] : ''; //endorsement id
-
- $val = $this->employeePolicyModel
- ->select('employee_polices.id')
- ->join('employees', 'employees.id = employee_polices.employee_id')
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employees.name', $emp_name)
- ->where('employees.emp_code', $emp_code)
- ->where('employee_polices.is_active', 1)
- ->first();
+ $this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
+ $this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
- if ($val !== null) {
+ $file_data = $this->getDataByFileId($file_id, 'success');
+ $this->setPullNotification($file_data);
- $id = $val['id'];
- $batch_code_for_batch_list['emp_policy_id'] = $id;
- $this->batchListModel->insert($batch_code_for_batch_list);
- array_push($employeeIds, $id);
- }
-
- // $updateData = [
- // 'emp_code' =>$emp_code,
- // 'client_id' =>$client_id,
- // 'client_policy_id' =>$client_policy_id,
- // 'emp_name' =>$emp_name,
- // 'endorsement_id' =>$endorsement_id,
- // ];
-
- // $this->employeePolicyModel->updateEndoresmentIdForDeletion($updateData);
-
- $deletionDataForEmployee = $this->empEndorsementModel
- ->select('emp_endorsement.new_value, emp_endorsement.id as ee_id, employees.id')
- ->join('employees', 'emp_endorsement.emp_code = employees.emp_code')
- ->join('employee_polices', 'employee_polices.employee_id = employees.id')
- ->where('emp_endorsement.emp_code', $emp_code)
- ->where('employees.client_id', $client_id)
- ->where('employees.client_branch_id', $client_branch_id)
- ->where('employee_polices.client_policy_id', $client_policy_id)
- ->where('emp_endorsement.name', $emp_name)
- ->where('emp_endorsement.field_name', 'emp_status')
- ->first();
-
- $deletionDataForEmployee['updated_by'] = get_session_userid();
- $this->employeeModel->save($deletionDataForEmployee);
-
- $e_Data = [
- 'endorsement_id' => $endorsement_id,
- 'status' => 'complete',
- ];
- $group_key = $this->empEndorsementModel->select('group_key')->where('id', $deletionDataForEmployee['ee_id'])->first();
- $this->empEndorsementModel->where('group_key', $group_key)->set($e_Data)->update();
-
- $fetchData = [
- 'emp_code' => $emp_code,
- 'client_policy_id' => $client_policy_id,
- 'emp_name' => $emp_name,
- ];
-
- $deletionDataForEmployeePolicy = $this->employeePolicyModel->fetchEmpEndorsementData($fetchData);
- $deletionDataForEmployeePolicy['updated_by'] = get_session_userid();
- $this->employeePolicyModel->save($deletionDataForEmployeePolicy);
-
- // $query = $this->employeePolicyModel->getLastQuery();
- // echo $query . "
";
-
- } else {
-
- return 0;
- }
- }
+ //call the cash deposite function
$policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id);
- $depositeData = [
- 'employeeIds' => $employeeIds,
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'cashDepositCalculationForSIEnhancement','payload' => [
+ 'employeeIds' => $insertedIds,
'client_id' => $client_id,
- 'client_branch_id' => $client_branch_id,
'client_policy_id' => $client_policy_id,
- 'count' => $count,
- 'event' => $import_data['event_type'],
+ 'client_branch_id' => $client_branch_id,
+ 'count' => $emp_count,
+ 'event' => $file['event_type'],
'policy_name' => $policy_name['policy_name'],
- ];
+ 'user_id' => $user_id,
+ ]]);
- $this->cashDepositCalculationForDeletion($depositeData);
- return 1;
+ return 'SI Enhancement Update Endorsement ID -- ' . $status_val . '-- Updated Count : ' . $emp_count;
}
+ //Endorsement Deletion
+
+ public function importDeletionValidation($params)
+ {
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->where('id', $file_id)->first();
+
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $client_branch_id = $file['client_branch_id'];
+ $batch_code = $file['batch_code'];
+ $user_id = $file['created_by'];
+
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+
+ if (!file_exists($file_name_with_path)) {
+ return 'The Physical file not found';
+ }
+
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
+ array_pop($excel_data);
+
+
+ $db = \Config\Database::connect();
+
+ $sql = "
+ SELECT DISTINCT
+ a.id as endorsement_primarykey,
+ a.group_key,
+ employee_polices.id as primaryKey,
+ employees.name AS emp_name,
+ employees.emp_code AS emp_code,
+ employees.dob AS emp_dob,
+ employees.gender AS emp_gender,
+ employees.relationship AS emp_relationship,
+ 'Has Define' as emp_type,
+
+ employee_polices.basic_cover_si,
+ employee_polices.uhid as risk_id,
+ employee_polices.policy_end_date,
+ employee_polices.rata_premimum as premium,
+
+
+ deletiondata.empstatus,
+ deletiondata.changeevent,
+ deletiondata.dateofexit,
+ deletiondata.reasonforexit,
+ deletiondata.status,
+
+ DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) AS no_of_days,
+ ROUND((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365, 2) AS pro_rata_premium,
+ ROUND(((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365) * 0.18, 2) AS gst,
+ ROUND(((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365) + (((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365) * 0.18), 2) AS total
+ FROM
+ emp_endorsement a
+ LEFT JOIN
+ employees ON a.emp_code = employees.emp_code and a.pk = employees.id
+ LEFT JOIN
+ employee_polices ON employees.id = employee_polices.employee_id
+
+ LEFT JOIN(
+
+ select aa.emp_code, aa.new_value as 'empstatus', bb.new_value as 'changeevent', cc.new_value as 'dateofexit', dd.new_value as 'reasonforexit', ee.new_value as 'status' from
+
+ ( SELECT a1.emp_code, a1.field_name, a1.new_value from emp_endorsement as a1 where a1.field_name = 'emp_status') aa
+ left join
+ ( SELECT b1.emp_code, b1.field_name, b1.new_value from emp_endorsement as b1 where b1.field_name = 'change_event') bb on aa.emp_code = bb.emp_code
+ left join
+ ( SELECT c1.emp_code, c1.field_name, c1.new_value from emp_endorsement as c1 where c1.field_name = 'date_of_exit') cc on aa.emp_code = cc.emp_code
+ left join
+ ( SELECT d1.emp_code, d1.field_name, d1.new_value from emp_endorsement as d1 where d1.field_name = 'reason_for_exit') dd on aa.emp_code = dd.emp_code
+ left JOIN
+ ( SELECT e1.emp_code, e1.field_name, e1.new_value from emp_endorsement as e1 where e1.field_name = 'status') ee on aa.emp_code = ee.emp_code
+
+ ) as deletiondata on a.emp_code = deletiondata.emp_code
+
+ WHERE employee_polices.client_policy_id = '$client_policy_id'
+ AND employees.client_branch_id = '$client_branch_id'
+ AND a.actions = 'd'
+ AND employee_polices.is_active = 1
+ AND employee_polices.status = 'active'
+ AND employees.is_active = 1
+ AND employees.emp_status = 'active'
+ AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
+ group by group_key
+ ";
+
+ $query = $db->query($sql);
+ $endorsement_data = $query->getResultArray();
+
+
+ if ($endorsement_data == null || empty($endorsement_data)) {
+
+ $data = [
+ 'status' => 'failed-1',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'Deletion File Validation ENDORSEMENT ID already updated');
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The list of employees provided has already been updated with the ENDORSEMENT ID, or this is not the correct file';
+ $this->myLogger->logme('error', 'Deletion File Validation ENDORSEMENT ID already updated or the uploadedfile is not correct');
+ }
+
+ $excel_data_count = count($excel_data);
+ $endorsement_data_count = count($endorsement_data);
+
+ $this->myLogger->logme('error', 'Deletion File Validation excel file count : {data}', ['data' => $excel_data_count]);
+ $this->myLogger->logme('error', 'Deletion File Validation database count : {data}', ['data' => $endorsement_data_count]);
+
+
+ $difference = $endorsement_data_count - $excel_data_count;
+
+ $status = 'in-progress';
+ if ($excel_data_count < $endorsement_data_count) {
+
+ $status = 'in-progress-partially';
+ $partially_updated_data = 'Expected : ' . $endorsement_data_count . ', ' . 'Updated : ' . $excel_data_count . ', ' . 'difference : ' . $difference;
+ $this->myLogger->logme('error', 'Deletion File Validation excel file count partially : {data}', ['data' => $partially_updated_data]);
+ }
+
+
+
+ if ($endorsement_data_count < $excel_data_count) {
+
+ $data = [
+ 'status' => 'failed-3',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'Deletion File Validation excel file count ( {excel} ) exceeds db count ( {db} )', ['db' => $endorsement_data_count, 'excel' => $excel_data_count]);
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The Excel record count exceeds the DB record count. excel file count : ' . $excel_data_count . ' db count : ' . $endorsement_data_count;
+ }
+
+
+ $errors = []; // Initialize an array to store errors
+ $missing_id = [];
+ $batch_list_id = [];
+
+ foreach ($endorsement_data as $key => $endorsement_value) {
+
+ $key = $key + 1;
+
+ if (!isset($excel_data[$key])) {
+ break;
+ }
+
+
+ if ($excel_data[$key][15] === null) {
+ $missing_id[$key][] = [
+ 'row' => $key,
+ 'column' => 15,
+ ];
+ }
+
+
+ if ($endorsement_value['emp_name'] != $excel_data[$key][2]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 2,
+ 'db_data' => $endorsement_value['emp_name'],
+ 'excel_data' => $excel_data[$key][2]
+ ];
+ }
+
+ if ($endorsement_value['emp_code'] != $excel_data[$key][1]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 1,
+ 'db_data' => $endorsement_value['emp_code'],
+ 'excel_data' => $excel_data[$key][1]
+ ];
+ }
+
+ if ($endorsement_value['emp_dob'] != $excel_data[$key][3]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 3,
+ 'db_data' => $endorsement_value['emp_dob'],
+ 'excel_data' => $excel_data[$key][3]
+ ];
+ }
+
+ if ($endorsement_value['emp_gender'] != $excel_data[$key][4]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 4,
+ 'db_data' => $endorsement_value['emp_gender'],
+ 'excel_data' => $excel_data[$key][4]
+ ];
+ }
+
+
+ if ($endorsement_value['emp_relationship'] != $excel_data[$key][5]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 5,
+ 'db_data' => $endorsement_value['emp_relationship'],
+ 'excel_data' => $excel_data[$key][5]
+ ];
+ }
+
+ if ($endorsement_value['basic_cover_si'] != $excel_data[$key][6]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 6,
+ 'db_data' => $endorsement_value['basic_cover_si'],
+ 'excel_data' => $excel_data[$key][6]
+ ];
+ }
+
+ if ($endorsement_value['dateofexit'] != $excel_data[$key][7]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 7,
+ 'db_data' => $endorsement_value['dateofexit'],
+ 'excel_data' => $excel_data[$key][7]
+ ];
+ }
+
+ if ($endorsement_value['policy_end_date'] != $excel_data[$key][8]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 8,
+ 'db_data' => $endorsement_value['policy_end_date'],
+ 'excel_data' => $excel_data[$key][8]
+ ];
+ }
+
+ if ($endorsement_value['no_of_days'] != $excel_data[$key][9]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 9,
+ 'db_data' => $endorsement_value['no_of_days'],
+ 'excel_data' => $excel_data[$key][9]
+ ];
+ }
+
+
+
+ if ($endorsement_value['premium'] != $excel_data[$key][10]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 10,
+ 'db_data' => $endorsement_value['premium'],
+ 'excel_data' => $excel_data[$key][10]
+ ];
+ }
+
+ if ($endorsement_value['pro_rata_premium'] != $excel_data[$key][11]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 11,
+ 'db_data' => $endorsement_value['pro_rata_premium'],
+ 'excel_data' => $excel_data[$key][11]
+ ];
+ }
+
+ if ($endorsement_value['gst'] != $excel_data[$key][12]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 12,
+ 'db_data' => $endorsement_value['gst'],
+ 'excel_data' => $excel_data[$key][12]
+ ];
+ }
+
+ $batch_list_id[] = array('emp_policy_id' =>$endorsement_value['primaryKey'], 'batch_code' => $batch_code, 'created_by' => $user_id);
+ }
+
+
+ $error_count = count($errors);
+ $json_errors = json_encode($errors);
+
+
+ $missing_id_count = count($missing_id);
+ $json_missing_id = json_encode($missing_id);
+
+ // dd($error_count, $missing_id_count, $json_errors, $json_missing_id, $batch_list_id);
+
+ if ($missing_id_count > 0) {
+
+ $data = [
+
+ 'count' => $endorsement_data_count,
+ 'error_data' => $json_missing_id,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'The ENDORSEMENT ID column is either partially or entirely empty.';
+ }
+
+
+ if ($error_count > 0) {
+
+ $data = [
+ 'count' => $endorsement_data_count,
+ 'error_data' => $json_errors,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'Deletion File Validation Failed';
+
+ } else {
+
+ $data = [
+ 'count' => $endorsement_data_count,
+ 'status' => $status,
+ 'error_data' => $partially_updated_data ?? null,
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $insert = $this->batchListModel->insertBatch($batch_list_id);
+
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importDeletionUpdateEndorsementID', 'payload' => ['file_id' => $file_id]]);
+
+ // $this->importDeletionUpdateEndorsementID(['file_id' => $file_id]);
+
+ return 'Deletion File Validation ENDORSEMENT ID validated the file Successfully';
+ }
+
+ }
+
+
+ public function importDeletionUpdateEndorsementID($params)
+ {
+
+ $this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Function called');
+
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->find($file_id);
+ if (!$file) {
+
+ $data = [
+ 'status' => 'failed-4',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ $this->myLogger->logme('error', 'Deletion Update Endorsement ID -- The Physical file not found -- File id : {data}', ['data' => $file_id]);
+
+ $file_data = $this->getDataByFileId($file_id, 'failure');
+ $this->setPullNotification($file_data);
+
+ return 'Deletion Update Endorsement ID -- The Physical file not found'; // Return error code if file not found
+ }
+
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $client_branch_id = $file['client_branch_id'];
+ $status = $file['status'];
+ $batch_code = $file['batch_code'];
+ $user_id = $file['created_by'];
+
+
+ $status_val = 'success';
+ if ($status == 'in-progress-partially') {
+
+ $status_val = 'partially success';
+ }
+
+ $this->myLogger->logme('error', 'Deletion Update Endorsement ID -- file name : {data}', ['data' => $file['file_name']]);
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
+ array_pop($excel_data);
+
+ $emp_count = count($excel_data); //excel file count
+
+ $employees_table_data = [];
+ $emp_endorsement_table_data = [];
+ $employee_policy_table_data = [];
+ $employee_policy_table_primaryKey = [];
+
+ $totals = 0;
+
+
+ foreach ($excel_data as $key => $value) {
+
+ $emp_name = $value[2]; //employee name
+ $emp_code = $value[1]; //employee code
+ $totals = $totals + $value[13];
+
+
+ $fetch_data = [
+ 'client_policy_id' => $client_policy_id,
+ 'client_branch_id' => $client_branch_id,
+ 'emp_name' => $emp_name,
+ 'emp_code' => $emp_code
+ ];
+ $result = $this->employeePolicyModel->fetchEmpEndorsementData($fetch_data);
+
+ // dd($result['emp_endorsement_primarykey']);
+
+ if (isset($result['emp_endorsement_primarykey']) && $result['emp_endorsement_primarykey'] !== null) {
+
+ $employee_policy_table_primaryKey[] = $result['emp_policy_primarykey']; //for cash deposite
+ $employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => $result['date_of_exit'], 'reason_for_exit' => $result['reason_for_exit'], 'status' => $result['status'], 'is_active' => 0);
+ $employees_table_data[] = array('id' => $result['employees_primarykey'], 'emp_status' => $result['status'], 'is_active' => 0);
+ $emp_endorsement_table_data[] = array('id' => $result['emp_endorsement_primarykey'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[15], 'status' => 'complete');
+ }
+
+ }
+
+ $rounded_totals = round($totals, 2);
+
+ // dd($employees_table_data, $emp_endorsement_table_data, $employee_policy_table_data, $employee_policy_table_primaryKey, $totals, $emp_count);
+
+
+ // Check if $employees_table_data is null or empty
+ if (empty($employees_table_data)) {
+ return ['error' => true, 'message' => 'Employees table data is empty or null.'];
+ }
+
+ // Check if $employee_policy_table_data is null or empty
+ if (empty($employee_policy_table_data)) {
+ return ['error' => true, 'message' => 'Employee policy table data is empty or null.'];
+ }
+
+ // Check if $emp_endorsement_table_data is null or empty
+ if (empty($emp_endorsement_table_data)) {
+ return ['error' => true, 'message' => 'Employee endorsement table data is empty or null.'];
+ }
+
+ $this->employeeModel->updateBatch($employees_table_data, 'id');
+ $this->employeePolicyModel->updateBatch($employee_policy_table_data, 'id');
+ $this->employeePolicyModel->bulkUpdateForEndorsement($emp_endorsement_table_data);
+
+ // Update batch file status and amount
+ $this->batchFileModel->update($file_id, [
+ 'count' => $emp_count,
+ 'status' => $status_val,
+ 'amount' => $rounded_totals,
+ ]);
+
+
+ $this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
+ $this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
+
+
+ $file_data = $this->getDataByFileId($file_id, 'success');
+ $this->setPullNotification($file_data);
+
+ //call the cash deposite function
+
+ $policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id);
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'cashDepositCalculationForDeletion', 'payload' => [
+ 'employeeIds' => $employee_policy_table_primaryKey,
+ 'client_id' => $client_id,
+ 'client_policy_id' => $client_policy_id,
+ 'client_branch_id' => $client_branch_id,
+ 'count' => $emp_count,
+ 'event' => $file['event_type'],
+ 'policy_name' => $policy_name['policy_name'],
+ 'user_id' => $user_id,
+ ]]);
+
+ return 'Deletion Update Endorsement ID -- ' . $status_val . '-- Updated Count : ' . $emp_count;
+ }
+
+
/**
* The below functions are Calculates and records cash deposits for employee policies at inception.
*
@@ -1795,16 +2631,17 @@ class EmpDataServiceController extends BaseController
public function cashDepositCalculationForSIEnhancement($arrayData)
- {
+ {
+ // return $arrayData;
+
if (!empty($arrayData)) {
$amount = $this->employeePolicyModel->query("
- SELECT
- SUM(ROUND((employee_polices.premium * DATEDIFF(employee_polices.policy_end_date, employee_polices.si_enhancement_date)) / 365, 2) +
- ROUND(((employee_polices.premium * DATEDIFF(employee_polices.policy_end_date, employee_polices.si_enhancement_date)) / 365) * 0.18, 2)) AS total_sum
+ SELECT SUM(rata_premimum + gst) AS total_sum
FROM employee_polices
WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ")
- ")->getRow();
+ ")->getRow();
+
$insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
$description = 'The following amount of ' . $amount->total_sum . ' has been credited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
@@ -1816,11 +2653,12 @@ class EmpDataServiceController extends BaseController
'insurer_id' => $insurer_id['insurer_id'],
'description' => $description,
'transaction_type' => 'Debit',
- 'updated_by' => get_session_userid(),
+ 'updated_by' => $arrayData['user_id'],
'is_active' => 1,
];
- $response = DepositHelper::saveDeposit($data, get_session_userid());
- return true;
+ $response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
+ $msg = "SI Enhancement Cash Deposite Updated Successfully -- " . $description;
+ return [$msg, $response];
// print_r($response);
// $query = $this->employeePolicyModel->getLastQuery();
// echo $query . "
";
@@ -1839,11 +2677,9 @@ class EmpDataServiceController extends BaseController
// echo '';
// print_r($arrayData); die;
$amount = $this->employeePolicyModel->query("
- SELECT
- SUM(ROUND((employee_polices.premium * DATEDIFF(employee_polices.policy_end_date, employee_polices.date_of_exit)) / 365, 2) +
- ROUND(((employee_polices.premium * DATEDIFF(employee_polices.policy_end_date, employee_polices.date_of_exit)) / 365) * 0.18, 2)) AS total_sum
- FROM employee_polices
- WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ")
+ SELECT SUM(rata_premimum + gst) AS total_sum
+ FROM employee_polices
+ WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ")
")->getRow();
$insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
@@ -1857,10 +2693,13 @@ class EmpDataServiceController extends BaseController
'insurer_id' => $insurer_id['insurer_id'],
'description' => $description,
'transaction_type' => 'Credit',
- 'updated_by' => get_session_userid(),
+ 'updated_by' => $arrayData['user_id'],
'is_active' => 1,
];
- $response = DepositHelper::saveDeposit($data, get_session_userid());
+ $response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
+ $msg = "Deletion Cash Deposite Updated Successfully -- " . $description;
+ return [$msg, $response];
+
return true;
// print_r($response);
// $query = $this->employeePolicyModel->getLastQuery();
@@ -2210,15 +3049,26 @@ class EmpDataServiceController extends BaseController
public function readExcelFileToArray($path)
{
-
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($path);
$sheet = $spreadsheet->getActiveSheet();
-
+
$highestRowAndColumn = $sheet->getHighestRowAndColumn();
$excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
-
- return $excel_data;
+
+ // Filter out empty or null rows
+ $filtered_data = array_filter($excel_data, function($row) {
+ // Check if all cells in the row are empty or null
+ foreach ($row as $cell) {
+ if (!is_null($cell) && $cell !== '') {
+ return true;
+ }
+ }
+ return false;
+ });
+
+ return $filtered_data;
}
+
public function removeOldExportInfoFromBatchFile($params){
@@ -2242,7 +3092,6 @@ class EmpDataServiceController extends BaseController
$id = $batch_data['id'];
$batch_code = $batch_data['batch_code'];
-
$this->batchFileModel->where('id', $id)->delete();
$this->batchListModel->where('batch_code', $batch_code)->delete();
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 3aa5c42d..dfe0f07e 100644
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -373,7 +373,7 @@ class EmployeeController extends AdminController
public function importExport()
{
- $this->myLogger->logme('error', 'importExport function called');
+ $this->myLogger->logme('error', 'Import Export -- Function called');
$empDataServiceController = new EmpDataServiceController();
$client_id = $this->request->getPost('client_id');
@@ -385,10 +385,10 @@ class EmployeeController extends AdminController
$client_data = $this->clientModel->where('id', $client_id)->first();
$policy_name_and_branch_name = $this->clientPolicyModel->select('policies.name, client_branch.branch_code')
- ->join('client_branch', 'client_branch.id = client_policy.client_branch_id')
- ->join('policies', 'policies.id = client_policy.policy_id')
- ->where('client_policy.id', $client_policy_id)
- ->first();
+ ->join('client_branch', 'client_branch.id = client_policy.client_branch_id')
+ ->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_and_branch_name['name'], $policy_name_and_branch_name['branch_code']);
$batch_data = [
@@ -401,20 +401,19 @@ class EmployeeController extends AdminController
'file_name' => $file_name,
];
- // $event_type = 'si_enhancement';
if ($actions == 'export') {
if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') {
$return = $empDataServiceController->generateExcelForAdditionandInception($batch_data);
-
- if($return == 0){
+
+ if ($return == 0) {
session()->setFlashdata('error', "Insufficient deposit amount.");
return redirect()->to(base_url('employee/upload'));
- }
-
+ }
+
if (!$return) {
if ($insurer_or_tpa == 'tpa') {
@@ -424,7 +423,6 @@ class EmployeeController extends AdminController
session()->setFlashdata('error', "No data was found for this action. The UHID has already been updated.");
return redirect()->to(base_url('employee/upload'));
}
-
} else {
$this->myLogger->logme('error', 'Successfully exported Excel file in {data}.', ['data' => $event_type]);
}
@@ -440,6 +438,13 @@ class EmployeeController extends AdminController
} else if ($event_type == 'si_enhancement') {
$return = $empDataServiceController->generateExcelForSIEnhancement($batch_data);
+
+ if ($return == 0) {
+
+ session()->setFlashdata('error', "Insufficient deposit amount.");
+ return redirect()->to(base_url('employee/upload'));
+ }
+
if (!$return) {
session()->setFlashdata('error', 'No data found about this action');
return redirect()->to(base_url('employee/upload'));
@@ -459,29 +464,25 @@ class EmployeeController extends AdminController
} else if ($actions == 'import') {
$batch_data['file'] = $this->request->getFile('import_file_data');
-
+ $file = $this->request->getFile('import_file_data');
+
+ $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
+ $filename = $file->getName();
+ $this->myLogger->logme('error', 'Inception Import file name : {data}', ['data' => $filename]);
+
+ $random_number_count = 4;
+ $batch_data['batch_code'] = generate_random_string($random_number_count);
+ $batch_data['created_by'] = get_session_userid();
+ $batch_data['status'] = 'pending';
+ $batch_data['file_name'] = $filename;
if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') {
-
- $file = $this->request->getFile('import_file_data');
-
- $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
- $filename = $file->getName();
- $this->myLogger->logme('error', 'Inception Import file name : {data}', ['data' => $filename]);
-
-
- $random_number_count = 4;
- $batch_data['batch_code'] = generate_random_string($random_number_count);
- $batch_data['created_by'] = get_session_userid();
- $batch_data['status'] = 'pending';
- $batch_data['file_name'] = $filename;
-
$file_id = $this->batchFileModel->insert($batch_data);
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'importInceptionFileValidation','payload' => ['file_id' => $file_id]]);
-
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importInceptionFileValidation', 'payload' => ['file_id' => $file_id]]);
+
$return = 1;
// $return = $empDataServiceController->importInceptionFileValidation(['file_id' => $file_id]);
@@ -489,71 +490,64 @@ class EmployeeController extends AdminController
if ($return == 1) {
session()->setFlashdata('success', 'Data updated successfully. File is being validated.');
return redirect()->to(base_url('employee/upload'));
- } else if ($return == 2) {
- session()->setFlashdata('error', 'The TPA ID column is either partially or entirely empty.');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 0) {
- session()->setFlashdata('error', 'Please upload the correct file.');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 3) {
- session()->setFlashdata('error', 'The list of employees provided has already been updated with the TPA ID, or this is not the correct file');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 4) {
- session()->setFlashdata('error', 'The UHID column is either partially or entirely empty.');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 5) {
- session()->setFlashdata('error', 'The list of employees provided has already been updated with the UHID, or this is not the correct file');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 6) {
- session()->setFlashdata('error', 'The Excel record count exceeds the DB record count.');
+ } else {
+ session()->setFlashdata($return['status'], $return['message']);
return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'correction') {
- $return = $empDataServiceController->importExcelDataForCorrection($batch_data);
+ $file_id = $this->batchFileModel->insert($batch_data);
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importCorrectionValidation', 'payload' => ['file_id' => $file_id]]);
+
+ $return = 1;
+
+ // $return = $empDataServiceController->importCorrectionValidation(['file_id' => $file_id]);
+
if ($return == 1) {
- session()->setFlashdata('success', 'Data updated successfully');
+ session()->setFlashdata('success', 'Data updated successfully. File is being validated.');
return redirect()->to(base_url('employee/upload'));
- } else if ($return == 2) {
- session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 0) {
- session()->setFlashdata('error', 'Please upload the correct file');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 3) {
- session()->setFlashdata('error', 'File already uploaded');
+ } else {
+ session()->setFlashdata('error', $return);
return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'si_enhancement') {
- $return = $empDataServiceController->importExcelDataForSIEnhancement($batch_data);
+
+ $file_id = $this->batchFileModel->insert($batch_data);
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importSIEnhancementValidation', 'payload' => ['file_id' => $file_id]]);
+
+ $return = 1;
+
+ // $return = $empDataServiceController->importSIEnhancementValidation(['file_id' => $file_id]);
+
if ($return == 1) {
- session()->setFlashdata('success', 'Data updated successfully');
+ session()->setFlashdata('success', 'Data updated successfully. File is being validated.');
return redirect()->to(base_url('employee/upload'));
- } else if ($return == 2) {
- session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 0) {
- session()->setFlashdata('error', 'Please upload the correct file');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 3) {
- session()->setFlashdata('error', 'File already uploaded');
+ } else {
+ session()->setFlashdata('error', $return);
return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'deletion') {
- $return = $empDataServiceController->importExcelDataForDeletion($batch_data);
+ $file_id = $this->batchFileModel->insert($batch_data);
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importDeletionValidation', 'payload' => ['file_id' => $file_id]]);
+
+ $return = 1;
+
+ // $return = $empDataServiceController->importDeletionValidation(['file_id' => $file_id]);
+
+
if ($return == 1) {
- session()->setFlashdata('success', 'Data updated successfully');
+ session()->setFlashdata('success', 'Data updated successfully. File is being validated.');
return redirect()->to(base_url('employee/upload'));
- } else if ($return == 2) {
- session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 0) {
- session()->setFlashdata('error', 'Please upload the correct file');
- return redirect()->to(base_url('employee/upload'));
- } else if ($return == 3) {
- session()->setFlashdata('error', 'File already uploaded');
+ } else {
+ session()->setFlashdata('error', $return);
return redirect()->to(base_url('employee/upload'));
}
}
@@ -722,6 +716,9 @@ class EmployeeController extends AdminController
public function viewUploadedEmployeeList()
{
+
+ $empDataServiceController = new EmpDataServiceController();
+
$file_id = $this->request->getGet('file_id');
// $emp_data['employees'] = $this->employeePolicyModel->getViewEmpSuccessList($file_id);
// $html = view('view_file_upload_emp_list', $emp_data);
@@ -733,20 +730,21 @@ class EmployeeController extends AdminController
->join('clients c', 'files.client_id = c.id and files.client_id = cp.client_id', 'left')
->where('files.id', $file_id)->first();
+ // dd($file_name);
+
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);
+
+ $excel_data = $empDataServiceController->readExcelFileToArray($filePath);
$emp_data['thead'] = $excel_data[0];
unset($excel_data[0]);
$emp_data['tbody'] = $excel_data;
+ $emp_data['count'] = count($excel_data);
+
+ // dd($emp_data);
$html = view('view_file_upload_emp_list', $emp_data);
} else {
@@ -1055,6 +1053,34 @@ class EmployeeController extends AdminController
{
$this->loadLayout('ecard_template/default_ecard');
+
+ // Load the session library if it's not autoloaded
+ // $session = \Config\Services::session();
+
+ // Access session data
+ $sessionData = session()->get();
+
+ // Check if session data exists and if expiration time is set
+ if (!empty($sessionData) && isset($sessionData['isLoggedIn']) && isset($sessionData['session_expiration'])) {
+ // Get the session expiration timestamp
+ $expirationTimestamp = $sessionData['session_expiration'];
+
+ // Get the current timestamp
+ $currentTimestamp = time();
+
+ // Check if the current time is greater than the expiration time
+ if ($currentTimestamp > $expirationTimestamp) {
+ // Session has expired
+ echo "Session has expired";
+ } else {
+ // Session is active
+ echo "Session is active";
+ }
+ } else {
+ // Session data is not set or session is not started
+ echo "Session is not started or data is not set";
+ }
+
}
@@ -1197,6 +1223,7 @@ class EmployeeController extends AdminController
$client_id = $file['client_id'];
$client_policy_id = $file['client_policy_id'];
$insurer_or_tpa = $file['insurer_or_tpa'];
+ $event_type = $file['event_type'];
$error_data = json_decode($file['error_data']);
@@ -1212,8 +1239,10 @@ class EmployeeController extends AdminController
$excel_data = $empDataServiceController->readExcelFileToArray($file_name_with_path);
$excelErrorData['excel_header'] = $excel_data[0];
unset($excel_data[0]);
- array_pop($excel_data);
+ if($event_type == 'inception' || $event_type == 'deletion'){
+ array_pop($excel_data);
+ }
$finalArray = [];
foreach ($error_data as $key => $values) {
@@ -1229,15 +1258,22 @@ class EmployeeController extends AdminController
}else{
- if ($insurer_or_tpa == 'tpa') {
+ if($event_type == 'inception'){
- $error = 'Expected value : TPA ID';
+ if ($insurer_or_tpa == 'tpa') {
- } else if ($insurer_or_tpa == 'insurer') {
-
- $error = 'Expected value : UHID';
+ $error = 'Expected value : TPA ID';
+
+ } else if ($insurer_or_tpa == 'insurer') {
+
+ $error = 'Expected value : UHID';
+ }
+
+ }else{
+ $error = 'Expected value : ENDORSEMENT ID';
}
+
}
$data = ['value' => $excel_data[$row][$column], 'error' => $error,];
$excel_data[$row][$column] = $data;
@@ -1268,9 +1304,18 @@ class EmployeeController extends AdminController
{
$client_policy_id = $this->request->uri->getSegment(3);
$policy_details = $this->clientPolicyModel->find($client_policy_id);
- // print_r($policy_details);die();
$policy_terms = isset($policy_details['policy_terms']) ? true : false;
+ $si_enhancement_true_or_false = 1;
+ if($policy_terms){
+ $policyTermsData = json_decode($policy_details['policy_terms']);
+
+ if (isset($policyTermsData->suminsuredenhancement) && $policyTermsData->suminsuredenhancement !== null) {
+ $si_enhancement_true_or_false = $policyTermsData->suminsuredenhancement;
+ }
+ }
+
+
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$policy_details['client_id']);
$message = null;
@@ -1285,7 +1330,7 @@ class EmployeeController extends AdminController
}
$message = isset($message) ? ($message . ' not defined for choosed policy') : null;
- return $this->respond(['dataStatus' => true, 'code' => 200, 'message' => $message], 200);
+ return $this->respond(['dataStatus' => true, 'code' => 200, 'message' => $message, 'si_enhancement' => $si_enhancement_true_or_false], 200);
}
diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index daf246d7..c31cabe7 100644
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -84,15 +84,22 @@ class EmployeeRestController extends AdminController
try {
$emp_code = $this->request->getGet('emp_code');
$client_id = $this->request->getGet('client_id');
+ $client_branch_id = $this->request->getGet('client_branch_id');
if ($emp_code) {
$relationship = 'self';
$employee = $this->employeeModel->where('emp_code', $emp_code)
->where('client_id', $client_id)
+ ->where('client_branch_id', $client_branch_id)
->where('is_active', 1 )
->where('relationship', $relationship)
->first();
$result = $employee;
- return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
+ $AccountManagerDetails = $this->clientRMModel->select('client_rm.* , user_profiles.*')
+ ->join('user_profiles', 'client_rm.user_id = user_profiles.id', 'left')
+ ->where('client_rm.client_id', $client_id )
+ ->where('client_rm.level', 3 )
+ ->findAll();
+ return $this->respond(['status' => 'success','code' => 200,'data' => $result, 'AccountManagerDetails'=> isset($AccountManagerDetails[0]) ? $AccountManagerDetails[0] : null ],200);
} else {
$result = "No Match's";
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404);
@@ -102,7 +109,7 @@ class EmployeeRestController extends AdminController
}
}
-
+ //not in use
public function editEmployeeProfile()
{
try {
@@ -125,7 +132,7 @@ class EmployeeRestController extends AdminController
}
-
+ //not in use
public function getEmployeeAndDependence()
{
try {
@@ -152,7 +159,7 @@ class EmployeeRestController extends AdminController
}
-
+ //not in use
public function editEmployeeAndDependence()
{
try {
@@ -372,6 +379,7 @@ class EmployeeRestController extends AdminController
return null;
}
}
+
public function deleteDependence()
{
try {
@@ -400,11 +408,78 @@ class EmployeeRestController extends AdminController
}
+ // Get the RelationShip list
+ public function createOrUpdateEmployeePolicySiAmount()
+ {
+
+ try {
+ $requestData = $this->request->getJSON();
+
+ foreach ($requestData as $key => $value) {
+
+
+ $checkIfExist = $this->employeePolicyModel->where('employee_id', $value->employee_id)
+ ->where('client_policy_id', $value->client_policy_id)
+ ->where('is_active', 1 )
+ ->findAll();
+
+
+ // dd($checkIfExist);
+ if ($checkIfExist) {
+
+ $empPolicy = $this->employeePolicyModel->updateSiAndPremium($value->client_policy_id, $value->employee_id, $value->basic_cover_si);
+
+ }else{
+
+ $data['employee_id']= $value->employee_id;
+ $data['client_policy_id']= $value->client_policy_id;
+ $data['basic_cover_si']= $value->basic_cover_si;
+ $data['status'] = 'draft';
+
+ $this->employeePolicyModel->insert($data);
+ }
+ }
+
+ $this->updatePremiumAmount($requestData[0]->client_policy_id , $requestData[0]->emp_code);
+
+ return $this->respond(['status' => 'success','code' => 200,'data' => []], 200);
+
+ } catch (\Exception $e) {
+ return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
+ }
+ }
+
+ public function findPremiumAmount($slabArray,$siAmount)
+ {
+ foreach ($slabArray as $key => $value) {
+ if($value['si'] == $siAmount){
+ return $value['premium'];
+ break;
+ }
+ }
+ }
+
+ public function relationshipList()
+ {
+ try {
+
+ $relation_ships= $this->relationshipModel->findAll();
+
+ if(count($relation_ships) > 0){
+ return $this->respond(['status' => 'success','code' => 200,'data' => $relation_ships], 200);
+ }else{
+ return $this->respond(['status' => 'success','code' => 200,'data' => "No Data..!"], 200);
+ }
+
+ } catch (\Exception $e) {
+ return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
+ }
+ }
public function getEmployeeAndDependenceByClientId()
{
try {
- $empData = $this->employeePolicyModel->getEmployeePolicy( client_id:$this->request->getGet('client_id'),policy_id: $this->request->getGet('client_policy_id'),status:0);
+ $empData = $this->employeePolicyModel->getEmployeePolicy( client_id:$this->request->getGet('client_id'),policy_id: $this->request->getGet('client_policy_id'),status:0,branch_id:$this->request->getGet('client_branch_id'));
if ($empData) {
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $empData], 200);
@@ -419,11 +494,11 @@ class EmployeeRestController extends AdminController
}
-
public function exportDataByClientPolicyId()
{
try {
- $empData = $this->employeePolicyModel->getEmployeePolicy( client_id:$this->request->getGet('client_id'),policy_id: $this->request->getGet('client_policy_id'),status:0);
+
+ $empData = $this->employeePolicyModel->getEmployeePolicy( client_id:$this->request->getGet('client_id'),policy_id: $this->request->getGet('client_policy_id'),status:0,branch_id:$this->request->getGet('client_branch_id'));
if(count($empData))
{
@@ -496,6 +571,7 @@ class EmployeeRestController extends AdminController
}
+ //not in use
public function getClientPolicy()
{
try {
@@ -534,73 +610,7 @@ class EmployeeRestController extends AdminController
- // Get the RelationShip list
- public function createOrUpdateEmployeePolicySiAmount()
- {
-
- try {
- $requestData = $this->request->getJSON();
-
- foreach ($requestData as $key => $value) {
-
-
- $checkIfExist = $this->employeePolicyModel->where('employee_id', $value->employee_id)
- ->where('client_policy_id', $value->client_policy_id)
- ->where('is_active', 1 )
- ->findAll();
-
-
- // dd($checkIfExist);
- if ($checkIfExist) {
-
- $empPolicy = $this->employeePolicyModel->updateSiAndPremium($value->client_policy_id, $value->employee_id, $value->basic_cover_si);
-
- }else{
-
- $data['employee_id']= $value->employee_id;
- $data['client_policy_id']= $value->client_policy_id;
- $data['basic_cover_si']= $value->basic_cover_si;
- $data['status'] = 'draft';
-
- $this->employeePolicyModel->insert($data);
- }
- }
-
- $this->updatePremiumAmount($requestData[0]->client_policy_id , $requestData[0]->emp_code);
-
- return $this->respond(['status' => 'success','code' => 200,'data' => []], 200);
-
- } catch (\Exception $e) {
- return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
- }
- }
-
- public function findPremiumAmount($slabArray,$siAmount)
- {
- foreach ($slabArray as $key => $value) {
- if($value['si'] == $siAmount){
- return $value['premium'];
- break;
- }
- }
- }
- public function relationshipList()
- {
- try {
-
- $relation_ships= $this->relationshipModel->findAll();
-
- if(count($relation_ships) > 0){
- return $this->respond(['status' => 'success','code' => 200,'data' => $relation_ships], 200);
- }else{
- return $this->respond(['status' => 'success','code' => 200,'data' => "No Data..!"], 200);
- }
-
- } catch (\Exception $e) {
- return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
- }
- }
// Upload the Employee Detail in DB by Sheet Data
public function employeeUpload()
@@ -614,6 +624,7 @@ class EmployeeRestController extends AdminController
// die;
$file = $this->request->getFile('file');
$client_id = $this->request->getPost('client_id');
+ $client_branch_id = $this->request->getPost('client_branch_id');
$policy_id = $this->request->getPost('policy_id');
$client_data = $this->clientModel->where('id', $client_id)->first();
@@ -632,7 +643,7 @@ class EmployeeRestController extends AdminController
- $client_policy = $this->clientPolicyModel->where('id', $policy_id)->where('client_id', $client_id)->first();
+ $client_policy = $this->clientPolicyModel->where('id', $policy_id)->where('client_id', $client_id)->where('client_branch_id', $client_branch_id)->first();
if ($client_policy) {
$policy = $this->policesModel->where('id', $client_policy['policy_id'])->first();
$policy_permium_1 = $this->policyPremium1Model->where(['client_id' => $client_id , 'client_policy_id' => $policy_id,'is_active' =>1])-> first();
@@ -666,6 +677,7 @@ class EmployeeRestController extends AdminController
$extractData['file_name']= $filename;
$extractData['client_id']= $client_id;
+ $extractData['client_branch_id']= $client_branch_id;
$extractData['status']= 'success';
$extractData['policy_id']= $policy_id;
$extractData['action']= 'enrollment';
@@ -772,6 +784,7 @@ class EmployeeRestController extends AdminController
'client_id' => $client_id,
'emp_status'=>'draft',
'band'=> $extra['10'][$index],
+ 'client_branch_id' => $client_branch_id
];
$basic_cover_si_value = null;
@@ -928,13 +941,15 @@ public function getAgeRange($terms,$familyFloatesValue)
}
+
public function getEmployeePolicy()
{
try {
$id = $this->request->getGet('id');
$emp_code = $this->request->getGet('emp_code');
- $client_id = $this->request->getGet('client_id');
+ $client_id = $this->request->getGet('client_id');
+ $client_branch_id = $this->request->getGet('client_branch_id');
// This is an array containing keys to be removed from the terms and conditions array
$keysToRemove = ["removable_keys"];
@@ -942,8 +957,11 @@ public function getEmployeePolicy()
$empPolicy = $this->employeeModel->getEmployeePolicy($id);
// Retrieve employee and dependents data by passing the employee code
- $employeeData = $this->employeeModel->where('emp_code',$emp_code)->where('client_id',$client_id)
- ->where('is_active', 1 )->where('is_addon_value',0)->findAll();
+ $employeeData = $this->employeeModel->where('emp_code',$emp_code)
+ ->where('client_id',$client_id)
+ ->where('client_branch_id',$client_branch_id)
+ ->where('is_active', 1 )
+ ->where('is_addon_value',0)->findAll();
if ($empPolicy) {
@@ -1091,12 +1109,13 @@ public function getEmployeePolicy()
->where('client_policy.policy_type_id', 3 )
->where('client_policy.is_addon', 1 )
->where('client_policy.client_id', $this->request->getGet('client_id') )
+ ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') )
->where('client_policy.is_active', 1 )
->get()
->getResult();
if($checkGmcParentsPolicyExist)
{
- $GmcParrentsData = $this->getGmcParrentsPolicy($checkGmcParentsPolicyExist,$emp_code,$client_id);
+ $GmcParrentsData = $this->getGmcParrentsPolicy($checkGmcParentsPolicyExist,$emp_code,$client_id,$client_branch_id);
return $this->respond(['status' => 'success','code' => 200,'data' => [$array,$GmcParrentsData]], 200);
}
@@ -1122,11 +1141,14 @@ public function getEmployeePolicy()
}
-public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
+public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id,$client_branch_id)
{
- $employeeData = $this->employeeModel->where('emp_code',$emp_code)->where('client_id',$client_id)
- ->where('is_active', 1 )->where('is_addon_value',0)->findAll();
+ $employeeData = $this->employeeModel->where('emp_code',$emp_code)
+ ->where('client_id',$client_id)
+ ->where('client_branch_id',$client_branch_id)
+ ->where('is_active', 1 )
+ ->where('is_addon_value',0)->findAll();
foreach ($GmcParrentsPolicy as $key => $array) {
@@ -1163,9 +1185,7 @@ public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
$array->eCardDownload = null;
}
- // if($array->tpa_id != null){
- // $array->eCardDownload = base_url('download-e-card/') . $array->rand_string;
- // }else{ $array->eCardDownload = null; }
+
$array->eCardDownload = null;
// Map family floaters that already exist in the employee table
@@ -1256,6 +1276,7 @@ public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
}
}
+
public function FloterConvertion($array){
$result = [];
@@ -1320,7 +1341,8 @@ public function getClientDetails()
$client = $this->clientModel->where('id',$this->request->getGet('client_id'))->first();
if($client) {
$client['client_logo'] = base_url().'public/uploads/logo/'.$client['client_logo'];
- $clientPolicy = $this->clientPolicyModel->where('client_id',$this->request->getGet('client_id'))->findAll();
+ $clientPolicy = $this->clientPolicyModel->where('client_id',$this->request->getGet('client_id'))
+ ->where('client_branch_id',$this->request->getGet('client_branch_id'))->findAll();
return $this->respond(['status' => 'success','code' => 200,'data' => ['client'=>$client,'client_policy'=>$clientPolicy]], 200);
}else{
@@ -1335,17 +1357,22 @@ public function getAddOnPolicy()
{
try {
- $addOnEmployeeData = $this->employeeModel->where('is_active', 1 )->where('emp_code',$this->request->getGet('emp_code'))->where('client_id',$this->request->getGet('client_id'))->where('is_addon_value',1)->findAll();
+ $addOnEmployeeData = $this->employeeModel->where('is_active', 1 )
+ ->where('emp_code',$this->request->getGet('emp_code'))
+ ->where('client_id',$this->request->getGet('client_id'))
+ ->where('client_branch_id',$this->request->getGet('client_branch_id'))
+ ->where('is_addon_value',1)->findAll();
$clientPolicy = $this->clientPolicyModel->where('client_id',$this->request->getGet('client_id'))
+ ->where('client_branch_id',$this->request->getGet('client_branch_id'))
->where('policy_status', 1)
->findAll();
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;
+ $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('client_branch_id',$this->request->getGet('client_branch_id'))->where('family_floater_key','self')->get()->getRow()->band;
$PolicyData = [];
foreach ($clientPolicy as $key => $array) {
$responce = [];
@@ -1768,6 +1795,7 @@ public function getCashDepositData()
$ClientPolicyData = $this->clientPolicyModel->select('client_policy.client_id as clientId , client_policy.insurer_id as insurerId,insurers.name as insurer_name')
->join('insurers', 'client_policy.insurer_id = insurers.id', 'left')
->where('client_policy.client_id', $this->request->getGet('client_id') )
+ ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') )
->where('client_policy.is_active', 1 )
->where('client_policy.policy_status', 1)
->groupBy('client_policy.insurer_id')
@@ -1789,6 +1817,7 @@ public function getCashDepositData()
->join('policies', 'client_policy.policy_id = policies.id', 'left')
->where('client_policy.insurer_id', $value['insurerId'] )
->where('client_policy.client_id', $this->request->getGet('client_id') )
+ ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') )
->where('client_policy.is_active', 1 )
->where('client_policy.policy_status', 1)
->findAll();
@@ -1797,7 +1826,7 @@ public function getCashDepositData()
{
$value['type'] = $this->policyTypeModel->where('id',$value['policy_type_id'])->get()->getRow()->policy_type;
- $employeeDetails = $this->employeePolicyModel->getEmployeePolicy( client_id:$value['client_id'],policy_id: $value['client_policy_id'],status:0);
+ $employeeDetails = $this->employeePolicyModel->getEmployeePolicy( client_id:$value['client_id'],policy_id: $value['client_policy_id'],status:0,branch_id:$this->request->getGet('client_branch_id'));
$enrolledCount = 0;
$draftCount = 0;
if(count($employeeDetails))
@@ -1970,83 +1999,6 @@ public function removeEmpAndEmpPolicyData()
}
-
-
-function getEmployeeOldPolicy()
-{
- $ClientPolicyData = $this->clientPolicyModel->select('client_policy.* , policies.name as policy_name , policy_type.policy_type as policy_type')
- ->join('policies', 'client_policy.policy_id = policies.id', 'left')
- ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
- ->where('client_policy.client_id', $this->request->getGet('client_id') )
- ->where('client_policy.is_active', 1 )
- ->where('client_policy.policy_status', 0)
- ->orderby('client_policy.id' , 'ASC')
- ->findAll();
-
- // Retrieve employee and dependents data by passing the employee code
- $employeeData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code'))
- ->where('client_id',$this->request->getGet('client_id'))
- ->where('is_active', 1 )->findAll();
- $whereArrayForId = [];
- foreach ( $employeeData as $key => $value) { array_push($whereArrayForId, $value['id']); }
-
- if(count($ClientPolicyData) > 0 && count($employeeData) > 0)
- {
- $result = [];
- foreach ($ClientPolicyData as $key => $ClientPolicyValue) {
-
- $terms = json_decode($ClientPolicyValue['policy_terms']);
- // dd($terms);
- $data['client_id'] = $ClientPolicyValue['client_id'];
- $data['client_policy_id'] = $ClientPolicyValue['id'];
- $data['policy_name'] = $ClientPolicyValue['policy_name'];
- $data['policy_type'] = $ClientPolicyValue['policy_type'];
- $data['policy_type'] = $ClientPolicyValue['policy_type'];
- $data['policy_start_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_start_date']);
- $data['policy_end_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_end_date']);
-
- if($ClientPolicyValue['policy_type_id'] == 1){ $data['heading'] = 'Group Personal Accident Coverage'; }else
- if($ClientPolicyValue['policy_type_id'] == 2){ $data['heading'] = 'Group Medical Coverage'; }else
- if($ClientPolicyValue['policy_type_id'] == 3){ $data['heading'] = 'Group Medical Coverage - Parents'; }else
- if($ClientPolicyValue['policy_type_id'] == 4){ $data['heading'] = 'Group Medical Coverage - Top Up'; }else
- if($ClientPolicyValue['policy_type_id'] == 5){ $data['heading'] = 'Group Medical Coverage - Parents (Top Up)'; }
-
- if($ClientPolicyValue['policy_type_id'] == 1){ $data['floter_text_heading'] = 'Sum Insured'; }
- else
- {
- if($terms->family_floater == 1){ $data['floter_text_heading'] = 'Floter Sum Insured'; }else{ $data['floter_text_heading'] = 'Sum Insured'; }
- }
-
- $employee_policy = $this->employeePolicyModel->select('employees.*,employee_polices.employee_id , employee_polices.basic_cover_si , employee_polices.premium , employee_polices.gst , employee_polices.tpa_id , employee_polices.rand_string')
- ->join('employees', 'employee_polices.employee_id = employees.id', 'left')
- ->whereIn('employee_polices.employee_id',$whereArrayForId)
- ->where('employee_polices.client_policy_id',$ClientPolicyValue['id'])
- ->where('employee_polices.is_active', 1 )->findAll();
- $si_value = 0;
- $si_premium_value = 0;
- $si_gst_value = 0;
- foreach ($employee_policy as $key => $value) {
- if(isset($value['basic_cover_si'])){ $si_value = $value['basic_cover_si']; }
- if(isset($value['premium'])){ $si_premium_value = $si_premium_value + $value['premium'];}
- if(isset($value['gst'])){ $si_gst_value = $si_gst_value + $value['gst'];}
- }
-
- $data['si_value'] = $si_value;
- $data['si_premium_value'] = ($ClientPolicyValue['policy_type_id'] == 1 || $ClientPolicyValue['policy_type_id'] == 2) ? 0 : $si_premium_value;
- $data['si_gst_value'] = ($ClientPolicyValue['policy_type_id'] == 1 || $ClientPolicyValue['policy_type_id'] == 2) ? 0 : $si_gst_value;
-
- $data['EmployeePolicy'] = $employee_policy;
- array_push($result, $data);
- }
-
- return $this->respond(['status' => 'success','code' => 200,'data' => $result ], 200);
-
- }else{
- return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 200);
- }
-
-}
-
function getEmployeeActiveOrInactivePolicy()
{
@@ -2055,6 +2007,7 @@ function getEmployeeActiveOrInactivePolicy()
->join('policies', 'client_policy.policy_id = policies.id', 'left')
->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
->where('client_policy.client_id', $this->request->getGet('client_id') )
+ ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') )
->where('client_policy.is_active', 1 )
->where('client_policy.policy_status', $policy_status)
->orderby('client_policy.id' , 'ASC')
@@ -2063,9 +2016,11 @@ function getEmployeeActiveOrInactivePolicy()
// Retrieve employee and dependents data by passing the employee code
$employeeData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code'))
->where('client_id',$this->request->getGet('client_id'))
+ ->where('client_branch_id',$this->request->getGet('client_branch_id'))
->where('is_active', 1 )->findAll();
$employeeName = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code'))
->where('client_id',$this->request->getGet('client_id'))
+ ->where('client_branch_id',$this->request->getGet('client_branch_id'))
->where('family_floater_key','self')->where('is_active', 1 )
->get()->getRow()->name;
$whereArrayForId = [];
diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php
index 793ddb76..38fd648a 100644
--- a/app/Controllers/JobWorker.php
+++ b/app/Controllers/JobWorker.php
@@ -16,10 +16,22 @@ class JobWorker extends AdminController
private static $event_class_mapping = [
'add' => ['type' => 'HC', 'handler' => 'App\\Helpers\\HttpRequestHelper'], 'sub' => ['type' => 'CC', 'handler' => 'App\\Controllers\\Jobs\SubJob'], 'fancy_date_time_format' => ['type' => 'HF', 'handler' => 'fancy_date_time_format'], 'addNumber' => ['type' => 'HC', 'handler' => 'App\\Model\\HttpRequestHelper'], 'excelFileFormatValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'excelFileDataValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeesOnboardPreprocess' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeeDisembark' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeesSIEnhanceProcess' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeesCorrectionProcess' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'send_email' => ['type' => 'HC', 'handler' => 'App\\Helpers\\MailHelper'], 'bulk_mail' => ['type' => 'HC', 'handler' => 'App\\Helpers\\MailHelper'], 'insertBatchList' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+
'importInceptionFileValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
'importInceptionUpdateTPAandUHID' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
'cashDepositCalculationForInception' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
'sendMailForDownloadingECard' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+
+ 'importCorrectionValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importCorrectionUpdateEndorsementID' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+
+ 'cashDepositCalculationForSIEnhancement' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importSIEnhancementValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importSIEnhancementUpdateEndorsementID' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+
+ 'cashDepositCalculationForDeletion' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importDeletionValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importDeletionUpdateEndorsementID' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
];
public function __construct()
{
diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php
index 3af70fc4..72e7b8c7 100644
--- a/app/Controllers/RestAuthenticationController.php
+++ b/app/Controllers/RestAuthenticationController.php
@@ -101,7 +101,7 @@ class RestAuthenticationController extends AdminController
$auth = HttpRequestHelper::getRequestInfo();
if ($auth) {
$data = [
- 'user_id' => $employeeData['id'],
+ 'user_id' => $employeeData['id'],
'user_type' => 'employee',
'ip' => $auth['ip'],
'platform' => $auth['platform'],
diff --git a/app/Filters/AuthJWT.php b/app/Filters/AuthJWT.php
index a9b6911f..456b2e6f 100644
--- a/app/Filters/AuthJWT.php
+++ b/app/Filters/AuthJWT.php
@@ -24,9 +24,17 @@ class AuthJWT implements FilterInterface
if (JWTToken::validateJWT($jwt)) {
$data = JWTToken::validateJWT($jwt);
$data = json_decode($data);
+
if ($data->status) {
// $auth = $request->getHeader("Authorization");
-
+ // $decodedToken = $data->decoded;
+
+ // $decodedToken->exp += 30;
+ // $newJwt = JWTToken::encode((array)$decodedToken);
+
+ // Set the new JWT in the response headers
+ // $response = service('response');
+ // $response->setHeader('Authorization', $newJwt);
return true;
}else{
header('Content-Type: application/json');
diff --git a/app/Helpers/JWTToken.php b/app/Helpers/JWTToken.php
index 6c6d29cf..dc381fa1 100644
--- a/app/Helpers/JWTToken.php
+++ b/app/Helpers/JWTToken.php
@@ -20,7 +20,7 @@ class JWTToken
{
$secret_Key="secret";
$iat = time();
- $exp = $iat + 36000;
+ $exp = $iat + 180;
$request_data = [
"iat" => $iat,
"exp" => $exp,
diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php
index cfc96b17..0c8c7067 100644
--- a/app/Helpers/sendMailNotification.php
+++ b/app/Helpers/sendMailNotification.php
@@ -105,6 +105,7 @@ class sendMailNotification
$name = $get_emp_email_and_other_details['name'];
$mail_content = $notification['mail_content'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
+ $post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
// $client_logo = $nhance_logo;
@@ -114,8 +115,9 @@ class sendMailNotification
$mail_content = str_replace("[[member_name]]", $name, $mail_content);
$mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+ $mail_content = str_replace("[[post_enrollment_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("[[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']];
diff --git a/app/Helpers/session_helper.php b/app/Helpers/session_helper.php
index 6e879e4b..ce6a0f56 100644
--- a/app/Helpers/session_helper.php
+++ b/app/Helpers/session_helper.php
@@ -10,6 +10,37 @@ if (!function_exists('check_session')) {
}
}
+if (!function_exists('set_last_visited_time')) {
+ function set_last_visited_time()
+ {
+ $session = \Config\Services::session();
+ $session->set('last_visited', date("Y-m-d H:i:s"));
+ }
+}
+
+if (!function_exists('get_last_visited_time')) {
+ function get_last_visited_time()
+ {
+ // Get the session service
+ $session = \Config\Services::session();
+
+ // Get the last visited time from session
+ $lastVisitTime = $session->get('last_visited');
+
+ // Check if the last visited time is set
+ if ($lastVisitTime) {
+ // Calculate the time five minutes ago
+ $fiveMinutesBefore = date("YmdHi", strtotime('-5 minutes'));
+
+ // Compare the last visited time with the time five minutes ago
+ return date("YmdHi", strtotime($lastVisitTime)) > $fiveMinutesBefore ? 1 : 0;
+ }
+
+ // If last visited time is not set, return 0
+ return 0;
+ }
+}
+
if (!function_exists('get_session_userid')) {
function get_session_userid()
{
diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php
index 35beeb4c..fd1e8510 100644
--- a/app/Models/ClientModel.php
+++ b/app/Models/ClientModel.php
@@ -42,7 +42,18 @@ class ClientModel extends Model
foreach ($clients as &$client) {
$clientPolicyModel = new ClientPolicyModel();
- $clientPolicies = $clientPolicyModel->select(['client_branch.id as branch_id','client_branch.branch_name','client_branch.branch_code', 'client_branch.client_id', 'client_policy.id as client_policy_id','p.name','pt.policy_type',])
+ $clientPolicies = $clientPolicyModel
+ ->select(['
+
+ client_branch.id as branch_id',
+ 'client_branch.branch_name',
+ 'client_branch.branch_code',
+ 'client_branch.client_id',
+ 'client_policy.id as client_policy_id',
+ 'client_policy.policy_terms',
+ 'p.name',
+ 'pt.policy_type',
+ ])
->join('client_branch', 'client_branch.id = client_policy.client_branch_id')
->join('policies p', 'p.id = client_policy.policy_id')
->join('policy_type pt','client_policy.policy_type_id = pt.id')
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index 2e7bcf23..4f9652d9 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -143,7 +143,7 @@ class EmployeePolicyModel extends Model
employees.relationship AS emp_relationship,
employees.relationship_code AS emp_relationship_code,
TIMESTAMPDIFF(YEAR, employees.dob, CURDATE()) AS emp_age,
- 'Has Define' as emp_type,
+ employees.emp_type as emp_type,
employee_polices.id as primaryKey,
employee_polices.tpa_id,
@@ -175,8 +175,13 @@ class EmployeePolicyModel extends Model
) as batch_data ON employee_polices.id = batch_data.emp_policy_id
WHERE employee_polices.client_policy_id = '{$client_policy_id}'
AND (employee_polices.{$id} IS NULL OR employee_polices.{$id} = '')
+ AND employees.client_branch_id = '{$client_branch_id}'
AND employee_polices.is_active = 1
- AND employees.client_branch_id = '{$client_branch_id}'";
+ AND employee_polices.status = 'active'
+ AND employees.is_active = 1
+ AND employees.emp_status = 'active'
+
+ ";
// Get the result set
$query = $this->db->query($sql);
@@ -209,7 +214,7 @@ class EmployeePolicyModel extends Model
employees.dob AS emp_dob,
employees.gender AS emp_gender,
employees.client_id AS emp_client_id,
- 'Has Define' AS emp_type,
+ employees.emp_type as emp_type,
employee_polices.uhid,
employees.relationship_code,
batch_data.emp_policy_id,
@@ -235,12 +240,16 @@ class EmployeePolicyModel extends Model
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
) AS batch_data ON emp_endorsement.pk = batch_data.emp_policy_id
- WHERE batch_data.bf IS NULL
- AND batch_data.bl IS NULL
- AND employees.client_id = '{$client_id}'
+ WHERE employees.client_id = '{$client_id}'
AND employee_polices.client_policy_id = '{$client_policy_id}'
AND employees.client_branch_id = '{$client_branch_id}'
AND emp_endorsement.actions = 'c'
+ AND employee_polices.is_active = 1
+ AND employee_polices.status = 'active'
+ AND employees.is_active = 1
+ AND employees.emp_status = 'active'
+ AND (employee_polices.tpa_id IS NOT NULL AND employee_polices.tpa_id != '')
+ AND (employee_polices.uhid IS NOT NULL AND employee_polices.uhid != '')
AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')";
// Execute the raw query
@@ -265,13 +274,14 @@ class EmployeePolicyModel extends Model
$query = $this->db->query("
SELECT
a.id as endorsement_primarykey,
+ a.group_key,
employee_polices.id AS primaryKey,
employees.name AS emp_name,
employees.emp_code AS emp_code,
employees.dob AS emp_dob,
employees.gender AS emp_gender,
employees.relationship_code AS emp_relationship_code,
- 'Has Define' AS emp_type,
+ employees.emp_type as emp_type,
employee_polices.uhid AS risk_id,
employee_polices.pre_existing_alignments,
employee_polices.policy_end_date,
@@ -283,10 +293,15 @@ class EmployeePolicyModel extends Model
sidata.new_basic_cover_si,
sidata.new_si_premium,
sidata.date_of_coverage,
+
DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days,
+
sidata.new_si_premium - employee_polices.rata_premimum AS difference_premium,
+
ROUND((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365, 2) AS pro_rata_premimum,
+
ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS gst,
+
((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS total
FROM
@@ -346,14 +361,16 @@ class EmployeePolicyModel extends Model
AND batch_files.actions = 'export'
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
- WHERE
- batch_data.bf IS NULL
- AND batch_data.bl IS NULL
- AND employee_polices.client_policy_id = '{$client_policy_id}'
- AND employees.client_branch_id = '{$client_policy_id}'
- AND employee_polices.is_active = '1'
+
+ WHERE employee_polices.client_policy_id = '{$client_policy_id}'
+ AND employees.client_branch_id = '{$client_branch_id}'
AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
- AND a.field_name = 'si_enhancement_date'
+ AND a.actions = 'si'
+ AND employee_polices.is_active = 1
+ AND employee_polices.status = 'active'
+ AND employees.is_active = 1
+ AND employees.emp_status = 'active'
+ group by group_key
");
// Get the result set
@@ -374,13 +391,14 @@ class EmployeePolicyModel extends Model
$query = $this->db->query("
SELECT DISTINCT
a.id as endorsement_primarykey,
+ a.group_key,
employee_polices.id as primaryKey,
employees.name AS emp_name,
employees.emp_code AS emp_code,
employees.dob AS emp_dob,
employees.gender AS emp_gender,
employees.relationship AS emp_relationship,
- 'Has Define' as emp_type,
+ employees.emp_type as emp_type,
employee_polices.basic_cover_si,
employee_polices.uhid as risk_id,
@@ -404,7 +422,7 @@ class EmployeePolicyModel extends Model
FROM
emp_endorsement a
LEFT JOIN
- employees ON a.emp_code = employees.emp_code
+ employees ON a.emp_code = employees.emp_code and a.pk = employees.id
LEFT JOIN
employee_polices ON employees.id = employee_polices.employee_id
@@ -439,16 +457,20 @@ class EmployeePolicyModel extends Model
AND batch_files.actions = 'export'
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
- WHERE
- batch_data.bf IS NULL
- AND batch_data.bl IS NULL
- AND employee_polices.client_policy_id = {$client_policy_id}
+
+ WHERE employee_polices.client_policy_id = {$client_policy_id}
AND employees.client_branch_id = {$client_branch_id}
+ AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
+ AND a.actions = 'd'
AND employee_polices.is_active = 1
- AND (a.endorsement_id IS NULL OR a.endorsement_id = '') AND a.field_name = 'status'
+ AND employee_polices.status = 'active'
+ AND employees.is_active = 1
+ AND employees.emp_status = 'active'
+ group by group_key
");
$result = $query->getResult();
+
return $result;
}
@@ -547,34 +569,62 @@ class EmployeePolicyModel extends Model
public function fetchEmpEndorsementData($fetch_data)
{
+ // dd($fetch_data);
+
$client_policy_id = $fetch_data['client_policy_id'];
+ $client_branch_id = $fetch_data['client_branch_id'];
$emp_name = $fetch_data['emp_name'];
$emp_code = $fetch_data['emp_code'];
// Your raw SQL query
$sql = "
- SELECT
- ep.id,
- MAX(CASE WHEN ee.field_name = 'date_of_exit' THEN ee.new_value END) AS date_of_exit,
- MAX(CASE WHEN ee.field_name = 'reason_for_exit' THEN ee.new_value END) AS reason_for_exit,
- MAX(CASE WHEN ee.field_name = 'status' THEN ee.new_value END) AS status
- FROM
- emp_endorsement AS ee
- JOIN
- employee_polices AS ep ON ep.id = ee.pk
- WHERE
- ee.emp_code = '$emp_code'
- AND ep.client_policy_id = $client_policy_id
- AND ee.name = '$emp_name'
- AND ee.field_name IN ('date_of_exit', 'reason_for_exit', 'status')
- GROUP BY
- ee.emp_code, ee.name, ep.id";
+ SELECT
+ ee.id as emp_endorsement_primarykey,
+ ep.id as emp_policy_primarykey,
+ e.id as employees_primarykey,
+ ee.group_key,
+ MAX(
+ CASE
+ WHEN ee.field_name = 'date_of_exit' THEN ee.new_value
+ END
+ ) AS date_of_exit,
+ MAX(
+ CASE
+ WHEN ee.field_name = 'reason_for_exit' THEN ee.new_value
+ END
+ ) AS reason_for_exit,
+ MAX(
+ CASE
+ WHEN ee.field_name = 'status' THEN ee.new_value
+ END
+ ) AS status
+ FROM
+ emp_endorsement AS ee
+ JOIN employee_polices AS ep ON ep.id = ee.pk
+ JOIN employees AS e ON e.emp_code = ee.emp_code
+ WHERE
+ ee.emp_code = '$emp_code'
+ AND ep.client_policy_id = '$client_policy_id'
+ AND e.client_branch_id = '$client_branch_id'
+ AND ee.name = '$emp_name'
+ AND ee.field_name IN ('date_of_exit', 'reason_for_exit', 'status')
+ AND ep.is_active = 1
+ AND ep.status = 'active'
+ AND e.is_active = 1
+ AND e.emp_status = 'active'
+ GROUP BY
+ ee.group_key
+ ";
+
+ // dd($sql);
// Execute the raw SQL query
$query = $this->db->query($sql);
// Fetch and return results
- return $row = $query->getRowArray();
+ $row = $query->getRowArray();
+
+ return $row;
}
@@ -659,7 +709,7 @@ class EmployeePolicyModel extends Model
$query2->join('insurers', 'insurers.id = policies.insurer_id');
$query2->whereIn('e.actions', ['si', 'd']);
$query2->where('ep.client_policy_id', $policy_id);
- $query2->where('employees.client_id', $policy_id);
+ $query2->where('employees.client_id', $client_id);
$query1->where('employees.client_branch_id', $branch_id);
if($status != 0 && !empty($status)){
@@ -931,7 +981,132 @@ class EmployeePolicyModel extends Model
throw $e;
}
}
+
+
+ public function bulkUpdateForEndorsement($endorsement_details)
+ {
+
+ // Extract IDs, endorsement_ids, and statuses
+ $ids = array_column($endorsement_details, 'group_key');
+ $endorsement_ids = array_column($endorsement_details, 'endorsement_id');
+ $statuses = array_column($endorsement_details, 'status');
+
+ // Escape values for SQL
+ $escapedIds = array_map([$this->db, 'escape'], $ids);
+ $escapedEndorsementIds = array_map([$this->db, 'escape'], $endorsement_ids);
+ $escapedStatuses = array_map([$this->db, 'escape'], $statuses);
+
+ // Construct the CASE statements
+ $caseEndorsementId = array_map(function ($id, $endorsement_id) {
+ return "WHEN group_key = $id THEN $endorsement_id";
+ }, $escapedIds, $escapedEndorsementIds);
+
+ $caseStatus = array_map(function ($id, $status) {
+ return "WHEN status = $id THEN $status";
+ }, $escapedIds, $escapedStatuses);
+
+ // Convert cases to a string
+ $caseEndorsementIdString = implode(' ', $caseEndorsementId);
+ $caseStatusString = implode(' ', $caseStatus);
+
+ // Convert ids to a string
+ $idsString = implode(', ', $escapedIds);
+
+ // Construct the SQL query
+ $sql = "
+ UPDATE emp_endorsement
+ SET
+ endorsement_id = CASE {$caseEndorsementIdString} END,
+ status = CASE {$caseStatusString} END
+ WHERE group_key IN ({$idsString})
+ ";
+
+ // Begin a transaction
+ $this->db->transBegin();
+
+ try {
+ // Execute the query
+ $this->db->query($sql);
+
+ // Commit the transaction
+ if ($this->db->transStatus() === FALSE) {
+ // If something went wrong, rollback
+ $this->db->transRollback();
+ throw new \Exception('Bulk update failed.');
+ } else {
+ // Otherwise, commit
+ $this->db->transCommit();
+ }
+
+ return $this->db->getLastQuery();
+ } catch (\Exception $e) {
+ // Rollback the transaction on error
+ $this->db->transRollback();
+ throw $e;
+ }
+ }
+ public function bulkUpdateForCorrection($emp_details){
+
+ foreach ($emp_details as $employee) {
+ $id = $this->db->escape($employee['id']);
+ $ids[] = $id;
+
+ foreach ($employee as $field => $value) {
+ if ($field === 'id') continue;
+ $escapedValue = $this->db->escape($value);
+
+ if (!isset($caseStatements[$field])) {
+ $caseStatements[$field] = [];
+ }
+
+ $caseStatements[$field][] = "WHEN id = $id THEN $escapedValue";
+ }
+ }
+
+ // Construct the CASE strings
+ $caseStrings = [];
+ foreach ($caseStatements as $field => $cases) {
+ $caseStrings[] = "$field = CASE " . implode(' ', $cases) . " END";
+ }
+
+ // Convert ids to a string
+ $idsString = implode(', ', $ids);
+
+ // Construct the SQL query
+ $sql = "
+ UPDATE employees
+ SET " . implode(', ', $caseStrings) . "
+ WHERE id IN ($idsString)
+ ";
+
+ // Begin a transaction
+ $this->db->transBegin();
+
+ try {
+ // Execute the query
+ $this->db->query($sql);
+
+ // Commit the transaction
+ if ($this->db->transStatus() === FALSE) {
+ // If something went wrong, rollback
+ $this->db->transRollback();
+ throw new \Exception('Bulk update failed.');
+ } else {
+ // Otherwise, commit
+ $this->db->transCommit();
+ }
+
+ return $this->db->getLastQuery();
+
+ } catch (\Exception $e) {
+ // Rollback the transaction on error
+ $this->db->transRollback();
+ throw $e;
+ }
+
+ }
+
}
\ No newline at end of file
diff --git a/app/Models/PolicyPremium2Model.php b/app/Models/PolicyPremium2Model.php
index a03ca381..b302a53c 100644
--- a/app/Models/PolicyPremium2Model.php
+++ b/app/Models/PolicyPremium2Model.php
@@ -25,6 +25,8 @@ class PolicyPremium2Model extends Model
'is_active',
'premium_type',
'relationship',
+ 'additional_relationship',
+ 'rack_rate_type',
];
diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php
index c788731c..93ea7137 100644
--- a/app/Views/client_branch.php
+++ b/app/Views/client_branch.php
@@ -234,7 +234,7 @@ $(document).ready(function () {
$("#branch_form").submit(function(event) {
event.preventDefault();
- branch_PrimaryKey = $('#client_id_for_client_branch').val();
+ branch_PrimaryKey = $('#client_id_branch').val();
console.log('branch_PrimaryKey', branch_PrimaryKey)
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index bb844432..18d6ee36 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -14,7 +14,7 @@
Policy
TPA
Date
- Enrollment Status
+ Enrollment
Status
Status
Action
@@ -47,7 +47,7 @@
@@ -252,7 +252,7 @@
${item.insurer_short} - ${item.insurer_branch_name}
${item.policy_name} (${item.policy_type_name})
${tpaValue}
- ${(item.policy_start_date)} / ${(item.policy_end_date)}
+ ${(item.policy_start_date)} /
${(item.policy_end_date)}
${(enrollmentStatus)}
${checkDateStatus(item.policy_end_date, 1)}
@@ -474,7 +474,7 @@
${item.insurer_short} - ${item.insurer_branch_name}
${item.policy_name} (${item.policy_type_name})
${tpaValue}
- ${rearrangeDateFormat(item.policy_start_date)} - ${rearrangeDateFormat(item.policy_end_date)}
+ ${rearrangeDateFormat(item.policy_start_date)} /
${rearrangeDateFormat(item.policy_end_date)}
${(enrollmentStatus)}
${checkDateStatus(item.policy_end_date, 1)}
@@ -1468,6 +1468,13 @@
$('#client_branch').empty();
+
+ $('#client_branch').append($('