FIX_Download EXCEL With Additional Data 2 commit

This commit is contained in:
sanjeev.p 2025-12-16 18:01:03 +05:30
parent 53ea97a13f
commit 1a5666fa07

View File

@ -58,10 +58,14 @@ class ExcelExportController extends ResourceController
// $sheet->mergeCells("A1:{$lastCol}1");
$sheet->setCellValue('A1', $title);
$sheet->getStyle('A1')->getFont()->setBold(true);
$sheet->getStyle('A1')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
// 2. Headers (Row 2)
// $sheet->fromArray($header, NULL, 'A2')->getFont()->setBold(true);
$headerRange = 'A2:' . $lastCol . '2';
$sheet->fromArray($header, NULL, 'A2');
$sheet->getStyle($headerRange)->getFont()->setBold(true);
// 3. Data (Starting from Row 3)
// Note: The total row MUST be included in the $data array passed to this function.
@ -115,14 +119,13 @@ class ExcelExportController extends ResourceController
$data = $this->getBrokerPoliciesData($managerId, $brokerId, $month);
$header = ['Received Date',
'Assigned To_name',
$header = [
'Received Date', 'Assigned To',
'Partner Name' , 'Partner Code',
'Insurer Name' ,'Insurer Short Name',
'Insured Name',
'Vehicle Number',
'Payment Mode',
'Plan Type','Broker Name', 'Issue Date', 'Policy Number', 'Premium Amount'];
'Insured Name', 'Vehicle Number',
'Payment Mode', 'Plan Type',
'Broker Name', 'Issue Date', 'Policy Number', 'Premium Amount'];
@ -132,7 +135,7 @@ class ExcelExportController extends ResourceController
// Calculate and append total
$grandTotal = array_sum(array_column($data, 13));
$data[] = ['','','','','','','','','','','','Total:', $grandTotal]; // Column C (index 2) is 'Total:', Column D (index 3) is the value
$data[] = ['','','','','','','','','','','','','Total:', $grandTotal]; // Column C (index 2) is 'Total:', Column D (index 3) is the value
$monthName = ($month === 'current') ? date('M_Y') : date('M_Y', strtotime('-1 month'));
$brokerName = $data[0][10] ?? 'Broker';
@ -215,14 +218,13 @@ class ExcelExportController extends ResourceController
$data = $this->getProductPoliciesData($managerId, $vehicleType, $month);
// $header = ['Vehicle Type', 'Issue Date', 'Policy Number', 'Premium Amount'];
$header = ['Received Date',
'Assigned To_name',
$header = [
'Received Date', 'Assigned To',
'Partner Name' , 'Partner Code',
'Insurer Name' ,'Insurer Short Name',
'Insured Name',
'Vehicle Number',
'Payment Mode',
'Plan Type','Vehicle Type', 'Issue Date', 'Policy Number', 'Premium Amount'];
'Insured Name', 'Vehicle Number',
'Payment Mode', 'Plan Type',
'Vehicle Type', 'Issue Date', 'Policy Number', 'Premium Amount'];
if (empty($data)) {
throw new \RuntimeException('No policies found for this vehicle type...', 404);
@ -232,7 +234,7 @@ class ExcelExportController extends ResourceController
$data[] = ['','','','','','','','','','','','','Total:',$grandTotal]; // Column C is 'Total:', Column D is the value
$monthName = ($month === 'current') ? date('M_Y') : date('M_Y', strtotime('-1 month'));
$vehicleType = $data[0][0] ?? 'Vehicle';
$vehicleType = $data[0][10] ?? 'Vehicle';
$cleanVehicleType = str_replace(' ', '_', strtolower($vehicleType));
$fileName = $cleanVehicleType . '_Policies_Details_' . $monthName . '.xlsx';
@ -317,12 +319,12 @@ class ExcelExportController extends ResourceController
$data = $this->getInsurerPoliciesData($managerId, $insurerId, $month);
// Define column headers
$header = ['Received Date',
'Assigned To',
$header = [
'Received Date', 'Assigned To',
'Partner Name' , 'Partner Code',
'Vehicle Number',
'Payment Mode',
'Plan Type','Insurer Name', 'Insurer Short Name','Insured Name', 'Policy Issued Date','Policy Number', 'Premium Amount'];
'Payment Mode', 'Plan Type',
'Insurer Name', 'Insurer Short Name','Insured Name', 'Policy Issued Date','Policy Number', 'Premium Amount'];
// --- 1. MODIFIED LOGIC: Throw RuntimeException if no data ---
if (empty($data)) {
@ -333,7 +335,7 @@ class ExcelExportController extends ResourceController
$data[] = ['','','','','','','','','','','','Total:',$grandTotal];
$monthName = ($month === 'current') ? date('M_Y') : date('M_Y', strtotime('-1 month'));
$InsurerName = $data[0][0] ?? 'Insurer' ;
$InsurerName = $data[0][7] ?? 'Insurer' ;
$cleanInsurerName = str_replace(' ', '_', strtolower($InsurerName));
$fileName = $cleanInsurerName . '_Policies_Details_' . $monthName . '.xlsx';
@ -405,19 +407,24 @@ class ExcelExportController extends ResourceController
}
$data = $this->getLowPremiumAgentData($managerId);
$header = ['Partner Name', 'Partner Code','Partner Status' ,'Policy Number','Issued Date', 'Premium Amount'];
$header = [
'Received Date', 'Assigned To',
'Insurer Name' ,'Insurer Short Name',
'Insured Name', 'Vehicle Number',
'Payment Mode', 'Plan Type',
'Partner Name', 'Partner Code','Partner Status' ,'Policy Number','Issued Date', 'Premium Amount'];
if (empty($data)) {
throw new \RuntimeException('No low premium agents found...', 404);
}
$grandTotal = array_sum(array_column($data, 5));
$data[] = ['','','','','Total:', $grandTotal]; // Column E is 'Total:', Column F is the value
$grandTotal = array_sum(array_column($data, 13));
$data[] = ['','','','','','','','','','','','','Total:', $grandTotal]; // Column E is 'Total:', Column F is the value
// Note: $month variable is undefined, assuming you want current month for filename
$monthName = date('Ym');
$PartnerName = $data[0][0] ?? 'Partner';
$fileName = $PartnerName . '_Low_Premium_Details_' . $monthName . '.xlsx';
$monthName = date('M_Y');
$PartnerName = $data[0][8] ?? 'Partner';
$fileName = 'Partners_Low_Premium_Policy_Details.xlsx';
// --- CALL CENTRALIZED FUNCTION ---
$this->streamExcelFile(
@ -425,8 +432,8 @@ class ExcelExportController extends ResourceController
$data,
"Partners Low Premium Policy Details",
$fileName,
'E', // Total Label Column
'F' // Total Value Column
'M', // Total Label Column
'N' // Total Value Column
);
return;
@ -490,18 +497,23 @@ class ExcelExportController extends ResourceController
// Renamed helper function for consistency: getAgentMonthlyPoliciesData
$data = $this->getAgentMonthlyPoliciesData($managerId, $agentId); // , $month);
$header = ['Partner Name','Partner Code' , 'Policy Number','Issue Date', 'Premium Amount'];
$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'];
if (empty($data)) {
throw new \RuntimeException('No policies found for this agent for the specified month.', 404);
}
$grandTotal = array_sum(array_column($data, 4));
$data[] = ['','','','Total:',$grandTotal]; // Column D is 'Total:', Column E is the value
$grandTotal = array_sum(array_column($data, 12));
$data[] = ['','','','','','','','','','','','Total:',$grandTotal]; // Column D is 'Total:', Column E is the value
// $monthName = ($month === 'current') ? date('M_Y') : date('M_Y', strtotime('-1 month'));
$monthName = date('M_Y') ;
$PartnerName = $data[0][0] ?? 'Partner';
$monthName = date('M Y') ;
$PartnerName = $data[0][8] ?? 'Partner';
$cleanPartnerName = str_replace(' ', '_', strtolower($PartnerName));
$fileName = $cleanPartnerName . '_Policies_Details_' . $monthName . '.xlsx';
@ -511,8 +523,8 @@ class ExcelExportController extends ResourceController
$data,
"Partner Policies Details for {$monthName}",
$fileName,
'D', // Total Label Column
'E' // Total Value Column
'L', // Total Label Column
'M' // Total Value Column
);
return;
@ -662,14 +674,12 @@ class ExcelExportController extends ResourceController
$vehicleType = $data[0][12] ?? 'Vehicle Type';
// Define column headers
$header = ['Received Date',
'Assigned To_name',
$header = [
'Received Date', 'Assigned To',
'Partner Name' , 'Partner Code',
'Insurer Name' ,'Insurer Short Name',
'Insured Name',
'Vehicle Number',
'Payment Mode',
'Plan Type',
'Insured Name', 'Vehicle Number',
'Payment Mode', 'Plan Type',
'Sales Executive Name', 'Vehicle Type', 'Policy Number','Issued Date', 'Premium Amount'];
// --- 1. MODIFIED LOGIC: Throw RuntimeException if no data ---
@ -929,7 +939,7 @@ class ExcelExportController extends ResourceController
$builder->where('i.id', $insurerId);
$builder->where('i.is_active',1);
$builder->orderBy('pp.issued_date', 'DESC');
// print_r($builder->getCompiledSelect());die;
$results = $builder->get()->getResultArray();
// Restructure data for PhpSpreadsheet (2D array of values)
@ -1151,6 +1161,13 @@ class ExcelExportController extends ResourceController
$builder = $this->db->table('partner_policy pp');
$builder->select("
DATE_FORMAT(pe.created_on, '%d-%m-%Y %h:%i %p') AS received_date,
S.name as assigned_to_name,
I.name as insurer_name,I.short_name as insurer_short_name,
pe.name as insured_name,
pe.reg_no,
pm.value as payment_mode_value,
ipti.insurance_plan_type,
pa.name AS agent_name,
pa.agent_code,
CASE
@ -1163,6 +1180,15 @@ class ExcelExportController extends ResourceController
");
$builder->join('partner_agent pa', 'pa.id = pp.agent_id', 'inner');
$builder->join('partner_enquiry pe', 'pe.id = pp.enquiry_id', 'left');
$builder->join('partner_quotation Q', 'Q.enquiry_id = pe.id', 'left');
$builder->join('partner_payment_mode_master pm', 'pm.id = Q.payment_mode_id', 'left');
$builder->join('partner_insurance_plan_type_master ipti', 'ipti.id = Q.insurance_plan_type_id', 'left');
$builder->join('insurers I', 'I.id = Q.insurer_id', 'left');
$builder->join('partner_staff S', 'S.id = pe.assigned_to', 'left');
// WHERE conditions
$builder->where('pp.manager_id', $managerId);
// $builder->where('pa.id', $agentId);