diff --git a/app/Config/Routes.php b/app/Config/Routes.php index ed5af8ac..e9344b94 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -214,7 +214,7 @@ $routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfi -$routes->get("getClientPolicy", "EmployeeRestController::getClientPolicy"); + $routes->post("employeeUpload", "EmployeeRestController::employeeUpload"); diff --git a/app/Controllers/EmployeeModel.php b/app/Controllers/EmployeeModel.php new file mode 100644 index 00000000..52382dc1 --- /dev/null +++ b/app/Controllers/EmployeeModel.php @@ -0,0 +1,57 @@ +db->table('employee_polices') + ->select(' policies.name as Policy_Name , client_policy.policy_terms as Policy_Terms, client_policy.client_id as ClientId, client_policy.policy_id as PolicyId,client_policy.id as ClientPolicyId, client_policy.open_for_enrollment as OpenForEnrollment') // Select all columns from both tables + ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id') + ->join('policies', 'policies.id = client_policy.policy_id') + ->where('employee_polices.employee_id', $id) + ->get() + ->getResult(); + } + + + + + // for EMP rest API process do not change + public function checkExistingEmpEntrollment($arr) + { + return $this->where('emp_code',$arr['emp_code'])->where('name',$arr['name'])->first(); + } + +} diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index e46b0f93..cb0cc648 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -108,14 +108,20 @@ class EmployeeRestController extends AdminController try { $emp_code = $this->request->getGet('emp_code'); if ($emp_code) { - $employee = $this->employeeModel->where('emp_code', $emp_code) - ->findAll(); - - $result = $employee; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + $employee = $this->employeeModel->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'); + } + return $item; + }; + $employee = array_map($dateConverter, $employee); + return $this->respond(['status' => 'success','code' => 200,'data' => $employee],200); + } else { - $result = "No Match's"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + + return $this->respond(['status' => 'failed','code' => 404,'data' => []],404); } } catch (\Throwable $th) { return $this->respond(['status' => 'failed','code' => 500,'data' => $th],500); @@ -132,6 +138,7 @@ class EmployeeRestController extends AdminController $updatedCount = 0; foreach ($data as $item) { $id = $item->id; + $item->dob = $this->convertDateFormat($item->dob); $employee = $this->employeeModel->update($id, (array)$item); if ($employee) { $updatedCount++; @@ -164,12 +171,16 @@ class EmployeeRestController extends AdminController if (isset($item->id)) { //update old data $id = $item->id; + $item->family_floater_key = $this->RelationshipMap($item->relationship); + $item->dob = $this->convertDateFormat($item->dob); $employee = $this->employeeModel->update($id, (array)$item); if ($employee) { $Count++; } }else{ //create new data + $item->family_floater_key = $this->RelationshipMap($item->relationship); + $item->dob = $this->convertDateFormat($item->dob); $employee = $this->employeeModel->insert($item); if ($employee) { $Count++; @@ -193,9 +204,38 @@ class EmployeeRestController extends AdminController } + 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'; + } + } + + private function convertDateFormat($dateString) + { + // Attempt to create a DateTime object from the provided date string + $dateTime = \DateTime::createFromFormat('d-m-Y', $dateString); + + // Check if the conversion was successful and the date string is in the format dd-mm-yyyy + if ($dateTime instanceof \DateTime) { + // Format the date to yyyy-mm-dd + return $dateTime->format('Y-m-d'); + } else { + // If the date string is not in the format dd-mm-yyyy, return null + return null; + } + } public function deleteDependence() { try { + if($this->request->getGet('id')) + { $delete = $this->employeeModel->where('id', $this->request->getGet('id'))->delete(); if ($delete) { @@ -203,6 +243,10 @@ class EmployeeRestController extends AdminController } else { return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 404); } + }else{ + return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 404); + } + } catch (\Exception $e) { return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); @@ -214,31 +258,15 @@ class EmployeeRestController extends AdminController public function getEmployeeAndDependenceByClientId() { try { - - $empData = $this->employeeModel->where('client_id', $this->request->getGet('client_id')) - ->where('relationship !=', null) - ->orderBy('emp_code')->orderBy('id')->findAll(); - - // $result = []; - - // foreach ($empData as $employee) { - // $employeeDependence = $this->employeeModel - // ->where('emp_code', $employee['emp_code']) - // ->where('relationship !=', 'self') - // ->findAll(); - - // // Use object notation to access properties and set 'dependence' - // $employee['dependence'] = $employeeDependence ?: []; - - // $result[] = $employee; - // } - - // You probably meant to check $result, not $data - if ($empData) { - return $this->respond(['status' => 'success', 'code' => 200, 'data' => $empData], 200); - } else { - return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); - } + $empData = $this->employeePolicyModel->getEmployeePolicy( $this->request->getGet('client_id'), $this->request->getGet('client_policy_id')); + // $empData = $this->employeeModel->where('client_id', $this->request->getGet('client_id')) + // ->where('relationship !=', null) + + 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) { @@ -254,10 +282,12 @@ class EmployeeRestController extends AdminController ->join('policies', 'client_policy.policy_id = policies.id', 'left') ->where('client_policy.client_id', $this->request->getGet('client_id') ) ->findAll(); - + + $result[] = $ClientPolicyData[0]; + $result[] = $ClientPolicyData[2]; // You probably meant to check $result, not $data if ($ClientPolicyData) { - return $this->respond(['status' => 'success', 'code' => 200, 'data' => $ClientPolicyData], 200); + return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result], 200); } else { return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 404); } @@ -274,10 +304,12 @@ class EmployeeRestController extends AdminController { try { $id = $this->request->getGet('id'); + $emp_code = $this->request->getGet('emp_code'); + $keysToRemove = ["removable_keys"]; $empPolicy = $this->employeeModel->getEmployeePolicy($id); - // dd($empPolicy); + $empData = $this->employeeModel->where('emp_code',$emp_code)->findAll(); if ($empPolicy) { $result = []; @@ -323,6 +355,32 @@ class EmployeeRestController extends AdminController array_splice($array->SlabRates, $index, 1); array_unshift($array->SlabRates, $element); } + + //map family floates array to employee and dependent + $familyFloates = $array->Policy_Terms->family_floaters; + $data = []; + foreach ($familyFloates as $familyFloatesValue) { + $dependent = preg_replace('/\d/', '', $familyFloatesValue); + 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)->get()->getRow(); + $temp['family_floater_key'] = $familyFloatesValue; + $temp['label'] = $value['relationship']; + $temp['name'] = $value['name']; + $temp['employee_id'] = $value['id']; + $temp['basic_cover_si'] = isset($employee_policy->basic_cover_si) ? $employee_policy->basic_cover_si : null; + $temp['client_policy_id'] = $array->ClientPolicyId; + + array_push($data,$temp); + unset($empData[$key]); + break; + } + } + } + } + $array->mapped_family_floaters = $data; + } $result[] = $array; diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index d3a3c111..61ef2ff6 100644 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -70,6 +70,7 @@ class RestAuthenticationController extends AdminController try { $mobile_number = $this->request->getJSON()->mobile_number; $randomNumber = rand(100000, 999999); + $randomNumber = 123456; $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first(); @@ -129,7 +130,7 @@ class RestAuthenticationController extends AdminController try { $mobile_number = $this->request->getJSON()->mobile_number; $randomNumber = rand(100000, 999999); - + $randomNumber = 123456; $HrData = $this->hrModel->where('mobile', $mobile_number)->where('contact_type', 'client')->first(); if ($HrData) {