diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index c7e9beaf..9baf11cd 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -801,6 +801,8 @@ class ClientController extends AdminController $editData['api_data'] = $this->clientApi->where("client_id", $id)->where("is_active", 1)->first(); // dd($editData); + $edit['pre_branch_id'] = $this->clientBranchModel->select('pre_branch_id')->where('client_id',$id)->get()->getResultArray()[0]['pre_branch_id']??""; + $editData['auto_fetch_client_list'] = $this->getClientListFromPre(); @@ -6857,7 +6859,15 @@ class ClientController extends AdminController return $combinedHrAccessData; } - $pre_client_data = $db2->table('clients')->where('is_active', 1)->where('short_name', $post_client_data['short_name'])->get()->getRowArray(); + $post_branch = $this->clientBranchModel->select('pre_branch_id')->where('client_id',$client_id)->get()->getResultArray()[0]??[]; + + $pre_client_data = $db2->table('client_branch cb') + ->join('clients c', "c.id = cb.client_id") + ->where('c.is_active',1) + ->where('cb.is_active', 1) + ->where('cb.id', $post_branch['pre_branch_id']??'') + ->get()->getRowArray(); + if (empty($pre_client_data)) { @@ -7093,11 +7103,16 @@ class ClientController extends AdminController $post = array_values(array_filter($allowed_modules, fn($v) => $v !== 1)); $value['allowed_modules'] = json_encode(['pre' => $pre, 'post' => $post]); + $post_client_id = $value['post_client_id']; + $post_branch_id = $value['post_branch_id']; + $post_hr_id = $value['post_hr_id']; + + $value['pre_client_id'] = $this->getPreClientId($post_branch_id); + $value['pre_branch_id'] = $this->getPreBranchId($post_branch_id); + $value["pre_hr_id"] = $this->getPreHrId($post_branch_id); + // INSERT or UPDATE if (empty($value['pk']) || (int)$value['pk'] === 0) { - print_rr("inside insert block"); - print_rr($value);die; - unset($value['pk']); // Prevent insert error $insertedId = $this->HRAccessControlModel->insert($value); @@ -7107,8 +7122,6 @@ class ClientController extends AdminController $success[] = "Inserted row at index {$index} with ID {$insertedId}."; } else { $update = $this->HRAccessControlModel->update($value['pk'], $value); - print_rr("inside update block"); - print_rr($value);die; if ($update === false) { throw new \Exception('Update failed for ID ' . $value['pk'] . ': ' . json_encode($this->HRAccessControlModel->errors())); @@ -7163,6 +7176,26 @@ class ClientController extends AdminController } } + private function getPreClientId($post_branch_id){ + $db2 = \Config\Database::connect('preDB'); + $pre_client_id = $db2->table('client_branch')->where('post_branch_id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['client_id']??[]; + return $pre_client_id; + } + + private function getPreBranchId($post_branch_id){ + $db2 = \Config\Database::connect('preDB'); + $pre_branch_id = $db2->table('client_branch')->where('post_branch_id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['id']??[]; + return $pre_branch_id; + } + private function getPreHrId($post_branch_id){ + $db2 = \Config\Database::connect('preDB'); + $pre_hr_id = $db2->table('client_branch cb') + ->select('lc.id') + ->join('level_contacts lc','lc.ref_id = cb.id') + ->where('post_branch_id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['id']??[]; + return $pre_hr_id; + } + // ------------------- DEMO CLIENT FUNCTION -------------------------------------------------------------------------------- public function wipeDemoClient() diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index aaa7c09e..36477f9c 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -533,14 +533,14 @@ class RestAuthenticationController extends AdminController log_message('error', ' '); log_message('error', '************************ POST END ********************************'); log_message('error', ' '); - return $this->respond(['status' => 'failed','code' => 404,'data' => "", 'message' => 'No data found'],200); + return $this->respond(['status' => 'failed','code' => 404,'data' => "", 'message' => 'Invalid OTP'],200); } } catch (\Exception $e) { $this->myLogger->logme("error", "REST-AUTH-CONTROLLER - getVerifiedUserData: Exception: " . $e->getMessage() . " --- Line: " . $e->getLine() . " --- Trace: " . $e->getTraceAsString()); log_message('error', ' '); log_message('error', ' ************************************* POST END **************************************** '); log_message('error', ' '); - return $this->respond(['status' => 'failed','code' => 500,'data' => "", 'message' => $e->getMessage()],500); + return $this->respond(['status' => 'failed','code' => 500,'data' => "", 'message' => "Invalid OTP", 'error' => $e->getMessage()],500); } } diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php index d393b71c..b4d391dc 100755 --- a/app/Controllers/UserController.php +++ b/app/Controllers/UserController.php @@ -627,17 +627,24 @@ class UserController extends AdminController if (!$staff) { return $this->response->setJSON(['status' => 'error','message' => 'Staff not found'])->setStatusCode(404); } + $role = $staff['role_id']; + $text = $role == 1 ? "Manager" : "Staff"; if ($staff['is_active'] == 1) { + if($role == 1){ // manager + $result = $this->partnerStaffModel->updateByKey($id); + $message = $result; + }else{ // staff $result = $this->partnerStaffModel->update($id, ['is_active' => 0]); - $message = "Staff deleted successfully"; + $message = $text." deleted successfully"; + } } else { - return $this->response->setJSON(['status' => 'error','message' => 'Staff already deleted'])->setStatusCode(400); + return $this->response->setJSON(['status' => 'error','message' => $text.' already deleted'])->setStatusCode(400); } return $this->response->setJSON([ 'status' => $result ? 'success' : 'error', - 'message' => $result ? $message : "Unable to delete staff. Please try again.", + 'message' => $result ? $message : "Unable to delete ".$text.". Please try again.", 'id' => $id ])->setStatusCode($result ? 200 : 400); } diff --git a/app/Models/PartnerStaffModel.php b/app/Models/PartnerStaffModel.php index 474f14d1..340a0ec5 100755 --- a/app/Models/PartnerStaffModel.php +++ b/app/Models/PartnerStaffModel.php @@ -47,4 +47,55 @@ class PartnerStaffModel extends Model // ]; // protected $skipValidation = false; +public function updateByKey($key) +{ + $db = \Config\Database::connect(); + $message = ""; + + // Start transaction + $db->transStart(); + + try { + // 1. Update manager + $db->table('partner_staff') + ->where('id', $key) + ->set('is_active', 0) + ->update(); + $managerRows = $db->affectedRows(); + $message = "{$managerRows} manager(s), "; + + // 2. Update agents under manager + $db->table('partner_agent') + ->where('manager_id', $key) + ->set('is_active', 0) + ->update(); + $agentRows = $db->affectedRows(); + $message .= "{$agentRows} agent(s), "; + + // 3. Update staff under manager + $db->table('partner_staff') + ->where('manager_id', $key) + ->set('is_active', 0) + ->update(); + $staffRows = $db->affectedRows(); + $message .= "{$staffRows} staff(s)"; + + // Complete transaction + $db->transComplete(); + + // Check transaction status + if ($db->transStatus() === false) { + return "Transaction failed. No updates were applied."; + } + + return $message . " are deleted successfully"; + + } catch (\Exception $e) { + // Rollback in case of exception + $db->transRollback(); + return "Error: " . $e->getMessage(); + } +} + + } diff --git a/app/Views/UserList.php b/app/Views/UserList.php index dcf988fa..2936af69 100755 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -37,10 +37,10 @@ table.dataTable tbody td { -->