FIX_productivity Dashboard
This commit is contained in:
parent
f837f5e4c6
commit
f471fbd1da
@ -571,8 +571,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
try {
|
||||
// 1. Fetch all data concurrently (or sequentially, as shown)
|
||||
$details['StaffWise'] = $this->productivityStaffWise($manager_id);
|
||||
$details['ProductWise'] = $this->productivityProductWise($manager_id);
|
||||
$details['StaffWise'] = $this->staffWiseProductList($manager_id);
|
||||
// $details['ProductWise'] = $this->productivityProductWise($manager_id);
|
||||
|
||||
// 2. Check for overall emptiness (optional, but good practice)
|
||||
$is_empty = array_reduce($details, function ($carry, $item) {
|
||||
@ -640,8 +640,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.client_policy_id
|
||||
ELSE NULL
|
||||
END
|
||||
@ -649,8 +649,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
SUM(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.premium_amount
|
||||
ELSE 0
|
||||
END
|
||||
@ -658,8 +658,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
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')
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.client_policy_id
|
||||
ELSE NULL
|
||||
END
|
||||
@ -667,8 +667,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
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')
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.premium_amount
|
||||
ELSE 0
|
||||
END
|
||||
@ -679,8 +679,8 @@ class DashboardController extends ResourceController
|
||||
$builder->join('insurers i', 'i.id = pq.insurer_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')
|
||||
pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
@ -711,8 +711,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.client_policy_id
|
||||
ELSE NULL
|
||||
END
|
||||
@ -720,8 +720,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
SUM(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.premium_amount
|
||||
ELSE 0
|
||||
END
|
||||
@ -729,8 +729,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
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')
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.client_policy_id
|
||||
ELSE NULL
|
||||
END
|
||||
@ -738,8 +738,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
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')
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.premium_amount
|
||||
ELSE 0
|
||||
END
|
||||
@ -750,8 +750,8 @@ class DashboardController extends ResourceController
|
||||
$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')
|
||||
pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
@ -776,8 +776,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.client_policy_id
|
||||
ELSE NULL
|
||||
END
|
||||
@ -785,8 +785,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
SUM(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.premium_amount
|
||||
ELSE 0
|
||||
END
|
||||
@ -794,8 +794,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
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')
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.client_policy_id
|
||||
ELSE NULL
|
||||
END
|
||||
@ -803,8 +803,8 @@ class DashboardController extends ResourceController
|
||||
|
||||
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')
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.premium_amount
|
||||
ELSE 0
|
||||
END
|
||||
@ -812,8 +812,8 @@ class DashboardController extends ResourceController
|
||||
");
|
||||
|
||||
$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')
|
||||
pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
@ -847,8 +847,8 @@ class DashboardController extends ResourceController
|
||||
$builder->join('partner_agent pa', 'pp.agent_id = pa.id', 'inner');
|
||||
$builder->join('partner_enquiry pe', 'pe.id = pp.enquiry_id', 'left');
|
||||
|
||||
$builder->where("MONTH(pp.created_on) = MONTH('$customDate')", null, false);
|
||||
$builder->where("YEAR(pp.created_on) = YEAR('$customDate')", null, false);
|
||||
$builder->where("MONTH(pp.issued_date) = MONTH('$customDate')", null, false);
|
||||
$builder->where("YEAR(pp.issued_date) = YEAR('$customDate')", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
|
||||
@ -880,8 +880,8 @@ class DashboardController extends ResourceController
|
||||
$builder->join('partner_agent pa', 'pp.agent_id = pa.id', 'inner');
|
||||
$builder->join('partner_enquiry pe', 'pe.id = pp.enquiry_id', 'left');
|
||||
|
||||
$builder->where("MONTH(pp.created_on) = MONTH('$customDate')", null, false);
|
||||
$builder->where("YEAR(pp.created_on) = YEAR('$customDate')", null, false);
|
||||
$builder->where("MONTH(pp.issued_date) = MONTH('$customDate')", null, false);
|
||||
$builder->where("YEAR(pp.issued_date) = YEAR('$customDate')", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
|
||||
@ -912,7 +912,7 @@ class DashboardController extends ResourceController
|
||||
|
||||
$builder->join(
|
||||
'partner_policy pp',
|
||||
"pa.id = pp.agent_id AND pp.created_on >= $interval",
|
||||
"pa.id = pp.agent_id AND pp.issued_date >= $interval",
|
||||
'left',
|
||||
false // IMPORTANT → allows raw SQL
|
||||
);
|
||||
@ -947,154 +947,125 @@ class DashboardController extends ResourceController
|
||||
WHEN pa.is_active = 1 THEN 'Active Agent'
|
||||
ELSE 'Inactive Agent'
|
||||
END AS agent_status,
|
||||
DATE_FORMAT(pp.created_on, '%d-%m-%Y') AS created_date_ui_formatted,
|
||||
pp.created_on AS created_date_sql_formatted
|
||||
DATE_FORMAT(pp.issued_date, '%d-%m-%Y') AS created_date_ui_formatted,
|
||||
pp.issued_date AS created_date_sql_formatted
|
||||
");
|
||||
$builder->join('partner_agent pa', '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); // raw SQL
|
||||
$builder->where("pp.issued_date >= $interval", null, false); // raw SQL
|
||||
$builder->groupBy('pa.id');
|
||||
$builder->orderBy('total_premium_amount', 'DESC');
|
||||
$builder->orderBy('created_date_sql_formatted', 'DESC');
|
||||
return $builder->get()->getResultArray();
|
||||
}
|
||||
|
||||
//Step 5.1
|
||||
public function productivityStaffWise($manager_id){
|
||||
|
||||
// Step 5
|
||||
public function staffWiseProductList($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,
|
||||
pa.sales_executive_id,
|
||||
pse.name as sales_executive_name,
|
||||
pse.id as PSE_sales_executive_id,
|
||||
pa.id,pp.manager_id,
|
||||
|
||||
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
THEN pp.client_policy_id
|
||||
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
|
||||
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
|
||||
");
|
||||
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,
|
||||
|
||||
pa.sales_executive_id,
|
||||
pse.name as sales_executive_name,
|
||||
pp.manager_id,
|
||||
pp.vehicle_type AS vechile_type,
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.client_policy_id
|
||||
END
|
||||
) AS total_policies_current_month,
|
||||
|
||||
SUM(
|
||||
CASE
|
||||
WHEN MONTH(pp.issued_date) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.issued_date) = YEAR(CURRENT_DATE())
|
||||
THEN pp.premium_amount ELSE 0
|
||||
END
|
||||
) AS total_premium_current_month,
|
||||
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
|
||||
THEN pp.client_policy_id
|
||||
END
|
||||
) AS total_policies_pre_month,
|
||||
|
||||
SUM(
|
||||
CASE
|
||||
WHEN pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < 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_agent pa', 'pa.id = pp.agent_id', 'left');
|
||||
$builder->join('partner_sales_executive pse', 'pse.id = pa.sales_executive_id', 'left');
|
||||
|
||||
// Date filters
|
||||
$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')
|
||||
pp.issued_date >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
AND pp.issued_date < DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01')
|
||||
", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
$builder->where('pa.sales_executive_id IS NOT NULL');
|
||||
$builder->where('pse.is_active',1);
|
||||
$builder->groupBy('pa.sales_executive_id');
|
||||
$builder->orderBy('pa.sales_executive_id');
|
||||
$builder->where('pp.manager_id', $manager_id);
|
||||
$builder->where('pa.sales_executive_id IS NOT NULL', null, false);
|
||||
$builder->where('pse.is_active', 1);
|
||||
|
||||
$query = $builder->get();
|
||||
$result = $query->getResultArray();
|
||||
return $result;
|
||||
// Group by sales exec + vehicle type
|
||||
$builder->groupBy("pa.sales_executive_id, pp.vehicle_type");
|
||||
$builder->orderBy("pa.sales_executive_id");
|
||||
|
||||
$rows = $builder->get()->getResultArray();
|
||||
|
||||
// Final compilation
|
||||
$final = [];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$se_id = $row['sales_executive_id'];
|
||||
|
||||
if (!isset($final[$se_id])) {
|
||||
$final[$se_id] = [
|
||||
"curr_month" => $row["curr_month"],
|
||||
"year_of_curr_month" => $row["year_of_curr_month"],
|
||||
"pre_month" => $row["pre_month"],
|
||||
"year_of_last_month" => $row["year_of_last_month"],
|
||||
|
||||
"sales_executive_id" => $row["sales_executive_id"],
|
||||
"sales_executive_name" => $row["sales_executive_name"],
|
||||
"manager_id" => $row["manager_id"],
|
||||
|
||||
"products_list" => [],
|
||||
"total_products" => 0
|
||||
];
|
||||
}
|
||||
|
||||
// Add each product entry
|
||||
$final[$se_id]["products_list"][] = [
|
||||
"vechile_type" => $row["vechile_type"],
|
||||
"total_policies_current_month" => $row["total_policies_current_month"],
|
||||
"total_premium_current_month" => $row["total_premium_current_month"],
|
||||
"total_policies_pre_month" => $row["total_policies_pre_month"],
|
||||
"total_premium_pre_month" => $row["total_premium_pre_month"]
|
||||
];
|
||||
}
|
||||
|
||||
// Add total_products count
|
||||
// foreach ($final as $key => $value) {
|
||||
// $final[$key]["total_products"] = count($value["products_list"]);
|
||||
// }
|
||||
|
||||
return array_values($final);
|
||||
}
|
||||
|
||||
|
||||
//Step 5.2
|
||||
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,
|
||||
pp.vehicle_type,
|
||||
pse.name as sales_executive_name,
|
||||
pse.id as PSE_sales_executive_id,
|
||||
pa.id,
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN MONTH(pp.created_on) = MONTH(CURRENT_DATE())
|
||||
AND YEAR(pp.created_on) = YEAR(CURRENT_DATE())
|
||||
THEN pp.client_policy_id
|
||||
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
|
||||
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->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->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('pa.sales_executive_id IS NOT NULL');
|
||||
$builder->where('pse.is_active',1);
|
||||
$builder->groupBy('pa.sales_executive_id,pp.vehicle_type');
|
||||
$builder->orderBy('pa.sales_executive_id');
|
||||
|
||||
$query = $builder->get();
|
||||
|
||||
$result = $query->getResultArray();
|
||||
return $result;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user