From 59ab5a3aef8d99b6fb6c771d1a54af1da07a6957 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Mon, 13 Oct 2025 11:27:15 +0530 Subject: [PATCH] GWM : dashboard --- app/Controllers/DashboardController.php | 28 ++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index b2e1719..114cbc8 100644 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -171,6 +171,7 @@ class DashboardController extends ResourceController public function handlerDashboard() { $handler_id = $this->request->getGet('handler_id'); + $manager_id = $this->request->getGet('manager_id'); if (empty($handler_id)) { return $this->response->setJSON([ @@ -197,8 +198,33 @@ class DashboardController extends ResourceController ->get() ->getResultArray(); + + $last30 = date('Y-m-d H:i:s', strtotime('-30 days')); + // --- Performance Agents (last 30 days) --- + $performanceAgents = $this->db->table('partner_agent pa') + ->select('pa.id AS agent_id, pa.name AS agent_name, COUNT(pp.id) AS total_policy_issued, COALESCE(SUM(pp.premium_amount),0) AS total_premium_value, IF(COUNT(pp.id)>0,"Active","Inactive") AS status') + ->join('partner_policy pp', 'pp.agent_id = pa.id', 'inner') + ->where('pp.created_on >=', $last30) + ->where('pa.manager_id',$manager_id) + ->get() + ->getResultArray(); + + if(count($performanceAgents) == 1 && $performanceAgents[0]['agent_name'] == null) + { + $performanceAgents = []; + } + + // --- Un assigned enquiry --- + $unassignedEnquiry = $this->db->table('partner_enquiry pe') + ->where('pe.assigned_to', 0) + ->where('pe.manager_id', $manager_id) + ->get() + ->getResultArray(); + $result = [ - 'staff_level_pending_summary' => $staffLevelPendingSummary + 'staff_level_pending_summary' => $staffLevelPendingSummary, + 'agents_performance' => $performanceAgents, + 'unassigned_enquiry' => $unassignedEnquiry, ]; return $this->respond(['status' => 'success', 'code' => 200, 'data' => $result], 200);