From 9e9a99d69807bdf7676fada53fa1bdafd1f1f8ad Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Sat, 18 Apr 2026 18:50:16 +0530 Subject: [PATCH] GWM : commissionPayoutReportExport API --- app/Controllers/PolicyController.php | 65 +++++----------------------- 1 file changed, 12 insertions(+), 53 deletions(-) diff --git a/app/Controllers/PolicyController.php b/app/Controllers/PolicyController.php index 3dc1283..9a950cc 100644 --- a/app/Controllers/PolicyController.php +++ b/app/Controllers/PolicyController.php @@ -1800,8 +1800,9 @@ class PolicyController extends ResourceController $builder = $db->table('partner_policy pp'); $builder->select( 'pa.agent_code, pa.name AS agent_name, ' + . 'ins.short_name AS insurer_short_name, ipti.insurance_plan_type AS insurance_plan_type, ' . 'pp.policy_number AS policy_no, pp.premium_amount AS premium, ' - . 'pp.commission_amount, pe.reg_no, pp.weight, pp.fuel_type, ' + . 'pp.commission_amount, pp.insured_name, pe.reg_no, pp.weight, pp.fuel_type, ' . 'pp.vehicle_type, pp.issued_date' ); $builder->select( @@ -1828,6 +1829,9 @@ class PolicyController extends ResourceController ); $builder->join('partner_agent pa', 'pa.id = pp.agent_id', 'left'); $builder->join('partner_enquiry pe', 'pe.id = pp.enquiry_id', 'left'); + $builder->join('partner_quotation pq', 'pq.id = pp.quotation_id', 'left'); + $builder->join('insurers ins', 'ins.id = pq.insurer_id', 'left'); + $builder->join('partner_insurance_plan_type_master ipti', 'ipti.id = pq.insurance_plan_type_id', 'left'); $builder->where('pp.is_active', 1); if ($fromDate !== null) { @@ -1860,19 +1864,7 @@ class PolicyController extends ResourceController $rows = $builder->get()->getResultArray(); - // ── 3. Compute summary totals ───────────────────────────────────────── - $sumTotal = $sumRaised = $sumPending = 0.0; - foreach ($rows as $row) { - $amt = (float) ($row['commission_amount'] ?? 0); - $sumTotal += $amt; - if (($row['received_or_not'] ?? '') === 'yes') { - $sumRaised += $amt; - } else { - $sumPending += $amt; - } - } - - // ── 4. Build spreadsheet ────────────────────────────────────────────── + // ── 3. Build spreadsheet ────────────────────────────────────────────── $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('Payout Report'); @@ -1926,15 +1918,6 @@ class PolicyController extends ResourceController ], 'borders' => $cellBorder, ]; - $summaryLabelStyle = [ - 'font' => ['bold' => true, 'name' => 'Arial', 'size' => 10], - 'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT], - ]; - $summaryValueStyle = [ - 'font' => ['bold' => true, 'name' => 'Arial', 'size' => 10, 'color' => ['argb' => 'FF0070C0']], - 'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT], - ]; - // Total columns used: A–V (UTR NO + UTR DATE after PAYMENT PO MODE) $lastCol = 'V'; $lastColNo = 22; @@ -1988,7 +1971,7 @@ class PolicyController extends ResourceController 'Q3' => 'A+B (NET)', 'R3' => 'S.TAX', 'S3' => 'TOTAL', - 'T3' => "PAYMENT\nPO MODE", + 'T3' => "PAYMENT MODE", 'U3' => 'UTR NO', 'V3' => 'UTR DATE', ]; @@ -2009,7 +1992,7 @@ class PolicyController extends ResourceController foreach ($rows as $index => $row) { $refNo = $index + 1; - $policyNo = '`'.$row['policy_no'] ?? ''; + $policyNo = $row['policy_no'] ?? ''; $regNo = $row['reg_no'] ?? ''; $fuelType = $row['fuel_type'] ?? ''; $vehicleType = $row['vehicle_type'] ?? ''; @@ -2022,10 +2005,10 @@ class PolicyController extends ResourceController $rowData = [ 'A' => $refNo, - 'B' => $row['agent_code'] ?? '', // Insurer / agent code - 'C' => $vehicleType, // Plan type + 'B' => $row['insurer_short_name'] ?? '', + 'C' => $row['insurance_plan_type'] ?? '', 'D' => $policyNo, - 'E' => '', // Insured name – not in current query; extend if needed + 'E' => $row['insured_name'] ?? '', 'F' => $regNo, 'G' => $vehicleType, // Product (two-wheeler, etc.) 'H' => $fuelType, @@ -2057,30 +2040,6 @@ class PolicyController extends ResourceController $rowNum++; } - // ── Summary row ─────────────────────────────────────────────────────── - $summaryRow = $rowNum + 1; - $sheet->mergeCells("A{$summaryRow}:{$lastCol}{$summaryRow}"); - $sheet->setCellValue("A{$summaryRow}", 'TOTAL COMMISSION SUMMARY'); - $sheet->getStyle("A{$summaryRow}")->applyFromArray($summaryLabelStyle); - - $summaryRow++; - $sheet->setCellValue("A{$summaryRow}", 'Total Commission:'); - $sheet->setCellValue("B{$summaryRow}", round($sumTotal, 2)); - $sheet->getStyle("A{$summaryRow}")->applyFromArray($summaryLabelStyle); - $sheet->getStyle("B{$summaryRow}")->applyFromArray($summaryValueStyle); - - $summaryRow++; - $sheet->setCellValue("A{$summaryRow}", 'Raised (Invoiced):'); - $sheet->setCellValue("B{$summaryRow}", round($sumRaised, 2)); - $sheet->getStyle("A{$summaryRow}")->applyFromArray($summaryLabelStyle); - $sheet->getStyle("B{$summaryRow}")->applyFromArray($summaryValueStyle); - - $summaryRow++; - $sheet->setCellValue("A{$summaryRow}", 'Pending:'); - $sheet->setCellValue("B{$summaryRow}", round($sumPending, 2)); - $sheet->getStyle("A{$summaryRow}")->applyFromArray($summaryLabelStyle); - $sheet->getStyle("B{$summaryRow}")->applyFromArray($summaryValueStyle); - // ── Column widths ───────────────────────────────────────────────────── $colWidths = [ 'A' => 8, 'B' => 16, 'C' => 13, 'D' => 14, 'E' => 16, @@ -2096,7 +2055,7 @@ class PolicyController extends ResourceController // ── Freeze panes below header ───────────────────────────────────────── $sheet->freezePane('A4'); - // ── 5. Stream the file to the browser ───────────────────────────────── + // ── 4. Stream the file to the browser ───────────────────────────────── $filename = 'commission_payout_report_' . date('Ymd_His') . '.xlsx'; $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');