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

View File

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