CHANGE_GPA_CLAIM_HISTORY_IN_EXCEL : RV
This commit is contained in:
parent
0d3f2b17f8
commit
2fde346d36
@ -1824,6 +1824,72 @@ class LeadsController extends BaseController
|
||||
$filename = "{$rfq_data['client_name']}_{$rfq_data['policy_type']}_{$string}_" . $policy_year . '_' . '.xlsx';
|
||||
}
|
||||
|
||||
//claim history new sheet;
|
||||
if (!empty($rfq_data['fin_years_claims'])) {
|
||||
|
||||
$claim_details = json_decode($rfq_data['fin_years_claims'], true) ?? [];
|
||||
|
||||
if (!empty($claim_details['finyear'])) {
|
||||
|
||||
// Get headers dynamically
|
||||
$headers = array_map(function ($key) {
|
||||
return ucwords(str_replace('_', ' ', $key));
|
||||
}, array_keys($claim_details['finyear'][0]));
|
||||
|
||||
$newSheet = new Worksheet($spreadsheet, 'Claims Experience');
|
||||
$spreadsheet->addSheet($newSheet);
|
||||
$spreadsheet->setActiveSheetIndexByName('Claims Experience');
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
// Set headers
|
||||
$sheet->fromArray($headers, NULL, 'A1');
|
||||
|
||||
// Apply background color and bold style to headers
|
||||
$headerCellRange = 'A1:' . chr(64 + count($headers)) . '1'; // e.g., A1:G1
|
||||
|
||||
$sheet->getStyle($headerCellRange)->getFont()->setBold(true);
|
||||
$sheet->getStyle($headerCellRange)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('ADD8E6');
|
||||
|
||||
// Add border to header
|
||||
$sheet->getStyle($headerCellRange)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
|
||||
|
||||
// Fill data and apply borders
|
||||
$row = 2;
|
||||
foreach ($claim_details['finyear'] as $record) {
|
||||
$col = 'A';
|
||||
foreach ($record as $value) {
|
||||
$label = ucwords(str_replace('_', ' ', ($value ?? "")));
|
||||
$sheet->setCellValue($col . $row, $label);
|
||||
$col++;
|
||||
}
|
||||
|
||||
// Apply border to each data row
|
||||
$sheet->getStyle('A' . $row . ':' . chr(64 + count($headers)) . $row)
|
||||
->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
|
||||
|
||||
$row++;
|
||||
}
|
||||
// Auto-size all columns based on header count
|
||||
for ($i = 0; $i < count($headers); $i++) {
|
||||
$colLetter = chr(65 + $i); // 'A', 'B', etc.
|
||||
$sheet->getColumnDimension($colLetter)->setAutoSize(true);
|
||||
}
|
||||
|
||||
// Enable wrap text for all cells
|
||||
$maxColLetter = chr(64 + count($headers)); // Last column letter
|
||||
$sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setWrapText(true);
|
||||
|
||||
// Optional: center vertically for neatness
|
||||
$sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
|
||||
|
||||
// Optional: Make row height auto (helps when wrap text is on)
|
||||
for ($i = 2; $i < $row; $i++) {
|
||||
$sheet->getRowDimension($i)->setRowHeight(-1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Save to temporary location
|
||||
$uploadFilePath = WRITEPATH . 'tmp/' . $filename;
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user