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..c7884b1 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); } @@ -2547,8 +2576,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 +2749,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 +2798,6 @@ class EmployeeRestController extends AdminController } }else { $this->myLogger->logme("error", 'client policy id = '.$value.' is not open for enrollment');} - } @@ -4368,4 +4402,40 @@ 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, + ]; + } + } \ No newline at end of file