diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4f0213c0..f4942153 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -452,7 +452,7 @@ $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { $routes->get("sendPushNotification", "EmployeeRestController::sendPushNotification"); $routes->post("sendEmail", "EmployeeRestController::send_email"); -// $routes->post("employeeUpload", "EmployeeRestController::employeeUpload"); +$routes->get("getFamilyPolicyDetails", "EmployeeRestController::getFamilyPolicyDetails"); // Ticketing System diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 747b272d..92bc9d15 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -1736,7 +1736,7 @@ class EmployeeRestController extends AdminController 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 = $employee_policy->basic_cover_si; } + 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->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;} @@ -1839,7 +1839,7 @@ class EmployeeRestController extends AdminController 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; } + else{ $text = [$key]; } $whereArray = array_merge($whereArray, $text); } } @@ -1857,7 +1857,7 @@ class EmployeeRestController extends AdminController 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 = $employee_policy->basic_cover_si; } + 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->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; @@ -1893,7 +1893,7 @@ class EmployeeRestController extends AdminController 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; } + else{ $text = [$key]; } $whereArray = array_merge($whereArray, $text); } } @@ -1910,7 +1910,7 @@ class EmployeeRestController extends AdminController 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 = $employee_policy->basic_cover_si; } + 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->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; @@ -2282,8 +2282,19 @@ class EmployeeRestController extends AdminController if($clientPolicy[0]['is_addon'] == 2)//Topup { - $empData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code')) - ->where('is_addon_value', 0 )->findAll(); + + 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', 1 ) + ->findAll(); + } + if(count($empData)) { foreach ($empData as $key => $value) { @@ -2652,6 +2663,62 @@ class EmployeeRestController extends AdminController // log_message('error', $e->getMessage()); // } // } + + + public function getFamilyPolicyDetails() + { + // Get query parameters + $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."); + } + + // Fetch employee family details + $employees = $this->employeeModel->select('id,emp_code,name,relationship,dob,emp_status,is_addon_value')->where([ + 'emp_code' => $empCode, + 'client_id' => $clientId, + 'client_branch_id' => $clientBranchId, + 'is_active' => 1 + ])->findAll(); + + if (empty($employees)) { + return $this->failNotFound("No employees found for the provided parameters."); + } + + // Collect employee IDs + $employeeIds = array_column($employees, 'id'); + + // Fetch policies related to the employee IDs + $policies = $this->employeePolicyModel->whereIn('employee_id', $employeeIds)->where('is_active',1)->findAll(); + + if (empty($policies)) { + return $this->failNotFound("No policies found for the provided employees."); + } + + // Structure the response + $result = []; + foreach ($policies as $policy) { + $policyEmployees = array_filter($employees, function ($emp) use ($policy) { + return $emp['id'] === $policy['employee_id']; + }); + + $result[] = [ + 'policy_id' => $policy['id'], + 'client_policy_id' => $policy['client_policy_id'], + 'uhid' => $policy['uhid'], + 'status' => $policy['status'], + 'basic_cover_si' => $policy['basic_cover_si'], + 'date_coverage' => $policy['date_coverage'], + 'policy_end_date' => $policy['policy_end_date'], + 'members' => array_values($policyEmployees), + ]; + } + + return $this->respond(['family_policies' => $result]); + }