FIX_dashboard/productivityDashboard
This commit is contained in:
parent
63be12e8b8
commit
f837f5e4c6
@ -132,7 +132,7 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
|
|||||||
|
|
||||||
$routes->get("dashboard/businessDashboard", "DashboardController::businessDashboard");
|
$routes->get("dashboard/businessDashboard", "DashboardController::businessDashboard");
|
||||||
$routes->get("dashboard/partnerDashboard", "DashboardController::partnerDashboard");
|
$routes->get("dashboard/partnerDashboard", "DashboardController::partnerDashboard");
|
||||||
$routes->get("dashboard/newDashboard", "DashboardController::newDashboard");
|
$routes->get("dashboard/productivityDashboard", "DashboardController::productivityDashboard");
|
||||||
|
|
||||||
//invoice
|
//invoice
|
||||||
$routes->get('invoice/list', 'InvoiceController::invoiceList');
|
$routes->get('invoice/list', 'InvoiceController::invoiceList');
|
||||||
@ -152,9 +152,9 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$routes->get("dashboard/businessDashboard", "DashboardController::businessDashboard");
|
// $routes->get("dashboard/businessDashboard", "DashboardController::businessDashboard");
|
||||||
$routes->get("dashboard/partnerDashboard", "DashboardController::partnerDashboard");
|
// $routes->get("dashboard/partnerDashboard", "DashboardController::partnerDashboard");
|
||||||
$routes->get("dashboard/productivityDashboard", "DashboardController::productivityDashboard");
|
// $routes->get("dashboard/productivityDashboard", "DashboardController::productivityDashboard");
|
||||||
// $routes->get('agent/agentList', 'AgentController::agentList');
|
// $routes->get('agent/agentList', 'AgentController::agentList');
|
||||||
// $routes->get('salesExecutive/executiveList', 'SalesExecutive::salesExecutiveList');
|
// $routes->get('salesExecutive/executiveList', 'SalesExecutive::salesExecutiveList');
|
||||||
// $routes->get('salesExecutive/findExecutive', 'SalesExecutive::findSalesExecutive');
|
// $routes->get('salesExecutive/findExecutive', 'SalesExecutive::findSalesExecutive');
|
||||||
|
|||||||
@ -562,18 +562,17 @@ class DashboardController extends ResourceController
|
|||||||
|
|
||||||
public function productivityDashboard(){
|
public function productivityDashboard(){
|
||||||
|
|
||||||
$manager_id = $this->request->getGet('sales_executive_id');
|
$manager_id = $this->request->getGet('manager_id');
|
||||||
|
|
||||||
// Initialize the details array to ensure the final output is always structured.
|
// Initialize the details array to ensure the final output is always structured.
|
||||||
$details = [ 'brokerWise' => [], 'productWise' => [], 'insurerWise' => []];
|
$details = [ 'StaffWise' => [], 'ProductWise' => []];
|
||||||
$code = 200;
|
$code = 200;
|
||||||
$message = "new Dashboard Data Retrieved Successfully";
|
$message = "Productivity Dashboard Data Retrieved Successfully";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 1. Fetch all data concurrently (or sequentially, as shown)
|
// 1. Fetch all data concurrently (or sequentially, as shown)
|
||||||
$details['brokerWise'] = $this->brokerWise1($sales_executive_id);
|
$details['StaffWise'] = $this->productivityStaffWise($manager_id);
|
||||||
$details['productWise'] = $this->productWise1($sales_executive_id);
|
$details['ProductWise'] = $this->productivityProductWise($manager_id);
|
||||||
$details['insurerWise'] = $this->insurerWise1($sales_executive_id);
|
|
||||||
|
|
||||||
// 2. Check for overall emptiness (optional, but good practice)
|
// 2. Check for overall emptiness (optional, but good practice)
|
||||||
$is_empty = array_reduce($details, function ($carry, $item) {
|
$is_empty = array_reduce($details, function ($carry, $item) {
|
||||||
@ -962,72 +961,69 @@ class DashboardController extends ResourceController
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Step 5.1
|
//Step 5.1
|
||||||
public function insurerWise1($sales_executive_id){
|
public function productivityStaffWise($manager_id){
|
||||||
|
|
||||||
$builder = $this->db->table('partner_policy pp');
|
$builder = $this->db->table('partner_policy pp');
|
||||||
|
|
||||||
$builder->select("
|
$builder->select("
|
||||||
DATE_FORMAT(CURRENT_DATE(), '%b') AS curr_month,
|
DATE_FORMAT(CURRENT_DATE(), '%b') AS curr_month,
|
||||||
YEAR(CURRENT_DATE()) AS year_of_curr_month,
|
YEAR(CURRENT_DATE()) AS year_of_curr_month,
|
||||||
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%b') AS pre_month,
|
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%b') AS pre_month,
|
||||||
YEAR(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS year_of_last_month,
|
YEAR(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS year_of_last_month,
|
||||||
i.name,
|
pa.sales_executive_id,
|
||||||
i.short_name,
|
pse.name as sales_executive_name,
|
||||||
i.id AS insurer_id,
|
pse.id as PSE_sales_executive_id,
|
||||||
pq.insurer_id AS PQ_insurer_id,
|
pa.id,pp.manager_id,
|
||||||
pq.insurer_id,
|
|
||||||
pp.insured_name,
|
|
||||||
|
|
||||||
COUNT(
|
|
||||||
CASE
|
|
||||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
|
||||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
|
||||||
THEN pp.client_policy_id
|
|
||||||
ELSE NULL
|
|
||||||
END
|
|
||||||
) AS total_policies_current_month,
|
|
||||||
|
|
||||||
SUM(
|
COUNT(
|
||||||
CASE
|
CASE
|
||||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||||
THEN pp.premium_amount
|
THEN pp.client_policy_id
|
||||||
ELSE 0
|
END
|
||||||
END
|
) AS total_policies_current_month,
|
||||||
) AS total_premium_current_month,
|
|
||||||
|
|
||||||
COUNT(
|
SUM(
|
||||||
CASE
|
CASE
|
||||||
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||||
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||||
THEN pp.client_policy_id
|
THEN pp.premium_amount
|
||||||
ELSE NULL
|
ELSE 0
|
||||||
END
|
END
|
||||||
) AS total_policies_pre_month,
|
) AS total_premium_current_month,
|
||||||
|
|
||||||
SUM(
|
COUNT(
|
||||||
CASE
|
CASE
|
||||||
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||||
THEN pp.premium_amount
|
THEN pp.client_policy_id
|
||||||
ELSE 0
|
END
|
||||||
END
|
) AS total_policies_pre_month,
|
||||||
) AS total_premium_pre_month
|
|
||||||
");
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
|
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||||
|
THEN pp.premium_amount
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS total_premium_pre_month
|
||||||
|
");
|
||||||
|
|
||||||
$builder->join('partner_quotation pq', 'pq.id = pp.quotation_id', 'left');
|
$builder->join('partner_quotation pq', 'pq.id = pp.quotation_id', 'left');
|
||||||
$builder->join('insurers i', 'i.id = pq.insurer_id', 'left');
|
$builder->join('partner_agent pa', 'pa.id = pp.agent_id', 'left');
|
||||||
|
$builder->join('partner_sales_executive pse', 'pse.id = pa.sales_executive_id', 'left');
|
||||||
$builder->where("
|
$builder->where("
|
||||||
pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
", null, false);
|
", null, false);
|
||||||
|
|
||||||
$builder->where('pp.manager_id',$manager_id);
|
$builder->where('pp.manager_id',$manager_id);
|
||||||
$builder->where("pp.is_active",1);
|
$builder->where('pa.sales_executive_id IS NOT NULL');
|
||||||
$builder->where("pq.insurer_id != 0");
|
$builder->where('pse.is_active',1);
|
||||||
$builder->groupBy('pq.insurer_id');
|
$builder->groupBy('pa.sales_executive_id');
|
||||||
$builder->orderBy('pq.insurer_id');
|
$builder->orderBy('pa.sales_executive_id');
|
||||||
|
|
||||||
$query = $builder->get();
|
$query = $builder->get();
|
||||||
$result = $query->getResultArray();
|
$result = $query->getResultArray();
|
||||||
@ -1035,76 +1031,9 @@ class DashboardController extends ResourceController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Step 5.2
|
//Step 5.2
|
||||||
public function brokerWise2($sales_executive_id){
|
public function productivityProductWise($manager_id){
|
||||||
|
|
||||||
$builder = $this->db->table('partner_policy pp');
|
|
||||||
$builder->select("
|
|
||||||
DATE_FORMAT(CURRENT_DATE(), '%b') AS curr_month,
|
|
||||||
YEAR(CURRENT_DATE()) AS year_of_curr_month,
|
|
||||||
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%b') AS pre_month,
|
|
||||||
YEAR(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS year_of_last_month,
|
|
||||||
pb.name AS broker_name,
|
|
||||||
pb.id AS broker_id,
|
|
||||||
pe.broker_id AS PE_broker_id,
|
|
||||||
|
|
||||||
COUNT(
|
|
||||||
CASE
|
|
||||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
|
||||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
|
||||||
THEN pp.client_policy_id
|
|
||||||
ELSE NULL
|
|
||||||
END
|
|
||||||
) AS total_policies_current_month,
|
|
||||||
|
|
||||||
SUM(
|
|
||||||
CASE
|
|
||||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
|
||||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
|
||||||
THEN pp.premium_amount
|
|
||||||
ELSE 0
|
|
||||||
END
|
|
||||||
) AS total_premium_current_month,
|
|
||||||
|
|
||||||
COUNT(
|
|
||||||
CASE
|
|
||||||
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
|
||||||
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
|
||||||
THEN pp.client_policy_id
|
|
||||||
ELSE NULL
|
|
||||||
END
|
|
||||||
) AS total_policies_pre_month,
|
|
||||||
|
|
||||||
SUM(
|
|
||||||
CASE
|
|
||||||
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
|
||||||
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
|
||||||
THEN pp.premium_amount
|
|
||||||
ELSE 0
|
|
||||||
END
|
|
||||||
) AS total_premium_pre_month
|
|
||||||
");
|
|
||||||
|
|
||||||
$builder->join('partner_enquiry pe', 'pe.id = pp.enquiry_id', 'left');
|
|
||||||
$builder->join('partner_brokers pb', 'pb.id = pe.broker_id', 'left');
|
|
||||||
|
|
||||||
$builder->where("
|
|
||||||
pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
|
||||||
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');
|
|
||||||
|
|
||||||
$query = $builder->get();
|
|
||||||
$result = $query->getResultArray();
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Step 5.3
|
|
||||||
public function productWise3($sales_executive_id){
|
|
||||||
$builder = $this->db->table('partner_policy pp');
|
$builder = $this->db->table('partner_policy pp');
|
||||||
$builder->select("
|
$builder->select("
|
||||||
DATE_FORMAT(CURRENT_DATE(), '%b') AS curr_month,
|
DATE_FORMAT(CURRENT_DATE(), '%b') AS curr_month,
|
||||||
@ -1112,13 +1041,14 @@ class DashboardController extends ResourceController
|
|||||||
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%b') AS pre_month,
|
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%b') AS pre_month,
|
||||||
YEAR(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS year_of_last_month,
|
YEAR(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS year_of_last_month,
|
||||||
pp.vehicle_type,
|
pp.vehicle_type,
|
||||||
|
pse.name as sales_executive_name,
|
||||||
|
pse.id as PSE_sales_executive_id,
|
||||||
|
pa.id,
|
||||||
COUNT(
|
COUNT(
|
||||||
CASE
|
CASE
|
||||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||||
THEN pp.client_policy_id
|
THEN pp.client_policy_id
|
||||||
ELSE NULL
|
|
||||||
END
|
END
|
||||||
) AS total_policies_current_month,
|
) AS total_policies_current_month,
|
||||||
|
|
||||||
@ -1136,7 +1066,6 @@ class DashboardController extends ResourceController
|
|||||||
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
WHEN pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
AND pp.created_on < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||||
THEN pp.client_policy_id
|
THEN pp.client_policy_id
|
||||||
ELSE NULL
|
|
||||||
END
|
END
|
||||||
) AS total_policies_pre_month,
|
) AS total_policies_pre_month,
|
||||||
|
|
||||||
@ -1154,10 +1083,13 @@ class DashboardController extends ResourceController
|
|||||||
pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
pp.created_on >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
AND pp.created_on < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||||
", null, false);
|
", null, false);
|
||||||
|
$builder->join('partner_agent pa', 'pa.id = pp.agent_id', 'left');
|
||||||
|
$builder->join('partner_sales_executive pse', 'pse.id = pa.sales_executive_id', 'left');
|
||||||
$builder->where('pp.manager_id',$manager_id);
|
$builder->where('pp.manager_id',$manager_id);
|
||||||
|
$builder->where('pa.sales_executive_id IS NOT NULL');
|
||||||
$builder->groupBy('pp.vehicle_type');
|
$builder->where('pse.is_active',1);
|
||||||
|
$builder->groupBy('pa.sales_executive_id,pp.vehicle_type');
|
||||||
|
$builder->orderBy('pa.sales_executive_id');
|
||||||
|
|
||||||
$query = $builder->get();
|
$query = $builder->get();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user