diff --git a/app/Controllers/SalesController.php b/app/Controllers/SalesController.php index 362a695b..164444e9 100644 --- a/app/Controllers/SalesController.php +++ b/app/Controllers/SalesController.php @@ -71,52 +71,59 @@ class SalesController extends BaseController */ private function getSalesStaffData(): array { - $db = \Config\Database::connect(); + $db = \Config\Database::connect(); $logged_user_id = get_session_userid(); - $role = get_role_id(); - $team_id = user_team(); + $role = get_role_id(); + $team_id = user_team(); $data = [ - 'users' => [], - 'sales_manager_ids' => [], - 'sales_role' => '' + 'users' => [], + 'sales_manager_ids'=> [], + 'sales_role' => '', + 'nhance_branch_id' => null, + 'assigned_ids' => [], ]; - $row = $db->table('user_profiles')->select('*') - ->where('is_active', 1)->where('id', $logged_user_id) - ->get()->getRow(); - - $nhance_branch_id = $row ? $row->nhance_branch_id : null; - - // Is the logged-in user a Sales Manager? (Role 4, Team 5) - if ($role == 4 && in_array(5, $team_id)) { - $data['sales_role'] = "Sales Manager"; + $row = $db->table('user_profiles')->select('*') + ->where('is_active', 1)->where('id', $logged_user_id) + ->get()->getRow(); + + $nhance_branch_id = $row ? $row->nhance_branch_id : null; + $data['nhance_branch_id']= $nhance_branch_id; + + // ── Sales Manager (Role 4, Team 5) ────────────────────────── + if ($role == 4 && in_array(5, $team_id)) { + + $data['sales_role'] = 'Sales Manager'; $data['sales_manager_ids'] = [$logged_user_id]; - - $data['users'] = [ + $data['assigned_ids'] = [$logged_user_id]; + $data['users'] = [ [ 'id' => $row->id, - 'first_name' => $row->first_name, - 'nhance_branch_id' => $nhance_branch_id + 'first_name' => $row->first_name, + 'last_name' => $row->last_name ?? '', + 'nhance_branch_id' => $nhance_branch_id, ] ]; - } - // Otherwise fetch ALL sales managers in this branch - elseif (in_array($role,[1,5])) { - $data['sales_role'] = "Sales Head"; - $data['users'] = $db->table('user_profiles up') - ->select('up.id, up.first_name, up.last_name, up.nhance_branch_id') - ->join('user_teams ut', 'ut.user_id = up.id') - ->where('up.is_active', 1) - ->where('ut.is_active', 1) - ->where('up.role', 4) - ->where('ut.team_id', 5) - ->where('up.nhance_branch_id', $nhance_branch_id) - ->get() - ->getResultArray(); + // ── Sales Head (Role 1 or 5) ───────────────────────────────── + } elseif (in_array($role, [1, 5])) { - $data['sales_manager_ids'] = array_column($data['users'], 'id'); + $data['sales_role'] = 'Sales Head'; + $data['users'] = $db->table('user_profiles up') + ->select('up.id, up.first_name, up.last_name, up.nhance_branch_id') + ->join('user_teams ut', 'ut.user_id = up.id') + ->where('up.is_active', 1) + ->where('ut.is_active', 1) + ->where('up.role', 4) + ->where('ut.team_id', 5) + ->where('up.nhance_branch_id', $nhance_branch_id) + ->get() + ->getResultArray(); + + $ids = array_column($data['users'], 'id'); + $data['sales_manager_ids'] = $ids; + $data['assigned_ids'] = $ids; // same value, both available } return $data; @@ -920,52 +927,23 @@ class SalesController extends BaseController // ==================== Dashboard ==================== - public function dashboard(){ - - $logged_user_id = get_session_userid(); - $role = get_role_id(); - $team_id = user_team(); + public function dashboard() + { $payload = $this->request->getGet(); + $base = $this->getSalesStaffData(); + $salesRole = $base['sales_role']; + $salesManagerIds = $base['sales_manager_ids']; + $userId = get_session_userid(); - $db = \Config\Database::connect(); + // Get branch id from users array + $nhanceBranchId = $base['users'][0]['nhance_branch_id'] ?? null; - $row = $db->table('user_profiles') - ->select('*') - ->where('is_active', 1) - ->where('id', $logged_user_id) - ->get() - ->getRowArray(); - - $nhance_branch_id = $row ? $row['nhance_branch_id'] : null; - - // dd($logged_user_id, $nhance_branch_id, $role, $team_id ); - - if (in_array($role,[1,5])) { - - $sales_manager_ids = array_column( - $db->table('user_profiles up') - ->select('up.id') - ->join('user_teams ut', 'ut.user_id = up.id') - ->where([ - 'up.is_active' => 1, - 'ut.is_active' => 1, - 'up.role' => 4, - 'ut.team_id' => 5, - 'up.nhance_branch_id' => $nhance_branch_id - ]) - ->get() - ->getResultArray(), - 'id' - ); - $this->branchLevelDashboard($nhance_branch_id,$sales_manager_ids); - - } - elseif ($role == 4 && in_array(5, $team_id)) { - $sales_manager_ids = [$logged_user_id]; - $this->salesManagerLevelDashboard($logged_user_id,$sales_manager_ids, $payload); + if ($salesRole === 'Sales Head') { + $this->branchLevelDashboard($nhanceBranchId, $salesManagerIds); + } elseif ($salesRole === 'Sales Manager') { + $this->salesManagerLevelDashboard($userId, $salesManagerIds,$payload); } - - } + } public function branchLevelDashboard($branchId,$sales_manager_ids) { diff --git a/app/Models/SalesActivityModel.php b/app/Models/SalesActivityModel.php index c27f526f..e9a3801d 100644 --- a/app/Models/SalesActivityModel.php +++ b/app/Models/SalesActivityModel.php @@ -102,7 +102,7 @@ class SalesActivityModel extends Model $assignedToIds = is_array($assigned_to) ? $assigned_to : explode(',', $assigned_to); // Now it is guaranteed to be an array, making whereIn perfectly safe - $this->whereIn('sales_actual_leads.assigned_to', $assignedToIds); + $this->whereIn('sales_activities.assigned_to', $assignedToIds); }