From b52cad8026356a3ec148755bd3ec6c1fdcacc426 Mon Sep 17 00:00:00 2001 From: venba-Inspriron-3558 Date: Mon, 6 Oct 2025 17:50:09 +0530 Subject: [PATCH] FIX_User UI and Manager deletion changes --- app/Controllers/UserController.php | 13 ++++++-- app/Models/PartnerStaffModel.php | 51 ++++++++++++++++++++++++++++++ app/Views/UserList.php | 41 +++++++++++++++++------- 3 files changed, 90 insertions(+), 15 deletions(-) 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 { -->