FIX_salesTracker11

This commit is contained in:
sanjeev.p 2026-02-27 17:08:30 +05:30
parent ab343bc210
commit 1d7ac9d7eb
2 changed files with 55 additions and 77 deletions

View File

@ -71,52 +71,59 @@ class SalesController extends BaseController
*/ */
private function getSalesStaffData(): array private function getSalesStaffData(): array
{ {
$db = \Config\Database::connect(); $db = \Config\Database::connect();
$logged_user_id = get_session_userid(); $logged_user_id = get_session_userid();
$role = get_role_id(); $role = get_role_id();
$team_id = user_team(); $team_id = user_team();
$data = [ $data = [
'users' => [], 'users' => [],
'sales_manager_ids' => [], 'sales_manager_ids'=> [],
'sales_role' => '' 'sales_role' => '',
'nhance_branch_id' => null,
'assigned_ids' => [],
]; ];
$row = $db->table('user_profiles')->select('*') $row = $db->table('user_profiles')->select('*')
->where('is_active', 1)->where('id', $logged_user_id) ->where('is_active', 1)->where('id', $logged_user_id)
->get()->getRow(); ->get()->getRow();
$nhance_branch_id = $row ? $row->nhance_branch_id : null; $nhance_branch_id = $row ? $row->nhance_branch_id : null;
$data['nhance_branch_id']= $nhance_branch_id;
// Is the logged-in user a Sales Manager? (Role 4, Team 5)
if ($role == 4 && in_array(5, $team_id)) { // ── Sales Manager (Role 4, Team 5) ──────────────────────────
$data['sales_role'] = "Sales Manager"; if ($role == 4 && in_array(5, $team_id)) {
$data['sales_role'] = 'Sales Manager';
$data['sales_manager_ids'] = [$logged_user_id]; $data['sales_manager_ids'] = [$logged_user_id];
$data['assigned_ids'] = [$logged_user_id];
$data['users'] = [ $data['users'] = [
[ [
'id' => $row->id, 'id' => $row->id,
'first_name' => $row->first_name, 'first_name' => $row->first_name,
'nhance_branch_id' => $nhance_branch_id 'last_name' => $row->last_name ?? '',
'nhance_branch_id' => $nhance_branch_id,
] ]
]; ];
} // ── Sales Head (Role 1 or 5) ─────────────────────────────────
// Otherwise fetch ALL sales managers in this branch } elseif (in_array($role, [1, 5])) {
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();
$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; return $data;
@ -920,52 +927,23 @@ class SalesController extends BaseController
// ==================== Dashboard ==================== // ==================== Dashboard ====================
public function dashboard(){ public function dashboard()
{
$logged_user_id = get_session_userid();
$role = get_role_id();
$team_id = user_team();
$payload = $this->request->getGet(); $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') if ($salesRole === 'Sales Head') {
->select('*') $this->branchLevelDashboard($nhanceBranchId, $salesManagerIds);
->where('is_active', 1) } elseif ($salesRole === 'Sales Manager') {
->where('id', $logged_user_id) $this->salesManagerLevelDashboard($userId, $salesManagerIds,$payload);
->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);
} }
}
}
public function branchLevelDashboard($branchId,$sales_manager_ids) public function branchLevelDashboard($branchId,$sales_manager_ids)
{ {

View File

@ -102,7 +102,7 @@ class SalesActivityModel extends Model
$assignedToIds = is_array($assigned_to) ? $assigned_to : explode(',', $assigned_to); $assignedToIds = is_array($assigned_to) ? $assigned_to : explode(',', $assigned_to);
// Now it is guaranteed to be an array, making whereIn perfectly safe // 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);
} }