FIX_Export Excel Changes
This commit is contained in:
parent
c7bf8f8299
commit
17dd293e67
@ -661,38 +661,24 @@ class ExcelExportController extends ResourceController
|
||||
}
|
||||
|
||||
// Renamed helper function for consistency: getAgentMonthlyPoliciesData
|
||||
$data = $this->getMonthlyPoliciesData($managerId, null);
|
||||
|
||||
// $header = [
|
||||
// 'Received Date', 'Assigned To',
|
||||
// 'Insurer Name' ,'Insurer Short Name',
|
||||
// 'Insured Name', 'Vehicle Number',
|
||||
// 'Payment Mode', 'Plan Type',
|
||||
// 'Partner Name','Partner Code' , 'Policy Number','Issue Date', 'Premium Amount'];
|
||||
$data = $this->getMonthlyPolicyCountandPremiumAmount($managerId);
|
||||
$header = ['S.No', 'Partner Code', 'Partner Name', 'Policy Count', 'Premium Amount'];
|
||||
|
||||
if (empty($data)) {
|
||||
throw new \RuntimeException('No policies found.', 404);
|
||||
}
|
||||
|
||||
usort($data, function($a, $b) {
|
||||
return $a[12] <=> $b[12]; // Ascending order
|
||||
$lastIndex = count(reset($data)) - 1;
|
||||
usort($data, function($a, $b) use ($lastIndex) {
|
||||
return (float)$a[$lastIndex] <=> (float)$b[$lastIndex];
|
||||
});
|
||||
|
||||
$lastFiveData = array_slice($data, -5);
|
||||
$header = ['S.No','Issue Date', 'Partner Code', 'Partner Name', 'Policy Number', 'Premium Amount'];
|
||||
$finalData = [];
|
||||
$serialNo = 1;
|
||||
|
||||
foreach ($data as $row) {
|
||||
$finalData[] = array_merge([$serialNo++], $row);
|
||||
}
|
||||
|
||||
foreach ($lastFiveData as $row) {
|
||||
$finalData[] = [
|
||||
$serialNo++, // S.NO
|
||||
$row[8], // Issue Date
|
||||
$row[9], // Partner Name
|
||||
$row[10], // Partner Code
|
||||
$row[11], // Policy Number
|
||||
$row[12] // Premium Amount
|
||||
];
|
||||
}
|
||||
|
||||
// Calculate and append total
|
||||
$lastColIndex = count($header) - 1; // Get index of the last column (Premium)
|
||||
@ -1414,10 +1400,8 @@ class ExcelExportController extends ResourceController
|
||||
// 3. Where Conditions
|
||||
$builder->where('pp.manager_id', $managerId);
|
||||
$builder->where('pp.policy_number IS NOT NULL');
|
||||
|
||||
if ($AgentId) {
|
||||
$builder->where('pa.id', $AgentId);
|
||||
}
|
||||
$builder->where('pa.id', $AgentId);
|
||||
|
||||
|
||||
// Current Month Date Range Filter
|
||||
// if ($month === "current") {
|
||||
@ -1434,10 +1418,6 @@ class ExcelExportController extends ResourceController
|
||||
// 4. Order and Limit
|
||||
$builder->orderBy('pp.issued_date', 'DESC');
|
||||
|
||||
if (!$AgentId) {
|
||||
$builder->limit(50);
|
||||
}
|
||||
|
||||
// 5. Fetch and Restructure
|
||||
$results = $builder->get()->getResultArray();
|
||||
|
||||
@ -1454,6 +1434,51 @@ class ExcelExportController extends ResourceController
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
public function getMonthlyPolicyCountandPremiumAmount($manager_id){
|
||||
|
||||
$data = [];
|
||||
|
||||
try {
|
||||
$customDate = date('Y-m-d');
|
||||
|
||||
$builder = $this->db->table('partner_policy pp');
|
||||
|
||||
$builder->select("
|
||||
pa.agent_code,
|
||||
pa.name AS agent_name,
|
||||
COUNT(pp.policy_number) AS policy_count,
|
||||
SUM(pp.premium_amount) AS total_premium_amount
|
||||
");
|
||||
|
||||
$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.issued_date) = MONTH('$customDate')", null, false);
|
||||
$builder->where("YEAR(pp.issued_date) = YEAR('$customDate')", null, false);
|
||||
|
||||
$builder->where('pp.manager_id',$manager_id);
|
||||
|
||||
$builder->groupBy(['pa.id']);
|
||||
$builder->orderBy('policy_count', 'DESC');
|
||||
$builder->limit(50);
|
||||
|
||||
$results = $builder->get()->getResultArray();
|
||||
|
||||
// Restructure data for PhpSpreadsheet (2D array of values)
|
||||
foreach ($results as $row) {
|
||||
$data[] = array_values($row);
|
||||
}
|
||||
|
||||
} catch (DatabaseException $e) {
|
||||
log_message('error', 'Database Error during Excel fetch: ' . $e->getMessage());
|
||||
// Re-throw the exception so it is caught by the main function's catch block
|
||||
throw $e;
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the detailed policy query and extracts the data for the spreadsheet.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user