diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index cbc14ce..d6c281e 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); } @@ -395,17 +404,22 @@ 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; $data['payable_employee']= $payable_employee; $data['status']= 'draft'; $data['date_coverage'] = $this->getEmployeeCoverageDate($emp_code, $client_policy_id); + $data['enrollment_open_date'] = $enrollment_dates['enrollment_open_date']; + $data['enrollment_close_date'] = $enrollment_dates['enrollment_close_date']; - 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; - } + + // 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; + // } // dd($data); $this->employeePolicyModel->insert($data); @@ -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']; + $data['enrollment_close_date'] = $enrollment_dates['enrollment_close_date']; $this->employeePolicyModel->insert($data); } @@ -4368,4 +4397,41 @@ 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'], [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', $client_policy_id) + ->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.family_floater_key', 'self') + ->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']; + $enrollment_open_date = $policy['enrollment_close_date']; + } + + return [ + '$nrollment_open_date' => $enrollment_open_date, + 'enrollment_close_date' => $enrollment_close_date, + ]; + } + } \ No newline at end of file