diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index 53d1e58..b2f411d 100644 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -427,6 +427,9 @@ class DashboardController extends ResourceController //business dashboard = month-wise insurer,broker and product (PolicyCount , Premium) public function businessDashboard() { + + $manager_id = $this->request->getGet('manager_id'); + // Initialize the details array to ensure the final output is always structured. $details = [ 'brokerWise' => [], 'productWise' => [], 'insurerWise' => []]; $code = 200; @@ -434,9 +437,9 @@ class DashboardController extends ResourceController try { // 1. Fetch all data concurrently (or sequentially, as shown) - $details['brokerWise'] = $this->brokerWise(); - $details['productWise'] = $this->productWise(); - $details['insurerWise'] = $this->insurerWise(); + $details['brokerWise'] = $this->brokerWise($manager_id); + $details['productWise'] = $this->productWise($manager_id); + $details['insurerWise'] = $this->insurerWise($manager_id); // 2. Check for overall emptiness (optional, but good practice) $is_empty = array_reduce($details, function ($carry, $item) { @@ -488,6 +491,8 @@ class DashboardController extends ResourceController //partner dashboard = month-wise PolicyCount , month-wise Premium, No Agent For Last 10 Days and below 50thouands Premium agentwise public function partnerDashboard() { + + $manager_id = $this->request->getGet('manager_id'); // Initialize the details array to ensure the final output is always structured. $code = 200; $message = "Partner Dashboard Data Retrieved Successfully"; @@ -502,10 +507,10 @@ class DashboardController extends ResourceController $value = $value ?? 10; $unit = $unit ?? 'DAY'; - $details['monthlyPolicyCount'] = $this->agentMonthlyPolicyCount($date,$limit); - $details['monthlyPremiumAmount'] = $this->agentMonthlyPremiumAmount($date,$limit); - $details['noPolicyTimeRange'] = $this->agentNoPolicyTimeRange($value,$unit); - $details['below50tPremiumTimeRange'] = $this->agentBelow50tPremiumTimeRange($value,$unit); + $details['monthlyPolicyCount'] = $this->agentMonthlyPolicyCount($date,$limit,$manager_id); + $details['monthlyPremiumAmount'] = $this->agentMonthlyPremiumAmount($date,$limit,$manager_id); + $details['noPolicyTimeRange'] = $this->agentNoPolicyTimeRange($value,$unit,$manager_id); + $details['below50tPremiumTimeRange'] = $this->agentBelow50tPremiumTimeRange($value,$unit,$manager_id); // 2. Check for overall emptiness (optional, but good practice) @@ -555,7 +560,7 @@ class DashboardController extends ResourceController } //Step 1.1 - public function insurerWise(){ + public function insurerWise($manager_id){ $builder = $this->db->table('partner_policy pp'); @@ -616,6 +621,8 @@ class DashboardController extends ResourceController AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01') ", null, false); + $builder->where('pp.manager_id',$manager_id); + $builder->where("pq.insurer_id != 0"); $builder->groupBy('pq.insurer_id'); $builder->orderBy('pq.insurer_id'); @@ -627,7 +634,7 @@ class DashboardController extends ResourceController } //Step 1.2 - public function brokerWise(){ + public function brokerWise($manager_id){ $builder = $this->db->table('partner_policy pp'); $builder->select(" @@ -684,6 +691,8 @@ class DashboardController extends ResourceController AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01') ", null, false); + $builder->where('pp.manager_id',$manager_id); + $builder->groupBy('pb.id'); $builder->orderBy('pb.id'); @@ -693,7 +702,7 @@ class DashboardController extends ResourceController } //Step 1.3 - public function productWise(){ + public function productWise($manager_id){ $builder = $this->db->table('partner_policy pp'); $builder->select(" DATE_FORMAT(CURRENT_DATE(), '%b') AS curr_month, @@ -744,6 +753,8 @@ class DashboardController extends ResourceController AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01') ", null, false); + $builder->where('pp.manager_id',$manager_id); + $builder->groupBy('pp.vehicle_type'); $query = $builder->get(); @@ -754,7 +765,7 @@ class DashboardController extends ResourceController } //Step 2.1 - public function agentMonthlyPolicyCount($customDate,$limit){ + public function agentMonthlyPolicyCount($customDate,$limit,$manager_id){ // 2.1 // $customDate = $custom_date; // '2025-11-05' or CURRENT_DATE() @@ -776,6 +787,8 @@ class DashboardController extends ResourceController $builder->where("MONTH(pp.created_on) = MONTH('$customDate')", null, false); $builder->where("YEAR(pp.created_on) = YEAR('$customDate')", null, false); + $builder->where('pp.manager_id',$manager_id); + $builder->groupBy(['pa.id']); $builder->orderBy('policy_count', 'DESC'); $builder->limit($limit); @@ -786,7 +799,7 @@ class DashboardController extends ResourceController } //Step 2.2 - public function agentMonthlyPremiumAmount($customDate,$limit){ + public function agentMonthlyPremiumAmount($customDate,$limit,$manager_id){ // 2.2 // $customDate = $custom_date; // Example '2025-11-05' @@ -806,6 +819,8 @@ class DashboardController extends ResourceController $builder->where("MONTH(pp.created_on) = MONTH('$customDate')", null, false); $builder->where("YEAR(pp.created_on) = YEAR('$customDate')", null, false); + + $builder->where('pp.manager_id',$manager_id); // $builder->groupBy(['pa.id']); $builder->orderBy('total_premium_amount', 'DESC'); @@ -816,7 +831,7 @@ class DashboardController extends ResourceController } //Step 3 - public function agentNoPolicyTimeRange($value,$unit){ + public function agentNoPolicyTimeRange($value,$unit,$manager_id){ // $value = 10; // dynamic number (10, 50, 1, 2, 3, etc.) // $unit = 'DAY'; // DAY, MONTH, YEAR (dynamic) @@ -839,6 +854,8 @@ class DashboardController extends ResourceController false // IMPORTANT → allows raw SQL ); + $builder->where('pa.manager_id',$manager_id); + $builder->where('pp.id', null); $builder->orderBy('pa.name'); $result = $builder->get()->getResultArray(); @@ -847,7 +864,7 @@ class DashboardController extends ResourceController } //Step 4 - public function agentBelow50tPremiumTimeRange($value,$unit){ + public function agentBelow50tPremiumTimeRange($value,$unit,$manager_id){ // 4th // $value = 10; // Dynamic (10, 50, 1, 2, 3...) @@ -876,6 +893,9 @@ class DashboardController extends ResourceController 'pa.id = pp.agent_id', 'left' ); + + $builder->where('pp.manager_id',$manager_id); + $builder->where('pp.premium_amount <', 50000); $builder->where("pp.created_on >= $interval", null, false); // false = prevent escaping raw SQL $builder->orderBy('pp.created_on', 'DESC');