diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 22a29aeb..ad6649dc 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -739,7 +739,6 @@ $routes->get('testTracelog','TestBusinessController::a'); $routes->get("claimView", "EmployeeRestController::claimView"); // General Tickets - $routes->post("ticketSave", "ThzController::ticketSave"); $routes->get("ticketList", "ThzController::ticketList"); $routes->post("ticketConversationSave", "ThzController::ticketConversationSave"); @@ -769,3 +768,11 @@ $routes->group('test', function($routes) { }); $routes->cli('cli/testcli', 'TestingController::testcli'); +//PARTNER PAYOUT +$routes->group('payout', function($routes) { + $routes->match (['get','post'],'list',"PayoutController::payoutList"); + $routes->post('fetchUtrDetails',"PayoutController::fetchUtrDetails"); + $routes->post('saveUtrDetails',"PayoutController::saveUtrDetails"); + $routes->post('removeUtrDetails',"PayoutController::removeUtrDetails"); +}); + diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 0bed75f5..87ec5222 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -5673,6 +5673,10 @@ class ClientController extends AdminController // $response = $ticketServiceController->extractExcelData("claims_dump_form_client.xlsx"); // dd($response); + // $TicketController = new TicketController(); + // $response = $TicketController->getMoreInfo($requestFrom = 'rest', $ticket_id = 70); + // dd($response); + // ---------- EMP SERVICE CONTROLLER -------------------------------------------------------------------------------- $empServiceController = new EmployeeServiceController(); diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 0013f928..0330ed8f 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -16,7 +16,6 @@ use App\Controllers\VidalApiController; use App\Controllers\ICICILombardController; use App\Controllers\MediAssistApiController; - use App\Models\EmployeeModel; use App\Models\EmployeePolicyModel; use App\Models\ClientModel; @@ -43,8 +42,8 @@ use App\Models\HrFileUploadModel; -use App\Controllers\Jobs ; -use App\Controllers\JobWorker ; +use App\Controllers\Jobs; +use App\Controllers\JobWorker; use App\Controllers\TicketController; @@ -68,7 +67,7 @@ use Kreait\Firebase\Exception\MessagingException; class EmployeeRestController extends AdminController { - + use ResponseTrait; protected $myLogger; @@ -98,8 +97,8 @@ class EmployeeRestController extends AdminController protected $insurerModel; protected $hrFileUploadModel; protected $ticketMailTemplateModel; - - + + public function __construct() { // helper('utility'); @@ -111,7 +110,7 @@ class EmployeeRestController extends AdminController $this->clientRMModel = new ClientRMModel(); $this->policesModel = new PolicesModel(); $this->relationshipModel = new RelationshipModel(); - $this->fileModel= new FileModel(); + $this->fileModel = new FileModel(); $this->clientPolicyModel = new ClientPolicyModel(); $this->policyPremium1Model = new PolicyPremium1Model(); $this->policyPremium2Model = new PolicyPremium2Model(); @@ -131,13 +130,12 @@ class EmployeeRestController extends AdminController $this->insurerModel = new InsurerModel(); $this->hrFileUploadModel = new HrFileUploadModel(); $this->ticketMailTemplateModel = new TicketMailTemplateModel(); - } - + public function getEmployeeProfile() { - try { + try { $emp_code = $this->request->getGet('emp_code'); $client_id = $this->request->getGet('client_id'); $client_branch_id = $this->request->getGet('client_branch_id'); @@ -150,38 +148,37 @@ class EmployeeRestController extends AdminController // ->where('relationship', $relationship) // ->first(); $employee = $this->employeeModel - ->select('employees.*') - ->join('employee_polices', 'employees.id = employee_polices.employee_id') - ->where('employees.emp_code', $emp_code) - ->where('employees.client_id', $client_id) - ->where('employees.client_branch_id', $client_branch_id) - ->where('employees.is_active', 1 ) - ->where('employees.relationship', $relationship) - ->where('employee_polices.status', ['active']) - ->where('employees.is_active', 1) - ->where('employees.emp_status', ['active']) - ->first(); + ->select('employees.*') + ->join('employee_polices', 'employees.id = employee_polices.employee_id') + ->where('employees.emp_code', $emp_code) + ->where('employees.client_id', $client_id) + ->where('employees.client_branch_id', $client_branch_id) + ->where('employees.is_active', 1) + ->where('employees.relationship', $relationship) + ->where('employee_polices.status', ['active']) + ->where('employees.is_active', 1) + ->where('employees.emp_status', ['active']) + ->first(); - if (null !== $this->request->getGet('client_policy_id')) - { - $date_coverage = $this->employeePolicyModel->where('employee_id',$employee['id'])->where('client_policy_id',$this->request->getGet('client_policy_id'))->get()->getRow()->date_coverage; - $employee['date_coverage'] = $date_coverage; + if (null !== $this->request->getGet('client_policy_id')) { + $date_coverage = $this->employeePolicyModel->where('employee_id', $employee['id'])->where('client_policy_id', $this->request->getGet('client_policy_id'))->get()->getRow()->date_coverage; + $employee['date_coverage'] = $date_coverage; } $result = $employee; $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); + ->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); + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 404); } - } catch (\Throwable $th) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); - } + } catch (\Throwable $th) { + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $th], 500); + } } //not in use @@ -191,20 +188,19 @@ class EmployeeRestController extends AdminController $data = $this->request->getJSON(); if ($data) { $id = $data->id; - $employee = $this->employeeModel->where('is_active', 1 )->update($id, $data); + $employee = $this->employeeModel->where('is_active', 1)->update($id, $data); if ($employee) { $result = []; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result], 200); } else { $result = "No Match's"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 404); } } - } catch (\Throwable $th) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); - } - + } catch (\Throwable $th) { + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $th], 500); + } } //not in use @@ -213,8 +209,8 @@ class EmployeeRestController extends AdminController try { $emp_code = $this->request->getGet('emp_code'); if ($emp_code) { - $employee = $this->employeeModel->where('is_active', 1 )->where('emp_code', $emp_code)->findAll(); - $dateConverter = function($item) { + $employee = $this->employeeModel->where('is_active', 1)->where('emp_code', $emp_code)->findAll(); + $dateConverter = function ($item) { if ($item['dob'] !== '0000-00-00') { $dateTime = \DateTime::createFromFormat('Y-m-d', $item['dob']); $item['dob'] = $dateTime->format('d-m-Y'); @@ -222,16 +218,14 @@ class EmployeeRestController extends AdminController return $item; }; $employee = array_map($dateConverter, $employee); - return $this->respond(['status' => 'success','code' => 200,'data' => $employee],200); - + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $employee], 200); } else { - - return $this->respond(['status' => 'failed','code' => 404,'data' => []],404); + + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); } - } catch (\Throwable $th) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); - } - + } catch (\Throwable $th) { + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $th], 500); + } } //not in use @@ -245,257 +239,240 @@ class EmployeeRestController extends AdminController foreach ($data as $item) { $id = $item->id; $item->dob = $this->convertDateFormatYMD($item->dob); - $employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item); + $employee = $this->employeeModel->where('is_active', 1)->update($id, (array)$item); if ($employee) { $updatedCount++; } } - + if ($updatedCount > 0) { $result = []; - return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result], 200); } else { $result = "No Matches"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 404); + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 404); } } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e], 500); } - } - + public function addEmployeeAndDependence() { try { $data = $this->request->getJSON(); $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id); - if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); } + if ($openForEnrollment == false) { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'Enrollment closed'], 404); + } if ($data) { $Count = 0; foreach ($data as $item) { - + if (isset($item->id)) { //update old data $id = $item->id; $item->family_floater_key = $this->RelationshipMap($item->relationship); - $item->gender = $this->GenderMap($item->relationship , $item->emp_code); + $item->gender = $this->GenderMap($item->relationship, $item->emp_code); $item->dob = $this->convertDateFormatYMD($item->dob); $item->emp_status = 'draft'; - $employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item); + $employee = $this->employeeModel->where('is_active', 1)->update($id, (array)$item); if ($employee) { $Count++; } - }else{ + } else { //create new data $item->family_floater_key = $this->RelationshipMap($item->relationship); - $item->gender = $this->GenderMap($item->relationship , $item->emp_code); + $item->gender = $this->GenderMap($item->relationship, $item->emp_code); $item->dob = $this->convertDateFormatYMD($item->dob); $item->emp_status = 'draft'; - + $employee = $this->employeeModel->insert($item); - + if ($employee) { $Count++; } - } - + } } - + if ($Count > 0) { - if(isset($data[0]->id)) - { - $this->createEmployeePolicyData($data[0]->id , $data[0]->emp_code , $data[0]->client_id , $data[0]->client_policy_id , $data[0]->basic_cover_si); - }else - { - $payable_employee = $this->getEmployeePayableValue($data[0]->client_policy_id,$data[0]->relationship); - $this->createEmployeePolicyData($employee , $data[0]->emp_code , $data[0]->client_id , $data[0]->client_policy_id , $data[0]->basic_cover_si , $payable_employee); + if (isset($data[0]->id)) { + $this->createEmployeePolicyData($data[0]->id, $data[0]->emp_code, $data[0]->client_id, $data[0]->client_policy_id, $data[0]->basic_cover_si); + } else { + $payable_employee = $this->getEmployeePayableValue($data[0]->client_policy_id, $data[0]->relationship); + $this->createEmployeePolicyData($employee, $data[0]->emp_code, $data[0]->client_id, $data[0]->client_policy_id, $data[0]->basic_cover_si, $payable_employee); } - $this->updatePremiumAmount($data[0]->client_policy_id , $data[0]->emp_code , $data[0]->client_branch_id); + $this->updatePremiumAmount($data[0]->client_policy_id, $data[0]->emp_code, $data[0]->client_branch_id); $result = []; - return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result], 200); } else { $result = "No Matches"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 404); + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => $result], 404); } } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - } - public function getEmployeePayableValue($client_policy_id,$relationship) + public function getEmployeePayableValue($client_policy_id, $relationship) { - $terms = $this->clientPolicyModel->where('id',$client_policy_id)->get()->getRow()->policy_terms; + $terms = $this->clientPolicyModel->where('id', $client_policy_id)->get()->getRow()->policy_terms; - if(isset(json_decode($terms)->is_payable_employee)) - { + if (isset(json_decode($terms)->is_payable_employee)) { $is_payable_obj = json_decode($terms)->is_payable_employee; - if ($relationship === 'Mother' || $relationship === 'Father' || $relationship === 'Father in Law' || $relationship === 'Mother in Law') - { + if ($relationship === 'Mother' || $relationship === 'Father' || $relationship === 'Father in Law' || $relationship === 'Mother in Law') { return $is_payable_obj->elders; - } - else if($relationship === 'Son' || $relationship === 'Daughter') - { + } else if ($relationship === 'Son' || $relationship === 'Daughter') { return $is_payable_obj->childern; - } - else if($relationship === 'Spouse') - { + } else if ($relationship === 'Spouse') { return $is_payable_obj->spouse; } - - }else{ + } else { return 0; } - - - - } - public function createEmployeePolicyData($employee_id,$emp_code,$client_id,$client_policy_id,$basic_cover_si = null,$payable_employee = 0) + public function createEmployeePolicyData($employee_id, $emp_code, $client_id, $client_policy_id, $basic_cover_si = null, $payable_employee = 0) { - - if($basic_cover_si == null) - { + + if ($basic_cover_si == null) { $client_policy = $this->clientPolicyModel->where('id', $client_policy_id)->where('client_id', $client_id)->first(); $policy_terms = json_decode($client_policy['policy_terms']); $basic_cover_si = $policy_terms->sum_insured; - } + } - $checkDataExist = $this->employeePolicyModel->where('employee_id',$employee_id)->where('client_policy_id',$client_policy_id)->first(); + $checkDataExist = $this->employeePolicyModel->where('employee_id', $employee_id)->where('client_policy_id', $client_policy_id)->first(); - if($checkDataExist){ + if ($checkDataExist) { - $this->employeePolicyModel - ->where('client_policy_id',$client_policy_id ) - ->where('employee_id' , $employee_id ) - ->where('is_active', 1 ) - ->set(array('basic_cover_si'=> $basic_cover_si )) - ->update(); + $this->employeePolicyModel + ->where('client_policy_id', $client_policy_id) + ->where('employee_id', $employee_id) + ->where('is_active', 1) + ->set(array('basic_cover_si' => $basic_cover_si)) + ->update(); + } else { - }else{ + $data['employee_id'] = $employee_id; + $data['client_policy_id'] = $client_policy_id; + $data['basic_cover_si'] = $basic_cover_si; + $data['payable_employee'] = $payable_employee; + $data['status'] = 'draft'; + $data['date_coverage'] = $this->getEmployeeCoverageDate($emp_code, $client_policy_id); - $data['employee_id']= $employee_id; - $data['client_policy_id']= $client_policy_id; - $data['basic_cover_si']= $basic_cover_si; - $data['payable_employee']= $payable_employee; - $data['status']= 'draft'; - $data['date_coverage'] = $this->getEmployeeCoverageDate($emp_code, $client_policy_id); + $this->employeePolicyModel->insert($data); + } - $this->employeePolicyModel->insert($data); - - } - - return true; + return true; } - public function updatePremiumAmount($client_policy_id , $emp_code , $client_branch_id) + public function updatePremiumAmount($client_policy_id, $emp_code, $client_branch_id) { - $response = $this->calculatePremium($client_policy_id , $emp_code , null , $client_branch_id); - - if(count($response[$emp_code])) - { - - foreach ($response[$emp_code] as $key => $value) - { + $response = $this->calculatePremium($client_policy_id, $emp_code, null, $client_branch_id); - if(isset($value['temp'])) - { + if (count($response[$emp_code])) { + + foreach ($response[$emp_code] as $key => $value) { + + if (isset($value['temp'])) { $checkIfExist = $this->employeePolicyModel->where('employee_id', $value['temp']['emp_id']) - ->where('client_policy_id', $value['policy_details']['client_policy_id']) - ->where('is_active', 1 ) - ->findAll(); - if($checkIfExist) - { + ->where('client_policy_id', $value['policy_details']['client_policy_id']) + ->where('is_active', 1) + ->findAll(); + if ($checkIfExist) { $this->employeePolicyModel - ->where('client_policy_id',$value['policy_details']['client_policy_id'] ) - ->where('employee_id' , $value['temp']['emp_id'] ) - ->where('is_active', 1 ) - ->set(array('basic_cover_si' => $value['policy_details']['basic_cover_si'],'premium'=> $value['policy_details']['premium'] , 'rata_premimum'=> $value['policy_details']['rata_premimum'] , 'gst'=> $value['policy_details']['gst'] )) - ->update(); - + ->where('client_policy_id', $value['policy_details']['client_policy_id']) + ->where('employee_id', $value['temp']['emp_id']) + ->where('is_active', 1) + ->set(array('basic_cover_si' => $value['policy_details']['basic_cover_si'], 'premium' => $value['policy_details']['premium'], 'rata_premimum' => $value['policy_details']['rata_premimum'], 'gst' => $value['policy_details']['gst'])) + ->update(); } - } - - } } } public function getEmployeeCoverageDate($emp_code, $client_policy_id) { - $empData = $this->employeeModel->where('emp_code',$emp_code)->where('relationship', 'self')->where('is_active',1)->first();; - if($empData) - { + $empData = $this->employeeModel->where('emp_code', $emp_code)->where('relationship', 'self')->where('is_active', 1)->first();; + if ($empData) { $empPolicyData = $this->employeePolicyModel->select('employee_polices.employee_id,employee_polices.client_policy_id,employee_polices.date_coverage,client_policy.policy_type_id,client_policy.base_policy') - ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id', 'left') - ->where('employee_polices.employee_id' , $empData['id'] ) - ->where('employee_polices.is_active' , 1 ) - ->findAll(); - if(count($empPolicyData)) - { + ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id', 'left') + ->where('employee_polices.employee_id', $empData['id']) + ->where('employee_polices.is_active', 1) + ->findAll(); + if (count($empPolicyData)) { // find same policy 'self' date of coverage - $filterSelfPolicy = array_filter($empPolicyData, function($row) use ($client_policy_id) { + $filterSelfPolicy = array_filter($empPolicyData, function ($row) use ($client_policy_id) { return $row['client_policy_id'] == $client_policy_id; }); $filterSelfPolicy = array_values($filterSelfPolicy); // Reset the index of the filtered result - if(count($filterSelfPolicy)){ + if (count($filterSelfPolicy)) { return $filterSelfPolicy[0]['date_coverage']; - }else{ + } else { // find base policy 'self' date of coverage - $basePolicy = $this->clientPolicyModel->where('id',$client_policy_id)->get()->getRow()->base_policy; - - $filterSelfBasePolicy = array_filter($empPolicyData, function($row) use ($basePolicy) { + $basePolicy = $this->clientPolicyModel->where('id', $client_policy_id)->get()->getRow()->base_policy; + + $filterSelfBasePolicy = array_filter($empPolicyData, function ($row) use ($basePolicy) { return $row['client_policy_id'] == $basePolicy; }); $filterSelfBasePolicy = array_values($filterSelfBasePolicy); // Reset the index of the filtered result - if(count($filterSelfBasePolicy)){ + if (count($filterSelfBasePolicy)) { return $filterSelfBasePolicy[0]['date_coverage']; - }else{ return null; } + } else { + return null; + } } - - }else{ return null; } - - }else{ return null; } - } - - - public function RelationshipMap($value){ - - if ($value === 'Mother' || $value === 'Father') { - return 'parent'; - } else if($value === 'Son' || $value === 'Daughter'){ - return 'child'; - }else if($value === 'Father in Law' || $value === 'Mother in Law'){ - return 'parent_in_law'; - }else if($value === 'Spouse'){ - return 'spouse'; + } else { + return null; } + } else { + return null; + } } - public function GenderMap($value,$empCode){ - + + public function RelationshipMap($value) + { + + if ($value === 'Mother' || $value === 'Father') { + return 'parent'; + } else if ($value === 'Son' || $value === 'Daughter') { + return 'child'; + } else if ($value === 'Father in Law' || $value === 'Mother in Law') { + return 'parent_in_law'; + } else if ($value === 'Spouse') { + return 'spouse'; + } + } + + public function GenderMap($value, $empCode) + { + if ($value === 'Mother' || $value === 'Daughter' || $value === 'Mother in Law') { return 'F'; - } else if($value === 'Son' || $value === 'Father' || $value === 'Father in Law'){ + } else if ($value === 'Son' || $value === 'Father' || $value === 'Father in Law') { return 'M'; - }else if($value === 'Spouse'){ + } else if ($value === 'Spouse') { - $Gender = $this->employeeModel->where('emp_code',$empCode)->where('relationship','Self')->get()->getRow()->gender; - if($Gender == 'M'){ return 'F'; }else{ return 'M'; } + $Gender = $this->employeeModel->where('emp_code', $empCode)->where('relationship', 'Self')->get()->getRow()->gender; + if ($Gender == 'M') { + return 'F'; + } else { + return 'M'; + } } } @@ -526,196 +503,178 @@ class EmployeeRestController extends AdminController public function deleteDependence() { try { - - if($this->request->getGet('id')) - { - $this->employeeModel->where('id', $this->request->getGet('id') ) - ->where('is_active', 1 ) - ->set(array('is_active'=> 0 )) - ->update(); - $this->employeePolicyModel->where('employee_id',$this->request->getGet('id') ) - ->where('is_active', 1 ) - ->set(array('is_active'=> 0 )) - ->update(); - return $this->respond(['status' => 'success','code' => 200,'data' =>[] ], 200); - - }else{ - return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 404); + if ($this->request->getGet('id')) { + $this->employeeModel->where('id', $this->request->getGet('id')) + ->where('is_active', 1) + ->set(array('is_active' => 0)) + ->update(); + + $this->employeePolicyModel->where('employee_id', $this->request->getGet('id')) + ->where('is_active', 1) + ->set(array('is_active' => 0)) + ->update(); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); } - - } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - } public function createOrUpdateEmployeePolicySiAmount() - { - + { + try { $requestData = $this->request->getJSON(); $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id); - if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); } + if ($openForEnrollment == false) { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'Enrollment closed'], 404); + } - foreach ($requestData as $key => $value) - { + 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(); - - + ->where('client_policy_id', $value->client_policy_id) + ->where('is_active', 1) + ->findAll(); + + if ($checkIfExist) { $empPolicy = $this->employeePolicyModel->updateSiAndPremium($value->client_policy_id, $value->employee_id, $value->basic_cover_si); + } else { - }else{ - - $data['employee_id']= $value->employee_id; - $data['client_policy_id']= $value->client_policy_id; - $data['basic_cover_si']= $value->basic_cover_si; + $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); } } - if(count($requestData)) - { - $this->updatePremiumAmount($requestData[0]->client_policy_id , $requestData[0]->emp_code , $requestData[0]->client_branch_id); + if (count($requestData)) { + $this->updatePremiumAmount($requestData[0]->client_policy_id, $requestData[0]->emp_code, $requestData[0]->client_branch_id); } - - return $this->respond(['status' => 'success','code' => 200,'data' => []], 200); - + + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } } - public function findPremiumAmount($slabArray,$siAmount) + public function findPremiumAmount($slabArray, $siAmount) { foreach ($slabArray as $key => $value) { - if($value['si'] == $siAmount){ + 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); + $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); + 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,branch_id:$this->request->getGet('client_branch_id')); - + $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); } else { return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); } - - } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - } 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,branch_id:$this->request->getGet('client_branch_id')); + $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)) - { - // Define headers and map database fields to Excel fields - $headers = [ - 'Employee Code' => 'emp_code', - 'Name' => 'name', - 'Relationship' => 'relationship', - 'DOB' => 'dob', - 'Gender' => 'gender', - 'Mobile' => 'mobile', - 'Email' => 'email_corporate', - 'SI' => 'basic_cover_si', - 'Premium' => 'rata_premimum', - 'Policy Name' => 'policy_name', - 'Insurer Branch Name' => 'insurer_branch_name', - 'TPA Name' => 'tpa_name', - 'Status' => 'emp_status' - ]; + if (count($empData)) { + // Define headers and map database fields to Excel fields + $headers = [ + 'Employee Code' => 'emp_code', + 'Name' => 'name', + 'Relationship' => 'relationship', + 'DOB' => 'dob', + 'Gender' => 'gender', + 'Mobile' => 'mobile', + 'Email' => 'email_corporate', + 'SI' => 'basic_cover_si', + 'Premium' => 'rata_premimum', + 'Policy Name' => 'policy_name', + 'Insurer Branch Name' => 'insurer_branch_name', + 'TPA Name' => 'tpa_name', + 'Status' => 'emp_status' + ]; - // Create a new Spreadsheet object - $spreadsheet = new Spreadsheet(); + // Create a new Spreadsheet object + $spreadsheet = new Spreadsheet(); - // Get the active sheet - $sheet = $spreadsheet->getActiveSheet(); + // Get the active sheet + $sheet = $spreadsheet->getActiveSheet(); - // Add headers - $column = 'A'; - foreach ($headers as $header => $dbField) { - $sheet->setCellValue($column . '1', $header); - $column++; - } - - // Add data - $row = 2; - foreach ($empData as $employee) { + // Add headers $column = 'A'; - foreach ($headers as $dbField) { - $sheet->setCellValue($column . $row, $employee[$dbField]); + foreach ($headers as $header => $dbField) { + $sheet->setCellValue($column . '1', $header); $column++; } - $row++; + + // Add data + $row = 2; + foreach ($empData as $employee) { + $column = 'A'; + foreach ($headers as $dbField) { + $sheet->setCellValue($column . $row, $employee[$dbField]); + $column++; + } + $row++; + } + + + // Set the header for download + $filename = $empData[0]['policy_name'] . '-Enrolment.xlsx'; + header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + header('Content-Disposition: attachment;filename="' . $filename . '"'); + header('Cache-Control: max-age=0'); + + // Save the Excel file to output + $writer = new Xlsx($spreadsheet); + $writer->save('php://output'); + exit; + + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); + } else { + + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); } - - - // Set the header for download - $filename = $empData[0]['policy_name'].'-Enrolment.xlsx'; - header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); - header('Content-Disposition: attachment;filename="' . $filename . '"'); - header('Cache-Control: max-age=0'); - - // Save the Excel file to output - $writer = new Xlsx($spreadsheet); - $writer->save('php://output'); - exit; - - return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); - - }else{ - - return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); - } - - - - } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - } //not in use @@ -723,35 +682,30 @@ class EmployeeRestController extends AdminController { try { $ClientPolicyData = $this->clientPolicyModel->select('client_policy.id as client_policy_id , client_policy.client_id as client_id, policies.id as policy_id,policies.policy_type_id as policy_type_id, policies.name as policy_name , client_policy.is_addon as is_addon') - ->join('policies', 'client_policy.policy_id = policies.id', 'left') - ->where('client_policy.client_id', $this->request->getGet('client_id') ) - ->findAll(); + ->join('policies', 'client_policy.policy_id = policies.id', 'left') + ->where('client_policy.client_id', $this->request->getGet('client_id')) + ->findAll(); $result = []; foreach ($ClientPolicyData as $key => $value) { - $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard( $value['client_policy_id'],$value['client_id']); - if($value['is_addon'] == "2"){ + $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($value['client_policy_id'], $value['client_id']); + if ($value['is_addon'] == "2") { $value['type'] = 'SI TopUp'; - }else if($value['is_addon'] == "3"){ + } else if ($value['is_addon'] == "3") { $value['type'] = 'Dependent AddOn'; - }else{ + } else { $value['type'] = $getSlabAndGridData['grid_master']['policy_type']; } - - array_push($result,$value); - - + + array_push($result, $value); } if ($ClientPolicyData) { return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result], 200); } else { return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); } - - } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - } // Upload the Employee Detail in DB by Sheet Data @@ -764,12 +718,12 @@ class EmployeeRestController extends AdminController $policy_id = $this->request->getPost('policy_id'); $client_data = $this->clientModel->where('id', $client_id)->first(); - $notification = $this->notificationModel->where('client_id',$client_id)->where('template_name','member_welcome_mail')->first(); + $notification = $this->notificationModel->where('client_id', $client_id)->where('template_name', 'member_welcome_mail')->first(); $jwt = $this->request->getHeaderLine('Authorization'); $jwtParts = explode(' ', $jwt); - + $token = $jwtParts[1]; $decodedPayload = json_decode(base64_decode(explode('.', $token)[1]), true); @@ -777,38 +731,36 @@ class EmployeeRestController extends AdminController // get the employee id from token $employee_id = $decodedPayload['id']; - + $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(); - $policy_permium_2 = $this->policyPremium2Model->where(['client_id' => $client_id , 'client_policy_id' => $policy_id,'is_active' =>1])-> first(); + $policy_permium_1 = $this->policyPremium1Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1])->first(); + $policy_permium_2 = $this->policyPremium2Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1])->first(); $sum_insured_amount_for_check_employee_1 = isset($policy_permium_1['si']) ? $policy_permium_1['si'] : null; $sum_insured_amount_for_check_employee_2 = isset($policy_permium_2['si']) ? $policy_permium_2['si'] : null; $is_moved = $file->move(WRITEPATH . 'uploads/excel'); $filename = $file->getName(); - $file_name_with_path = WRITEPATH."/uploads/excel/".$filename; + $file_name_with_path = WRITEPATH . "/uploads/excel/" . $filename; //make an entry in DB - $file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $employee_id, 'status' => 'inprogress', 'action' => 'enrollment', 'client_branch_id' => $client_branch_id]); //here field policy_id have client_policy_id and not policy id from policy master + $file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $employee_id, 'status' => 'inprogress', 'action' => 'enrollment', 'client_branch_id' => $client_branch_id]); //here field policy_id have client_policy_id and not policy id from policy master $this->myLogger->logme("error", '{file_id} - client uploaded success', ['file_id' => $file_id]); - $empServiceController = new EmployeeServiceController(); - $result = $empServiceController->excelFileFormatValidation(['file_id' => $file_id]); - if(isset($result['error_summary']) && count($result['error_summary'])) - { + $empServiceController = new EmployeeServiceController(); + $result = $empServiceController->excelFileFormatValidation(['file_id' => $file_id]); + if (isset($result['error_summary']) && count($result['error_summary'])) { $result = $empServiceController->getExcelErrorData($file_id); - return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "file upload failed with errors",'data' => $result], 200); - } - - + return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "file upload failed with errors", 'data' => $result], 200); + } + + //check the file exist or not - if(!file_exists($file_name_with_path)) - { + if (!file_exists($file_name_with_path)) { session()->setFlashdata('error', 'File not found'); return redirect()->to(base_url('employee/upload')); } @@ -824,7 +776,7 @@ class EmployeeRestController extends AdminController $highestRowAndColumn = $sheet->getHighestRowAndColumn(); $data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); - + // $extractData['file_name']= $filename; // $extractData['client_id']= $client_id; // $extractData['client_branch_id']= $client_branch_id; @@ -876,25 +828,25 @@ class EmployeeRestController extends AdminController } } $dataToInsert = []; - $basic_cover_si= []; + $basic_cover_si = []; foreach ($extra['0'] as $index => $id) { - $relation =''; + $relation = ''; if (strtolower(trim($extra['5'][$index])) === 'mother' || strtolower(trim($extra['5'][$index])) === 'father') { $relation = 'parent'; - } else if(strtolower(trim($extra['5'][$index])) === 'son' || strtolower(trim($extra['5'][$index])) === 'daughter'){ + } else if (strtolower(trim($extra['5'][$index])) === 'son' || strtolower(trim($extra['5'][$index])) === 'daughter') { $relation = 'child'; - }else if(strtolower(trim($extra['5'][$index])) === 'father in law' || strtolower(trim($extra['5'][$index])) === 'mother in law'){ + } else if (strtolower(trim($extra['5'][$index])) === 'father in law' || strtolower(trim($extra['5'][$index])) === 'mother in law') { $relation = 'parent_in_law'; - }else if(strtolower(trim($extra['5'][$index])) === 'spouse'){ + } else if (strtolower(trim($extra['5'][$index])) === 'spouse') { $relation = 'spouse'; - }else{ + } else { $relation = 'self'; } // Simplified formatDate function // Assigning formatted dates - $doj = $extra['3'][$index] ; - $dob = $extra['6'][$index] ; + $doj = $extra['3'][$index]; + $dob = $extra['6'][$index]; // Change date format for $doj $doj_new_format = date('Y-m-d', strtotime($doj)); // $doj_new_format will be "2001-02-12" @@ -903,10 +855,10 @@ class EmployeeRestController extends AdminController $dob_new_format = date('Y-m-d', strtotime($dob)); // Your existing code here - $emp_code =isset($extra['1'][$index]) ? $extra['1'][$index] : 0; + $emp_code = isset($extra['1'][$index]) ? $extra['1'][$index] : 0; $name = $extra['2'][$index]; - if($emp_code != 0 && $name != '' || $name != null){ + if ($emp_code != 0 && $name != '' || $name != null) { $record = [ // 'id' => $id, 'emp_code' => $emp_code, @@ -918,64 +870,63 @@ class EmployeeRestController extends AdminController 'family_floater_key' => $relation, 'dob' => $dob_new_format, 'email_corporate' => $extra['7'][$index], - 'mobile'=> $extra['8'][$index], + 'mobile' => $extra['8'][$index], 'client_id' => $client_id, - 'emp_status'=>'draft', - 'band'=> $extra['10'][$index], - 'basic_pay'=> $extra['11'][$index], - 'unit'=> isset($extra['12'][$index]) ? $extra['12'][$index] : null, + 'emp_status' => 'draft', + 'band' => $extra['10'][$index], + 'basic_pay' => $extra['11'][$index], + 'unit' => isset($extra['12'][$index]) ? $extra['12'][$index] : null, 'client_branch_id' => $client_branch_id, - 'date_coverage' => $extra['13'][$index] != "" && $extra['13'][$index] != null ? change_date_format($extra['13'][$index],'d-M-Y','Y-m-d') : null - + 'date_coverage' => $extra['13'][$index] != "" && $extra['13'][$index] != null ? change_date_format($extra['13'][$index], 'd-M-Y', 'Y-m-d') : null + ]; $basic_cover_si_value = null; - + //Grid id is 10 and 11 sum insure value add only for self other grid type self sum insure is for the dependence - if (isset($policy_permium_2['policy_grid_id']) == 10 || isset($policy_permium_2['policy_grid_id']) == 11) { - if (strtolower($extra['5'][$index]) == 'self') { - $basic_cover_si_value = $extra['9'][$index]; - }else{ - $basic_cover_si_value = null; - } - }else{ - if (strtolower($extra['5'][$index]) == 'self') { - $basic_cover_si_value = $extra['9'][$index]; - }else{ - for ($i=0; $i < count($extra['1']) ; $i++) { - - if ($extra['1'][$i] == $extra['1'][$index]) { - if (strtolower($extra['5'][$i]) == 'self') { - $basic_cover_si_value = $extra['9'][$i]; - } + if (isset($policy_permium_2['policy_grid_id']) == 10 || isset($policy_permium_2['policy_grid_id']) == 11) { + if (strtolower($extra['5'][$index]) == 'self') { + $basic_cover_si_value = $extra['9'][$index]; + } else { + $basic_cover_si_value = null; + } + } else { + if (strtolower($extra['5'][$index]) == 'self') { + $basic_cover_si_value = $extra['9'][$index]; + } else { + for ($i = 0; $i < count($extra['1']); $i++) { + + if ($extra['1'][$i] == $extra['1'][$index]) { + if (strtolower($extra['5'][$i]) == 'self') { + $basic_cover_si_value = $extra['9'][$i]; } } } } - + } + $record2 = [ 'basic_cover_si' => $basic_cover_si_value, ]; $dataToInsert[] = $record; - $basic_cover_si[]= $basic_cover_si_value; + $basic_cover_si[] = $basic_cover_si_value; } } $count = 0; - $wholeData=[];// Initialize an empty array to store employee email. + $wholeData = []; // Initialize an empty array to store employee email. - for ($a=0; $a employeeModel->checkExistingEmployee($dataToInsert[$a],$client_branch_id); - $emp_id =0; - - $data_after_gpa_or_gmc =[]; + $employee = $this->employeeModel->checkExistingEmployee($dataToInsert[$a], $client_branch_id); + $emp_id = 0; + + $data_after_gpa_or_gmc = []; if ($client_policy['policy_type_id'] == 1) { if (strtolower($dataToInsert[$a]['relationship']) == 'self') { $data_after_gpa_or_gmc = $dataToInsert[$a]; } - }else{ + } else { $data_after_gpa_or_gmc = $dataToInsert[$a]; } date_default_timezone_set('Asia/Kolkata'); @@ -983,53 +934,53 @@ class EmployeeRestController extends AdminController $formatted_date_time = date('Y-m-d H:i:s', $current_timestamp); if ($employee) { - - $emp_id =$employee['id']; - $id =$emp_id; + + $emp_id = $employee['id']; + $id = $emp_id; $data_after_gpa_or_gmc['id'] = $id; $data_after_gpa_or_gmc['updated_by'] = $employee_id; $data_after_gpa_or_gmc['updated_at'] = $formatted_date_time; $result = $this->employeeModel->save($data_after_gpa_or_gmc); if ($result) { - $log_message = 'Update Employee - '.$employee['name'].'('.$employee['emp_code'].') with PK '.$employee['id']; - $this->myLogger->logme('error',('Update - ' . $employee['id'].' - '. $employee['emp_code'] .' - '.$employee['name'])); + $log_message = 'Update Employee - ' . $employee['name'] . '(' . $employee['emp_code'] . ') with PK ' . $employee['id']; + $this->myLogger->logme('error', ('Update - ' . $employee['id'] . ' - ' . $employee['emp_code'] . ' - ' . $employee['name'])); } - }else{ + } else { if ($dataToInsert[$a]['emp_code'] != 0) { - $result =false; + $result = false; if (count($data_after_gpa_or_gmc) != 0) { $data_after_gpa_or_gmc['created_by'] = $employee_id; $result = $this->employeeModel->insert($data_after_gpa_or_gmc); } - $emp_id =$result; + $emp_id = $result; if ($result) { $emp = $this->employeeModel->where('id', $result)->get()->getResult(); $policy_name = $this->employeePolicyModel->where('employee_id', $result)->get()->getResult();; - - - $log_message = 'Insert Employee- '.$dataToInsert[$a]['name'] .'('.$dataToInsert[$a]['emp_code'] .') with PK '; - $this->myLogger->logme('error',('Insert - ' . $dataToInsert[$a]['emp_code'] .' - '. $dataToInsert[$a]['name'])); + + + $log_message = 'Insert Employee- ' . $dataToInsert[$a]['name'] . '(' . $dataToInsert[$a]['emp_code'] . ') with PK '; + $this->myLogger->logme('error', ('Insert - ' . $dataToInsert[$a]['emp_code'] . ' - ' . $dataToInsert[$a]['name'])); } } } - $employee_policy = $this->employeePolicyModel->checkExistingEmpPolicy(['employee_id' => $emp_id,'client_policy_id' => $policy_id]); + $employee_policy = $this->employeePolicyModel->checkExistingEmpPolicy(['employee_id' => $emp_id, 'client_policy_id' => $policy_id]); - $emp_policy_data =[ - 'employee_id'=>$emp_id, - 'client_policy_id'=>$policy_id, - 'status'=> 'draft', + $emp_policy_data = [ + 'employee_id' => $emp_id, + 'client_policy_id' => $policy_id, + 'status' => 'draft', 'date_coverage' => $date_coverage, 'payable_employee' => check_pay_by_employee_or_company($client_policy['policy_terms'], $dataToInsert[$a]['relationship']), - 'basic_cover_si'=>isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null, + 'basic_cover_si' => isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null, 'file_id' => isset($employee_policy['file_id']) && $employee_policy['file_id'] != '' ? $employee_policy['file_id'] : $file_id, ]; // print_r($employee_policy); die; if ($employee_policy) { foreach ($employee_policy as $existing_policy) { - $emp_policy_data['id']= $existing_policy['id']; + $emp_policy_data['id'] = $existing_policy['id']; $emp_policy_data['updated_at'] = $formatted_date_time; $this->employeePolicyModel->save($emp_policy_data); } @@ -1043,21 +994,21 @@ class EmployeeRestController extends AdminController //trigger // $wholeData=[]; if ($dataToInsert[$a]['relationship'] == 'Self' && isset($dataToInsert[$a]['email_corporate']) && !empty($dataToInsert[$a]['email_corporate'])) { - + $params['dataToInsert'] = $dataToInsert[$a]; $params['notification'] = $notification; $params['client_data'] = $client_data; $params['common'] = [ - 'client_id' => $client_id, - 'client_branch_id' => $client_branch_id, + 'client_id' => $client_id, + 'client_branch_id' => $client_branch_id, 'client_policy_id' => $policy_id, 'employee_policy_id' => $emp_policy_id ?? null, 'employee_id' => $emp_id, 'mail_type' => 'member_welcome_mail', ]; - - $wholeData[] = sendMailNotification::sendMailNotification('member_welcome_mail', $params); - $count++; + + $wholeData[] = sendMailNotification::sendMailNotification('member_welcome_mail', $params); + $count++; } // if($count == 20 || $a == count($dataToInsert)-1){ @@ -1068,10 +1019,10 @@ class EmployeeRestController extends AdminController // $count = 0; // } // } - + // if ($dataToInsert[$a]['email_corporate'] != null || $dataToInsert[$a]['email_corporate'] != '' && $dataToInsert[$a]['relationship'] == 'Self') { - + } } @@ -1087,47 +1038,41 @@ class EmployeeRestController extends AdminController $r = Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $value]); } } - - $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => '','error_data' => ''])->update(); - return $this->respond(['status' => 'success', 'code' => 200, 'message' => "Success" ], 200); - }else{ - return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "Client id and Client Policy id is Not Match!" ], 404); + + $this->fileModel->where('id', $file_id)->set(['status' => 'success', 'reason' => '', 'error_data' => ''])->update(); + return $this->respond(['status' => 'success', 'code' => 200, 'message' => "Success"], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "Client id and Client Policy id is Not Match!"], 404); } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - - - - } //------------------------------------- - public function getAgeRange($terms,$familyFloatesValue) + public function getAgeRange($terms, $familyFloatesValue) { - - $ageRangeArray = ['self' => ['min' => 18, 'max' => 60] , 'spouse' => ['min' => 18, 'max' => 60] , 'child' => ['min' => 0, 'max' => 25] , 'elders' => ['min' => 18, 'max' => 60] ]; - $ageKey = (preg_replace('/\d/', '', $familyFloatesValue) == 'parent' || preg_replace('/\d/', '', $familyFloatesValue) == 'parent_in_law') ? 'elders' : preg_replace('/\d/', '', $familyFloatesValue); - if(isset($terms->age_ratio)){ - return $terms->age_ratio->$ageKey; - }else{ + $ageRangeArray = ['self' => ['min' => 18, 'max' => 60], 'spouse' => ['min' => 18, 'max' => 60], 'child' => ['min' => 0, 'max' => 25], 'elders' => ['min' => 18, 'max' => 60]]; + + $ageKey = (preg_replace('/\d/', '', $familyFloatesValue) == 'parent' || preg_replace('/\d/', '', $familyFloatesValue) == 'parent_in_law') ? 'elders' : preg_replace('/\d/', '', $familyFloatesValue); + if (isset($terms->age_ratio)) { + return $terms->age_ratio->$ageKey; + } else { return $ageRangeArray[$ageKey]; } - - } public function getEmployeePolicy() - { + { try { $id = $this->request->getGet('id'); $emp_code = $this->request->getGet('emp_code'); $client_id = $this->request->getGet('client_id'); - $client_branch_id = $this->request->getGet('client_branch_id'); - $login_by_hr = $this->request->getGet('login_by_hr'); + $client_branch_id = $this->request->getGet('client_branch_id'); + $login_by_hr = $this->request->getGet('login_by_hr'); // This is an array containing keys to be removed from the terms and conditions array $keysToRemove = ["removable_keys"]; @@ -1135,51 +1080,51 @@ class EmployeeRestController extends AdminController $empPolicy = $this->employeeModel->getEmployeePolicy($id); // dd($empPolicy); // Retrieve employee and dependents data by passing the employee code - $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(); + $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) { $result = []; - foreach ($empPolicy as $array) { + foreach ($empPolicy as $array) { // Reset employee array $empData = $employeeData; - + // Removes specific keys from the decoded array and assigns the result to $refusingData $decodedArray = json_decode($array->Policy_Terms); $refusingData = (object) array_diff_key((array) $decodedArray, array_flip($keysToRemove)); $array->Policy_Terms = $refusingData; // Retrieve slab rate and grid master data by passing the ClientPolicyId and ClientId - $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array->ClientPolicyId,$array->ClientId); + $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array->ClientPolicyId, $array->ClientId); $array->SlabRates = $getSlabAndGridData['slab_rates']; $array->GridMaster = $getSlabAndGridData['grid_master']; - if($array->tpa_id != null){ - $array->eCardDownload = base_url('download-e-card/') . $array->rand_string.'/1'; - }else{ $array->eCardDownload = null; } + if ($array->tpa_id != null) { + $array->eCardDownload = base_url('download-e-card/') . $array->rand_string . '/1'; + } else { + $array->eCardDownload = null; + } // Construct value for policy type GPA // $getSlabAndGridData['grid_master']['policy_type'] == "GPA" - if($array->policy_type_id == 1 && $this->request->getGet('policy') == 'GPA') - { + if ($array->policy_type_id == 1 && $this->request->getGet('policy') == 'GPA') { $si_value = 0; $si_premium_value = 0; $si_gst_value = 0; // Filter employee data where the family_floater_key is 'self' - $selfData = array_filter($empData, fn($arr) => trim(strtolower($arr['family_floater_key'])) === 'self'); - $employee_policy = $this->employeePolicyModel->where('employee_id',$selfData[0]['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow(); + $selfData = array_filter($empData, fn($arr) => trim(strtolower($arr['family_floater_key'])) === 'self'); + $employee_policy = $this->employeePolicyModel->where('employee_id', $selfData[0]['id'])->where('client_policy_id', $array->ClientPolicyId)->where('is_active', 1)->get()->getRow(); $si_value = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { $si_premium_value = $si_premium_value + $employee_policy->rata_premimum; $si_gst_value = $si_gst_value + $employee_policy->gst; } @@ -1191,56 +1136,57 @@ class EmployeeRestController extends AdminController $self['data']['name'] = $selfData[0]['name']; $self['data']['dob'] = $this->convertDateFormatDMY($selfData[0]['dob']); $self['data']['mobile'] = $selfData[0]['mobile']; - $self['data']['client_policy_id'] = $array->ClientPolicyId; - $self['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; + $self['data']['client_policy_id'] = $array->ClientPolicyId; + $self['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; $array->mapped_family_floaters = $self; $array->type = 'GPA'; $array->si_value = $si_value; $array->si_premium_value = $si_premium_value; $array->si_gst_value = $si_gst_value; - - + + $res = []; - array_push($res,$array); - $EDLIPolicy = $this->getAdditionalGPAPolicy($employeeData,6,$emp_code,$client_id,$client_branch_id,$login_by_hr); - if($EDLIPolicy){ array_push($res,$EDLIPolicy); } - $GTLIPolicy = $this->getAdditionalGPAPolicy($employeeData,7,$emp_code,$client_id,$client_branch_id,$login_by_hr); - if($GTLIPolicy){ array_push($res,$GTLIPolicy); } - return $this->respond(['status' => 'success','code' => 200,'data' => $res ], 200); - - - // Return result - if($this->request->getGet('policy') == 'GPA') - { - return $this->respond(['status' => 'success','code' => 200,'data' => $array], 200); + array_push($res, $array); + $EDLIPolicy = $this->getAdditionalGPAPolicy($employeeData, 6, $emp_code, $client_id, $client_branch_id, $login_by_hr); + if ($EDLIPolicy) { + array_push($res, $EDLIPolicy); } - - // Construct value for policy type GMC - // $getSlabAndGridData['grid_master']['policy_type'] == "GMC" - }else if($array->policy_type_id == 2 && $this->request->getGet('policy') == 'GMC' ) - { + $GTLIPolicy = $this->getAdditionalGPAPolicy($employeeData, 7, $emp_code, $client_id, $client_branch_id, $login_by_hr); + if ($GTLIPolicy) { + array_push($res, $GTLIPolicy); + } + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $res], 200); + + + // Return result + if ($this->request->getGet('policy') == 'GPA') { + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $array], 200); + } + + // Construct value for policy type GMC + // $getSlabAndGridData['grid_master']['policy_type'] == "GMC" + } else if ($array->policy_type_id == 2 && $this->request->getGet('policy') == 'GMC') { + + - - // Map family floaters that already exist in the employee table $familyFloates = $array->Policy_Terms->family_floaters; - + // Generate Notes string based on familyFloates terms $array->notes = $this->FloterNotesConvertion($familyFloates); - - if($getSlabAndGridData['slab_rates'][0]['premium_type'] == 1 || $getSlabAndGridData['slab_rates'][0]['premium_type'] == 3) - { + + if ($getSlabAndGridData['slab_rates'][0]['premium_type'] == 1 || $getSlabAndGridData['slab_rates'][0]['premium_type'] == 3) { $array->floter_text_heading = 'Floater Sum Insured'; $array->floter_text_description = 'This is a floater sum insured. A floater is a type of sum insured that provides coverage to more than one member ot a family at the same time. Simply put, its a single insurance cover for the entire family.'; - }else{ + } else { $array->floter_text_heading = 'Sum Insured'; $array->floter_text_description = ''; } // remove parent and parent-in-law from familyFloaters - if($familyFloates->{'either-parents-pil'} != 0){ + if ($familyFloates->{'either-parents-pil'} != 0) { unset($familyFloates->parents); unset($familyFloates->parents_in_law); } @@ -1250,34 +1196,39 @@ class EmployeeRestController extends AdminController $dependent_and_si_value = 0; $dependent_and_si_premium_value = 0; $dependent_and_si_gst_value = 0; - foreach ($floters as $familyFloatesValue) { + foreach ($floters as $familyFloatesValue) { $dependent = preg_replace('/\d/', '', $familyFloatesValue); - - if(count($empData)){ + + if (count($empData)) { foreach ($empData as $key => $value) { if ($value['family_floater_key'] === $dependent) { - $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow(); - if(isset($employee_policy->basic_cover_si)){ $dependent_and_si_value = ($dependent_and_si_value == 0) ? $employee_policy->basic_cover_si : $dependent_and_si_value; } - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { - if(isset($employee_policy->rata_premimum)){ $dependent_and_si_premium_value = $dependent_and_si_premium_value + $employee_policy->rata_premimum;} - if(isset($employee_policy->gst)){ $dependent_and_si_gst_value = $dependent_and_si_gst_value + $employee_policy->gst;} + $employee_policy = $this->employeePolicyModel->where('employee_id', $value['id'])->where('client_policy_id', $array->ClientPolicyId)->where('is_active', 1)->get()->getRow(); + if (isset($employee_policy->basic_cover_si)) { + $dependent_and_si_value = ($dependent_and_si_value == 0) ? $employee_policy->basic_cover_si : $dependent_and_si_value; } - + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { + if (isset($employee_policy->rata_premimum)) { + $dependent_and_si_premium_value = $dependent_and_si_premium_value + $employee_policy->rata_premimum; + } + if (isset($employee_policy->gst)) { + $dependent_and_si_gst_value = $dependent_and_si_gst_value + $employee_policy->gst; + } + } + $temp['is_value_exist'] = true; $temp['data']['family_floater_key'] = $familyFloatesValue; $temp['data']['employee_id'] = $value['id']; $temp['data']['relationship'] = $value['relationship']; $temp['data']['name'] = $value['name']; $temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']); - $temp['data']['client_policy_id'] = $array->ClientPolicyId; - $temp['data']['form_type'] = $dependent; - $temp['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; - - - $temp['data']['age_validation'] = $this->getAgeRange($decodedArray,$familyFloatesValue); - - array_push($data,$temp); + $temp['data']['client_policy_id'] = $array->ClientPolicyId; + $temp['data']['form_type'] = $dependent; + $temp['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; + + + $temp['data']['age_validation'] = $this->getAgeRange($decodedArray, $familyFloatesValue); + + array_push($data, $temp); unset($empData[$key]); $floters = array_diff($floters, [$familyFloatesValue]); break; @@ -1285,54 +1236,57 @@ class EmployeeRestController extends AdminController } } } - - + + // Remove Unwanted floter key from floters array based on either-parents-pil term value - if($familyFloates->{'either-parents-pil'} == 1 && count($floters)) - { + if ($familyFloates->{'either-parents-pil'} == 1 && count($floters)) { $count_parent = 0; $count_parent_in_law = 0; foreach ($floters as $value) { - if (preg_replace('/\d/', '', $value) == 'parent') { $count_parent++; } - if (preg_replace('/\d/', '', $value) == 'parent_in_law') {$count_parent_in_law++;} + if (preg_replace('/\d/', '', $value) == 'parent') { + $count_parent++; + } + if (preg_replace('/\d/', '', $value) == 'parent_in_law') { + $count_parent_in_law++; + } } - if($count_parent != 2) { + if ($count_parent != 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent_in_law') === false); } - if($count_parent_in_law != 2) { + if ($count_parent_in_law != 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false || strpos($value, 'parent_in_law') !== false); } - } - else if($familyFloates->{'either-parents-pil'} == 2 && count($floters)) - { + } else if ($familyFloates->{'either-parents-pil'} == 2 && count($floters)) { $count_parent = 0; $count_parent_in_law = 0; foreach ($floters as $value) { - if (preg_replace('/\d/', '', $value) == 'parent') { $count_parent++; } - if (preg_replace('/\d/', '', $value) == 'parent_in_law') {$count_parent_in_law++;} + if (preg_replace('/\d/', '', $value) == 'parent') { + $count_parent++; + } + if (preg_replace('/\d/', '', $value) == 'parent_in_law') { + $count_parent_in_law++; + } } - if(($count_parent + $count_parent_in_law) == 2) { + if (($count_parent + $count_parent_in_law) == 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false); } - } - + // Add family floter buttons placement data for FE validation - if(count($floters)){ + if (count($floters)) { foreach ($floters as $familyFloatesValue) { $temp2['is_value_exist'] = false; $temp2['data']['family_floater_key'] = $familyFloatesValue; - $temp2['data']['client_policy_id'] = $array->ClientPolicyId; - $temp2['data']['button_name'] = 'Add '.ucfirst(str_replace('_', ' ', preg_replace('/\d/', '', $familyFloatesValue))); + $temp2['data']['client_policy_id'] = $array->ClientPolicyId; + $temp2['data']['button_name'] = 'Add ' . ucfirst(str_replace('_', ' ', preg_replace('/\d/', '', $familyFloatesValue))); $temp2['data']['form_type'] = preg_replace('/\d/', '', $familyFloatesValue); - - - $temp2['data']['age_validation'] = $this->getAgeRange($decodedArray,$familyFloatesValue); - array_push($data,$temp2); + $temp2['data']['age_validation'] = $this->getAgeRange($decodedArray, $familyFloatesValue); + + array_push($data, $temp2); } } @@ -1341,56 +1295,51 @@ class EmployeeRestController extends AdminController $array->family_floaters_of_dependent_and_si_value = $dependent_and_si_value > 0 ? $dependent_and_si_value : 0; $array->family_floaters_of_dependent_and_si_premium_value = $dependent_and_si_premium_value > 0 ? round($dependent_and_si_premium_value) : 0; $array->family_floaters_of_dependent_and_gst_value = $dependent_and_si_gst_value > 0 ? round($dependent_and_si_gst_value) : 0; - + $checkGmcParentsPolicyExist = $this->clientPolicyModel->select('client_policy.id as ClientPolicyId , client_policy.client_id as ClientId, client_policy.policy_type_id as policy_type_id, policy_type.long_name as Policy_Name , client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type , client_policy.policy_terms as Policy_Terms') - ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left') - ->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,$client_branch_id); - return $this->respond(['status' => 'success','code' => 200,'data' => [$array,$GmcParrentsData]], 200); - + ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left') + ->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, $client_branch_id); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => [$array, $GmcParrentsData]], 200); } - if($this->request->getGet('policy') == 'GMC'){ - return $this->respond(['status' => 'success','code' => 200,'data' => [$array]], 200); + if ($this->request->getGet('policy') == 'GMC') { + return $this->respond(['status' => 'success', 'code' => 200, 'data' => [$array]], 200); } - } - - // $result[] = $array; + + // $result[] = $array; } - return $this->respond(['status' => 'success','code' => 200,'data' => []], 200); - - - }else{ - return $this->respond(['status' => 'failed','code' => 404,'data' => []], 200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getLine()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getLine()], 500); } } - public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id,$client_branch_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('client_branch_id',$client_branch_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(); // return $employeeData; foreach ($GmcParrentsPolicy as $key => $array) { - + // Reset employee array $empData = $employeeData; @@ -1400,89 +1349,91 @@ class EmployeeRestController extends AdminController // Retrieve slab rate and grid master data by passing the ClientPolicyId and ClientId - $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array->ClientPolicyId,$array->ClientId); + $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array->ClientPolicyId, $array->ClientId); $array->SlabRates = $getSlabAndGridData['slab_rates']; $array->GridMaster = $getSlabAndGridData['grid_master']; $tpaArray = $this->employeeModel->select('employees.name as name , employee_polices.tpa_id as tpa_id , employee_polices.rand_string as rand_string') - ->join('employee_polices', 'employee_polices.employee_id = employees.id') - ->where('employees.emp_code',$emp_code) - ->where('employees.is_active',1) - ->where('employee_polices.client_policy_id',$array->ClientPolicyId) - ->get() - ->getResult(); - - if(count($tpaArray)) - { + ->join('employee_polices', 'employee_polices.employee_id = employees.id') + ->where('employees.emp_code', $emp_code) + ->where('employees.is_active', 1) + ->where('employee_polices.client_policy_id', $array->ClientPolicyId) + ->get() + ->getResult(); - if($tpaArray[0]->tpa_id != null) - $array->eCardDownload = base_url('download-e-card/') . $tpaArray[0]->rand_string.'/1'; - else - $array->eCardDownload = null; + if (count($tpaArray)) { - }else{ - $array->eCardDownload = null; + if ($tpaArray[0]->tpa_id != null) + $array->eCardDownload = base_url('download-e-card/') . $tpaArray[0]->rand_string . '/1'; + else + $array->eCardDownload = null; + } else { + $array->eCardDownload = null; } - + $array->eCardDownload = null; // Map family floaters that already exist in the employee table $familyFloates = $array->Policy_Terms->family_floaters; - + // Generate Notes string based on familyFloates terms $array->notes = $this->FloterNotesConvertion($familyFloates); - - if($getSlabAndGridData['slab_rates'][0]['premium_type'] == 1 || $getSlabAndGridData['slab_rates'][0]['premium_type'] == 3) - { + + if ($getSlabAndGridData['slab_rates'][0]['premium_type'] == 1 || $getSlabAndGridData['slab_rates'][0]['premium_type'] == 3) { $array->floter_text_heading = 'Floater Sum Insured'; $array->floter_text_description = 'This is a floater sum insured. A floater is a type of sum insured that provides coverage to more than one member ot a family at the same time. Simply put, its a single insurance cover for the entire family.'; - }else{ + } else { $array->floter_text_heading = 'Sum Insured'; $array->floter_text_description = ''; } // remove parent and parent-in-law from familyFloaters - if($familyFloates->{'either-parents-pil'} != 0){ + if ($familyFloates->{'either-parents-pil'} != 0) { unset($familyFloates->parents); unset($familyFloates->parents_in_law); } // Convert familyFloaters terms data to plain array $floters = $this->FloterConvertion($familyFloates); - + $data = []; $dependent_and_si_value = 0; $dependent_and_si_premium_value = 0; $dependent_and_si_gst_value = 0; - foreach ($floters as $familyFloatesValue) { + foreach ($floters as $familyFloatesValue) { $dependent = preg_replace('/\d/', '', $familyFloatesValue); - - if(count($empData)){ + + if (count($empData)) { foreach ($empData as $key => $value) { if ($value['family_floater_key'] === $dependent) { - $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow(); - if(isset($employee_policy->basic_cover_si)){ $dependent_and_si_value = ($dependent_and_si_value == 0) ? $employee_policy->basic_cover_si : $dependent_and_si_value; } - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { - if(isset($employee_policy->rata_premimum)){ $dependent_and_si_premium_value = $dependent_and_si_premium_value + $employee_policy->rata_premimum;} - if(isset($employee_policy->gst)){ $dependent_and_si_gst_value = $dependent_and_si_gst_value + $employee_policy->gst;} + $employee_policy = $this->employeePolicyModel->where('employee_id', $value['id'])->where('client_policy_id', $array->ClientPolicyId)->where('is_active', 1)->get()->getRow(); + if (isset($employee_policy->basic_cover_si)) { + $dependent_and_si_value = ($dependent_and_si_value == 0) ? $employee_policy->basic_cover_si : $dependent_and_si_value; } - + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { + if (isset($employee_policy->rata_premimum)) { + $dependent_and_si_premium_value = $dependent_and_si_premium_value + $employee_policy->rata_premimum; + } + if (isset($employee_policy->gst)) { + $dependent_and_si_gst_value = $dependent_and_si_gst_value + $employee_policy->gst; + } + } + $temp['is_value_exist'] = true; $temp['data']['family_floater_key'] = $familyFloatesValue; $temp['data']['employee_id'] = $value['id']; $temp['data']['relationship'] = $value['relationship']; $temp['data']['name'] = $value['name']; $temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']); - $temp['data']['client_policy_id'] = $array->ClientPolicyId; - $temp['data']['form_type'] = $dependent; + $temp['data']['client_policy_id'] = $array->ClientPolicyId; + $temp['data']['form_type'] = $dependent; $temp['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; - $temp['data']['age_validation'] = $this->getAgeRange($array->Policy_Terms,$familyFloatesValue); - - - array_push($data,$temp); + $temp['data']['age_validation'] = $this->getAgeRange($array->Policy_Terms, $familyFloatesValue); + + + array_push($data, $temp); unset($empData[$key]); $floters = array_diff($floters, [$familyFloatesValue]); break; @@ -1492,49 +1443,52 @@ class EmployeeRestController extends AdminController } // Remove Unwanted floter key from floters array based on either-parents-pil term value - if($familyFloates->{'either-parents-pil'} == 1 && count($floters)) - { + if ($familyFloates->{'either-parents-pil'} == 1 && count($floters)) { $count_parent = 0; $count_parent_in_law = 0; foreach ($floters as $value) { - if (preg_replace('/\d/', '', $value) == 'parent') { $count_parent++; } - if (preg_replace('/\d/', '', $value) == 'parent_in_law') {$count_parent_in_law++;} + if (preg_replace('/\d/', '', $value) == 'parent') { + $count_parent++; + } + if (preg_replace('/\d/', '', $value) == 'parent_in_law') { + $count_parent_in_law++; + } } - if($count_parent != 2) { + if ($count_parent != 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent_in_law') === false); } - if($count_parent_in_law != 2) { + if ($count_parent_in_law != 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false || strpos($value, 'parent_in_law') !== false); } - } - else if($familyFloates->{'either-parents-pil'} == 2 && count($floters)) - { + } else if ($familyFloates->{'either-parents-pil'} == 2 && count($floters)) { $count_parent = 0; $count_parent_in_law = 0; foreach ($floters as $value) { - if (preg_replace('/\d/', '', $value) == 'parent') { $count_parent++; } - if (preg_replace('/\d/', '', $value) == 'parent_in_law') {$count_parent_in_law++;} + if (preg_replace('/\d/', '', $value) == 'parent') { + $count_parent++; + } + if (preg_replace('/\d/', '', $value) == 'parent_in_law') { + $count_parent_in_law++; + } } - if(($count_parent + $count_parent_in_law) == 2) { + if (($count_parent + $count_parent_in_law) == 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false); } - } // Add family floter buttons placement data for FE validation - if(count($floters)){ - foreach ($floters as $familyFloatesValue) { - - $temp2['is_value_exist'] = false; - $temp2['data']['family_floater_key'] = $familyFloatesValue; - $temp2['data']['client_policy_id'] = $array->ClientPolicyId; - $temp2['data']['button_name'] = 'Add '.ucfirst(str_replace('_', ' ', preg_replace('/\d/', '', $familyFloatesValue))); - $temp2['data']['form_type'] = preg_replace('/\d/', '', $familyFloatesValue); - $temp2['data']['age_validation'] = $this->getAgeRange($array->Policy_Terms,$familyFloatesValue); - array_push($data,$temp2); + if (count($floters)) { + foreach ($floters as $familyFloatesValue) { + $temp2['is_value_exist'] = false; + $temp2['data']['family_floater_key'] = $familyFloatesValue; + $temp2['data']['client_policy_id'] = $array->ClientPolicyId; + $temp2['data']['button_name'] = 'Add ' . ucfirst(str_replace('_', ' ', preg_replace('/\d/', '', $familyFloatesValue))); + $temp2['data']['form_type'] = preg_replace('/\d/', '', $familyFloatesValue); + $temp2['data']['age_validation'] = $this->getAgeRange($array->Policy_Terms, $familyFloatesValue); + array_push($data, $temp2); + } } - } $array->mapped_family_floaters = $data; $array->type = "GMC - Parents"; @@ -1543,24 +1497,22 @@ class EmployeeRestController extends AdminController $array->family_floaters_of_dependent_and_gst_value = $dependent_and_si_gst_value > 0 ? round($dependent_and_si_gst_value) : 0; return $array; - } - } - public function getAdditionalGPAPolicy($empData,$policy_type,$emp_code,$client_id,$client_branch_id,$login_by_hr) + public function getAdditionalGPAPolicy($empData, $policy_type, $emp_code, $client_id, $client_branch_id, $login_by_hr) { $checkPolicyExist = $this->clientPolicyModel->select('client_policy.id as ClientPolicyId , client_policy.client_id as ClientId, client_policy.policy_type_id as policy_type_id, client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type , client_policy.policy_terms as Policy_Terms , client_policy.enrolment_visibility') - ->where('client_policy.policy_type_id', $policy_type ) - ->where('client_policy.is_addon', 1 ) - ->where('client_policy.client_id', $client_id ) - ->where('client_policy.client_branch_id', $client_branch_id ) - ->where('client_policy.is_active', 1 ) - ->get() - ->getResult(); - - if($checkPolicyExist){ + ->where('client_policy.policy_type_id', $policy_type) + ->where('client_policy.is_addon', 1) + ->where('client_policy.client_id', $client_id) + ->where('client_policy.client_branch_id', $client_branch_id) + ->where('client_policy.is_active', 1) + ->get() + ->getResult(); + + if ($checkPolicyExist) { foreach ($checkPolicyExist as $key => $array) { @@ -1571,28 +1523,29 @@ class EmployeeRestController extends AdminController $si_gst_value = 0; // Filter employee data where the family_floater_key is 'self' - $selfData = array_filter($empData, fn($arr) => trim(strtolower($arr['family_floater_key'])) === 'self'); - $employee_policy = $this->employeePolicyModel->where('employee_id',$selfData[0]['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow(); + $selfData = array_filter($empData, fn($arr) => trim(strtolower($arr['family_floater_key'])) === 'self'); + $employee_policy = $this->employeePolicyModel->where('employee_id', $selfData[0]['id'])->where('client_policy_id', $array->ClientPolicyId)->where('is_active', 1)->get()->getRow(); $si_value = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { $si_premium_value = $si_premium_value + $employee_policy->rata_premimum; $si_gst_value = $si_gst_value + $employee_policy->gst; } - $policyTypeData = $this->policyTypeModel->where('id',$policy_type)->get()->getRow(); + $policyTypeData = $this->policyTypeModel->where('id', $policy_type)->get()->getRow(); $array->type = $policyTypeData->policy_type; $array->Policy_Name = $policyTypeData->long_name; $array->si_value = $si_value; $array->si_premium_value = $si_premium_value; $array->si_gst_value = $si_gst_value; - - if($employee_policy){ - if($employee_policy->tpa_id != null){ - $array->eCardDownload = base_url('download-e-card/') . $employee_policy->rand_string.'/1'; - }else{ $array->eCardDownload = null; } + if ($employee_policy) { + + if ($employee_policy->tpa_id != null) { + $array->eCardDownload = base_url('download-e-card/') . $employee_policy->rand_string . '/1'; + } else { + $array->eCardDownload = null; + } $self['is_value_exist'] = true; $self['data']['family_floater_key'] = 'self'; @@ -1601,305 +1554,296 @@ class EmployeeRestController extends AdminController $self['data']['name'] = $selfData[0]['name']; $self['data']['dob'] = $this->convertDateFormatDMY($selfData[0]['dob']); $self['data']['mobile'] = $selfData[0]['mobile']; - $self['data']['client_policy_id'] = $array->ClientPolicyId; + $self['data']['client_policy_id'] = $array->ClientPolicyId; $self['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : 0; $array->mapped_family_floaters = $self; - if (isset($login_by_hr) && $login_by_hr == true) - { + if (isset($login_by_hr) && $login_by_hr == true) { return $array; - }else{ + } else { - if($array->enrolment_visibility == 1) + if ($array->enrolment_visibility == 1) return $array; else return false; - } - - - - }else{ - return false; + } else { + return false; } - - - } - } } - - public function FloterConvertion($array){ - $result = []; - - foreach ($array as $key => $value) { - if ($value > 0 && $key != 'elders_count') { - if ($value != 0 && $key === 'childrens') { + public function FloterConvertion($array) + { - if($value > 2){ $value = 2; } + $result = []; - for ($i = 1; $i <= $value; $i++) { - $result[] = "child" . $i; - } - } else if($value != 0 && $key ==='parents') { - for ($i = 1; $i <= $value; $i++) { - $result[] = "parent" . $i; - } - }else if($value != 0 && $key ==='parents-in-law') { - for ($i = 1; $i <= $value; $i++) { - $result[] = "parent_in_law" . $i; - } - }else if($value != 0 && $key ==='either-parents-pil') { - for ($i = 1; $i <= 2; $i++) { - $result[] = "parent" . $i; - $result[] = "parent_in_law" . $i; - } - }else { - $result[] = $key; + foreach ($array as $key => $value) { + if ($value > 0 && $key != 'elders_count') { + if ($value != 0 && $key === 'childrens') { + + if ($value > 2) { + $value = 2; } + + for ($i = 1; $i <= $value; $i++) { + $result[] = "child" . $i; + } + } else if ($value != 0 && $key === 'parents') { + for ($i = 1; $i <= $value; $i++) { + $result[] = "parent" . $i; + } + } else if ($value != 0 && $key === 'parents-in-law') { + for ($i = 1; $i <= $value; $i++) { + $result[] = "parent_in_law" . $i; + } + } else if ($value != 0 && $key === 'either-parents-pil') { + for ($i = 1; $i <= 2; $i++) { + $result[] = "parent" . $i; + $result[] = "parent_in_law" . $i; + } + } else { + $result[] = $key; } } + } - return $result; + return $result; } - public function FloterNotesConvertion($array){ + public function FloterNotesConvertion($array) + { $result = ' '; foreach ($array as $key => $value) { if ($value > 0) { - if($value == 1 && $key ==='either-parents-pil') { + if ($value == 1 && $key === 'either-parents-pil') { $result .= ' + Either 2 Parents or 2 Parents in law'; - }else if($value == 2 && $key ==='either-parents-pil') { + } else if ($value == 2 && $key === 'either-parents-pil') { $result .= ' + Any 2 of Parents and Parents in law'; - }else if($value != 0 && $key ==='spouse') { + } else if ($value != 0 && $key === 'spouse') { $string = str_replace('-', ' ', $key); $string = ucwords($string); - $result .= ' + '.$string; - }else if($value != 0 && $key ==='self') { + $result .= ' + ' . $string; + } else if ($value != 0 && $key === 'self') { $result = 'Allowed members Self '; - }else if($value != 0 && $key ==='childrens') { - if($value > 1){ $result .= ' + '.$value.' Children'; }else{ $result .= ' + '.$value.' Child'; } - }else if($value != 0 && $key ==='elders_count') { - - }else{ + } else if ($value != 0 && $key === 'childrens') { + if ($value > 1) { + $result .= ' + ' . $value . ' Children'; + } else { + $result .= ' + ' . $value . ' Child'; + } + } else if ($value != 0 && $key === 'elders_count') { + } else { $string = str_replace('-', ' ', $key); $string = ucwords($string); - $result .= ' + '.$value.' '.$string; + $result .= ' + ' . $value . ' ' . $string; } - - } } $first_two_chars = substr($result, 0, 3); - - if($first_two_chars == " +"){ + + if ($first_two_chars == " +") { $modified_string = substr($result, 3); - return "Allowed members ".$modified_string; - }else{ + return "Allowed members " . $modified_string; + } else { return $result; } - return substr($result, 0, 2) !== " +"; - - + return substr($result, 0, 2) !== " +"; } public function getClientDetails() - { + { try { - $client = $this->clientModel->where('id',$this->request->getGet('client_id'))->first(); - if(!empty($client)) { - $client['client_logo'] = base_url().'public/uploads/logo/'.$client['client_logo']; - $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{ - return $this->respond(['status' => 'failed','code' => 404,'data' => []], 404); + $client = $this->clientModel->where('id', $this->request->getGet('client_id'))->first(); + if (!empty($client)) { + $client['client_logo'] = base_url() . 'public/uploads/logo/' . $client['client_logo']; + $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 { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } } 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('client_branch_id',$this->request->getGet('client_branch_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) - ->where('is_active', 1) - ->findAll(); - - if(count($clientPolicy)) - { - $self = $this->employeeModel->where('employees.is_active', 1) - ->where('employees.emp_code', $this->request->getGet('emp_code')) - ->where('employees.client_id', $this->request->getGet('client_id')) - ->where('employees.client_branch_id', $this->request->getGet('client_branch_id')) - ->where('employees.family_floater_key', 'self') - ->get() - ->getRow(); - - $band = $self->band; - $PolicyData = []; - foreach ($clientPolicy as $key => $array) { - $responce = []; - - $decodedArray = json_decode($array['policy_terms']); - $policy_terms = $decodedArray; - $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array['id'],$array['client_id']); - $uniqueData = []; - $siValues = []; - foreach ($getSlabAndGridData['slab_rates'] as $item) { - if($getSlabAndGridData['grid_master']['emp_band'] == 1 ){ - if ($item['grade'] == $band) { - $uniqueData[] = $item; - } - }else{ - if (!in_array($item['si'], $siValues) ) { - if ($item['policy_grid_id'] == 11 && ($item['max_si'] != 0 || $item['max_si'] != null)) { - $uniqueData[] = $item; - $siValues[] = $item['si']; - }else if($item['policy_grid_id'] != 11){ - $uniqueData[] = $item; - $siValues[] = $item['si']; + $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) + ->where('is_active', 1) + ->findAll(); + + if (count($clientPolicy)) { + $self = $this->employeeModel->where('employees.is_active', 1) + ->where('employees.emp_code', $this->request->getGet('emp_code')) + ->where('employees.client_id', $this->request->getGet('client_id')) + ->where('employees.client_branch_id', $this->request->getGet('client_branch_id')) + ->where('employees.family_floater_key', 'self') + ->get() + ->getRow(); + + $band = $self->band; + $PolicyData = []; + foreach ($clientPolicy as $key => $array) { + $responce = []; + + $decodedArray = json_decode($array['policy_terms']); + $policy_terms = $decodedArray; + $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array['id'], $array['client_id']); + $uniqueData = []; + $siValues = []; + foreach ($getSlabAndGridData['slab_rates'] as $item) { + if ($getSlabAndGridData['grid_master']['emp_band'] == 1) { + if ($item['grade'] == $band) { + $uniqueData[] = $item; + } + } else { + if (!in_array($item['si'], $siValues)) { + + if ($item['policy_grid_id'] == 11 && ($item['max_si'] != 0 || $item['max_si'] != null)) { + $uniqueData[] = $item; + $siValues[] = $item['si']; + } else if ($item['policy_grid_id'] != 11) { + $uniqueData[] = $item; + $siValues[] = $item['si']; + } + } } - } - } - - } - - $policyTypeData = $this->policyTypeModel->where('id',$array['policy_type_id'])->get()->getRow(); - $responce['policy_name'] = $policyTypeData->long_name; - $responce['type'] = $policyTypeData->policy_type; - $responce['SlabRates'] = $uniqueData; - $responce['GridMaster'] = $getSlabAndGridData['grid_master']; - $responce['client_id'] = $array['client_id']; - $responce['client_policy_id'] = $array['id']; - $responce['is_addon'] = $array['is_addon']; - $responce['OpenForEnrollment'] = $array['open_for_enrollment']; - $responce['policy_terms'] = $decodedArray; - $responce['policy_type_id'] = $array['policy_type_id']; - //$responce['is_member_modify_allowed'] = $array['is_member_modify_allowed']; - $responce['disclaimer'] = $array['disclaimer']; - $tpaArray = $this->employeeModel->select('employees.name as name , employee_polices.tpa_id as tpa_id , employee_polices.rand_string as rand_string') - ->join('employee_polices', 'employee_polices.employee_id = employees.id') - ->where('employees.emp_code',$this->request->getGet('emp_code')) - ->where('employees.is_active',1) - ->where('employee_polices.client_policy_id',$array['id']) + $policyTypeData = $this->policyTypeModel->where('id', $array['policy_type_id'])->get()->getRow(); + $responce['policy_name'] = $policyTypeData->long_name; + $responce['type'] = $policyTypeData->policy_type; + $responce['SlabRates'] = $uniqueData; + $responce['GridMaster'] = $getSlabAndGridData['grid_master']; + $responce['client_id'] = $array['client_id']; + $responce['client_policy_id'] = $array['id']; + $responce['is_addon'] = $array['is_addon']; + $responce['OpenForEnrollment'] = $array['open_for_enrollment']; + $responce['policy_terms'] = $decodedArray; + $responce['policy_type_id'] = $array['policy_type_id']; + //$responce['is_member_modify_allowed'] = $array['is_member_modify_allowed']; + $responce['disclaimer'] = $array['disclaimer']; + + $tpaArray = $this->employeeModel->select('employees.name as name , employee_polices.tpa_id as tpa_id , employee_polices.rand_string as rand_string') + ->join('employee_polices', 'employee_polices.employee_id = employees.id') + ->where('employees.emp_code', $this->request->getGet('emp_code')) + ->where('employees.is_active', 1) + ->where('employee_polices.client_policy_id', $array['id']) + ->get() + ->getResult(); + + + if (count($tpaArray)) { + if ($tpaArray[0]->tpa_id != null) + $responce['eCardDownload'] = base_url('download-e-card/') . $tpaArray[0]->rand_string . '/1'; + else + $responce['eCardDownload'] = null; + } else { + $responce['eCardDownload'] = null; + } + + if (count($getSlabAndGridData['slab_rates'])) { + if ($getSlabAndGridData['slab_rates'][0]['premium_type'] == 1 || $getSlabAndGridData['slab_rates'][0]['premium_type'] == 3) { + $responce['floter_text_heading'] = 'Floater Sum Insured'; + } else { + $responce['floter_text_heading'] = 'Sum Insured'; + } + } + + + if ($array['is_addon'] == 3 && $array['policy_type_id'] == 3) //dependent add on policy + { + + if ($this->request->getGet('client_id') == 8) // This changes only for client "sterling" + { + + $selfGMC = $this->employeeModel->select('employees.name , employee_polices.basic_cover_si') + ->join('employee_polices', 'employees.id = employee_polices.employee_id') + ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id AND client_policy.policy_type_id = 2') + ->where('employees.is_active', 1) + ->where('employees.emp_code', $this->request->getGet('emp_code')) + ->where('employees.client_id', $this->request->getGet('client_id')) + ->where('employees.client_branch_id', $this->request->getGet('client_branch_id')) + ->where('employees.family_floater_key', 'self') ->get() - ->getResult(); - + ->getRow(); - if(count($tpaArray)) - { - if($tpaArray[0]->tpa_id != null) - $responce['eCardDownload'] = base_url('download-e-card/') . $tpaArray[0]->rand_string.'/1'; - else - $responce['eCardDownload'] = null; + $selfSi = $selfGMC->basic_cover_si; + $filteredSlabRates = array_filter($responce['SlabRates'], function ($rate) use ($selfSi) { + return $rate['si'] === $selfSi; + }); + // To reindex the array to have a proper 0 index + $responce['SlabRates'] = array_values($filteredSlabRates); + } - }else{ - $responce['eCardDownload'] = null; - } - - if(count($getSlabAndGridData['slab_rates'])){ - if($getSlabAndGridData['slab_rates'][0]['premium_type'] == 1 || $getSlabAndGridData['slab_rates'][0]['premium_type'] == 3) - { - $responce['floter_text_heading'] = 'Floater Sum Insured'; - }else{ - $responce['floter_text_heading'] = 'Sum Insured'; - } - } - - - if($array['is_addon'] == 3 && $array['policy_type_id'] == 3)//dependent add on policy - { - - if($this->request->getGet('client_id') == 8) // This changes only for client "sterling" - { - - $selfGMC = $this->employeeModel->select('employees.name , employee_polices.basic_cover_si') - ->join('employee_polices', 'employees.id = employee_polices.employee_id') - ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id AND client_policy.policy_type_id = 2') - ->where('employees.is_active', 1) - ->where('employees.emp_code', $this->request->getGet('emp_code')) - ->where('employees.client_id', $this->request->getGet('client_id')) - ->where('employees.client_branch_id', $this->request->getGet('client_branch_id')) - ->where('employees.family_floater_key', 'self') - ->get() - ->getRow(); - - $selfSi = $selfGMC->basic_cover_si; - $filteredSlabRates = array_filter($responce['SlabRates'], function ($rate) use ($selfSi) { - return $rate['si'] === $selfSi; - }); - // To reindex the array to have a proper 0 index - $responce['SlabRates'] = array_values($filteredSlabRates); - - } - // Map family floaters that already exist in the employee table $familyFloates = $policy_terms->family_floaters; // remove parent and parent-in-law from familyFloaters - if($familyFloates->{'either-parents-pil'} != 0){ + if ($familyFloates->{'either-parents-pil'} != 0) { unset($familyFloates->parents); unset($familyFloates->parents_in_law); } // Convert familyFloaters terms data to plain array $floters = $this->FloterConvertion($familyFloates); - + $data = []; $dependent_and_si_value = 0; $dependent_and_si_premium_value = 0; $dependent_and_si_gst_value = 0; - foreach ($floters as $familyFloatesValue) { + foreach ($floters as $familyFloatesValue) { $dependent = preg_replace('/\d/', '', $familyFloatesValue); - if(count($addOnEmployeeData)){ + if (count($addOnEmployeeData)) { foreach ($addOnEmployeeData as $key => $value) { if ($value['family_floater_key'] === $dependent) { - $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow(); - if(isset($employee_policy->basic_cover_si)){ $dependent_and_si_value = ($dependent_and_si_value == 0) ? $employee_policy->basic_cover_si : $dependent_and_si_value; } - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { - if(isset($employee_policy->rata_premimum)){ $dependent_and_si_premium_value = $dependent_and_si_premium_value + $employee_policy->rata_premimum;} - if(isset($employee_policy->gst)){ $dependent_and_si_gst_value = $dependent_and_si_gst_value + $employee_policy->gst;} + $employee_policy = $this->employeePolicyModel->where('employee_id', $value['id'])->where('client_policy_id', $array['id'])->where('is_active', 1)->get()->getRow(); + if (isset($employee_policy->basic_cover_si)) { + $dependent_and_si_value = ($dependent_and_si_value == 0) ? $employee_policy->basic_cover_si : $dependent_and_si_value; } - + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { + if (isset($employee_policy->rata_premimum)) { + $dependent_and_si_premium_value = $dependent_and_si_premium_value + $employee_policy->rata_premimum; + } + if (isset($employee_policy->gst)) { + $dependent_and_si_gst_value = $dependent_and_si_gst_value + $employee_policy->gst; + } + } + $temp['is_value_exist'] = true; $temp['data']['family_floater_key'] = $familyFloatesValue; $temp['data']['employee_id'] = $value['id']; $temp['data']['relationship'] = $value['relationship']; $temp['data']['name'] = $value['name']; $temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']); - $temp['data']['client_policy_id'] = $array['id']; - $temp['data']['form_type'] = $dependent; + $temp['data']['client_policy_id'] = $array['id']; + $temp['data']['form_type'] = $dependent; $temp['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : null; - $temp['data']['premium'] = isset($employee_policy->premium) ? $employee_policy->premium : null; - $temp['data']['age_validation'] = $this->getAgeRange($decodedArray,$familyFloatesValue); - - array_push($data,$temp); + $temp['data']['premium'] = isset($employee_policy->premium) ? $employee_policy->premium : null; + $temp['data']['age_validation'] = $this->getAgeRange($decodedArray, $familyFloatesValue); + + array_push($data, $temp); unset($addOnEmployeeData[$key]); $floters = array_diff($floters, [$familyFloatesValue]); break; @@ -1907,285 +1851,303 @@ class EmployeeRestController extends AdminController } } } - + //Remove Unwanted floter key from floters array based on either-parents-pil term value - if($familyFloates->{'either-parents-pil'} == 1 && count($floters)) - { - + if ($familyFloates->{'either-parents-pil'} == 1 && count($floters)) { + $count_parent = 0; $count_parent_in_law = 0; foreach ($floters as $value) { - if (preg_replace('/\d/', '', $value) == 'parent') { $count_parent++; } - if (preg_replace('/\d/', '', $value) == 'parent_in_law') {$count_parent_in_law++;} + if (preg_replace('/\d/', '', $value) == 'parent') { + $count_parent++; + } + if (preg_replace('/\d/', '', $value) == 'parent_in_law') { + $count_parent_in_law++; + } } - if($count_parent != 2) { + if ($count_parent != 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent_in_law') === false); } - if($count_parent_in_law != 2) { + if ($count_parent_in_law != 2) { $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false || strpos($value, 'parent_in_law') !== false); } - - - } - else if($familyFloates->{'either-parents-pil'} == 2 && count($floters)) - { + } else if ($familyFloates->{'either-parents-pil'} == 2 && count($floters)) { $count_parent = 0; - $count_parent_in_law = 0; - foreach ($floters as $value) { - if (preg_replace('/\d/', '', $value) == 'parent') { $count_parent++; } - if (preg_replace('/\d/', '', $value) == 'parent_in_law') {$count_parent_in_law++;} + $count_parent_in_law = 0; + foreach ($floters as $value) { + if (preg_replace('/\d/', '', $value) == 'parent') { + $count_parent++; } - if(($count_parent + $count_parent_in_law) == 2) { - $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false); + if (preg_replace('/\d/', '', $value) == 'parent_in_law') { + $count_parent_in_law++; } - + } + if (($count_parent + $count_parent_in_law) == 2) { + $floters = array_filter($floters, fn($value) => strpos($value, 'parent') === false); + } } - + // Add family floter buttons placement data for FE validation - if(count($floters)){ - foreach ($floters as $familyFloatesValue) { + if (count($floters)) { + foreach ($floters as $familyFloatesValue) { - $temp2['is_value_exist'] = false; - $temp2['data']['family_floater_key'] = $familyFloatesValue; - $temp2['data']['client_policy_id'] = $array['id']; - $temp2['data']['button_name'] = 'Add '.ucfirst(str_replace('_', ' ', preg_replace('/\d/', '', $familyFloatesValue))); - $temp2['data']['form_type'] = preg_replace('/\d/', '', $familyFloatesValue); - - $temp2['data']['age_validation'] = $this->getAgeRange($decodedArray,$familyFloatesValue); + $temp2['is_value_exist'] = false; + $temp2['data']['family_floater_key'] = $familyFloatesValue; + $temp2['data']['client_policy_id'] = $array['id']; + $temp2['data']['button_name'] = 'Add ' . ucfirst(str_replace('_', ' ', preg_replace('/\d/', '', $familyFloatesValue))); + $temp2['data']['form_type'] = preg_replace('/\d/', '', $familyFloatesValue); - array_push($data,$temp2); + $temp2['data']['age_validation'] = $this->getAgeRange($decodedArray, $familyFloatesValue); + array_push($data, $temp2); + } } - } - + $responce['family_floaters_of_dependent_and_si_array'] = $data; $responce['family_floaters_of_dependent_and_si_value'] = $dependent_and_si_value > 0 ? $dependent_and_si_value : 0; $responce['family_floaters_of_dependent_and_si_premium_value'] = $dependent_and_si_premium_value > 0 ? round($dependent_and_si_premium_value) : 0; $responce['family_floaters_of_dependent_and_gst_value'] = $dependent_and_si_gst_value > 0 ? round($dependent_and_si_gst_value) : 0; - - - if($this->request->getGet('policy') == 'GMC-DEPENDENT-ADDON'){ - return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], 200); - } - - //array_push($PolicyData, $responce); - }else if($array['is_addon'] == 2 && $array['policy_type_id'] == 4)//Topup policy - { - - $whereArray = []; - foreach ( $decodedArray->family_floaters as $key => $value) { - if($value != 0){ - if($key == 'parents'){ $text = ["parent"]; } - else if($key == 'childrens'){ $text = ["child"]; } - else if($key == 'parents-in-law'){ $text = ["parent_in_law"];} - else if($key ==='either-parents-pil') { $text = ["parent", "parent_in_law"];} - else{ $text = [$key]; } - $whereArray = array_merge($whereArray, $text); - } - } - - - $getAddOnType = $this->clientPolicyModel->where('id',$array['base_policy'])->where('policy_status', 1)->get()->getRow(); - $basePolicyAddOnType = $getAddOnType->is_addon; - // if is_addon value is 1 it is GMC if not it is one of the Add On policy - if($basePolicyAddOnType == 1){ $is_addon_value = 0; }else{ $is_addon_value = 1; } - $only_si_array = []; - $only_si_value = 0; - $only_si_premium_value = 0; - $only_si_gst_value = 0; - $BasePolicyEmployeeData = $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',$is_addon_value)->whereIn('family_floater_key',$whereArray)->findAll(); - foreach ($BasePolicyEmployeeData as $key => $value) { - - $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow(); - if(isset($employee_policy->basic_cover_si)){ $only_si_value = ($only_si_value == 0) ? $employee_policy->basic_cover_si : $only_si_value; } - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { - if(isset($employee_policy->rata_premimum)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum;} - if(isset($employee_policy->gst)){ $only_si_gst_value = $only_si_gst_value + $employee_policy->gst;} + if ($this->request->getGet('policy') == 'GMC-DEPENDENT-ADDON') { + return $this->respond(['status' => 'success', 'code' => 200, 'data' => ['gmc_dependent_addon' => $responce]], 200); } - $temp3['is_value_exist'] = true; - $temp3['data']['employee_id'] = $value['id']; - $temp3['data']['relationship'] = $value['relationship']; - $temp3['data']['name'] = $value['name']; - $temp3['data']['dob'] = $this->convertDateFormatDMY($value['dob']); - $temp3['data']['client_policy_id'] = $array['id']; - $temp3['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : null; - $temp3['data']['premium'] = isset($employee_policy->premium) ? $employee_policy->premium : null; - array_push($only_si_array,$temp3); - } + //array_push($PolicyData, $responce); - $responce['family_floaters_of_only_si_array'] = $only_si_array; - $responce['family_floaters_of_only_si_value'] = $only_si_value; - $responce['family_floaters_of_only_si_premium_value'] = round($only_si_premium_value); - $responce['family_floaters_of_only_si_gst_value'] = $only_si_gst_value; - - - if($this->request->getGet('policy') == 'GMC-SI-TOPUP'){ - return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_si_topup'=>$responce]], 200); - } + } else if ($array['is_addon'] == 2 && $array['policy_type_id'] == 4) //Topup policy + { - }else if($array['is_addon'] == 2 && $array['policy_type_id'] == 5)//Parents Topup policy - { + $whereArray = []; + foreach ($decodedArray->family_floaters as $key => $value) { + if ($value != 0) { + if ($key == 'parents') { + $text = ["parent"]; + } else if ($key == 'childrens') { + $text = ["child"]; + } else if ($key == 'parents-in-law') { + $text = ["parent_in_law"]; + } else if ($key === 'either-parents-pil') { + $text = ["parent", "parent_in_law"]; + } else { + $text = [$key]; + } + $whereArray = array_merge($whereArray, $text); + } + } - $whereArray = []; - foreach ( $decodedArray->family_floaters as $key => $value) { - if($value != 0){ - if($key == 'parents'){ $text = ["parent"]; } - else if($key == 'childrens'){ $text = ["child"]; } - else if($key == 'parents-in-law'){ $text = ["parent_in_law"];} - else if($key ==='either-parents-pil') { $text = ["parent", "parent_in_law"];} - else{ $text = [$key]; } - $whereArray = array_merge($whereArray, $text); + + $getAddOnType = $this->clientPolicyModel->where('id', $array['base_policy'])->where('policy_status', 1)->get()->getRow(); + $basePolicyAddOnType = $getAddOnType->is_addon; + // if is_addon value is 1 it is GMC if not it is one of the Add On policy + if ($basePolicyAddOnType == 1) { + $is_addon_value = 0; + } else { + $is_addon_value = 1; + } + $only_si_array = []; + $only_si_value = 0; + $only_si_premium_value = 0; + $only_si_gst_value = 0; + $BasePolicyEmployeeData = $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', $is_addon_value)->whereIn('family_floater_key', $whereArray)->findAll(); + foreach ($BasePolicyEmployeeData as $key => $value) { + + $employee_policy = $this->employeePolicyModel->where('employee_id', $value['id'])->where('client_policy_id', $array['id'])->where('is_active', 1)->get()->getRow(); + if (isset($employee_policy->basic_cover_si)) { + $only_si_value = ($only_si_value == 0) ? $employee_policy->basic_cover_si : $only_si_value; + } + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { + if (isset($employee_policy->rata_premimum)) { + $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum; + } + if (isset($employee_policy->gst)) { + $only_si_gst_value = $only_si_gst_value + $employee_policy->gst; + } + } + $temp3['is_value_exist'] = true; + $temp3['data']['employee_id'] = $value['id']; + $temp3['data']['relationship'] = $value['relationship']; + $temp3['data']['name'] = $value['name']; + $temp3['data']['dob'] = $this->convertDateFormatDMY($value['dob']); + $temp3['data']['client_policy_id'] = $array['id']; + $temp3['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : null; + $temp3['data']['premium'] = isset($employee_policy->premium) ? $employee_policy->premium : null; + array_push($only_si_array, $temp3); + } + + $responce['family_floaters_of_only_si_array'] = $only_si_array; + $responce['family_floaters_of_only_si_value'] = $only_si_value; + $responce['family_floaters_of_only_si_premium_value'] = round($only_si_premium_value); + $responce['family_floaters_of_only_si_gst_value'] = $only_si_gst_value; + + + if ($this->request->getGet('policy') == 'GMC-SI-TOPUP') { + return $this->respond(['status' => 'success', 'code' => 200, 'data' => ['gmc_si_topup' => $responce]], 200); + } + } else if ($array['is_addon'] == 2 && $array['policy_type_id'] == 5) //Parents Topup policy + { + + $whereArray = []; + foreach ($decodedArray->family_floaters as $key => $value) { + if ($value != 0) { + if ($key == 'parents') { + $text = ["parent"]; + } else if ($key == 'childrens') { + $text = ["child"]; + } else if ($key == 'parents-in-law') { + $text = ["parent_in_law"]; + } else if ($key === 'either-parents-pil') { + $text = ["parent", "parent_in_law"]; + } else { + $text = [$key]; + } + $whereArray = array_merge($whereArray, $text); + } + } + + $getAddOnType = $this->clientPolicyModel->where('id', $array['base_policy'])->where('policy_status', 1)->get()->getRow(); + $basePolicyAddOnType = $getAddOnType->is_addon; + // if is_addon value is 1 it is GMC if not it is one of the Add On policy + if ($basePolicyAddOnType == 1) { + $is_addon_value = 0; + } else { + $is_addon_value = 1; + } + $only_si_array = []; + $only_si_value = 0; + $only_si_premium_value = 0; + $only_si_gst_value = 0; + $BasePolicyEmployeeData = $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', $is_addon_value)->whereIn('family_floater_key', $whereArray)->findAll(); + foreach ($BasePolicyEmployeeData as $key => $value) { + + $employee_policy = $this->employeePolicyModel->where('employee_id', $value['id'])->where('client_policy_id', $array['id'])->where('is_active', 1)->get()->getRow(); + if (isset($employee_policy->basic_cover_si)) { + $only_si_value = ($only_si_value == 0) ? $employee_policy->basic_cover_si : $only_si_value; + } + if (isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) { + if (isset($employee_policy->rata_premimum)) { + $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum; + } + if (isset($employee_policy->gst)) { + $only_si_gst_value = $only_si_gst_value + $employee_policy->gst; + } + } + $temp3['is_value_exist'] = true; + $temp3['data']['employee_id'] = $value['id']; + $temp3['data']['relationship'] = $value['relationship']; + $temp3['data']['name'] = $value['name']; + $temp3['data']['dob'] = $this->convertDateFormatDMY($value['dob']); + $temp3['data']['client_policy_id'] = $array['id']; + $temp3['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : null; + $temp3['data']['premium'] = isset($employee_policy->premium) ? $employee_policy->premium : null; + array_push($only_si_array, $temp3); + } + + $responce['family_floaters_of_only_si_array'] = $only_si_array; + $responce['family_floaters_of_only_si_value'] = $only_si_value; + $responce['family_floaters_of_only_si_premium_value'] = round($only_si_premium_value); + $responce['family_floaters_of_only_si_gst_value'] = round($only_si_gst_value); + + + if ($this->request->getGet('policy') == 'GMC-SI-PARENT-TOPUP') { + return $this->respond(['status' => 'success', 'code' => 200, 'data' => ['gmc_si_parent_topup' => $responce]], 200); + } } } - $getAddOnType = $this->clientPolicyModel->where('id',$array['base_policy'])->where('policy_status', 1)->get()->getRow(); - $basePolicyAddOnType = $getAddOnType->is_addon; - // if is_addon value is 1 it is GMC if not it is one of the Add On policy - if($basePolicyAddOnType == 1){ $is_addon_value = 0; }else{ $is_addon_value = 1; } - $only_si_array = []; - $only_si_value = 0; - $only_si_premium_value = 0; - $only_si_gst_value = 0; - $BasePolicyEmployeeData = $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',$is_addon_value)->whereIn('family_floater_key',$whereArray)->findAll(); - foreach ($BasePolicyEmployeeData as $key => $value) { - $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow(); - if(isset($employee_policy->basic_cover_si)){ $only_si_value = ($only_si_value == 0) ? $employee_policy->basic_cover_si : $only_si_value; } - if(isset($employee_policy->payable_employee) && $employee_policy->payable_employee == 1) - { - if(isset($employee_policy->rata_premimum)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum;} - if(isset($employee_policy->gst)){ $only_si_gst_value = $only_si_gst_value + $employee_policy->gst;} - } - $temp3['is_value_exist'] = true; - $temp3['data']['employee_id'] = $value['id']; - $temp3['data']['relationship'] = $value['relationship']; - $temp3['data']['name'] = $value['name']; - $temp3['data']['dob'] = $this->convertDateFormatDMY($value['dob']); - $temp3['data']['client_policy_id'] = $array['id']; - $temp3['data']['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : null; - $temp3['data']['premium'] = isset($employee_policy->premium) ? $employee_policy->premium : null; - array_push($only_si_array,$temp3); - - } - - $responce['family_floaters_of_only_si_array'] = $only_si_array; - $responce['family_floaters_of_only_si_value'] = $only_si_value; - $responce['family_floaters_of_only_si_premium_value'] = round($only_si_premium_value); - $responce['family_floaters_of_only_si_gst_value'] = round($only_si_gst_value); - - - if($this->request->getGet('policy') == 'GMC-SI-PARENT-TOPUP'){ - return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_si_parent_topup'=>$responce]], 200); - } - - - } - - } - - - return $this->respond(['status' => 'success','code' => 200,'data' => []], 200); - - }else{ - return $this->respond(['status' => 'failed','code' => 404,'data' => []], 200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } } public function iAgreeForAddOn() - { - + { + $postData = json_decode($this->request->getBody(), true); $this->myLogger->logme("error", $this->request->getBody()); $client_policy_id = $postData['client_policy_id']; sort($client_policy_id); - + $emp_code = $postData['emp_code']; $client_id = $postData['client_id']; - $empData = $this->employeeModel->where('emp_code', $emp_code )->where('client_id', $client_id ) ->where('is_active', 1 )->findAll(); + $empData = $this->employeeModel->where('emp_code', $emp_code)->where('client_id', $client_id)->where('is_active', 1)->findAll(); $employeeIds = array_column($empData, 'id'); //for mail common parameter $filteredEmpData = array_filter($empData, fn($item) => $item['relationship'] === 'Self'); - if (!is_null($client_policy_id) && is_array($client_policy_id)) - { + if (!is_null($client_policy_id) && is_array($client_policy_id)) { $array_list = []; - foreach ($client_policy_id as $key => $value) - { - $policy = $this->clientPolicyModel->where('id',$value)->where('open_for_enrollment',1)->find(); - if($policy) - { - $this->myLogger->logme("error", 'client policy id = '.$value.' is open for enrollment'); + foreach ($client_policy_id as $key => $value) { + $policy = $this->clientPolicyModel->where('id', $value)->where('open_for_enrollment', 1)->find(); + if ($policy) { + $this->myLogger->logme("error", 'client policy id = ' . $value . ' is open for enrollment'); - $empPolicyData = $this->employeePolicyModel->where('client_policy_id', $value ) - ->where('is_active', 1 ) - ->whereIn('employee_id',$employeeIds) - ->findAll(); - if(count($empPolicyData)) - { + $empPolicyData = $this->employeePolicyModel->where('client_policy_id', $value) + ->where('is_active', 1) + ->whereIn('employee_id', $employeeIds) + ->findAll(); + if (count($empPolicyData)) { $empIdsFromPolicyData = array_column($empPolicyData, 'employee_id'); //update emp polict table - $this->employeePolicyModel->where('client_policy_id', $value ) - ->where('is_active', 1 ) - ->whereIn('employee_id', $empIdsFromPolicyData ) - ->groupStart() - ->where('status', 'draft') - ->orWhere('status', 'enrolled') - ->groupEnd() - ->set(array('status'=>'enrolled')) - ->update(); + $this->employeePolicyModel->where('client_policy_id', $value) + ->where('is_active', 1) + ->whereIn('employee_id', $empIdsFromPolicyData) + ->groupStart() + ->where('status', 'draft') + ->orWhere('status', 'enrolled') + ->groupEnd() + ->set(array('status' => 'enrolled')) + ->update(); //update Employee table $this->employeeModel->where('emp_code', $emp_code) - ->whereIn('id', $empIdsFromPolicyData) - ->where('client_id', $client_id) - ->where('is_active', 1) - ->groupStart() - ->where('emp_status', 'draft') - ->orWhere('emp_status', 'enrolled') - ->groupEnd() - ->set(['emp_status' => 'enrolled']) - ->update(); - + ->whereIn('id', $empIdsFromPolicyData) + ->where('client_id', $client_id) + ->where('is_active', 1) + ->groupStart() + ->where('emp_status', 'draft') + ->orWhere('emp_status', 'enrolled') + ->groupEnd() + ->set(['emp_status' => 'enrolled']) + ->update(); } - $find = $this->employeeModel->getEmpFamilybyEmpCode(client_policy_id: $value,emp_code: $emp_code,client_id: $client_id,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']); - if(count($find) > 0){ + $find = $this->employeeModel->getEmpFamilybyEmpCode(client_policy_id: $value, emp_code: $emp_code, client_id: $client_id, emp_status: ['draft', 'enrolled'], policy_status: ['draft', 'enrolled']); + if (count($find) > 0) { $array_list[] = $find; } - - }else { $this->myLogger->logme("error", 'client policy id = '.$value.' is not open for enrollment');} - + } else { + $this->myLogger->logme("error", 'client policy id = ' . $value . ' is not open for enrollment'); + } } - - $notification = $this->notificationModel->where('client_id' ,$client_id)->where('template_name', 'member_review_and_summary_mail')->first(); + + $notification = $this->notificationModel->where('client_id', $client_id)->where('template_name', 'member_review_and_summary_mail')->first(); if (isset($notification) && $notification['enabled'] == 1 && count($array_list)) { - $params ['array_list'] = $array_list; - $params ['client_policy_id'] = $client_policy_id; - $params ['emp_code'] = $emp_code; - $params ['client_id'] = $client_id; - $params ['notification'] = $notification; + $params['array_list'] = $array_list; + $params['client_policy_id'] = $client_policy_id; + $params['emp_code'] = $emp_code; + $params['client_id'] = $client_id; + $params['notification'] = $notification; $params['common'] = [ - 'client_id' => $filteredEmpData[0]['client_id'], - 'client_branch_id' => $filteredEmpData[0]['client_branch_id'], + 'client_id' => $filteredEmpData[0]['client_id'], + 'client_branch_id' => $filteredEmpData[0]['client_branch_id'], 'client_policy_id' => null, 'employee_policy_id' => null, 'employee_id' => $filteredEmpData[0]['id'], @@ -2193,208 +2155,201 @@ class EmployeeRestController extends AdminController ]; // print_r($params);die; - $wholeData =sendMailNotification::sendMailNotification('member_review_and_summary_mail', $params); + $wholeData = sendMailNotification::sendMailNotification('member_review_and_summary_mail', $params); $mail_send_return = MailHelper::send_email($wholeData[0]); $this->myLogger->logme("error", $mail_send_return); if (isset($wholeData[0])) { - - $params['common']['mail_type'] = 'account_maneger_summary_mail'; - $account_manager_wholeData =sendMailNotification::sendMailNotification('account_maneger_summary_mail', $params); - if($account_manager_wholeData != null && $account_manager_wholeData != '' && count($account_manager_wholeData)) - { + $params['common']['mail_type'] = 'account_maneger_summary_mail'; + $account_manager_wholeData = sendMailNotification::sendMailNotification('account_maneger_summary_mail', $params); + + if ($account_manager_wholeData != null && $account_manager_wholeData != '' && count($account_manager_wholeData)) { foreach ($account_manager_wholeData as $key => $value) { $mail_send_return1 = MailHelper::send_email($value); $this->myLogger->logme("error", $mail_send_return1); } - }else{ + } else { $this->myLogger->logme("error", 'Account Manager Mail Configuration not Enable for this client'); } $params['common']['mail_type'] = 'client_hr_summary_mail'; - $client_hr_wholeData =sendMailNotification::sendMailNotification('client_hr_summary_mail', $params); + $client_hr_wholeData = sendMailNotification::sendMailNotification('client_hr_summary_mail', $params); - if($client_hr_wholeData != null && $client_hr_wholeData != '' &&count($client_hr_wholeData)) - { + if ($client_hr_wholeData != null && $client_hr_wholeData != '' && count($client_hr_wholeData)) { foreach ($client_hr_wholeData as $key => $value) { $mail_send_return2 = MailHelper::send_email($value); $this->myLogger->logme("error", $mail_send_return2); } - }else{ + } else { $this->myLogger->logme("error", 'Client HR Mail Configuration not Enable for this client'); } } - }else{ + } else { $this->myLogger->logme("error", 'Member Review Mail Configuration not Enable for this client'); } - } - - return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200); + + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); } //Post method - which receives client_policy id and empcode of the family. //Pull records againest emp code and calculate premium // retun array - public function calculatePremium($clientPolicyId = null , $empCode = null, $default_si = null , $client_branch_id = null)//family level - { + public function calculatePremium($clientPolicyId = null, $empCode = null, $default_si = null, $client_branch_id = null) //family level + { // dd($clientPolicyId, $empCode, $default_si, $client_branch_id); helper('excel_util_helper'); - if($this->request){ // + if ($this->request) { // $client_policy_id = $this->request->getVar('client_policy_id') ?? $clientPolicyId; $emp_code = $this->request->getVar('emp_code') ?? $empCode; - $default_si = $this->request->getVar('si') ?? $default_si;// si amt which choosed in add on policy + $default_si = $this->request->getVar('si') ?? $default_si; // si amt which choosed in add on policy $client_branch_id = $this->request->getVar('client_branch_id') ?? $client_branch_id; - }else{ + } else { //Cli and enrollment $client_policy_id = $clientPolicyId; $emp_code = $empCode; - $default_si = $default_si;// si amt which choosed in add on policy - $client_branch_id =$client_branch_id; + $default_si = $default_si; // si amt which choosed in add on policy + $client_branch_id = $client_branch_id; } // dd($client_policy_id); $client_id = ($this->clientPolicyModel->select('client_id')->find($client_policy_id))['client_id']; // get policy and rack details - $policy_terms = $this->clientPolicyModel->getPolicyDetails($client_id,$client_policy_id); + $policy_terms = $this->clientPolicyModel->getPolicyDetails($client_id, $client_policy_id); $policy_type = $policy_terms[0]->is_addon; $base_policy = $policy_terms[0]->base_policy; - $policy_terms = (array) $policy_terms[0];// convert obj to array + $policy_terms = (array) $policy_terms[0]; // convert obj to array //get policy slab rates - $slab_details = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id); + $slab_details = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id, $client_id); // print_r($slab_details);die(); - $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_code: $emp_code,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']); + $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id, client_policy_id: $client_policy_id, emp_code: $emp_code, emp_status: ['draft', 'enrolled'], policy_status: ['draft', 'enrolled']); - if(!count($existing_famility_details) && $policy_type == 2)//top up addon only + if (!count($existing_famility_details) && $policy_type == 2) //top up addon only { //get basepolicy id then pull emplist from base policy if only current policy is DA addon policy and emplist is zero // echo 'inside'; $client_policy_id = $base_policy; - $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_code: $emp_code,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']); + $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id, client_policy_id: $client_policy_id, emp_code: $emp_code, emp_status: ['draft', 'enrolled'], policy_status: ['draft', 'enrolled']); } - $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception']; + $file = ['id' => null, 'client_id' => $client_id, 'policy_id' => $client_policy_id, 'action' => 'inception']; // dd($this->employeeModel->getLastQuery()); // print_r($existing_famility_details);die(); - $employee_data_group_by_family = data_group_by_family($existing_famility_details,$data_source = 'db'); + $employee_data_group_by_family = data_group_by_family($existing_famility_details, $data_source = 'db'); // print_r(($employee_data_group_by_family));//die(); - $existing_units = $this->clientBranchModel->getExisitingUnits(client_id: $client_id,client_branch_id: $client_branch_id); + $existing_units = $this->clientBranchModel->getExisitingUnits(client_id: $client_id, client_branch_id: $client_branch_id); - foreach ($employee_data_group_by_family as $emp_id => $family) - { + foreach ($employee_data_group_by_family as $emp_id => $family) { $transformed_famility_details = transform_db_data_to_excel($family); - $data = calculate_premium_new(family_data: $transformed_famility_details,policy_terms:$policy_terms,slab_details:$slab_details,fileArr: $file,existing_units: $existing_units,default_si : $default_si); - + $data = calculate_premium_new(family_data: $transformed_famility_details, policy_terms: $policy_terms, slab_details: $slab_details, fileArr: $file, existing_units: $existing_units, default_si: $default_si); + $employee_data_group_by_family[$emp_id] = $data; - } - if($clientPolicyId != null && $empCode != null) - { - return $employee_data_group_by_family; - }else{ + if ($clientPolicyId != null && $empCode != null) { + return $employee_data_group_by_family; + } else { // dd ($employee_data_group_by_family); - return $this->respond(['status' => 'success','code' => (count($employee_data_group_by_family) ? 200 : 404),'data' => [$employee_data_group_by_family] ], 200); - + return $this->respond(['status' => 'success', 'code' => (count($employee_data_group_by_family) ? 200 : 404), 'data' => [$employee_data_group_by_family]], 200); } - } - public function getHRAccessData( $hr_id = null , $request_for = 'post_enrollment') + public function getHRAccessData($hr_id = null, $request_for = 'post_enrollment') { $hr_id = $this->request->getGet('hr_id') ?? $hr_id; $request_for = $this->request->getGet('request_for') ?? $request_for; - if($request_for == 'pre_enrollment'){ $idField = 'pre_hr_id'; }else{ $idField = 'post_hr_id'; } + if ($request_for == 'pre_enrollment') { + $idField = 'pre_hr_id'; + } else { + $idField = 'post_hr_id'; + } - $data = $this->hrAccessControlModel->where($idField , $hr_id)->where('is_active' , 1)->first(); + $data = $this->hrAccessControlModel->where($idField, $hr_id)->where('is_active', 1)->first(); - if($request_for == 'post_enrollment'){ return $data ?? []; } + if ($request_for == 'post_enrollment') { + return $data ?? []; + } - return $this->respond(['status' => (($data) ? 'success' : 'failed'),'code' => (($data) ? 200 : 404),'data' => $data ], 200); + return $this->respond(['status' => (($data) ? 'success' : 'failed'), 'code' => (($data) ? 200 : 404), 'data' => $data], 200); } public function getPolicyLevelEmployeeSummaryData() { - $hr_id = $this->request->getGet('hr_id'); - $HRAccessData = $this->getHRAccessData($hr_id,'post_enrollment'); + $hr_id = $this->request->getGet('hr_id'); + $HRAccessData = $this->getHRAccessData($hr_id, 'post_enrollment'); - if(isset($HRAccessData['allowed_active_policies'])) - { - $policyId = json_decode($HRAccessData['allowed_active_policies'],true); - }else{ - $policyId = []; - } + if (isset($HRAccessData['allowed_active_policies'])) { + $policyId = json_decode($HRAccessData['allowed_active_policies'], true); + } else { + $policyId = []; + } - if(count($policyId) == 0){ - return $this->respond(['status' => 'failed','code' => (count($policyId) ? 200 : 404),'data' => [] ], 200); - } + if (count($policyId) == 0) { + return $this->respond(['status' => 'failed', 'code' => (count($policyId) ? 200 : 404), 'data' => []], 200); + } - - - $ClientPolicyData = $this->clientPolicyModel->select('client_policy.id as client_policy_id , client_policy.client_id as client_id, client_policy.policy_type_id as policy_type_id, client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type, client_policy.policy_no as policy_no, client_policy.insurer_id as insurer_id, DATE_FORMAT(client_policy.policy_end_date, "%d-%m-%Y") AS policy_expiry_date ') - ->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', $this->request->getGet('policy_status')) - ->whereIn('client_policy.id', $policyId) - ->findAll(); - - $result = []; - // dd( $ClientPolicyData); - foreach ($ClientPolicyData as $key => $value) - { - $policyTypeData = $this->policyTypeModel->where('id',$value['policy_type_id'])->get()->getRow(); - $insurerData = $this->insurerModel->where('id',$value['insurer_id'])->get()->getRow(); - $value['type'] = $policyTypeData->policy_type; - $value['policy_name'] = $policyTypeData->long_name; - $value['insurer_name'] = $insurerData->name; - $value['insurer_short_name'] = $insurerData->short_name; - $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')); - // dd($employeeDetails); - $activeCount = 0; - $inactiveCount = 0; - if(count($employeeDetails)) - { - foreach ($employeeDetails as $item) { - if ($item['emp_status'] === 'active') { - $activeCount++; - } elseif ($item['emp_status'] === 'inactive') { - $inactiveCount++; - } + $ClientPolicyData = $this->clientPolicyModel->select('client_policy.id as client_policy_id , client_policy.client_id as client_id, client_policy.policy_type_id as policy_type_id, client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type, client_policy.policy_no as policy_no, client_policy.insurer_id as insurer_id, DATE_FORMAT(client_policy.policy_end_date, "%d-%m-%Y") AS policy_expiry_date ') + ->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', $this->request->getGet('policy_status')) + ->whereIn('client_policy.id', $policyId) + ->findAll(); + + + $result = []; + // dd( $ClientPolicyData); + foreach ($ClientPolicyData as $key => $value) { + $policyTypeData = $this->policyTypeModel->where('id', $value['policy_type_id'])->get()->getRow(); + $insurerData = $this->insurerModel->where('id', $value['insurer_id'])->get()->getRow(); + + $value['type'] = $policyTypeData->policy_type; + $value['policy_name'] = $policyTypeData->long_name; + $value['insurer_name'] = $insurerData->name; + $value['insurer_short_name'] = $insurerData->short_name; + $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')); + // dd($employeeDetails); + $activeCount = 0; + $inactiveCount = 0; + if (count($employeeDetails)) { + foreach ($employeeDetails as $item) { + if ($item['emp_status'] === 'active') { + $activeCount++; + } elseif ($item['emp_status'] === 'inactive') { + $inactiveCount++; } } - - $value['totalMembersCount'] = count($employeeDetails); - $value['membersCountOfActive'] = $activeCount; - $value['membersCountOfInactive'] = $inactiveCount; - - - array_push($result,$value); } - + + $value['totalMembersCount'] = count($employeeDetails); + $value['membersCountOfActive'] = $activeCount; + $value['membersCountOfInactive'] = $inactiveCount; - if($result) - { - return $this->respond(['status' => 'success','code' => (count($result) ? 200 : 404),'data' => $result ], 200); - }else{ - return $this->respond(['status' => 'failed','code' => (count($result) ? 200 : 404),'data' => [] ], 200); + array_push($result, $value); + } + + + + if ($result) { + return $this->respond(['status' => 'success', 'code' => (count($result) ? 200 : 404), 'data' => $result], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => (count($result) ? 200 : 404), 'data' => []], 200); } - } @@ -2402,57 +2357,52 @@ class EmployeeRestController extends AdminController { $hr_id = $this->request->getGet('hr_id'); - $HRAccessData = $this->getHRAccessData($hr_id,'post_enrollment'); + $HRAccessData = $this->getHRAccessData($hr_id, 'post_enrollment'); // print_rr($HRAccessData);die(); - if(isset($HRAccessData['allowed_cd'])) - { - $allowed_cd = json_decode($HRAccessData['allowed_cd'],true); - }else{ - $allowed_cd = []; - } + if (isset($HRAccessData['allowed_cd'])) { + $allowed_cd = json_decode($HRAccessData['allowed_cd'], true); + } else { + $allowed_cd = []; + } // $allowed_cd = [125]; // print_r($allowed_cd);die(); - if(count($allowed_cd) == 0){ - return $this->respond(['status' => 'failed','code' => (count($allowed_cd) ? 200 : 404),'data' => [] ], 200); + if (count($allowed_cd) == 0) { + return $this->respond(['status' => 'failed', 'code' => (count($allowed_cd) ? 200 : 404), 'data' => []], 200); } $clientId = $this->request->getGet('client_id'); $clientController = new ClientController; - $result = $clientController->deposit($clientId , $requestFrom = 'rest' , []); + $result = $clientController->deposit($clientId, $requestFrom = 'rest', []); // print_rr($result);die(); $data = []; - - foreach ($result['clientData'] as $key => $value) - { - if( in_array($value->cd_ac_pk, $allowed_cd) ) - { - $temp['client_id'] = $value->client_id; - $temp['insurer_id'] = $value->insurer_id; - $temp['cd_ac_pk'] = $value->cd_ac_pk; - $temp['insurer_name'] = $value->insurer_name; - $temp['cd_master_account_no'] = $value->cd_master_account_no; - if (isset($result['balances'][$temp['insurer_id'].'-'.$temp['cd_ac_pk']])) { - $balance = $result['balances'][$temp['insurer_id'].'-'.$temp['cd_ac_pk']]->balance; - $temp['balance'] = $balance; - } else { - $temp['balance'] = "N/A"; - } - - array_push($data,$temp); + foreach ($result['clientData'] as $key => $value) { + if (in_array($value->cd_ac_pk, $allowed_cd)) { + $temp['client_id'] = $value->client_id; + $temp['insurer_id'] = $value->insurer_id; + $temp['cd_ac_pk'] = $value->cd_ac_pk; + $temp['insurer_name'] = $value->insurer_name; + $temp['cd_master_account_no'] = $value->cd_master_account_no; + + if (isset($result['balances'][$temp['insurer_id'] . '-' . $temp['cd_ac_pk']])) { + $balance = $result['balances'][$temp['insurer_id'] . '-' . $temp['cd_ac_pk']]->balance; + $temp['balance'] = $balance; + } else { + $temp['balance'] = "N/A"; } + + array_push($data, $temp); } - - - if($data) - { - return $this->respond(['status' => 'success','code' => (count($data) ? 200 : 404),'data' => $data ], 200); - }else{ - return $this->respond(['status' => 'failed','code' => (count($data) ? 200 : 404),'data' => [] ], 200); } - + + + if ($data) { + return $this->respond(['status' => 'success', 'code' => (count($data) ? 200 : 404), 'data' => $data], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => (count($data) ? 200 : 404), 'data' => []], 200); + } } public function cdTransactionData() @@ -2463,8 +2413,8 @@ class EmployeeRestController extends AdminController $cdAccountPrimaryKey = $this->request->getGet('cd_ac_pk'); $clientController = new ClientController; - $result = $clientController->view_Deposit($insurerId , $requestFrom = 'rest' , $param = ['client_id'=>$clientId, 'cd_ac_pk'=>$cdAccountPrimaryKey ]); - + $result = $clientController->view_Deposit($insurerId, $requestFrom = 'rest', $param = ['client_id' => $clientId, 'cd_ac_pk' => $cdAccountPrimaryKey]); + $data['insurer_name'] = $result['insurerName']->name; $data['account_number'] = $result['insurerName']->cd_master_account_no; $data['total_deposit'] = $result['deposiamount']->total_credit; @@ -2472,17 +2422,15 @@ class EmployeeRestController extends AdminController $data['total_refund'] = $result['deposiamount']->total_refund; $data['currect_balance'] = $result['deposiamount']->balance; $data['deposit_data'] = $result['depositdata']; - + // dd($data); - if($data) - { - return $this->respond(['status' => 'success','code' => (count($data) ? 200 : 404),'data' => $data ], 200); - }else{ - return $this->respond(['status' => 'failed','code' => (count($data) ? 200 : 404),'data' => [] ], 200); + if ($data) { + return $this->respond(['status' => 'success', 'code' => (count($data) ? 200 : 404), 'data' => $data], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => (count($data) ? 200 : 404), 'data' => []], 200); } - } @@ -2490,44 +2438,49 @@ class EmployeeRestController extends AdminController { if ($this->request->is('get')) { - + $data['claim_status'] = $this->claimStatusModel->select('id,ticket_type,claim_status')->where('is_active', 1)->findAll(); $data['ticket_type'] = [ - ["ticket_type" => "1", "type_name" => "Claim-GMC"], - ["ticket_type" => "2", "type_name" => "Claim-GPA"], - ["ticket_type" => "3", "type_name" => "EDLI"], - ["ticket_type" => "4", "type_name" => "GTLI"], - ]; - - return $this->respond(['status' => (count($data) ? 'success' : 'failed'),'code' => (count($data) ? 200 : 404),'data' => $data ], 200); - + ["ticket_type" => "1", "type_name" => "Claim-GMC"], + ["ticket_type" => "2", "type_name" => "Claim-GPA"], + ["ticket_type" => "3", "type_name" => "EDLI"], + ["ticket_type" => "4", "type_name" => "GTLI"], + ]; + + return $this->respond(['status' => (count($data) ? 'success' : 'failed'), 'code' => (count($data) ? 200 : 404), 'data' => $data], 200); } $db = db_connect(); $search_data = $this->request->getJSON(true); // Get JSON as associative array - + $client_id = isset($search_data['client_id']) ? (int) $search_data['client_id'] : 0; unset($search_data['client_id']); $from_date = isset($search_data['from_date']) ? $search_data['from_date'] : null; $to_date = isset($search_data['to_date']) ? $search_data['to_date'] : null; unset($search_data['from_date'], $search_data['to_date']); - + $where = []; - + // Dynamically build WHERE conditions from non-empty parameters foreach ($search_data as $key => $value) { if (!empty($value) && $value !== 0 && $value !== '0') { $where["tm.$key"] = $value; } } - + $builder = $db->table('ticket_master tm'); $builder->select([ 'tm.id', 'tm.ticket_type_id', - 'tcs.claim_status AS status', + 'tcs.claim_status AS original_status', + "CASE + WHEN tcs.display_name IS NULL OR tcs.display_name = '' + THEN tcs.claim_status + ELSE UPPER(tcs.display_name) + END AS status + ", 'tm.claim_number AS claim_no', 'tm.claim_status_id', 'tm.is_head_approved', @@ -2541,11 +2494,11 @@ class EmployeeRestController extends AdminController 'tm.insured_name', 'c.short_name', 'DATE_FORMAT(tm.created_at, "%d-%m-%Y") AS ticket_created_date', - + '(SELECT first_name FROM user_profiles WHERE user_profiles.id = tm.acm_id) AS acm_name', '(SELECT name FROM insurers WHERE insurers.id = tm.insurer_id) AS insurer_name_sub', '(SELECT name FROM tpa WHERE tpa.id = tm.tpa_id) AS tpa_name', - + 'tm.acm_id', 'tm.insurer_id', 'tm.client_policy_id', @@ -2588,35 +2541,34 @@ class EmployeeRestController extends AdminController 'pt.policy_type as policy_type', 'cp.policy_no as client_policy_no', ]); - + $builder->join('insurers i', 'i.id = tm.insurer_id AND i.is_active = 1', 'left'); $builder->join('clients c', 'c.id = tm.client_id AND c.is_active = 1', 'left'); $builder->join('ticket_claim_status tcs', 'tcs.id = tm.claim_status_id AND tcs.is_active = 1', 'left'); $builder->join('client_policy cp', 'tm.client_policy_id = cp.id', 'left'); $builder->join('policy_type pt', 'cp.policy_type_id = pt.id', 'left'); - + $builder->where('tm.is_active', 1); - + if ($client_id > 0) { $builder->where('tm.client_id', $client_id); } - + if (!empty($from_date) && !empty($to_date)) { $from_date_mysql = date('Y-m-d', strtotime($from_date)); $to_date_mysql = date('Y-m-d', strtotime($to_date)); $builder->where("DATE(tm.created_at) BETWEEN '$from_date_mysql' AND '$to_date_mysql'"); } - + if (!empty($where)) { $builder->where($where); } - + $builder->orderBy('tm.id', 'DESC'); - + $data = $builder->get()->getResultArray(); - return $this->respond(['status' => (count($data) ? 'success' : 'failed'),'code' => (count($data) ? 200 : 404),'data' => $data ], 200); - + return $this->respond(['status' => (count($data) ? 'success' : 'failed'), 'code' => (count($data) ? 200 : 404), 'data' => $data], 200); } public function claimView() @@ -2626,26 +2578,16 @@ class EmployeeRestController extends AdminController $data['ticket_history'] = $ticketController->ticketHistory($ticket_id); $data['claims_data'] = $this->ticketMaster->getTicketDataByTicketID($ticket_id); $data['ticket_data'] = $ticketController->getMoreInfo($requestFrom = 'rest', $ticket_id); - $status_list = [ - "DENIAL REVIEW AWAITED" => 'Denial Review Awaited', - "UNDER PROCESS - TPA" => 'Under Process', - "SETTLED" => 'Settled', - "PAYMENT INITIATED" => 'Under Process', - "APPROVED" => 'Approved', - "REJECTED" => 'Rejected', - "UNDER PROCESS - QUERY DOCUMENT RECEIVED" => 'Under Process', - "UNDER PROCESS - CLAIM NO. UPDATION" => 'Under Process' , - "INFORMATION REQUIRED" => 'Information Required', - "CDA" => 'Claim Received', - "ID NOT GENERATED" => 'Claim Received', - "NON ID" => 'Claim Received' - ]; - - // $data = $response['data']; // Assuming your full array is stored in $response + // $ticketData = $data['ticket_data']; // $ticketHistory = $data['ticket_history']; + + $ticketClaimStatus = $this->claimStatusModel->select('claim_status, display_name')->where('display_name is not null')->where('is_active', 1)->findAll(); + $status_list = array_column($ticketClaimStatus, 'display_name', 'claim_status'); + $data['ticket_data'] = array_fill_keys(array_keys($data['ticket_data']), []); + // Loop through ticket_data foreach ($data['ticket_data'] as $status => &$fields) { // Search ticket_history for matching old_status_value @@ -2654,6 +2596,7 @@ class EmployeeRestController extends AdminController if ($history['old_status_value'] === $status) { // Attach modified_by and created_at // $fields['modified_by'] = $history['modified_by']; + $fields['modified_by'] = ""; $fields['modified_at'] = date('d-m-Y h:i A', strtotime($history['created_at'])); // Break after first match (assuming latest entry is enough) break; @@ -2679,8 +2622,15 @@ class EmployeeRestController extends AdminController } } + uasort($new_ticket_data, function ($a, $b) { + $timeA = \DateTime::createFromFormat('d-m-Y h:i A', $a['modified_at']); + $timeB = \DateTime::createFromFormat('d-m-Y h:i A', $b['modified_at']); + return $timeA <=> $timeB; // Ascending + }); + $data['ticket_data'] = $new_ticket_data; + $ticketMesssageModel = new TicketMessageModel(); $ticket_message = $ticketMesssageModel ->where('is_active', 1) @@ -2691,7 +2641,7 @@ class EmployeeRestController extends AdminController $claim_file_urls = []; - if (isset($ticket_message['id'])) { + if (isset($ticket_message['id'])) { $claimFiles = new ClaimFilesModel(); $claim_files_data = $claimFiles @@ -2710,20 +2660,19 @@ class EmployeeRestController extends AdminController } $data['claim_files'] = $claim_file_urls; - - return $this->respond(['status' => (count($data) ? 'success' : 'failed'),'code' => (count($data) ? 200 : 404),'data' => $data, ], 200); + + return $this->respond(['status' => (count($data) ? 'success' : 'failed'), 'code' => (count($data) ? 200 : 404), 'data' => $data,], 200); } - + public function exportCashDepositData() { - $CashDepositData = $this->clientPolicyModel->getdepositData($this->request->getGet('client_id'),$this->request->getGet('insurer_id')); + $CashDepositData = $this->clientPolicyModel->getdepositData($this->request->getGet('client_id'), $this->request->getGet('insurer_id')); // echo '
';print_r($CashDepositData); echo '
';die; - if(count($CashDepositData)) - { + if (count($CashDepositData)) { // Define headers and map database fields to Excel fields $headers = [ 'Date' => 'created_at', @@ -2761,7 +2710,7 @@ class EmployeeRestController extends AdminController // Set the header for download - $filename = $CashDepositData[0]->insurer_name.'-CashDeposit.xlsx'; + $filename = $CashDepositData[0]->insurer_name . '-CashDeposit.xlsx'; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $filename . '"'); header('Cache-Control: max-age=0'); @@ -2772,12 +2721,10 @@ class EmployeeRestController extends AdminController exit; return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); - - }else{ + } else { return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); } - } @@ -2785,126 +2732,121 @@ class EmployeeRestController extends AdminController { try { - $clientPolicy = $this->clientPolicyModel->where('id',$this->request->getGet('client_policy_id')) - ->where('open_for_enrollment',1)->findAll(); - - if(count($clientPolicy)) - { + $clientPolicy = $this->clientPolicyModel->where('id', $this->request->getGet('client_policy_id')) + ->where('open_for_enrollment', 1)->findAll(); + + if (count($clientPolicy)) { - if($clientPolicy[0]['is_addon'] == 2)//Topup + if ($clientPolicy[0]['is_addon'] == 2) //Topup { - if($clientPolicy[0]['policy_type_id'] == 4)//GMC-Topup + if ($clientPolicy[0]['policy_type_id'] == 4) //GMC-Topup { - $empData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code')) - ->where('is_addon_value', 0 ) - ->findAll(); - }else if($clientPolicy[0]['policy_type_id'] == 5)//GMC-Parent-Topup + $empData = $this->employeeModel->where('emp_code', $this->request->getGet('emp_code')) + ->where('is_addon_value', 0) + ->findAll(); + } else if ($clientPolicy[0]['policy_type_id'] == 5) //GMC-Parent-Topup { - $empData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code')) - ->where('is_addon_value', 1 ) - ->findAll(); + $empData = $this->employeeModel->where('emp_code', $this->request->getGet('emp_code')) + ->where('is_addon_value', 1) + ->findAll(); } - - if(count($empData)) - { + + if (count($empData)) { foreach ($empData as $key => $value) { - $this->employeePolicyModel->where('client_policy_id',$this->request->getGet('client_policy_id') ) - ->where('employee_id', $value['id'] ) - ->set(array('is_active'=> 0 )) - ->update(); - + $this->employeePolicyModel->where('client_policy_id', $this->request->getGet('client_policy_id')) + ->where('employee_id', $value['id']) + ->set(array('is_active' => 0)) + ->update(); } } - - } - else if($clientPolicy[0]['is_addon'] == 3)//Dependent addon + } else if ($clientPolicy[0]['is_addon'] == 3) //Dependent addon { - $empData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code')) - ->where('is_addon_value', 1 )->findAll(); - if(count($empData)) - { - foreach ($empData as $key => $value) { + $empData = $this->employeeModel->where('emp_code', $this->request->getGet('emp_code')) + ->where('is_addon_value', 1)->findAll(); + if (count($empData)) { + foreach ($empData as $key => $value) { - $this->employeePolicyModel->where('client_policy_id',$this->request->getGet('client_policy_id') ) - ->where('employee_id', $value['id'] ) - ->set(array('is_active'=> 0 )) - ->update(); + $this->employeePolicyModel->where('client_policy_id', $this->request->getGet('client_policy_id')) + ->where('employee_id', $value['id']) + ->set(array('is_active' => 0)) + ->update(); + } + $this->employeeModel->where('emp_code', $this->request->getGet('emp_code')) + ->where('is_active', 1)->where('is_addon_value', 1) + ->set(array('is_active' => 0)) + ->update(); } - - $this->employeeModel->where('emp_code', $this->request->getGet('emp_code') ) - ->where('is_active', 1 )->where('is_addon_value', 1 ) - ->set(array('is_active'=> 0 )) - ->update(); - } - } - - - return $this->respond(['status' => 'success','code' => 200,'data' =>[] ], 200); - - }else{ - return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 200); + + + return $this->respond(['status' => 'success', 'code' => 200, 'data' => []], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); } - - } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); } - } function getEmployeeActiveOrInactivePolicy() { - if($this->request->getGet('type') == 'Active'){ $policy_status = 1; $policy_status_key = "Active"; }else{ $policy_status = 0; $policy_status_key = "InActive";} + if ($this->request->getGet('type') == 'Active') { + $policy_status = 1; + $policy_status_key = "Active"; + } else { + $policy_status = 0; + $policy_status_key = "InActive"; + } $dayInterval = 10; $ClientPolicyData = $this->clientPolicyModel->select("client_policy.* , policy_type.policy_type as policy_type,insurers.name as insurer_name,tpa.name as tpa_name,tpa.network_hospitals as network_hospitals_url, policy_type.long_name as policy_long_name, DATE_ADD(client_policy.policy_end_date, INTERVAL {$dayInterval} DAY) as claims_grace_date") - ->join('insurers', 'client_policy.insurer_id = insurers.id', 'left') - ->join('tpa', 'client_policy.tpa_id = tpa.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) - ->where('client_policy.enrolment_visibility', 1) - ->orderby('client_policy.id' , 'ASC') - ->findAll(); + ->join('insurers', 'client_policy.insurer_id = insurers.id', 'left') + ->join('tpa', 'client_policy.tpa_id = tpa.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) + ->where('client_policy.enrolment_visibility', 1) + ->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('client_branch_id',$this->request->getGet('client_branch_id')) - ->where('is_active', 1 )->findAll(); - - $employeeSelfData = $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(); + $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(); + + $employeeSelfData = $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(); $employeeName = $employeeSelfData->name ?? ""; - + //for get the pre enrollment policy count $empMobileNo = $this->request->getGet('mobile_no'); $clientId = $this->request->getGet('client_id'); - if(!empty($employeeSelfData) && isset($employeeSelfData->email_corporate)){ + if (!empty($employeeSelfData) && isset($employeeSelfData->email_corporate)) { $prePolicyCount = $this->getPreEmployeePolicyCount($empMobileNo, $clientId, $employeeSelfData->email_corporate); - }else{ + } else { $prePolicyCount = $this->getPreEmployeePolicyCount($empMobileNo, $clientId); } - - $whereArrayForId = []; - foreach ( $employeeData as $key => $value) { array_push($whereArrayForId, $value['id']); } - if(count($ClientPolicyData) > 0 && count($employeeData) > 0) - { + $whereArrayForId = []; + foreach ($employeeData as $key => $value) { + array_push($whereArrayForId, $value['id']); + } + + if (count($ClientPolicyData) > 0 && count($employeeData) > 0) { $result = []; foreach ($ClientPolicyData as $key => $ClientPolicyValue) { @@ -2912,38 +2854,31 @@ class EmployeeRestController extends AdminController continue; } - if($ClientPolicyValue['policy_type_id'] == 1) - { + if ($ClientPolicyValue['policy_type_id'] == 1) { $policyGroup = 'gpa'; $data['ticket_type_id'] = 2; $data['claim_subject'] = "Claim GPA"; $data['sum_insured_label'] = "Sum Assured"; - - }else if($ClientPolicyValue['policy_type_id'] == 6) - { + } else if ($ClientPolicyValue['policy_type_id'] == 6) { $policyGroup = 'other'; $data['ticket_type_id'] = 3; $data['claim_subject'] = "Claim EDLI"; $data['sum_insured_label'] = "Sum Assured"; - - }else if($ClientPolicyValue['policy_type_id'] == 7) - { + } else if ($ClientPolicyValue['policy_type_id'] == 7) { $policyGroup = 'other'; $data['ticket_type_id'] = 4; $data['claim_subject'] = "Claim GTLI"; $data['sum_insured_label'] = "Sum Assured"; - - }else - { + } else { $policyGroup = 'gmc'; $data['ticket_type_id'] = 1; $data['claim_subject'] = "Claim GMC"; $data['sum_insured_label'] = "Sum Insured"; } - $terms = json_decode($ClientPolicyValue['policy_terms'] , true); + $terms = json_decode($ClientPolicyValue['policy_terms'], true); $data['policy_terms'] = isset($terms['enrollment_display_key']) && !empty($terms['enrollment_display_key']) ? $terms['enrollment_display_key'] : $this->policyTermsFiter($terms, $policyGroup); - + $data['client_id'] = $ClientPolicyValue['client_id']; $data['client_policy_id'] = $ClientPolicyValue['id']; @@ -2968,61 +2903,66 @@ class EmployeeRestController extends AdminController // if($ClientPolicyValue['policy_type_id'] == 5){ $data['heading'] = 'Group Medical Coverage - Parents (Top Up)'; }else // if($ClientPolicyValue['policy_type_id'] == 7){ $data['heading'] = 'Group Term Life Insurance'; } - if($ClientPolicyValue['policy_type_id'] == 1 || $ClientPolicyValue['policy_type_id'] == 6 || $ClientPolicyValue['policy_type_id'] == 7) - { - $data['floter_text_heading'] = 'Sum Insured'; - }else{ - - if(isset($terms['family_floater']) && strpos(strtolower($terms['family_floater']), "no") !== false ){ $data['floter_text_heading'] = 'Sum Insured'; }else{ $data['floter_text_heading'] = 'Floter Sum Insured'; } + if ($ClientPolicyValue['policy_type_id'] == 1 || $ClientPolicyValue['policy_type_id'] == 6 || $ClientPolicyValue['policy_type_id'] == 7) { + $data['floter_text_heading'] = 'Sum Insured'; + } else { + + if (isset($terms['family_floater']) && strpos(strtolower($terms['family_floater']), "no") !== false) { + $data['floter_text_heading'] = 'Sum Insured'; + } else { + $data['floter_text_heading'] = 'Floter 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 , employee_polices.uhid as uhid') - ->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(); - if(count($employee_policy) > 0) - { + ->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(); + if (count($employee_policy) > 0) { $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 = ($si_value == 0) ? $value['basic_cover_si'] : $si_value; } - if(isset($value['premium'])){ $si_premium_value = $si_premium_value + $value['premium'];} - if(isset($value['gst'])){ $si_gst_value = $si_gst_value + $value['gst'];} - } - - if($employee_policy[0]['tpa_id'] != null) - $data['eCardDownload'] = base_url('download-e-card/') . $employee_policy[0]['rand_string'].'/1'; + foreach ($employee_policy as $key => $value) { + if (isset($value['basic_cover_si'])) { + $si_value = ($si_value == 0) ? $value['basic_cover_si'] : $si_value; + } + if (isset($value['premium'])) { + $si_premium_value = $si_premium_value + $value['premium']; + } + if (isset($value['gst'])) { + $si_gst_value = $si_gst_value + $value['gst']; + } + } + + + if ($employee_policy[0]['tpa_id'] != null) + $data['eCardDownload'] = base_url('download-e-card/') . $employee_policy[0]['rand_string'] . '/1'; else - $data['eCardDownload'] = null; - - - + $data['eCardDownload'] = null; + + + $data['si_value'] = $si_value; $data['si_premium_value'] = ($ClientPolicyValue['policy_type_id'] == 1 || $ClientPolicyValue['policy_type_id'] == 2) ? 0 : round($si_premium_value); $data['si_gst_value'] = ($ClientPolicyValue['policy_type_id'] == 1 || $ClientPolicyValue['policy_type_id'] == 2) ? 0 : round($si_gst_value); - + $data['EmployeePolicy'] = $employee_policy; array_push($result, $data); } - } - return $this->respond(['status' => 'success','code' => 200,'data' => $result , 'emp_name' => $employeeName, 'pre_policy_count' => $prePolicyCount ], 200); - - }else{ - return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result, 'emp_name' => $employeeName, 'pre_policy_count' => $prePolicyCount], 200); + } else { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200); } - } - function policyTermsFiter($terms , $type) - { - if(empty($terms)){ + function policyTermsFiter($terms, $type) + { + if (empty($terms)) { return []; } @@ -3054,7 +2994,7 @@ class EmployeeRestController extends AdminController ]; $gmc = [ - + "waiverofpreexistingdiseases" => "Waiver of Pre-existing Diseases", "waiverof1,2,3&4thyearexclusions" => "Waiver of 1, 2, 3 & 4th year Exclusions", "waiverof30dayswaitingperiod" => "Waiver of 30 days waiting period", @@ -3076,59 +3016,51 @@ class EmployeeRestController extends AdminController ]; $finalarray = []; - if($type == 'gpa'){ + if ($type == 'gpa') { foreach ($gpa as $key => $value) { - if(isset($terms->$key)) - { - if($terms->$key == 1) - { + if (isset($terms->$key)) { + if ($terms->$key == 1) { $termsValue = 'Yes'; - }else if($terms->$key == 0) - { + } else if ($terms->$key == 0) { $termsValue = 'No'; - }else - { + } else { $termsValue = $terms->$key; } $finalarray[$value] = $termsValue; } } - if(isset(($terms->gpa_special_condition_label)) && is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)){ - for ($i=0; $i < count($terms->gpa_special_condition_label); $i++) { + if (isset(($terms->gpa_special_condition_label)) && is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)) { + for ($i = 0; $i < count($terms->gpa_special_condition_label); $i++) { $finalarray[$terms->gpa_special_condition_label[$i]] = $terms->gpa_special_condition_input[$i]; } } - }else if($type == 'other'){ + } else if ($type == 'other') { foreach ($terms as $key => $value) { - if($key != "multiple_sum_insured" && $value != ""){ + if ($key != "multiple_sum_insured" && $value != "") { $result = ucwords(str_replace('_', ' ', $key)); $finalarray[$result] = $value; } } - if(isset(($terms->gpa_special_condition_label)) && is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)){ - for ($i=0; $i < count($terms->gpa_special_condition_label); $i++) { + if (isset(($terms->gpa_special_condition_label)) && is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)) { + for ($i = 0; $i < count($terms->gpa_special_condition_label); $i++) { $finalarray[$terms->gpa_special_condition_label[$i]] = $terms->gpa_special_condition_input[$i]; } } - }else{ + } else { foreach ($gmc as $key => $value) { - if(isset($terms->$key)) - { - if($terms->$key == 1) - { + if (isset($terms->$key)) { + if ($terms->$key == 1) { $termsValue = 'Yes'; - }else if($terms->$key == 0) - { + } else if ($terms->$key == 0) { $termsValue = 'No'; - }else - { + } else { $termsValue = $terms->$key; } $finalarray[$value] = $termsValue; - } + } } - if(isset(($terms->special_condition_label)) && is_array($terms->special_condition_label) && is_array($terms->special_condition_input)){ - for ($i=0; $i < count($terms->special_condition_label); $i++) { + if (isset(($terms->special_condition_label)) && is_array($terms->special_condition_label) && is_array($terms->special_condition_input)) { + for ($i = 0; $i < count($terms->special_condition_label); $i++) { $finalarray[$terms->special_condition_label[$i]] = $terms->special_condition_input[$i]; } } @@ -3153,42 +3085,40 @@ class EmployeeRestController extends AdminController public function getFEContent() { try { - + $feContentData = $this->feContentModel->findAll(); if (count($feContentData) > 0) { - - return $this->respond(['status' => 'success','code' => 200,'data' => $feContentData ],200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $feContentData], 200); } else { - - return $this->respond(['status' => 'failed','code' => 404,'data' => 'No Data'],404); + + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'No Data'], 404); } - } catch (\Throwable $th) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); - } + } catch (\Throwable $th) { + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $th], 500); + } } public function getAdvertisementImage() { try { - - $img = $this->addImgModel->where('is_active',1)->findAll(); - - if (count($img) > 0) { - $data=[]; - foreach ($img as $key => $value) { - $url = base_url('public/uploads/add_image_upload/').$value['name']; - array_push($data,$url); - } - - return $this->respond(['status' => 'success','code' => 200,'data' => $data ],200); + $img = $this->addImgModel->where('is_active', 1)->findAll(); + + if (count($img) > 0) { + $data = []; + foreach ($img as $key => $value) { + $url = base_url('public/uploads/add_image_upload/') . $value['name']; + array_push($data, $url); + } + + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $data], 200); } else { - - return $this->respond(['status' => 'failed','code' => 404,'data' => 'No Data'],404); + + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'No Data'], 404); } } catch (\Throwable $th) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); + return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $th], 500); } } @@ -3196,29 +3126,28 @@ class EmployeeRestController extends AdminController public function storeFireBase() { try { - + $firebase_token = isset($this->request->getJSON()->firebase_token) ? $this->request->getJSON()->firebase_token : null; $mobile = isset($this->request->getJSON()->mobile) ? $this->request->getJSON()->mobile : null; $email_id = isset($this->request->getJSON()->email_id) ? $this->request->getJSON()->email_id : null; - + // Ensure the mobile number is provided if (empty($mobile)) { return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'Mobile number is required'], 400); } - + // Fetch employee - if (isset($mobile)) - { - $employee = $this->employeeModel->where('mobile', $mobile)->where('relationship', 'self')->where('is_active', 1)->first(); - } else { - $employee = $this->employeeModel->where('email_corporate', $email_id)->where('relationship', 'self')->where('is_active', 1)->first(); - } - - + if (isset($mobile)) { + $employee = $this->employeeModel->where('mobile', $mobile)->where('relationship', 'self')->where('is_active', 1)->first(); + } else { + $employee = $this->employeeModel->where('email_corporate', $email_id)->where('relationship', 'self')->where('is_active', 1)->first(); + } + + if ($employee) { // Check if firebase_token is provided if (!empty($firebase_token)) { - + // Check if the current firebase_token is different from the new one if ($employee['firebase_token'] !== $firebase_token) { // Update the employee's firebase_token @@ -3229,7 +3158,7 @@ class EmployeeRestController extends AdminController $db = \Config\Database::connect(); $builder = $db->table('employees'); $update_emp = $builder->update($data, ['id' => $id]); - + // Check if the update was successful if ($db->affectedRows() > 0) { // Fetch the updated employee data @@ -3263,16 +3192,16 @@ class EmployeeRestController extends AdminController // $deviceToken = 'cMVKESh8QzqIl8nh_yqbcl:APA91bHKm87Sh1goVJNKZtctV4etgLMQboI0eyDVn3MH1yf9cO-2RtQRlFnKLdataOxosoxm7a4JvATKjfI1_Bids46mGw5m8zesp90mR4odCbD_cJtGmBeMYt4hssSY0YtAht1emK_H'; // $title = 'Nhance'; // $body = 'All your policy enrolled successfully ..!'; - + // // Initialize Firebase with the service account // $firebase = (new Factory) // ->withServiceAccount(APPPATH . 'Config/google-services.json') // ->createMessaging(); - + // $notification = Notification::create($title, $body); // $message = CloudMessage::withTarget('token', $deviceToken) // ->withNotification($notification); - + // try { // $firebase->send($message); // return $this->response->setJSON(['status' => 'success']); @@ -3289,22 +3218,26 @@ class EmployeeRestController extends AdminController $empCode = $this->request->getGet('emp_code'); $clientId = $this->request->getGet('client_id'); $clientBranchId = $this->request->getGet('client_branch_id'); - - if (!$empCode || !$clientId || !$clientBranchId) { return $this->fail("emp_code, client_id, and client_branch_id are required parameters."); } + + if (!$empCode || !$clientId || !$clientBranchId) { + return $this->fail("emp_code, client_id, and client_branch_id are required parameters."); + } //Fetch active employee details $employees = $this->employeeModel->select('id,emp_code,name,relationship,dob,emp_status,is_addon_value,created_at,updated_at') - ->where([ - 'emp_code' => $empCode, - 'client_id' => $clientId, - 'client_branch_id' => $clientBranchId, - 'is_active' => 1 - ]) - ->findAll(); + ->where([ + 'emp_code' => $empCode, + 'client_id' => $clientId, + 'client_branch_id' => $clientBranchId, + 'is_active' => 1 + ]) + ->findAll(); //Find status of self - $selfEmployee = array_filter($employees, function($employee) { return $employee['relationship'] === 'Self'; }); + $selfEmployee = array_filter($employees, function ($employee) { + return $employee['relationship'] === 'Self'; + }); $data['self_status'] = !empty($selfEmployee) ? array_values($selfEmployee)[0]['emp_status'] : null; $data['self_enrolled_time'] = !empty($selfEmployee) ? array_values($selfEmployee)[0]['updated_at'] : null; $data['self_employee_id'] = !empty($selfEmployee) ? array_values($selfEmployee)[0]['id'] : null; @@ -3312,113 +3245,113 @@ class EmployeeRestController extends AdminController //Fetch employee policy details $employeeIds = array_column($employees, 'id'); - $policies = $this->employeePolicyModel->whereIn('employee_id', $employeeIds)->where('is_active',1)->findAll(); + $policies = $this->employeePolicyModel->whereIn('employee_id', $employeeIds)->where('is_active', 1)->findAll(); + - //Find the stage of enrolment process $employeeStatuses = array_column($employees, 'emp_status'); $employeePolicyStatuses = array_column($policies, 'status'); $uniqueStatuses = array_unique(array_merge($employeeStatuses, $employeePolicyStatuses)); - - if(count($uniqueStatuses) > 1){ $enrolmentStagekey = 1; }else{ if($uniqueStatuses[0] == 'draft'){ $enrolmentStagekey = 0; }else{ $enrolmentStagekey = 2; } } - - $enrolmentStage = ['Draft Only','Intermittent Enrollment','Successful Enrollment']; + + if (count($uniqueStatuses) > 1) { + $enrolmentStagekey = 1; + } else { + if ($uniqueStatuses[0] == 'draft') { + $enrolmentStagekey = 0; + } else { + $enrolmentStagekey = 2; + } + } + + $enrolmentStage = ['Draft Only', 'Intermittent Enrollment', 'Successful Enrollment']; $data['enrolment_stage'] = $enrolmentStage[$enrolmentStagekey]; $data['revert_employee_data'] = []; $data['revert_employee_policy_data'] = []; - if($enrolmentStagekey == 1) - { + if ($enrolmentStagekey == 1) { //Find active employee history $empIdsWithoutSelf = $employeeIds; $key = array_search($data['self_employee_id'], $empIdsWithoutSelf); - unset($empIdsWithoutSelf[$key]); - foreach ($empIdsWithoutSelf as $key => $pk) - { - $retrivedData = $this->retriveOldData($data['self_enrolled_time'],'employees',$pk); - if($retrivedData != false) - array_push($data['revert_employee_data'] , $retrivedData); + unset($empIdsWithoutSelf[$key]); + foreach ($empIdsWithoutSelf as $key => $pk) { + $retrivedData = $this->retriveOldData($data['self_enrolled_time'], 'employees', $pk); + if ($retrivedData != false) + array_push($data['revert_employee_data'], $retrivedData); } //Find inactive employee history $inActiveEmployees = $this->employeeModel->select('id,emp_code,name,relationship,dob,emp_status,is_addon_value,created_at,updated_at') - ->where([ - 'emp_code' => $empCode, - 'client_id' => $clientId, - 'client_branch_id' => $clientBranchId, - 'is_active' => 0 - ]) - ->findAll(); - $inActiveEmployeeIds = array_column($inActiveEmployees, 'id'); - foreach ($inActiveEmployeeIds as $key => $pk) - { - $retrivedData = $this->retriveOldData($data['self_enrolled_time'],'employees',$pk); - if($retrivedData != false) - array_push($data['revert_employee_data'] , $retrivedData); + ->where([ + 'emp_code' => $empCode, + 'client_id' => $clientId, + 'client_branch_id' => $clientBranchId, + 'is_active' => 0 + ]) + ->findAll(); + $inActiveEmployeeIds = array_column($inActiveEmployees, 'id'); + foreach ($inActiveEmployeeIds as $key => $pk) { + $retrivedData = $this->retriveOldData($data['self_enrolled_time'], 'employees', $pk); + if ($retrivedData != false) + array_push($data['revert_employee_data'], $retrivedData); } - + //Merged active and inactive employees , employee_polict history - $mergedEmpIds = array_merge($employeeIds,$inActiveEmployeeIds); + $mergedEmpIds = array_merge($employeeIds, $inActiveEmployeeIds); $empPolicyData = $this->employeePolicyModel->whereIn('employee_id', $mergedEmpIds)->findAll(); $employeePolicyIds = array_column($empPolicyData, 'id'); - foreach ($employeePolicyIds as $key => $pk) - { - $retrivedData = $this->retriveOldData($data['self_enrolled_time'],'employee_polices',$pk); - if($retrivedData != false) - array_push($data['revert_employee_policy_data'] , $retrivedData); + foreach ($employeePolicyIds as $key => $pk) { + $retrivedData = $this->retriveOldData($data['self_enrolled_time'], 'employee_polices', $pk); + if ($retrivedData != false) + array_push($data['revert_employee_policy_data'], $retrivedData); } } - if($this->request->getGet('revert_data') == 1) - { + if ($this->request->getGet('revert_data') == 1) { //update data back to employee - if(count($data['revert_employee_data'])){ - foreach ($data['revert_employee_data'] as $key => $val) - { - $this->employeeModel->where('id',$val['id'] )->set($val['data'])->update(); + if (count($data['revert_employee_data'])) { + foreach ($data['revert_employee_data'] as $key => $val) { + $this->employeeModel->where('id', $val['id'])->set($val['data'])->update(); } } //update data back to employee policy - if(count($data['revert_employee_policy_data'])){ - foreach ($data['revert_employee_policy_data'] as $key => $val) - { - $this->employeePolicyModel->where('id',$val['id'] )->set($val['data'])->update(); - } + if (count($data['revert_employee_policy_data'])) { + foreach ($data['revert_employee_policy_data'] as $key => $val) { + $this->employeePolicyModel->where('id', $val['id'])->set($val['data'])->update(); + } } //update enrolled status for self - if(count($data['revert_employee_data']) || count($data['revert_employee_policy_data'])){ - $this->employeeModel->where('id',$data['self_employee_id'] )->set(array('emp_status'=>'enrolled'))->update(); - $data['retrieve_status'] = 'Data revert successfully'; - }else{ - $data['retrieve_status'] = 'There is no data to revert'; + if (count($data['revert_employee_data']) || count($data['revert_employee_policy_data'])) { + $this->employeeModel->where('id', $data['self_employee_id'])->set(array('emp_status' => 'enrolled'))->update(); + $data['retrieve_status'] = 'Data revert successfully'; + } else { + $data['retrieve_status'] = 'There is no data to revert'; } - } - - + + // Fetch all policies related to these employees who currently active $current_employee_data = $this->employeeModel->select('id,emp_code,name,relationship,dob,emp_status,is_addon_value,created_at,updated_at') - ->where([ - 'emp_code' => $empCode, - 'client_id' => $clientId, - 'client_branch_id' => $clientBranchId, - 'is_active' => 1 - ]) - ->findAll(); - $Ids = array_column($current_employee_data, 'id'); - $policies = $this->employeePolicyModel->whereIn('employee_id', $Ids)->where('is_active',1)->findAll(); + ->where([ + 'emp_code' => $empCode, + 'client_id' => $clientId, + 'client_branch_id' => $clientBranchId, + 'is_active' => 1 + ]) + ->findAll(); + $Ids = array_column($current_employee_data, 'id'); + $policies = $this->employeePolicyModel->whereIn('employee_id', $Ids)->where('is_active', 1)->findAll(); // Group policies by policy_id $groupedPolicies = []; foreach ($policies as $policy) { $policyId = $policy['client_policy_id']; - + if (!isset($groupedPolicies[$policyId])) { $groupedPolicies[$policyId] = [ 'policy_id' => $policy['id'], @@ -3450,24 +3383,28 @@ class EmployeeRestController extends AdminController // Re-index the grouped policies $data['currentPolicies'] = array_values($groupedPolicies); - + return $this->respond(['data' => $data]); } - public function retriveOldData($self_enrolled_time,$table,$pk) + public function retriveOldData($self_enrolled_time, $table, $pk) { - $historyData = $this->auditHistoryModel->where('pk', $pk)->where('table_name',$table)->findAll(); + $historyData = $this->auditHistoryModel->where('pk', $pk)->where('table_name', $table)->findAll(); $beforeEnrolled = []; $afterEnrolled = []; // Split the array foreach ($historyData as $val) { - if ($val['created_at'] <= $self_enrolled_time) { $beforeEnrolled[] = $val; } else { $afterEnrolled[] = $val; } + if ($val['created_at'] <= $self_enrolled_time) { + $beforeEnrolled[] = $val; + } else { + $afterEnrolled[] = $val; + } } - if(count($beforeEnrolled) && count($afterEnrolled)){ //After enrolment edited some of the data - + if (count($beforeEnrolled) && count($afterEnrolled)) { //After enrolment edited some of the data + $temp['table'] = $table; $temp['id'] = $pk; // Extract earliest `old_value` for each `field_name` @@ -3481,22 +3418,19 @@ class EmployeeRestController extends AdminController } $temp['data'] = $originalValues; return $temp; - - }else if(!count($beforeEnrolled) && !count($afterEnrolled)){ //After enrolment created new data + } else if (!count($beforeEnrolled) && !count($afterEnrolled)) { //After enrolment created new data $temp['table'] = $table; $temp['id'] = $pk; - $temp['data'] = ['is_active'=> 0 ]; + $temp['data'] = ['is_active' => 0]; return $temp; - - }else if(!count($beforeEnrolled) && count($afterEnrolled)){ //After enrolment created new data and edited some of the data + } else if (!count($beforeEnrolled) && count($afterEnrolled)) { //After enrolment created new data and edited some of the data $temp['table'] = $table; $temp['id'] = $pk; - $temp['data'] = ['is_active'=> 0 ]; + $temp['data'] = ['is_active' => 0]; return $temp; - - }else if(count($beforeEnrolled) && !count($afterEnrolled)){ //After enrolment nothing changes from the data + } else if (count($beforeEnrolled) && !count($afterEnrolled)) { //After enrolment nothing changes from the data return false; } @@ -3506,13 +3440,12 @@ class EmployeeRestController extends AdminController public function findThePolicyIsOpenForEnrollment($plicy_id) { - $policy = $this->clientPolicyModel->where('id',$plicy_id)->where('open_for_enrollment',1)->find(); + $policy = $this->clientPolicyModel->where('id', $plicy_id)->where('open_for_enrollment', 1)->find(); - if($policy) - return true; + if ($policy) + return true; else - return false; - + return false; } // ---------------- TICKET API's --------------------------------------------------------------------------------------------------- @@ -3539,7 +3472,7 @@ class EmployeeRestController extends AdminController $insured_emp_id = $received_data['insured_emp_id']; $file_data = []; - if(isset($get_file_data) && !empty($get_file_data)){ + if (isset($get_file_data) && !empty($get_file_data)) { $file_path = WRITEPATH . 'uploads/claim_files/'; $file_data = multi_file_Upload($get_file_data, $file_path, $get_docs_name); } @@ -3547,13 +3480,13 @@ class EmployeeRestController extends AdminController if (empty($received_data['doa'])) { $received_data['doa'] = null; - } else{ + } else { $ticket_data['doa'] = change_date_format($received_data['doa']); } if (empty($received_data['dod'])) { $received_data['dod'] = null; - } else{ + } else { $ticket_data['dod'] = change_date_format($received_data['dod']); } @@ -3596,22 +3529,22 @@ class EmployeeRestController extends AdminController $emp_ticket_data = $this->employeeModel->query($sql)->getResultArray(); // print_r(db_connect()->getLastQuery()); die; - if(!empty($emp_ticket_data)){ + if (!empty($emp_ticket_data)) { $fetchData = $emp_ticket_data[0]; $claimStatusQuery = $this->claimStatusModel - ->select('id') - ->where('ticket_type', $fetchData['ticket_type_id']) - ->orderBy('id', 'asc'); - + ->select('id') + ->where('ticket_type', $fetchData['ticket_type_id']) + ->orderBy('id', 'asc'); + if ($fetchData['ticket_type_id'] == 1 && !empty($fetchData['tpa_no'])) { $results = $claimStatusQuery->findAll(2); $fetchData['claim_status_id'] = $results[1]['id'] ?? $results[0]['id']; } else { $fetchData['claim_status_id'] = $claimStatusQuery->first()['id']; } - + $fetchData['priority'] = 1; $fetchData['mode_of_intimation'] = 3; @@ -3670,21 +3603,18 @@ class EmployeeRestController extends AdminController $this->myLogger->logme('error', "Claim initiated, Failed to send Mail :$ticket_id "); return $this->respond(['status' => false, 'code' => 400, 'message' => $message], 200); } - } else { $message = 'Something Went Wrong'; return $this->respond(['status' => false, 'code' => 400, 'message' => $message], 200); } - - }else{ + } else { return $this->response->setJSON(['status' => false, 'code' => 200, 'message' => 'The employee is not active.'])->setStatusCode(404); } } public function handleCliamFiles($data, $ticket_id, $ticket_message_id = null) { - if(!empty($data) && !empty($ticket_id)) - { + if (!empty($data) && !empty($ticket_id)) { $insert_ids = []; $pdf_exist_in_the_file = false; $claim_file = new ClaimFilesModel(); @@ -3702,17 +3632,17 @@ class EmployeeRestController extends AdminController $insert_ids[] = $claim_file->insert($data); - if(getMimeTypeByFileName($value['file_name']) == "application/pdf"){ + if (getMimeTypeByFileName($value['file_name']) == "application/pdf") { $pdf_exist_in_the_file = true; } } - if($pdf_exist_in_the_file){ + if ($pdf_exist_in_the_file) { // this call for TPA integration $apiServiceController = new ApiServiceController(); $apiServiceController->pushClaims($ticket_id); log_message('error', "pushClaims function called with Ticket ID: {$ticket_id}, In Employee Rest Controller"); - }else{ + } else { log_message('error', "Failed to call the pushClaims function in EmployeeRestController for Ticket ID: {$ticket_id}, because the .pdf file does not exist."); } @@ -3811,8 +3741,7 @@ class EmployeeRestController extends AdminController } $filtered = array_values($filtered); - return $this->response->setJSON(['status' => true,'code' => 200, 'ticket_type' => $filtered ])->setStatusCode(200); - + return $this->response->setJSON(['status' => true, 'code' => 200, 'ticket_type' => $filtered])->setStatusCode(200); } catch (\Throwable $e) { $this->myLogger->logme('error', "Error in get_ticket_type: " . $e->getMessage() . " Trace: " . $e->getTraceAsString()); return $this->response->setJSON([ @@ -3838,7 +3767,7 @@ class EmployeeRestController extends AdminController $ticket_type = $this->request->getGet('ticket_type') ?? null; $ticket_id = $this->request->getGet('ticket_id') ?? null; $request = \Config\Services::request(); - $uri = $request->uri->getPath(); + $uri = $request->uri->getPath(); $returnType = ""; // $returnType = (strpos($uri, 'api') !== false) ? 'api' : 'web'; // dd($emp_id); @@ -3866,7 +3795,7 @@ class EmployeeRestController extends AdminController $client_claim_status = [ 'Claim Received' => [1, 2, 3, 15, 16, 17, 18, 25, 26, 27, 28, 35, 36, 37, 38], 'Under Process' => [5, 6, 7, 10, 19, 23, 45, 50, 29, 33, 51, 39, 43, 56], - 'Information Required' => [ 4 ], + 'Information Required' => [4], 'Approved' => [9, 20, 30, 40], 'Settled' => [11, 24, 34], 'Denial Review Awaited' => [66], @@ -3888,9 +3817,9 @@ class EmployeeRestController extends AdminController if (in_array($value['claim_type'], [2, 3, 4])) { $claimPrimaryTypey = "2"; } - $ticket_data[$key]['claim_type_value'] = $claimType[$claimPrimaryTypey][$value['claim_type']] ?? null; + $ticket_data[$key]['claim_type_value'] = $claimType[$claimPrimaryTypey][$value['claim_type']] ?? null; $ticket_data[$key]['ticket_policy_type'] = $ticketTypeArray[$value['ticket_type_id']] ?? null; - + $claim_file_urls = []; if (isset($value['ticket_message_id'])) { @@ -3905,7 +3834,7 @@ class EmployeeRestController extends AdminController ->findAll(); foreach ($claim_files_data as &$value) { - $value['url'] = base_url('downloadClaimFile/') . $value['claim_file_id']; + $value['url'] = base_url('downloadClaimFile/') . $value['claim_file_id']; $claim_file_urls[] = $value; } unset($value); @@ -3913,7 +3842,6 @@ class EmployeeRestController extends AdminController // always set the key (empty if no files found) $ticket_data[$key]['claim_files'] = $claim_file_urls; - } } @@ -3921,7 +3849,8 @@ class EmployeeRestController extends AdminController } // not in use did for testing - function encrypt_for_sso(): string { + function encrypt_for_sso(): string + { $key = "32D1D5535157AF3D4667ADAB0CC795D77D022BB281AD3272EB134C72BD0B185E"; @@ -3975,8 +3904,6 @@ class EmployeeRestController extends AdminController $finalUrl = $baseURL . '/sso?userParams=' . $output . '&clientId=' . $clientId; return $finalUrl; - - } @@ -4085,7 +4012,7 @@ class EmployeeRestController extends AdminController // } public function getPreEmployeePolicyCount($mobile_no, $clientId = null, $email = null) - { + { log_message('error', 'STEP 1: getPreEmployeePolicyCount called with params: ' . json_encode(['mobile_no' => $mobile_no, 'client_id' => $clientId, 'email' => $email])); if (empty($mobile_no) && empty($email)) { @@ -4106,25 +4033,23 @@ class EmployeeRestController extends AdminController } else { log_message('error', 'STEP 4: No client found for ID: ' . $clientId); } - } else { log_message('error', 'STEP 3: No clientId provided. Skipping client lookup.'); } - if(!empty($email)){ + if (!empty($email)) { $post_data = [ 'email_id' => $email, 'client_short_name' => $client_short_name ]; - }else{ + } else { $post_data = [ 'mobile_number' => $mobile_no, 'client_short_name' => $client_short_name ]; - } - + log_message('error', 'STEP 5: Calling third-party API with payload: ' . json_encode($post_data)); @@ -4149,80 +4074,79 @@ class EmployeeRestController extends AdminController } } - private function callThirdPartyAPI($postData , $endPoint) + private function callThirdPartyAPI($postData, $endPoint) { $client = \Config\Services::curlrequest(); - $url = env('PRE_ENROLLMENT_BASEURL').$endPoint; - $response = $client->post( $url, ['json' => $postData, 'http_errors' => false ] ); + $url = env('PRE_ENROLLMENT_BASEURL') . $endPoint; + $response = $client->post($url, ['json' => $postData, 'http_errors' => false]); // return json_decode($response->getBody(), true); return $response->getBody(); } - //-------------------------------------------------------------------------------------------- - public function hrFileUpload() - { - try { - // Check file - $file = $this->request->getFile('file_name'); - if (!$file) { - return $this->response->setJSON([ - 'status' => false, - 'message' => "Invalid file or file not uploaded.", - 'data' => "No Data" - ]); - } - - // Upload folder path - $uploadPath = WRITEPATH . 'uploads/hr_files/'; - - // If directory not exists, create it - if (!is_dir($uploadPath)) { - mkdir($uploadPath, 0777, true); - } - - // New file name with timestamp - $newFileName = time() . '_' . $file->getRandomName(); - - // Move file - $file->move($uploadPath, $newFileName); - - // Prepare data - $data = [ - 'client_id' => $this->request->getPost('client_id'), - 'client_branch_id' => $this->request->getPost('client_branch_id'), - 'policy_id' => $this->request->getPost('policy_id'), - 'policy_no' => $this->request->getPost('policy_no'), - 'file_name' => $newFileName, - 'file_action' => $this->request->getPost('file_action'), - 'status' => 'Yet to start', - 'created_by' => $this->request->getPost('created_by'), - 'updated_by' => $this->request->getPost('created_by'), - ]; - - // Save into DB - $result = $this->hrFileUploadModel->insert($data); + //-------------------------------------------------------------------------------------------- + public function hrFileUpload() + { + try { + // Check file + $file = $this->request->getFile('file_name'); + if (!$file) { + return $this->response->setJSON([ + 'status' => false, + 'message' => "Invalid file or file not uploaded.", + 'data' => "No Data" + ]); + } - if($result){ + // Upload folder path + $uploadPath = WRITEPATH . 'uploads/hr_files/'; + + // If directory not exists, create it + if (!is_dir($uploadPath)) { + mkdir($uploadPath, 0777, true); + } + + // New file name with timestamp + $newFileName = time() . '_' . $file->getRandomName(); + + // Move file + $file->move($uploadPath, $newFileName); + + // Prepare data + $data = [ + 'client_id' => $this->request->getPost('client_id'), + 'client_branch_id' => $this->request->getPost('client_branch_id'), + 'policy_id' => $this->request->getPost('policy_id'), + 'policy_no' => $this->request->getPost('policy_no'), + 'file_name' => $newFileName, + 'file_action' => $this->request->getPost('file_action'), + 'status' => 'Yet to start', + 'created_by' => $this->request->getPost('created_by'), + 'updated_by' => $this->request->getPost('created_by'), + ]; + + // Save into DB + $result = $this->hrFileUploadModel->insert($data); + + if ($result) { $this->giveNotificationToClientsAccountManager($data); - } - - return $this->respondCreated([ - 'status' => true, - 'message' => 'File uploaded successfully', - 'data' => $data - ]); - - } catch (\Exception $e) { - return $this->failServerError($e->getMessage()); - } - - } + } - private function giveNotificationToClientsAccountManager($data){ - - $client_name = $this->clientModel->where('id',$data['client_id'])->findAll()[0]['client_name'] ?? [] ; + return $this->respondCreated([ + 'status' => true, + 'message' => 'File uploaded successfully', + 'data' => $data + ]); + } catch (\Exception $e) { + return $this->failServerError($e->getMessage()); + } + } + + private function giveNotificationToClientsAccountManager($data) + { + + $client_name = $this->clientModel->where('id', $data['client_id'])->findAll()[0]['client_name'] ?? []; $account_manager_email = $this->clientRMModel->findAccountManagerEmail($data['client_id']); @@ -4230,20 +4154,20 @@ class EmployeeRestController extends AdminController $mailTemplate = $this->ticketMailTemplateModel->where('template_name', $templateName)->findAll()[0] ?? []; - if(empty($mailTemplate)){ + if (empty($mailTemplate)) { //empty mail template please update the template in database or create one..!! - log_message("error","Empty mail template for inception_addition please update the template in database or create one..!!"); - return ; + log_message("error", "Empty mail template for inception_addition please update the template in database or create one..!!"); + return; } - + $data['file_action'] = ucwords(preg_replace("/_/", " ", $data['file_action'])); $mailTemplate['mail_content'] = str_replace('%file_action%', $data['file_action'] ?? '', $mailTemplate['mail_content']); $mailTemplate['mail_content'] = str_replace('%client_name%', $client_name ?? '', $mailTemplate['mail_content']); $mailTemplate['mail_content'] = str_replace('%policy_no%', $data['policy_no'] ?? '', $mailTemplate['mail_content']); - $mailTemplate['subject'] = str_replace('%subject%',$data['file_action']??'',$mailTemplate['subject']); - $mailTemplate['subject'] = str_replace('%client_name%',$client_name??'',$mailTemplate['subject']); + $mailTemplate['subject'] = str_replace('%subject%', $data['file_action'] ?? '', $mailTemplate['subject']); + $mailTemplate['subject'] = str_replace('%client_name%', $client_name ?? '', $mailTemplate['subject']); $from_mail = ""; $to_mail = $account_manager_email; @@ -4253,62 +4177,60 @@ class EmployeeRestController extends AdminController $attachments = ""; $reply_to = ""; $bcc_string = ""; - - MailHelper::send_email(['from_mail' => $from_mail, 'mail' => $to_mail, 'cc' => $cc_string, 'subject' => $subject, 'message' => $message, 'attachments' => $attachments, 'reply_to' => $reply_to, 'bcc' => $bcc_string]); - } + MailHelper::send_email(['from_mail' => $from_mail, 'mail' => $to_mail, 'cc' => $cc_string, 'subject' => $subject, 'message' => $message, 'attachments' => $attachments, 'reply_to' => $reply_to, 'bcc' => $bcc_string]); + } + + public function updateHrFileUploadData() + { + try { + $id = $this->request->getPost('id'); + + if (!$id) { + return $this->failValidationErrors('ID is required for update.'); + } + + // Prepare data + $data = [ + 'client_id' => $this->request->getPost('client_id'), + 'client_branch_id' => $this->request->getPost('client_branch_id'), + 'policy_id' => $this->request->getPost('policy_id'), + 'policy_no' => $this->request->getPost('policy_no'), + 'file_action' => $this->request->getPost('file_action'), + 'status' => $this->request->getPost('status'), + 'updated_by' => $this->request->getPost('updated_by'), + ]; + + // Check if record exists + $record = $this->hrFileUploadModel->find($id); + if (!$record) { + return $this->failNotFound("Record with ID {$id} not found."); + } + + // Update record + $this->hrFileUploadModel->update($id, $data); + + return $this->respond([ + 'status' => true, + 'message' => 'File record updated successfully', + 'data' => $data + ], 200); + } catch (\Exception $e) { + return $this->failServerError($e->getMessage()); + } + } + + + public function hrFileDownload($id = null) + { + try { - public function updateHrFileUploadData() - { - try { - $id = $this->request->getPost('id'); - - if (!$id) { - return $this->failValidationErrors('ID is required for update.'); - } - - // Prepare data - $data = [ - 'client_id' => $this->request->getPost('client_id'), - 'client_branch_id' => $this->request->getPost('client_branch_id'), - 'policy_id' => $this->request->getPost('policy_id'), - 'policy_no' => $this->request->getPost('policy_no'), - 'file_action' => $this->request->getPost('file_action'), - 'status' => $this->request->getPost('status'), - 'updated_by' => $this->request->getPost('updated_by'), - ]; - - // Check if record exists - $record = $this->hrFileUploadModel->find($id); - if (!$record) { - return $this->failNotFound("Record with ID {$id} not found."); - } - - // Update record - $this->hrFileUploadModel->update($id, $data); - - return $this->respond([ - 'status' => true, - 'message' => 'File record updated successfully', - 'data' => $data - ], 200); - - } catch (\Exception $e) { - return $this->failServerError($e->getMessage()); - } - } - - - public function hrFileDownload($id = null) - { - try { - $file_id = $this->request->getGet('id') ?? $id; - + // Find record - $record = $this->hrFileUploadModel->where('id',$file_id)->find(); - + $record = $this->hrFileUploadModel->where('id', $file_id)->find(); + // print_rr( $record);die; if (!$record) { @@ -4326,19 +4248,19 @@ class EmployeeRestController extends AdminController // Force file download return $this->response->download($filePath, null) - ->setFileName($record[0]['file_name']); - } catch (\Exception $e) { - return $this->failServerError($e->getMessage()); - } - } - + ->setFileName($record[0]['file_name']); + } catch (\Exception $e) { + return $this->failServerError($e->getMessage()); + } + } + // public function hrFileList() // { // try { // $request = service('request'); // $builder = $this->hrFileUploadModel // ->select('hr_file_upload.* , c.short_name , cb.branch_name , lc.name as first_name '); - + // // Allowed filter keys // $filters = [ // 'client_id', @@ -4348,7 +4270,7 @@ class EmployeeRestController extends AdminController // 'status', // 'created_by' // ]; - + // // Apply filters dynamically // foreach ($filters as $key) { // $value = $request->getGetPost($key); // supports both GET and POST @@ -4356,13 +4278,13 @@ class EmployeeRestController extends AdminController // $builder->where($key, $value); // } // } - + // // Fetch results // $builder->join('clients c', 'c.id = hr_file_upload.client_id AND c.is_active = 1', 'left'); // $builder->join('client_branch cb', 'cb.id = hr_file_upload.client_branch_id AND cb.is_active = 1', 'left'); // $builder->join('level_contacts lc', 'lc.id = hr_file_upload.created_by AND lc.contact_type = "client" AND lc.is_active = 1', 'left'); // $data = $builder->findAll(); - + // return $this->respond([ // 'status' => true, // 'message' => 'File list fetched successfully', @@ -4415,10 +4337,10 @@ class EmployeeRestController extends AdminController FROM files f1 WHERE f1.is_active = 1 ORDER BY f1.id DESC - LIMIT 1) f', - 'f.hr_file_id = hr_file_upload.id', + LIMIT 1) f', + 'f.hr_file_id = hr_file_upload.id', 'left' - ); + ); // Allowed filter keys $filters = [ @@ -4451,7 +4373,7 @@ class EmployeeRestController extends AdminController return $this->failServerError($e->getMessage()); } } - + public function hrFileUploadMasters() { try { @@ -4477,14 +4399,14 @@ class EmployeeRestController extends AdminController if (empty($policy_id)) { $policy_id = $this->request->getGet('policy_id'); $api_name = $this->request->getGet('api_name'); - log_message('error', "Input parameters fetched from GET: policy_id={$policy_id}, api_name={$api_name}"); + log_message('error', "Input parameters fetched from GET: policy_id={$policy_id}, api_name={$api_name}"); } else { - log_message('error', "Input parameters received directly: policy_id={$policy_id}, api_name={$api_name}"); + log_message('error', "Input parameters received directly: policy_id={$policy_id}, api_name={$api_name}"); } // Step 2: Validate policy_id if (empty($policy_id)) { - log_message('error', 'Policy ID is empty'); + log_message('error', 'Policy ID is empty'); if ($return_type == 'api') { return $this->respond(['status' => false, 'code' => 200, 'message' => 'Policy ID missing']); } @@ -4492,14 +4414,14 @@ class EmployeeRestController extends AdminController } // Step 3: Fetch policy data - log_message('error', "Fetching policy data for policy_id={$policy_id}"); + log_message('error', "Fetching policy data for policy_id={$policy_id}"); $policy_data = $this->clientPolicyModel ->where('is_active', 1) ->where('id', $policy_id) ->first(); if (empty($policy_data)) { - log_message('error', "Policy data not found for policy_id={$policy_id}"); + log_message('error', "Policy data not found for policy_id={$policy_id}"); if ($return_type == 'api') { return $this->respond(['status' => false, 'code' => 200, 'message' => 'Policy data not found']); } @@ -4508,7 +4430,7 @@ class EmployeeRestController extends AdminController // Step 4: Check for TPA ID if (empty($policy_data['tpa_id'])) { - log_message('error', "TPA ID not found for policy_id={$policy_id}"); + log_message('error', "TPA ID not found for policy_id={$policy_id}"); if ($return_type == 'api') { return $this->respond(['status' => false, 'code' => 200, 'message' => 'TPA ID not found']); } @@ -4516,10 +4438,10 @@ class EmployeeRestController extends AdminController } $tpa_id = $policy_data['tpa_id']; - log_message('error', "Found TPA ID={$tpa_id} for policy_id={$policy_id}"); + log_message('error', "Found TPA ID={$tpa_id} for policy_id={$policy_id}"); // Step 5: Check if API service is enabled - log_message('error', "Checking TPA API service for TPA ID={$tpa_id} and API name={$api_name}"); + log_message('error', "Checking TPA API service for TPA ID={$tpa_id} and API name={$api_name}"); $tpaApiServiceModel = new TpaApiSeviceModel(); $api_data = $tpaApiServiceModel ->where('is_active', 1) @@ -4528,34 +4450,34 @@ class EmployeeRestController extends AdminController ->first(); if (!empty($api_data)) { - log_message('error', "API '{$api_name}' is enabled for TPA ID={$tpa_id}"); + log_message('error', "API '{$api_name}' is enabled for TPA ID={$tpa_id}"); if ($return_type == 'api') { return $this->respond(['status' => true, 'code' => 200, 'message' => 'API services enabled']); } return true; } else { - log_message('error', "API '{$api_name}' is NOT enabled for TPA ID={$tpa_id}"); + log_message('error', "API '{$api_name}' is NOT enabled for TPA ID={$tpa_id}"); if ($return_type == 'api') { return $this->respond(['status' => false, 'code' => 200, 'message' => 'API services not enabled']); } return false; } } catch (\Throwable $th) { - log_message('error', 'Exception in checkTpaApiEnable: ' . $th->getMessage()); + log_message('error', 'Exception in checkTpaApiEnable: ' . $th->getMessage()); if ($return_type == 'api') { return $this->respond(['status' => false, 'code' => 500, 'message' => 'Internal Server Error']); } return false; } finally { - log_message('error', '--- END checkTpaApiEnable ---'); + log_message('error', '--- END checkTpaApiEnable ---'); } } - public function getEcardURL() - { - try{ + public function getEcardURL() + { + try { $id = $this->request->getGet('id'); $emp_code = $this->request->getGet('emp_code'); @@ -4563,40 +4485,34 @@ class EmployeeRestController extends AdminController $policy_no = $this->request->getGet('policy_no'); $employee_policy = $this->employeePolicyModel - ->select('employees.*, employee_polices.tpa_id , employee_polices.rand_string , employee_polices.uhid as uhid , client_policy.tpa_id as tpa_primary_id ') - ->join('employees', 'employee_polices.employee_id = employees.id', 'left') - ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id', 'left') - ->where('employee_polices.employee_id',$id) - ->where('employee_polices.client_policy_id',$client_policy_id) - ->where('employee_polices.is_active', 1 )->findAll(); + ->select('employees.*, employee_polices.tpa_id , employee_polices.rand_string , employee_polices.uhid as uhid , client_policy.tpa_id as tpa_primary_id ') + ->join('employees', 'employee_polices.employee_id = employees.id', 'left') + ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id', 'left') + ->where('employee_polices.employee_id', $id) + ->where('employee_polices.client_policy_id', $client_policy_id) + ->where('employee_polices.is_active', 1)->findAll(); - - if(count($employee_policy) > 0) - { - if($employee_policy[0]['tpa_id'] != null) - { - if($employee_policy[0]['tpa_primary_id'] == 2)//Medi assist + + if (count($employee_policy) > 0) { + if ($employee_policy[0]['tpa_id'] != null) { + if ($employee_policy[0]['tpa_primary_id'] == 2) //Medi assist { $mediAssistController = new MediAssistApiController(); - $data['eCardDownload'] = $mediAssistController->EcardRequest( $emp_code, $policy_no ); - }else{ - $data['eCardDownload'] = base_url('download-e-card/') . $employee_policy[0]['rand_string'].'/1'; + $data['eCardDownload'] = $mediAssistController->EcardRequest($emp_code, $policy_no); + } else { + $data['eCardDownload'] = base_url('download-e-card/') . $employee_policy[0]['rand_string'] . '/1'; } - } else { - $data['eCardDownload'] = null; + $data['eCardDownload'] = null; } - }else{ - $data['eCardDownload'] = null; + } else { + $data['eCardDownload'] = null; } - return $this->respond(['status' => true,'message' => '','data' => $data]); - - } catch(\Exception $e){ - + return $this->respond(['status' => true, 'message' => '', 'data' => $data]); + } catch (\Exception $e) { } - } - -} \ No newline at end of file + } +} diff --git a/app/Controllers/PayoutController.php b/app/Controllers/PayoutController.php new file mode 100644 index 00000000..06762fd8 --- /dev/null +++ b/app/Controllers/PayoutController.php @@ -0,0 +1,191 @@ +myLogger = \Config\Services::mylogger(); + + $this->payout_status = [ + 1 => "Draft", + 2 => "Pending", + 3 => "Complete", + ]; + + $this->invoiceItemModel = new InvoiceItemModel(); + $this->invoiceModel = new InvoiceModel(); + $this->invoiceUtrModel = new InvoiceUtrModel(); + $this->policyTransactionModel = new PolicyTransactionModel(); + } + + public function payoutList() + { + // for filtering list + if($this->request->is('post')){ + try{ + $data = $this->request->getPost(); + // print_r($data); die; + + $agent_id = $data['agent_id'] ?? null; + $status_id = $data['status_id'] ?? null; + $start_date = $data['start_date'] ?? null; + $end_date = $data['end_date'] ?? null; + + $payout_data = $this->invoiceModel->invoiceList($agent_id, $status_id, $start_date, $end_date); + + $payout_data['payout_list_data'] = $payout_data; + $payout_data = view('payout_list', $payout_data); + + if(!empty($payout_data)){ + return $this->respond(['status' => true, 'code' => 200, 'data' => $payout_data], 200); + }else{ + return $this->respond(['status' => false, 'code' => 400, 'data' => $payout_data, "message" => "No data found"], 200); + } + }catch (\Throwable $th) { + + $this->myLogger->logme("error", "PayoutController - payoutList: Exception: " . $th->getMessage() . " --- Line: " . $th->getLine() . " --- Trace: " . $th->getTraceAsString()); + $errorData = [ + 'message' => $th->getMessage(), + 'file' => $th->getFile(), + 'line' => $th->getLine(), + 'code' => $th->getCode(), + 'trace' => $th->getTraceAsString(), + 'trace_array' => $th->getTrace(), // full array version (optional) + 'function' => $th->getTrace()[0]['function'] ?? null, + 'class' => $th->getTrace()[0]['class'] ?? null, + ]; + $payout_data = view('payout_list'); + return $this->respond(['status' => false, 'code' => 500, 'data' => $payout_data, "message" => "No data found", 'error_data' => $errorData], 500); + } + } + + // for list + $data['payout_status'] = $this->payout_status; + $data['agent_list'] = $this->invoiceModel->agentList(); + $payout_data['payout_list_data'] = $this->invoiceModel->invoiceList(); + $data['payout_list'] = view('payout_list', $payout_data); + + // dd($data); + return $this->loadLayout('payout_list_handler', $data); + } + + public function fetchUtrDetails() + { + $invoice_id = $this->request->getPost('invoice_id') ?? null; + $payout_data = $this->constructUtrDetails($invoice_id); + + if(!empty($payout_data)){ + return $this->respond(['status' => true, 'code' => 200, 'data' => $payout_data], 200); + }else{ + return $this->respond(['status' => false, 'code' => 400, 'data' => $payout_data, "message" => "No data found"], 200); + } + } + + public function constructUtrDetails($invoice_id) + { + $utr_data = $this->invoiceUtrModel->where('is_active', 1)->where('invoice_id', $invoice_id)->findAll(); + $summary_data = $this->invoiceModel->utrSummary($invoice_id); + + if($summary_data['invoice_amount'] == $summary_data['total_utr_amount']) { + $data['invoice_completed'] = true; + } + + $data['utr_list_data'] = $utr_data; + $data['summary'] = $summary_data; + $data = view('payout_utr_details', $data); + + return $data; + } + + public function saveUtrDetails() + { + $data = $this->request->getPost(); + $invoice_id = $this->request->getPost('invoice_id') ?? null; + $utr_id = $this->request->getPost('utr_pk') ?? null; + + if(isset($data['utr_date'])){ + $data['utr_date'] = change_date_format($data['utr_date']); + } + + + if(!empty($utr_id)){ + + $update = $this->invoiceUtrModel->where('id', $utr_id)->set($data)->update(); + $payout_edit_data = $this->constructUtrDetails($invoice_id); + + if($update){ + + $summary_data = $this->invoiceModel->utrSummary($invoice_id); + if($summary_data['invoice_amount'] == $summary_data['total_utr_amount']){ + $sql = "UPDATE partner_invoice SET payout_status = 2 WHERE id = ?"; + db_connect()->query($sql, [$invoice_id]); + } + + return $this->respond(['status' => true, 'code' => 200, 'data' => $payout_edit_data, "message" => "UTR successfully updated"], 200); + }else{ + return $this->respond(['status' => false, 'code' => 400, 'data' => $payout_edit_data, "message" => "Failed to update UTR"], 200); + } + + }else{ + + unset($data['utr_pk']); + $insert_id = $this->invoiceUtrModel->insert($data); + $payout_data = $this->constructUtrDetails($invoice_id); + + if($insert_id){ + + $summary_data = $this->invoiceModel->utrSummary($invoice_id); + if($summary_data['invoice_amount'] == $summary_data['total_utr_amount']){ + $sql = "UPDATE partner_invoice SET payout_status = 2 WHERE id = ?"; + db_connect()->query($sql, [$invoice_id]); + } + + return $this->respond(['status' => true, 'code' => 200, 'data' => $payout_data, "message" => "UTR added successfully"], 200); + }else{ + return $this->respond(['status' => false, 'code' => 400, 'data' => $payout_data, "message" => "Failed to add UTR"], 200); + } + } + } + + public function removeUtrDetails() + { + $data = $this->request->getPost(); + + if(isset($data['utr_id'])){ + + $sql = "UPDATE partner_invoice_utr SET is_active = 0 WHERE id = ?"; + $update = db_connect()->query($sql, [$data['utr_id']]); + + $payout_data = $this->constructUtrDetails($data['invoice_id'] ?? ""); + + if($update){ + return $this->respond(['status' => true, 'code' => 200, 'data' => $payout_data, "message" => "UTR removed successfully"], 200); + }else{ + return $this->respond(['status' => false, 'code' => 400, 'data' => $payout_data, "message" => "Failed to remove UTR"], 200); + } + }else { + return $this->respond(['status' => false, 'code' => 500, 'data' => "", "message" => "Failed to remove UTR"], 200); + } + } + + +} diff --git a/app/Models/InvoiceItemModel.php b/app/Models/InvoiceItemModel.php new file mode 100644 index 00000000..328be1d9 --- /dev/null +++ b/app/Models/InvoiceItemModel.php @@ -0,0 +1,41 @@ + 'required|integer', + 'policy_id' => 'required|integer', + 'policy_no' => 'required|max_length[100]', + 'commission_amount' => 'decimal' + ]; + + protected $validationMessages = []; + protected $skipValidation = false; +} diff --git a/app/Models/InvoiceModel.php b/app/Models/InvoiceModel.php new file mode 100644 index 00000000..49d91ced --- /dev/null +++ b/app/Models/InvoiceModel.php @@ -0,0 +1,190 @@ + 'required|max_length[100]', + 'invoice_amount' => 'decimal', + 'agent_id' => 'required|integer', + 'invoice_date' => 'required|valid_date', + ]; + + protected $validationMessages = []; + protected $skipValidation = false; + + // Callbacks + protected $allowCallbacks = true; + protected $beforeInsert = ["checkAndADDCreatedByValue"]; + protected $afterInsert = []; + protected $beforeUpdate = ["checkAndUpdateUpdatedByValue"]; + protected $afterUpdate = []; + protected $beforeFind = []; + protected $afterFind = []; + protected $beforeDelete = []; + protected $afterDelete = []; + + protected function checkAndADDCreatedByValue(array $data) + { + // Check if 'updated_by' value is null or empty + if (empty($data['data']['created_by'])) { + // Set 'updated_by' value to the current session user ID + $data['data']['created_by'] = get_session_userid(); + } + + return $data; + } + + protected function checkAndUpdateUpdatedByValue(array $data) + { + // Check if 'updated_by' value is null or empty + if (empty($data['data']['updated_by'])) { + // Set 'updated_by' value to the current session user ID + $data['data']['updated_by'] = get_session_userid(); + } + + return $data; + } + + + public function invoiceList($agent_id = null, $status_id = null, $start_date = null, $end_date = null) + { + $data = $this->select(" + partner_invoice.*, + + -- Total UTR Amount + (SELECT SUM(piu.amount) + FROM partner_invoice_utr piu + WHERE piu.invoice_id = partner_invoice.id + AND piu.is_active = 1 + ) AS total_utr_amount, + + -- Balance Amount + (partner_invoice.invoice_amount - + IFNULL( + (SELECT SUM(piu2.amount) + FROM partner_invoice_utr piu2 + WHERE piu2.invoice_id = partner_invoice.id + AND piu2.is_active = 1 + ), + 0) + ) AS balance_amount, + + -- Payout status + CASE + WHEN payout_status = 1 THEN 'Pending' + WHEN payout_status = 2 THEN 'Complete' + END AS status_text, + + partner_agent.name as agent_name + ") + ->join('partner_agent', 'partner_invoice.agent_id = partner_agent.id') + ->where('partner_invoice.is_active', 1); + + if(!empty($agent_id)){ + $data->where('partner_invoice.agent_id', $agent_id); + } + + if(!empty($status_id)){ + $data->where('partner_invoice.payout_status', $status_id); + } + + if (!empty($start_date) && !empty($end_date)) { + + $startDate = date('Y-m-d 00:00:00', strtotime($start_date)); + $endDate = date('Y-m-d 23:59:59', strtotime($end_date)); + + $data->where('partner_invoice.invoice_date >=', $startDate) + ->where('partner_invoice.invoice_date <=', $endDate); + } + + if(!empty($agent_id) && !empty($status_id) && !empty($start_date) && !empty($end_date)){ + + $fromDate = date('Y-m-d', strtotime('-60 days')); + $toDate = date('Y-m-d 23:59:59'); + + $data->where('partner_invoice.created_at >=', $fromDate) + ->where('partner_invoice.created_at <=', $toDate); + + } + + $return_data = $data->orderBy('partner_invoice.id','desc')->findAll(); + + // print_r($this->db->getLastQuery()); die; + + return $return_data; + } + + public function agentList() + { + return $this->db->table('partner_agent')->where('is_active', 1)->get()->getResultArray(); + } + + public function utrSummary($invoice_id) + { + $data = $this->select(" + + partner_invoice.*, + + -- Total UTR Amount + (SELECT SUM(piu.amount) + FROM partner_invoice_utr piu + WHERE piu.invoice_id = partner_invoice.id + AND piu.is_active = 1 + ) AS total_utr_amount, + + -- Balance Amount + (partner_invoice.invoice_amount - + IFNULL( + (SELECT SUM(piu2.amount) + FROM partner_invoice_utr piu2 + WHERE piu2.invoice_id = partner_invoice.id + AND piu2.is_active = 1 + ), + 0) + ) AS balance_amount, + + -- Payout status + CASE + WHEN payout_status = 1 THEN 'Pending' + WHEN payout_status = 2 THEN 'Complete' + END AS status_text, + + partner_agent.name as agent_name + ") + ->join('partner_agent', 'partner_invoice.agent_id = partner_agent.id') + ->where('partner_invoice.is_active', 1) + ->where('partner_invoice.id', $invoice_id) + ->first(); + + return $data; + } +} diff --git a/app/Models/InvoiceUtrModel.php b/app/Models/InvoiceUtrModel.php new file mode 100644 index 00000000..a9da5960 --- /dev/null +++ b/app/Models/InvoiceUtrModel.php @@ -0,0 +1,73 @@ + 'required|integer', + 'utr_no' => 'required|max_length[100]', + 'amount' => 'decimal' + ]; + + protected $validationMessages = []; + protected $skipValidation = false; + + // Callbacks + protected $allowCallbacks = true; + protected $beforeInsert = ["checkAndADDCreatedByValue"]; + protected $afterInsert = []; + protected $beforeUpdate = ["checkAndUpdateUpdatedByValue"]; + protected $afterUpdate = []; + protected $beforeFind = []; + protected $afterFind = []; + protected $beforeDelete = []; + protected $afterDelete = []; + + protected function checkAndADDCreatedByValue(array $data) + { + // Check if 'updated_by' value is null or empty + if (empty($data['data']['created_by'])) { + // Set 'updated_by' value to the current session user ID + $data['data']['created_by'] = get_session_userid(); + } + + return $data; + } + + protected function checkAndUpdateUpdatedByValue(array $data) + { + // Check if 'updated_by' value is null or empty + if (empty($data['data']['updated_by'])) { + // Set 'updated_by' value to the current session user ID + $data['data']['updated_by'] = get_session_userid(); + } + + return $data; + } +} diff --git a/app/Models/TicketClaimStatusModel.php b/app/Models/TicketClaimStatusModel.php index 99078a03..87b09f3d 100644 --- a/app/Models/TicketClaimStatusModel.php +++ b/app/Models/TicketClaimStatusModel.php @@ -12,7 +12,7 @@ class TicketClaimStatusModel extends Model protected $returnType = 'array'; protected $useSoftDeletes = false; protected $protectFields = true; - protected $allowedFields = ["id", "ticket_type", "claim_status", "created_by", "updated_by", "is_active"]; + protected $allowedFields = ["id", "ticket_type", "claim_status", "display_name", "created_by", "updated_by", "is_active"]; // Callbacks protected $allowCallbacks = true; diff --git a/app/Views/payout_list.php b/app/Views/payout_list.php new file mode 100644 index 00000000..d911715d --- /dev/null +++ b/app/Views/payout_list.php @@ -0,0 +1,357 @@ + + + + + + +
+
+
+
+
+

Payout List

+
+
+
+ + + + + + + + + + + + + + + + + $row){ ?> + + + + + + + + + + + + + + +
S.No.Inovice NoInvoice DateInvoice AmountUTR Total AmountBalanceStatusAgentAction
+ +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/app/Views/payout_list_handler.php b/app/Views/payout_list_handler.php new file mode 100644 index 00000000..95aa9812 --- /dev/null +++ b/app/Views/payout_list_handler.php @@ -0,0 +1,184 @@ +
+
+
+
+
+

+ Filter + + + +

+
+
+
+
+
+ + +
+ +
+ + +
+ +
+ +
+ + +
+ + +
+ +
+ Clear + Submit +
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/app/Views/payout_utr_details.php b/app/Views/payout_utr_details.php new file mode 100644 index 00000000..0d9447ab --- /dev/null +++ b/app/Views/payout_utr_details.php @@ -0,0 +1,280 @@ +
+ +
+
+ Invoice Amount: + "> + ₹ + +
+
+ Total Paid: + "> + ₹ + +
+
+ Remaining Balance: + "> + ₹ + +
+
+ +
+
+ +
+ + "> +
+
+
+ + +
+
+
+
+ + + +
+
+
+
+ + +
+
+ +
+
+ Clear + +
+
+ +
+
+
+
+ +
+
Existing UTRs
+
+ + + + + + + + + + + + + + $row){ + $row['utr_date'] = change_date_format($row['utr_date'], null, 'd/m/Y') ?? " - " + ?> + + + + + + + + + + + +
S.No.UTR NoAmountDateAction
+ +
+
+
+ +
+ + \ No newline at end of file