diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4c02e4f..cccdc3d 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -551,7 +551,7 @@ $routes->get("getBackToEnrolledDetails", "EmployeeRestController::getBackToEnrol //crone job $routes->cli('cli/enrollOpendAndClose', 'DashboardController::updatePolicyEnrollmentStatus'); $routes->cli("cli/sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); - +$routes->cli('cli/update-emp-policy-status', 'ClientController::updateEmpAndPolicyStatus'); $routes->get('enrollOpendAndClose', 'DashboardController::updatePolicyEnrollmentStatus'); $routes->get("sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); // $routes->get("getEmployeePolicy", "EmployeeRestController::getEmployeePolicy"); diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 2d5a2a7..e90be33 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -235,8 +235,17 @@ class EmployeeRestController extends AdminController try { $data = $this->request->getJSON(); + $clientPolicyData = $this->clientPolicyModel->where('id',$data[0]->client_policy_id) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'], [3,4,5])){ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $data[0]->emp_code); + }else{ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id, $data[0]->emp_code); + } + //enrolment check - $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id, $data[0]->emp_code); if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => [],'message' => 'Enrollment closed.'], 200); } @@ -308,7 +317,7 @@ class EmployeeRestController extends AdminController } } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage(),'message' => "Action failed."], 500); + return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage() . $e->getLine(),'message' => "Action failed."], 500); } } @@ -395,6 +404,8 @@ class EmployeeRestController extends AdminController }else{ + $enrollment_dates = $this->getEnrollmentDates($client_policy_id, $emp_code); + $data['employee_id']= $employee_id; $data['client_policy_id']= $client_policy_id; $data['basic_cover_si']= $basic_cover_si; @@ -405,6 +416,9 @@ class EmployeeRestController extends AdminController if(!empty($other_employee_policy_data)){ $data['enrollment_open_date']= $other_employee_policy_data['enrollment_open_date'] ?? null; $data['enrollment_close_date']= $other_employee_policy_data['enrollment_close_date'] ?? null; + }else{ + $data['enrollment_open_date'] = $enrollment_dates['enrollment_open_date'] ?? null; + $data['enrollment_close_date'] = $enrollment_dates['enrollment_close_date'] ?? null; } // dd($data); @@ -550,7 +564,7 @@ class EmployeeRestController extends AdminController $this->employeeModel->where('id', $this->request->getGet('id') ) ->where('is_active', 1 ) - ->set(array('is_active'=> 0 )) + ->set(['emp_status' => 'truncated', 'is_active' => 0]) ->update(); } @@ -564,7 +578,7 @@ class EmployeeRestController extends AdminController $query->where('client_policy_id', $clientPolicyId); } - $query->set(['is_active' => 0])->update(); + $query->set(['status' => 'truncated', 'is_active' => 0])->update(); return $this->respond(['status' => 'success','code' => 200,'data' =>[] ], 200); @@ -590,7 +604,17 @@ class EmployeeRestController extends AdminController // print_r($requestData); // dd($requestData); - $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id, $requestData[0]->emp_code); + + $clientPolicyData = $this->clientPolicyModel->where('id',$requestData[0]->client_policy_id) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'], [3,4,5])){ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $requestData[0]->emp_code); + }else{ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id, $requestData[0]->emp_code); + } + if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); } foreach ($requestData as $key => $value) @@ -600,6 +624,7 @@ class EmployeeRestController extends AdminController ->where('client_policy_id', $value->client_policy_id) ->where('is_active', 1 ) ->findAll(); + // dd($checkIfExist); if ($checkIfExist) { @@ -608,10 +633,14 @@ class EmployeeRestController extends AdminController }else{ + $enrollment_dates = $this->getEnrollmentDates($value->client_policy_id, $requestData[0]->emp_code); + $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'; + $data['enrollment_open_date'] = $enrollment_dates['enrollment_open_date'] ?? null; + $data['enrollment_close_date'] = $enrollment_dates['enrollment_close_date'] ?? null; $this->employeePolicyModel->insert($data); } @@ -1631,8 +1660,8 @@ class EmployeeRestController extends AdminController } if(!empty($result) && $this->request->getGet('policy') == 'GMC'){ - // return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); - echo json_encode(['status' => 'success','code' => 200,'data' => $result], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); + return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); + // echo json_encode(['status' => 'success','code' => 200,'data' => $result], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); }else{ return $this->respond(['status' => 'success','code' => 200,'data' => []], 200); } @@ -2138,14 +2167,14 @@ class EmployeeRestController extends AdminController if (!empty($pre_client_id)) { - $client = $this->clientModel->where('id', $pre_client_id)->first(); + $client = $this->clientModel->where('md5(id)', $pre_client_id)->first(); if ($client) { $client['client_logo'] = base_url() . 'public/uploads/logo/' . $client['client_logo']; $clientPolicy = $this->clientPolicyModel - ->where('client_id', $pre_client_id) + ->where('md5(client_id)', $pre_client_id) ->where('client_branch_id', $pre_branch_id) ->findAll(); @@ -2240,12 +2269,18 @@ class EmployeeRestController extends AdminController try { $emp_code = $this->request->getGet('emp_code'); + $client_id = $this->request->getGet('client_id'); + $client_branch_id = $this->request->getGet('client_branch_id'); + $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(); + + $policyIds = $this->getEmployeeAddOnPolicies($emp_code, $client_id, $client_branch_id); + // dd($policyIds); $clientPolicy = $this->clientPolicyModel->select(" @@ -2276,7 +2311,11 @@ class EmployeeRestController extends AdminController ->where('policy_status', 1) ->where('is_active', 1) ->where('enrolment_visibility', 1) + ->whereIn('id', $policyIds) ->findAll(); + if(empty($policyIds)){ + return $this->respond(['status' => 'failed','code' => 404,'data' => []], 200); + } if(count($clientPolicy)) { @@ -2547,8 +2586,8 @@ class EmployeeRestController extends AdminController if($this->request->getGet('policy') == 'GMC-DEPENDENT-ADDON'){ - // return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], 200); - echo json_encode(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); + return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], 200); + // echo json_encode(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); } //array_push($PolicyData, $responce); @@ -2720,7 +2759,13 @@ class EmployeeRestController extends AdminController ->where('id',$value) ->where('is_active', 1) ->first(); - $policy = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $emp_code); + + if(in_array($clientPolicyData['policy_type_id'], [3,4,5])){ + $policy = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $emp_code); + }else{ + $policy = $this->findThePolicyIsOpenForEnrollment($value, $emp_code); + } + if($policy) { $this->myLogger->logme("error", 'client policy id = '.$value.' is open for enrollment'); @@ -2763,7 +2808,6 @@ class EmployeeRestController extends AdminController } }else { $this->myLogger->logme("error", 'client policy id = '.$value.' is not open for enrollment');} - } @@ -3059,7 +3103,7 @@ class EmployeeRestController extends AdminController $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('md5(client_policy.client_id)', $this->request->getGet('client_id') ) ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') ) ->where('client_policy.is_active', 1 ) ->where('client_policy.policy_status', 1) @@ -4368,4 +4412,97 @@ class EmployeeRestController extends AdminController } } + public function getEnrollmentDates($client_policy_id, $emp_code) + { + $enrollment_open_date = null; + $enrollment_close_date = null; + + $clientPolicyData = $this->clientPolicyModel->where('id', $client_policy_id) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'] ?? null, [3,4,5])){ + + $policy = $this->employeePolicyModel + ->select('employee_polices.enrollment_open_date, employee_polices.enrollment_close_date') + ->join('employees', 'employee_polices.employee_id = employees.id') + ->where('employees.emp_code',$emp_code) + ->where('employee_polices.client_policy_id', $clientPolicyData['base_policy']) + ->where('employee_polices.enrollment_open_date <= CURDATE()', null, false) + ->where('employee_polices.enrollment_close_date >= CURDATE()', null, false) + ->where('employee_polices.enrollment_open_date is not null') + ->where('employee_polices.enrollment_close_date is not null') + ->where('employees.is_active', 1) + ->where('employee_polices.is_active', 1) + ->whereIn('employee_polices.status', ['draft', 'enrolled']) + ->whereIn('employees.emp_status', ['draft', 'enrolled']) + ->first(); + + $enrollment_open_date = $policy['enrollment_open_date'] ?? null; + $enrollment_close_date = $policy['enrollment_close_date'] ?? null; + } + + return [ + 'enrollment_open_date' => $enrollment_open_date, + 'enrollment_close_date' => $enrollment_close_date, + ]; + } + + public function getEmployeeAddOnPolicies($emp_code, $client_id, $client_branch_id): array + { + $data = $this->employeeModel + ->select(" + client_policy.id AS gmc_client_policy_id, + + ( + SELECT id FROM client_policy + WHERE policy_type_id = 3 + AND base_policy = gmc_client_policy_id + LIMIT 1 + ) AS gmc_parent_policy_id, + + ( + SELECT id FROM client_policy + WHERE policy_type_id = 4 + AND base_policy = gmc_client_policy_id + LIMIT 1 + ) AS gmc_topup_policy_id + ") + ->join('employee_polices', 'employees.id = employee_polices.employee_id') + ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id') + ->where([ + 'employees.is_active' => 1, + 'employee_polices.is_active' => 1, + 'client_policy.policy_type_id' => 2, + 'employees.family_floater_key' => 'self', + 'employees.emp_code' => $emp_code, + 'employees.client_id' => $client_id, + 'employees.client_branch_id' => $client_branch_id, + ]) + ->first(); + + // dd($data); + // dd( db_connect()->getLastQuery()); + + if (!empty($data) && !empty($data['gmc_parent_policy_id'])) { + + $getParentTopUp = $this->clientPolicyModel + ->select('id AS gmc_parent_topup_policy_id') + ->where('is_active', 1) + ->where('policy_type_id', 5) // parent Top-Up + ->where('base_policy', $data['gmc_parent_policy_id']) + ->first(); + } + + if (empty($data)) { + return []; + } + + $policyIds[] = $data['gmc_topup_policy_id']; + $policyIds[] = $data['gmc_parent_policy_id']; + $policyIds[] = $getParentTopUp['gmc_parent_topup_policy_id'] ?? null; + + return $policyIds; + } + } \ No newline at end of file diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index af58a6d..4afe047 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -797,6 +797,7 @@ class RestAuthenticationController extends AdminController $decoded = json_decode($HRAccessData['allowed_modules'], true); $getAllhrData[$key]['allowed_modules'] = $decoded; + $HRAccessData['pre_client_id'] = md5($HRAccessData['pre_client_id']); $token = JWTToken::encode($HRAccessData); $getAllhrData[$key]['token'] = $token; diff --git a/app/Helpers/JWTToken.php b/app/Helpers/JWTToken.php index 62b7281..d110444 100755 --- a/app/Helpers/JWTToken.php +++ b/app/Helpers/JWTToken.php @@ -39,6 +39,7 @@ class JWTToken }else{ $models = new LevelContactModel(); + $id = $request_data['pre_hr_id']; $models->update($id, $data); } diff --git a/app/Views/file_list.php b/app/Views/file_list.php index 0810319..9886ae9 100755 --- a/app/Views/file_list.php +++ b/app/Views/file_list.php @@ -113,7 +113,16 @@ class="mdi mdi-dots-horizontal">