From fa75b187d523c0abc8d922bb9a95f915b012cf25 Mon Sep 17 00:00:00 2001 From: Venkatesh Date: Thu, 30 Jul 2026 15:37:17 +0530 Subject: [PATCH 1/3] FIX_DATE --- app/Views/employee_data_list.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php index bc7408b2..56126102 100755 --- a/app/Views/employee_data_list.php +++ b/app/Views/employee_data_list.php @@ -295,8 +295,7 @@ $gst_total = 0; - - - + - From 48ac4a88b5c3fbbc95eaad20ec9747860b2b54ff Mon Sep 17 00:00:00 2001 From: Venkatesh Date: Thu, 30 Jul 2026 18:26:34 +0530 Subject: [PATCH 2/3] FIX_THE_EMP_DOB_NULL_SET_WITHOUT_TRACT_OF_ADUIT --- app/Controllers/EmployeeController.php | 101 ++++++++++++------------- 1 file changed, 49 insertions(+), 52 deletions(-) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 6218dc44..0e6e5f93 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -2843,28 +2843,8 @@ class EmployeeController extends AdminController //UPDATE EMPLOYEE public function update_emp_data() { - + $rules = [ - // 'emp_code' => [ - // 'rules' => 'required', - // 'errors' => [ - // 'required' => 'Employee Code is missing' - // ] - // ], - // 'name' => [ - // 'rules' => 'required|min_length[2]|max_length[100]', - // 'errors' => [ - // 'required' => 'Employee name is required', - // 'min_length' => 'Name must be at least 2 characters', - // 'max_length' => 'Name cannot exceed 100 characters' - // ] - // ], - // 'gender' => [ - // 'rules' => 'permit_empty|in_list[M,F]', - // 'errors' => [ - // 'in_list' => 'Invalid gender selected' - // ] - // ], 'email_corporate' => [ 'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]', 'errors' => [ @@ -2883,16 +2863,16 @@ class EmployeeController extends AdminController ]; $request_post_data = $this->request->getPost(); $data = sanitizeInputArrayAdvanced($request_post_data); - if (isset($data['relationship'])) { - $rules['relationship'] = [ - 'rules' => 'required|in_list[Self,Spouse,Child,Father,Mother,Father-in-law,Mother-in-law]', - 'errors' => [ - 'required' => 'Relationship is required', - 'in_list' => 'The selected relationship is invalid.' - ] - ]; + if (isset($data['relationship'])) { + $rules['relationship'] = [ + 'rules' => 'required|in_list[Self,Spouse,Child,Father,Mother,Father-in-law,Mother-in-law]', + 'errors' => [ + 'required' => 'Relationship is required', + 'in_list' => 'The selected relationship is invalid.' + ] + ]; } - + if (!$this->validate($rules)) { return $this->response->setStatusCode(400)->setJSON([ @@ -2903,37 +2883,54 @@ class EmployeeController extends AdminController ]); } - - - // print_rr($data);die(); - // $data['dob'] = date('Y-m-d', strtotime($data['dob'])); - $data['dob'] = (!empty($data['dob'])) ? change_date_format($data['dob'], null, 'Y-m-d') : null; - // print_rr($data); die; + $employeeId = (int) ($data['employee_primary_id'] ?? 0); + if ($employeeId <= 0) { + return $this->respond(['status' => false, 'code' => 400, 'message' => 'Employee ID is required'], 400); + } // Fetch current employee data - $employee_data = $this->employeeModel->where('id', $data['employee_primary_id'])->first(); - - if ($employee_data['relationship'] == 'Self') { + $employee_data = $this->employeeModel->where('id', $employeeId)->first(); + if (!$employee_data) { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Employee not found'], 404); + } - if(isset($data['gender'])){ + // Whitelist only editable fields from this form. + // name / gender / dob are disabled for active employees and may be absent from POST — + // only update them when the client actually sent a value (do not force null). + $updateData = [ + 'email_corporate' => $data['email_corporate'], + 'mobile' => $data['mobile'], + ]; - if ($employee_data['gender'] != $data['gender']) { + if (!empty($data['name'])) { + $updateData['name'] = $data['name']; + } + if (isset($data['gender']) && $data['gender'] !== '') { + $updateData['gender'] = $data['gender']; + } + if (!empty($data['dob'])) { + $updateData['dob'] = change_date_format($data['dob'], null, 'Y-m-d'); + } + if (isset($data['relationship'])) { + $updateData['relationship'] = $data['relationship']; + } - $spouse_gender = ($data['gender'] == 'M') ? 'F' : 'M'; - $this->employeeModel - ->where('emp_code', $employee_data['emp_code']) - ->where('relationship', 'Spouse') - ->set(['gender' => $spouse_gender]) - ->update(); - } + if ($employee_data['relationship'] == 'Self' && isset($updateData['gender'])) { + if ($employee_data['gender'] != $updateData['gender']) { + $spouse_gender = ($updateData['gender'] == 'M') ? 'F' : 'M'; + $this->employeeModel + ->where('emp_code', $employee_data['emp_code']) + ->where('relationship', 'Spouse') + ->set(['gender' => $spouse_gender]) + ->update(); } } - + // Update the employee data - $result = $this->employeeModel->where('id', $data['employee_primary_id'])->set($data)->update(); - + $result = $this->employeeModel->where('id', $employeeId)->set($updateData)->update(); + if ($result) { - return $this->respond(['status' => true, 'code' => 200, 'data' => $data, 'message' => 'Employee updated successfully'], 200); + return $this->respond(['status' => true, 'code' => 200, 'data' => $updateData, 'message' => 'Employee updated successfully'], 200); } else { return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to update employee.'], 404); } From 8d7c1b42b48ac6a066e749a15311edfa26bc1194 Mon Sep 17 00:00:00 2001 From: Venkatesh Date: Thu, 30 Jul 2026 18:28:23 +0530 Subject: [PATCH 3/3] FEAT_ADD_ROUTE --- app/Config/Routes.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index c757d986..acb79247 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -529,6 +529,15 @@ $routes->cli("cli/cronDailyBDSReport", "PolicyTransactionController::cronDailyBD $routes->cli('cli/croneDailyActivityReport', 'DashboardController::croneDailyActivityReport'); +// Employee dependent APIs (no JWT / App-Signature; util uses authMVC only) +$routes->get('relationshipList', 'EmployeeRestController::relationshipList'); +$routes->get('getEmployeeAndDependence', 'EmployeeRestController::getEmployeeAndDependence'); +$routes->post('editEmployeeAndDependence', 'EmployeeRestController::editEmployeeAndDependence'); +$routes->post('addEmployeeAndDependencev2', 'EmployeeRestController::addEmployeeAndDependencev2'); +$routes->get('deleteDependence', 'EmployeeRestController::deleteDependence'); +$routes->get('getEmployeeAndDependenceByClientId', 'EmployeeRestController::getEmployeeAndDependenceByClientId'); + + $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {