MERGE_TEST_BUG_FIXES

This commit is contained in:
Ubuntu 2026-07-30 18:33:05 +05:30
commit b1a2eb94c1
3 changed files with 59 additions and 54 deletions

View File

@ -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) {

View File

@ -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);
}

View File

@ -295,8 +295,7 @@ $gst_total = 0;
<td><?php echo $employee['gender']; ?></td>
<td><?php echo $employee['email_corporate']; ?></td>
<td><?php echo $employee['mobile']; ?></td>
<td><?php echo date('d/m/Y', strtotime($employee['dob'])); ?></td>
<td><?php echo isset($employee['policy_type']) ? $employee['policy_type'] : ''; ?> - <?php echo isset($employee['policy_no']) ? $employee['policy_no'] : ''; ?></td>
<td><?php echo !empty($employee['dob']) ? date('d/m/Y', strtotime($employee['dob'])) : '-'; ?></td> <td><?php echo isset($employee['policy_type']) ? $employee['policy_type'] : ''; ?> - <?php echo isset($employee['policy_no']) ? $employee['policy_no'] : ''; ?></td>
<td><?php echo $employee['insurer_short_name']; ?></td>
<td><?php echo $employee['tpa_id']; ?></td>
<td><?php echo $employee['uhid']; ?></td>