FEAT_CLAIM_HISTORY, NEW SHEET, EXCEL COSMETIC CHANGES
This commit is contained in:
parent
d81f9428ff
commit
9da41dc4a4
@ -42,6 +42,7 @@ use App\Controllers\Jobs;
|
|||||||
use App\Controllers\JobWorker;
|
use App\Controllers\JobWorker;
|
||||||
use Google\Service\FactCheckTools\Resource\Claims;
|
use Google\Service\FactCheckTools\Resource\Claims;
|
||||||
use GPBMetadata\Google\Type\Datetime;
|
use GPBMetadata\Google\Type\Datetime;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||||
|
|
||||||
class LeadsController extends BaseController
|
class LeadsController extends BaseController
|
||||||
{
|
{
|
||||||
@ -447,6 +448,7 @@ class LeadsController extends BaseController
|
|||||||
|
|
||||||
'source_policy_start_date' => $data['source_policy_start_date'] ?? null,
|
'source_policy_start_date' => $data['source_policy_start_date'] ?? null,
|
||||||
'source_policy_end_date' => $data['source_policy_end_date'] ?? null,
|
'source_policy_end_date' => $data['source_policy_end_date'] ?? null,
|
||||||
|
'claim_history' => $data['claim_history']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
// print_r($processedData);die();
|
// print_r($processedData);die();
|
||||||
@ -1143,7 +1145,6 @@ class LeadsController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $this->respond(['status' => true, 'message' => 'Removed successfully'], 200);
|
return $this->respond(['status' => true, 'message' => 'Removed successfully'], 200);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----RFQ and QCR EXPORT------------------------------------------------------------------------------------------------
|
//-----RFQ and QCR EXPORT------------------------------------------------------------------------------------------------
|
||||||
@ -1242,7 +1243,6 @@ class LeadsController extends BaseController
|
|||||||
'Policy Type' => $this->leadType[$rfq_data['lead_type']] ?? "",
|
'Policy Type' => $this->leadType[$rfq_data['lead_type']] ?? "",
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (in_array($rfq_data['policy_type_id'], [2, 3, 4, 5])) {
|
if (in_array($rfq_data['policy_type_id'], [2, 3, 4, 5])) {
|
||||||
$lead_data = [
|
$lead_data = [
|
||||||
@ -1296,6 +1296,7 @@ class LeadsController extends BaseController
|
|||||||
list($proposal_key, $insurer_key) = explode('-', $propsal_and_insurer, 2);
|
list($proposal_key, $insurer_key) = explode('-', $propsal_and_insurer, 2);
|
||||||
$data = $this->transformProposelData($data, $proposal_key, $insurer_key);
|
$data = $this->transformProposelData($data, $proposal_key, $insurer_key);
|
||||||
$is_placement = true;
|
$is_placement = true;
|
||||||
|
$sheetName = 'Placement';
|
||||||
}
|
}
|
||||||
} else if ($type == 1) {
|
} else if ($type == 1) {
|
||||||
$sheetName = 'RFQ';
|
$sheetName = 'RFQ';
|
||||||
@ -2354,7 +2355,6 @@ class LeadsController extends BaseController
|
|||||||
->where(['contact_type' => 'insurer', 'is_active' => 1])
|
->where(['contact_type' => 'insurer', 'is_active' => 1])
|
||||||
->whereIn('id', $recipient_mail)
|
->whereIn('id', $recipient_mail)
|
||||||
->findAll();
|
->findAll();
|
||||||
|
|
||||||
} else if ($recipient_type == 'client') {
|
} else if ($recipient_type == 'client') {
|
||||||
|
|
||||||
$mailIDS = explode(',', $params['contact_mail']);
|
$mailIDS = explode(',', $params['contact_mail']);
|
||||||
@ -2449,7 +2449,6 @@ class LeadsController extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($recipient_type == 'client') {
|
if ($recipient_type == 'client') {
|
||||||
@ -3078,7 +3077,6 @@ class LeadsController extends BaseController
|
|||||||
if (strpos($tableGroup['tableId'], 'summary') !== false) {
|
if (strpos($tableGroup['tableId'], 'summary') !== false) {
|
||||||
$policy_type = explode('_', $tableGroup['tableId'])[0] ?? '';
|
$policy_type = explode('_', $tableGroup['tableId'])[0] ?? '';
|
||||||
$finalItem = $policy_type . ' - ' . $item;
|
$finalItem = $policy_type . ' - ' . $item;
|
||||||
|
|
||||||
}
|
}
|
||||||
$terms_array[$finalItem] = $value;
|
$terms_array[$finalItem] = $value;
|
||||||
}
|
}
|
||||||
@ -3349,7 +3347,11 @@ class LeadsController extends BaseController
|
|||||||
public function constructNonEbExcelToSaveTemp($lead_id, $type, $propsal_and_insurer = null)
|
public function constructNonEbExcelToSaveTemp($lead_id, $type, $propsal_and_insurer = null)
|
||||||
{
|
{
|
||||||
$rfq_data = $this->RFQModel->getRFQTableDataWithLeadIDAndType($lead_id, $type);
|
$rfq_data = $this->RFQModel->getRFQTableDataWithLeadIDAndType($lead_id, $type);
|
||||||
|
$claim_history = $rfq_data['claim_history'];
|
||||||
|
// dd($claim_history);
|
||||||
$lead_data = json_decode($rfq_data['custom_fields'], true) ?? [];
|
$lead_data = json_decode($rfq_data['custom_fields'], true) ?? [];
|
||||||
|
$lead_data['claim_history'] = $claim_history;
|
||||||
|
// dd($lead_data);
|
||||||
if (!is_array($lead_data)) {
|
if (!is_array($lead_data)) {
|
||||||
$lead_data = [];
|
$lead_data = [];
|
||||||
}
|
}
|
||||||
@ -3359,29 +3361,67 @@ class LeadsController extends BaseController
|
|||||||
if (isset($rfq_data['registration_json']) && !empty($rfq_data['registration_json'])) {
|
if (isset($rfq_data['registration_json']) && !empty($rfq_data['registration_json'])) {
|
||||||
$policy_registration_data = json_decode($rfq_data['registration_json'], true);
|
$policy_registration_data = json_decode($rfq_data['registration_json'], true);
|
||||||
}
|
}
|
||||||
// dd($policy_registration_data);
|
|
||||||
|
|
||||||
// if(!empty($rfq_data['fin_years_claims'])){
|
|
||||||
// $claim_details = json_decode($rfq_data['fin_years_claims'], true) ?? [];
|
|
||||||
// if(!empty($claim_details['finyear'])){
|
|
||||||
// $lead_data['claim_details'] = $claim_details['finyear'];
|
|
||||||
// }
|
|
||||||
// Kint::dump($claim_details);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
$jsonData = json_decode($rfq_data['json'], true);
|
$jsonData = json_decode($rfq_data['json'], true);
|
||||||
$proposalData = end($jsonData);
|
$proposalData = end($jsonData);
|
||||||
array_pop($jsonData);
|
array_pop($jsonData);
|
||||||
|
$length = 0;
|
||||||
|
// dd($jsonData[0]['table_data']['headers']);
|
||||||
|
foreach ($jsonData as $key => $data) {
|
||||||
|
if ($type == 2) {
|
||||||
|
|
||||||
|
$data = $this->convertNonEbJsonForQCR($data, $type, $proposalData, $key);
|
||||||
|
|
||||||
|
// Kint::dump($data, 'Second');
|
||||||
|
|
||||||
|
if ($propsal_and_insurer !== null) {
|
||||||
|
list($proposal_key, $insurer_key) = explode('-', $propsal_and_insurer, 2);
|
||||||
|
$data = $this->transformNonEbProposelData($data, $proposal_key, $insurer_key, $key);
|
||||||
|
}
|
||||||
|
unset($data['proposalData']);
|
||||||
|
} else if ($type == 1) {
|
||||||
|
$data = $this->convertNonEbJsonForQCR($data, $type, $proposalData, $key);
|
||||||
|
unset($data['proposalData']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// dd($data);
|
||||||
|
foreach ($data['table_data']['headers'] as $header) {
|
||||||
|
if ($header['parentHeader'] != "Action") {
|
||||||
|
foreach ($header['subHeaders'] as $subHeader) {
|
||||||
|
// Kint::dump($header['parentHeader']);
|
||||||
|
// Kint::dump($subHeader);
|
||||||
|
|
||||||
|
$length++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// dd($length);
|
||||||
|
$columnLetterForTitle = Coordinate::stringFromColumnIndex($length - 1);
|
||||||
|
$columnLetterForImage = Coordinate::stringFromColumnIndex($length);
|
||||||
|
|
||||||
|
// dd($columnLetter);
|
||||||
|
$sheetName = 'Worksheet';
|
||||||
|
if ($type == 2) {
|
||||||
|
$sheetName = 'QCR';
|
||||||
|
if ($propsal_and_insurer !== null) {
|
||||||
|
$sheetName = 'Placement';
|
||||||
|
}
|
||||||
|
} else if ($type == 1) {
|
||||||
|
$sheetName = 'RFQ';
|
||||||
|
}
|
||||||
|
|
||||||
$spreadsheet = new Spreadsheet();
|
$spreadsheet = new Spreadsheet();
|
||||||
$sheet = $spreadsheet->getActiveSheet();
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
|
$sheet->setTitle($sheetName);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Start with lead_data at the top
|
// Start with lead_data at the top
|
||||||
$rowNumber = 1;
|
$rowNumber = 1;
|
||||||
|
|
||||||
$title = "Nhance India Insurance Broking Pvt Ltd";
|
$title = "Nhance India Insurance Broking Pvt Ltd";
|
||||||
$mergeRange1 = "A{$rowNumber}:B{$rowNumber}";
|
$mergeRange1 = "A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}";
|
||||||
$sheet->mergeCells($mergeRange1);
|
$sheet->mergeCells($mergeRange1);
|
||||||
$sheet->setCellValue("A{$rowNumber}", $title);
|
$sheet->setCellValue("A{$rowNumber}", $title);
|
||||||
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
||||||
@ -3398,24 +3438,25 @@ class LeadsController extends BaseController
|
|||||||
// Calculate title width
|
// Calculate title width
|
||||||
$maxWidthA = mb_strlen($title);
|
$maxWidthA = mb_strlen($title);
|
||||||
|
|
||||||
|
// dd($columnLetterForImage);
|
||||||
// Set column width to fit the image properly
|
// Set column width to fit the image properly
|
||||||
$sheet->getColumnDimension('C')->setWidth(20); // Adjust as needed
|
$sheet->getColumnDimension($columnLetterForImage)->setWidth(20); // Adjust as needed
|
||||||
$sheet->getRowDimension($rowNumber)->setRowHeight(40); // Adjust as needed
|
$sheet->getRowDimension($rowNumber)->setRowHeight(40); // Adjust as needed
|
||||||
|
|
||||||
$drawing = new Drawing();
|
$drawing = new Drawing();
|
||||||
$path = ROOTPATH . "public/assets/images/Nhance-Logo-Final.png"; // Use FCPATH for server path
|
$path = ROOTPATH . "public/assets/images/Nhance-Logo-Final.png"; // Use FCPATH for server path
|
||||||
$drawing->setPath($path);
|
$drawing->setPath($path);
|
||||||
$drawing->setCoordinates("C{$rowNumber}"); // Set position in column C
|
$drawing->setCoordinates("{$columnLetterForImage}{$rowNumber}"); // Set position in column C
|
||||||
$drawing->setHeight(35); // Adjust image height
|
$drawing->setHeight(35); // Adjust image height
|
||||||
|
|
||||||
// Center align the image in the cell
|
// Center align the image in the cell
|
||||||
$drawing->setOffsetX(30); // Adjust horizontal offset
|
$drawing->setOffsetX(50); // Adjust horizontal offset
|
||||||
$drawing->setOffsetY(5); // Adjust vertical offset
|
$drawing->setOffsetY(5); // Adjust vertical offset
|
||||||
$drawing->setWorksheet($sheet);
|
$drawing->setWorksheet($sheet);
|
||||||
|
|
||||||
// Apply center alignment to the cell
|
// Apply center alignment to the cell
|
||||||
$sheet->getStyle("C{$rowNumber}")->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
|
$sheet->getStyle("{$columnLetterForImage}{$rowNumber}")->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
|
||||||
$sheet->getStyle("C{$rowNumber}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
|
$sheet->getStyle("{$columnLetterForImage}{$rowNumber}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
|
||||||
|
|
||||||
$rowNumber++;
|
$rowNumber++;
|
||||||
|
|
||||||
@ -3424,15 +3465,31 @@ class LeadsController extends BaseController
|
|||||||
|
|
||||||
//Lead Data
|
//Lead Data
|
||||||
foreach ($lead_data as $key => $value) {
|
foreach ($lead_data as $key => $value) {
|
||||||
|
|
||||||
|
// if ($key == 'risk_location') {
|
||||||
|
// $key == 'risk_details';
|
||||||
|
// }
|
||||||
|
// Kint::dump($key);
|
||||||
|
// Kint::dump($value);
|
||||||
$formattedKey = ucwords(str_replace('_', ' ', $key));
|
$formattedKey = ucwords(str_replace('_', ' ', $key));
|
||||||
|
$formattedKey = $formattedKey == "Risk Location" ? "Risk Details" : $formattedKey;
|
||||||
|
$formattedKey = $formattedKey == "Address" ? "Communication Address" : $formattedKey;
|
||||||
|
$formattedValue = ucwords(str_replace("_", " ", $value));
|
||||||
|
|
||||||
|
if ($key == "claim_history") {
|
||||||
|
|
||||||
|
$formattedValue = $value == "1" ? "Yes" : "No";
|
||||||
|
|
||||||
|
}
|
||||||
|
// Kint::dump($formattedValue);
|
||||||
|
|
||||||
// Merge A:B for key
|
// Merge A:B for key
|
||||||
$mergeRangeKey = "A{$rowNumber}:B{$rowNumber}";
|
$mergeRangeKey = "A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}";
|
||||||
$sheet->mergeCells($mergeRangeKey);
|
$sheet->mergeCells($mergeRangeKey);
|
||||||
|
|
||||||
// Set values in merged cells
|
// Set values in merged cells
|
||||||
$sheet->setCellValue("A{$rowNumber}", $formattedKey);
|
$sheet->setCellValue("A{$rowNumber}", $formattedKey);
|
||||||
$sheet->setCellValue("C{$rowNumber}", $value);
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", $formattedValue);
|
||||||
|
|
||||||
// Apply styles for alignment and bold text in A:B
|
// Apply styles for alignment and bold text in A:B
|
||||||
$sheet->getStyle($mergeRangeKey)->applyFromArray([
|
$sheet->getStyle($mergeRangeKey)->applyFromArray([
|
||||||
@ -3453,16 +3510,22 @@ class LeadsController extends BaseController
|
|||||||
// Track max width needed for columns
|
// Track max width needed for columns
|
||||||
$maxWidthA = max($maxWidthA, mb_strlen($formattedKey)); // Consider title and keys
|
$maxWidthA = max($maxWidthA, mb_strlen($formattedKey)); // Consider title and keys
|
||||||
$maxWidthB = max($maxWidthB, mb_strlen((string) $value));
|
$maxWidthB = max($maxWidthB, mb_strlen((string) $value));
|
||||||
|
// if (!empty($policy_registration_data)) {
|
||||||
|
// dd($policy_registration_data);
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
$rowNumber++;
|
$rowNumber++;
|
||||||
}
|
}
|
||||||
|
// die();
|
||||||
|
|
||||||
|
|
||||||
// Set column width based on max content length (adjusted for padding)
|
// Set column width based on max content length (adjusted for padding)
|
||||||
$sheet->getColumnDimension('A')->setWidth($maxWidthA * 1.2);
|
$sheet->getColumnDimension('A')->setWidth($maxWidthA * 1.2);
|
||||||
$sheet->getColumnDimension('B')->setWidth($maxWidthA * 1.2);
|
// $sheet->getColumnDimension('B')->setWidth($maxWidthA * 1.2);
|
||||||
$sheet->getColumnDimension('C')->setWidth($maxWidthB * 1.2);
|
// $sheet->getColumnDimension('C')->setWidth($maxWidthB * 1.2);
|
||||||
|
|
||||||
$rowNumber += 1;
|
// $rowNumber += 1;
|
||||||
//Policy Registration
|
//Policy Registration
|
||||||
if (!empty($policy_registration_data)) {
|
if (!empty($policy_registration_data)) {
|
||||||
foreach ($policy_registration_data as $key => $value) {
|
foreach ($policy_registration_data as $key => $value) {
|
||||||
@ -3470,7 +3533,7 @@ class LeadsController extends BaseController
|
|||||||
$startRow = $rowNumber; // Track where the block starts
|
$startRow = $rowNumber; // Track where the block starts
|
||||||
|
|
||||||
// Title Row
|
// Title Row
|
||||||
$titleMergeRangeKey = "A{$rowNumber}:C{$rowNumber}";
|
$titleMergeRangeKey = "A{$rowNumber}:{$columnLetterForImage}{$rowNumber}";
|
||||||
$sheet->mergeCells($titleMergeRangeKey);
|
$sheet->mergeCells($titleMergeRangeKey);
|
||||||
$sheet->setCellValue("A{$rowNumber}", ucfirst($key) . " Policy Details");
|
$sheet->setCellValue("A{$rowNumber}", ucfirst($key) . " Policy Details");
|
||||||
|
|
||||||
@ -3491,9 +3554,9 @@ class LeadsController extends BaseController
|
|||||||
|
|
||||||
// Policy Type
|
// Policy Type
|
||||||
if (isset($value['policyType'])) {
|
if (isset($value['policyType'])) {
|
||||||
$sheet->mergeCells("A{$rowNumber}:B{$rowNumber}");
|
$sheet->mergeCells("A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}");
|
||||||
$sheet->setCellValue("A{$rowNumber}", "Policy Type");
|
$sheet->setCellValue("A{$rowNumber}", "Policy Type");
|
||||||
$sheet->setCellValue("C{$rowNumber}", $value['policyType']);
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", $value['policyType']);
|
||||||
|
|
||||||
$sheet->getStyle("A{$rowNumber}:C{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("A{$rowNumber}:C{$rowNumber}")->applyFromArray([
|
||||||
'font' => ['bold' => true],
|
'font' => ['bold' => true],
|
||||||
@ -3505,9 +3568,9 @@ class LeadsController extends BaseController
|
|||||||
|
|
||||||
$rowNumber++;
|
$rowNumber++;
|
||||||
} else {
|
} else {
|
||||||
$sheet->mergeCells("A{$rowNumber}:B{$rowNumber}");
|
$sheet->mergeCells("A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}");
|
||||||
$sheet->setCellValue("A{$rowNumber}", "Policy Type");
|
$sheet->setCellValue("A{$rowNumber}", "Policy Type");
|
||||||
$sheet->setCellValue("C{$rowNumber}", ucfirst($key) . " Policy");
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", ucfirst($key) . " Policy");
|
||||||
|
|
||||||
$sheet->getStyle("A{$rowNumber}:C{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("A{$rowNumber}:C{$rowNumber}")->applyFromArray([
|
||||||
'font' => ['bold' => true],
|
'font' => ['bold' => true],
|
||||||
@ -3523,9 +3586,9 @@ class LeadsController extends BaseController
|
|||||||
// Type of Business & Nature of Business
|
// Type of Business & Nature of Business
|
||||||
if (isset($value['productSelection']) && !empty($value['productSelection'])) {
|
if (isset($value['productSelection']) && !empty($value['productSelection'])) {
|
||||||
// Type of Business
|
// Type of Business
|
||||||
$sheet->mergeCells("A{$rowNumber}:B{$rowNumber}");
|
$sheet->mergeCells("A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}");
|
||||||
$sheet->setCellValue("A{$rowNumber}", "Type of Business");
|
$sheet->setCellValue("A{$rowNumber}", "Type of Business");
|
||||||
$sheet->setCellValue("C{$rowNumber}", $this->buisnessType[$value['productSelection']['type_of_buisness']] ?? '');
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", $this->buisnessType[$value['productSelection']['type_of_buisness']] ?? '');
|
||||||
|
|
||||||
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
||||||
'font' => ['bold' => true],
|
'font' => ['bold' => true],
|
||||||
@ -3538,9 +3601,9 @@ class LeadsController extends BaseController
|
|||||||
$rowNumber++;
|
$rowNumber++;
|
||||||
|
|
||||||
// Nature of Business
|
// Nature of Business
|
||||||
$sheet->mergeCells("A{$rowNumber}:B{$rowNumber}");
|
$sheet->mergeCells("A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}");
|
||||||
$sheet->setCellValue("A{$rowNumber}", "Nature of Business");
|
$sheet->setCellValue("A{$rowNumber}", "Nature of Business");
|
||||||
$sheet->setCellValue("C{$rowNumber}", $value['productSelection']['buisness_nature'] ?? '');
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", $value['productSelection']['buisness_nature'] ?? '');
|
||||||
|
|
||||||
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
||||||
'font' => ['bold' => true],
|
'font' => ['bold' => true],
|
||||||
@ -3555,9 +3618,9 @@ class LeadsController extends BaseController
|
|||||||
|
|
||||||
if (isset($value['policyDetails']) && !empty($value['policyDetails'])) {
|
if (isset($value['policyDetails']) && !empty($value['policyDetails'])) {
|
||||||
// Type of Business
|
// Type of Business
|
||||||
$sheet->mergeCells("A{$rowNumber}:B{$rowNumber}");
|
$sheet->mergeCells("A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}");
|
||||||
$sheet->setCellValue("A{$rowNumber}", "Terrorism");
|
$sheet->setCellValue("A{$rowNumber}", "Terrorism");
|
||||||
$sheet->setCellValue("C{$rowNumber}", ucfirst($value['policyDetails']['terrorism'] ?? 'No'));
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", ucfirst($value['policyDetails']['terrorism'] ?? 'No'));
|
||||||
|
|
||||||
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
||||||
'font' => ['bold' => true],
|
'font' => ['bold' => true],
|
||||||
@ -3568,13 +3631,40 @@ class LeadsController extends BaseController
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$rowNumber++;
|
$rowNumber++;
|
||||||
|
}
|
||||||
|
if (!empty($value['locations'])) {
|
||||||
|
|
||||||
|
foreach ($value['locations'] as $index => $location) {
|
||||||
|
// Merge title cell
|
||||||
|
$sheet->mergeCells("A{$rowNumber}:{$columnLetterForTitle}{$rowNumber}");
|
||||||
|
$sheet->setCellValue("A{$rowNumber}", "Risk " . ($location['select_location'] ?? 'Unknown'));
|
||||||
|
|
||||||
|
// Clean and safe address string
|
||||||
|
$address1 = ucfirst($location['policyRisk']['address1'] ?? '');
|
||||||
|
$address2 = ucfirst($location['policyRisk']['address2'] ?? '');
|
||||||
|
$pinCode = $location['policyRisk']['pin_code'] ?? 'No';
|
||||||
|
|
||||||
|
$fullAddress = "{$address1}, {$address2}, {$pinCode}";
|
||||||
|
$sheet->setCellValue("{$columnLetterForImage}{$rowNumber}", $fullAddress);
|
||||||
|
|
||||||
|
// Style the title cell
|
||||||
|
$sheet->getStyle("A{$rowNumber}")->applyFromArray([
|
||||||
|
'font' => ['bold' => true],
|
||||||
|
'alignment' => [
|
||||||
|
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
|
||||||
|
'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
$rowNumber++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$endRow = $rowNumber - 1; // Block ends at previous row
|
|
||||||
|
$endRow = $rowNumber; // Block ends at previous row
|
||||||
|
|
||||||
// Apply border to the whole block
|
// Apply border to the whole block
|
||||||
$sheet->getStyle("A{$startRow}:C{$endRow}")->applyFromArray([
|
$sheet->getStyle("A{$startRow}:{$columnLetterForImage}{$endRow}")->applyFromArray([
|
||||||
'borders' => [
|
'borders' => [
|
||||||
'allBorders' => [
|
'allBorders' => [
|
||||||
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
|
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
|
||||||
@ -3583,8 +3673,9 @@ class LeadsController extends BaseController
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$rowNumber += 1; // Add space before the next block
|
// $rowNumber += 1; // Add space before the next block
|
||||||
}
|
}
|
||||||
|
$rowNumber--;
|
||||||
// die();
|
// die();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3645,7 +3736,7 @@ class LeadsController extends BaseController
|
|||||||
|
|
||||||
$startColumn = $columnLetter; // Start of the current header range
|
$startColumn = $columnLetter; // Start of the current header range
|
||||||
$subHeaderCount = count($header['subHeaders']); // Number of subheaders for this parent header
|
$subHeaderCount = count($header['subHeaders']); // Number of subheaders for this parent header
|
||||||
|
// Kint::dump($subHeaderCount);
|
||||||
// Set parent header value
|
// Set parent header value
|
||||||
$sheet->setCellValue("{$startColumn}{$rowNumber}", $header['parentHeader']);
|
$sheet->setCellValue("{$startColumn}{$rowNumber}", $header['parentHeader']);
|
||||||
$sheet->getStyle("{$startColumn}{$rowNumber}")->applyFromArray([
|
$sheet->getStyle("{$startColumn}{$rowNumber}")->applyFromArray([
|
||||||
@ -3668,6 +3759,7 @@ class LeadsController extends BaseController
|
|||||||
$endColumn = $startColumn; // No merge needed if only one subheader
|
$endColumn = $startColumn; // No merge needed if only one subheader
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Kint::dump($header);
|
||||||
// Add subheaders
|
// Add subheaders
|
||||||
foreach ($header['subHeaders'] as $subHeader) {
|
foreach ($header['subHeaders'] as $subHeader) {
|
||||||
$sheet->setCellValue("{$columnLetter}{$subHeaderRow}", $subHeader);
|
$sheet->setCellValue("{$columnLetter}{$subHeaderRow}", $subHeader);
|
||||||
@ -3700,7 +3792,6 @@ class LeadsController extends BaseController
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
// Apply border to the header range
|
// Apply border to the header range
|
||||||
$prevColumn4 = $this->getPreviousColumn($columnLetter);
|
$prevColumn4 = $this->getPreviousColumn($columnLetter);
|
||||||
$headerRange = "A{$rowNumber}:" . "{$prevColumn4}" . "{$subHeaderRow}";
|
$headerRange = "A{$rowNumber}:" . "{$prevColumn4}" . "{$subHeaderRow}";
|
||||||
@ -3820,7 +3911,7 @@ class LeadsController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$lastRow = count($lead_data) + 1;
|
$lastRow = count($lead_data) + 1;
|
||||||
$leadRange = "A1:C{$lastRow}";
|
$leadRange = "A1:{$columnLetterForImage}{$lastRow}";
|
||||||
|
|
||||||
$sheet->getStyle($leadRange)->applyFromArray([
|
$sheet->getStyle($leadRange)->applyFromArray([
|
||||||
'borders' => [
|
'borders' => [
|
||||||
@ -3832,6 +3923,70 @@ class LeadsController extends BaseController
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
||||||
|
$sheet->setCellValue($col . $row, $value);
|
||||||
|
$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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// dd($rowNumber);
|
// dd($rowNumber);
|
||||||
// Set filename
|
// Set filename
|
||||||
$string = ($type == 2) ? 'QCR' : 'RFQ';
|
$string = ($type == 2) ? 'QCR' : 'RFQ';
|
||||||
@ -3994,11 +4149,11 @@ class LeadsController extends BaseController
|
|||||||
// Ensure 'subHeaders' exists and is an array before filtering
|
// Ensure 'subHeaders' exists and is an array before filtering
|
||||||
if (isset($header['subHeaders']) && is_array($header['subHeaders'])) {
|
if (isset($header['subHeaders']) && is_array($header['subHeaders'])) {
|
||||||
$header['subHeaders'] = array_filter($header['subHeaders'], function ($subHeader) {
|
$header['subHeaders'] = array_filter($header['subHeaders'], function ($subHeader) {
|
||||||
return in_array($subHeader, ['Quote asked', '-'], true);
|
return in_array($subHeader, ['Sum Insured', '-'], true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Kint::dump($header);
|
||||||
//Remove insurer Row wise data for RFQ
|
//Remove insurer Row wise data for RFQ
|
||||||
$groupedRows = [];
|
$groupedRows = [];
|
||||||
foreach ($first_json['table_data']['data'] as &$row) {
|
foreach ($first_json['table_data']['data'] as &$row) {
|
||||||
|
|||||||
@ -97,6 +97,7 @@ class LeadsModel extends Model
|
|||||||
'is_installment',
|
'is_installment',
|
||||||
'no_of_installment',
|
'no_of_installment',
|
||||||
'is_policy_created',
|
'is_policy_created',
|
||||||
|
'claim_history'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -300,7 +300,8 @@
|
|||||||
|
|
||||||
<div id="appendArea"></div>
|
<div id="appendArea"></div>
|
||||||
|
|
||||||
<div id="appendAreaForClaim"></div>
|
<div id="appendAreaForClaim">
|
||||||
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
@ -528,6 +529,9 @@
|
|||||||
console.log('finyearJsonString', finyearJsonString);
|
console.log('finyearJsonString', finyearJsonString);
|
||||||
formData.append('fin_years_claims', finyearJsonString);
|
formData.append('fin_years_claims', finyearJsonString);
|
||||||
|
|
||||||
|
cliam_history_status = $("#claim_history").prop("checked") ? 1 : 0;
|
||||||
|
|
||||||
|
formData.append('claim_history',cliam_history_status);
|
||||||
|
|
||||||
// Append the JSON string to the FormData object
|
// Append the JSON string to the FormData object
|
||||||
formData.append('salse_person_id', jsonString);
|
formData.append('salse_person_id', jsonString);
|
||||||
@ -879,9 +883,15 @@
|
|||||||
|
|
||||||
function appendThreeYearsClaims() {
|
function appendThreeYearsClaims() {
|
||||||
|
|
||||||
let claimsFields = `
|
let claimsFields = `${!document.querySelector('#claim_history') ? `<div class="custom-control custom-switch">
|
||||||
|
<input type="checkbox" onchange="claimHistoryToggle()" class="custom-control-input" id="claim_history" name="claim_history" checked />
|
||||||
|
<label class="custom-control-label" for="claim_history">Claims History</label>
|
||||||
|
</div><br>`: ``}`
|
||||||
|
|
||||||
<div class="row claim-row">
|
claimsFields += `
|
||||||
|
|
||||||
|
|
||||||
|
<div id = "claimHistoryRow" class="row claim-row">
|
||||||
|
|
||||||
<div class="form-group col-md-2">
|
<div class="form-group col-md-2">
|
||||||
<label for="first_year_${increment}">Year<span class="text-danger">*</span></label>
|
<label for="first_year_${increment}">Year<span class="text-danger">*</span></label>
|
||||||
@ -990,4 +1000,22 @@
|
|||||||
return jsonString;
|
return jsonString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function claimHistoryToggle() {
|
||||||
|
cliam_history_status = $("#claim_history").prop("checked") ? 1 : 0;
|
||||||
|
// alert(cliam_history_status);
|
||||||
|
if (cliam_history_status == 1) {
|
||||||
|
if ($(".claim-row").length > 0) {
|
||||||
|
// Rows already exist, just show them
|
||||||
|
$(".claim-row").show();
|
||||||
|
} else {
|
||||||
|
// No rows yet, so create them
|
||||||
|
appendThreeYearsClaims();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$(".claim-row").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@ -1,5 +1,13 @@
|
|||||||
<?php if(isset($lead_edit_data)) {
|
<?php if(isset($lead_edit_data)) {
|
||||||
$claims = !empty($lead_edit_data['fin_years_claims_array']) ? $lead_edit_data['fin_years_claims_array'] : [ ['year' => '', 'claim_amount' => '', 'status' => '', 'claim_type' => '', 'cause_of_death' => '', 'death_date' => ''] ];
|
$claims = !empty($lead_edit_data['fin_years_claims_array']) ? $lead_edit_data['fin_years_claims_array'] : [ ['year' => '', 'claim_amount' => '', 'status' => '', 'claim_type' => '', 'cause_of_death' => '', 'death_date' => ''] ];
|
||||||
|
?>
|
||||||
|
<div class="custom-control custom-switch">
|
||||||
|
<input type="checkbox" onchange="claimHistoryToggle()" class="custom-control-input" id="claim_history" name="claim_history" <?= $lead_edit_data['claim_history'] == 1 ? "checked" : "" ?> />
|
||||||
|
<label class="custom-control-label" for="claim_history">Claims History</label>
|
||||||
|
</div><br>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if ($lead_edit_data['claim_history'] == 1) {
|
||||||
foreach ($claims as $key => $value) { ?>
|
foreach ($claims as $key => $value) { ?>
|
||||||
|
|
||||||
<div class="row claim-row">
|
<div class="row claim-row">
|
||||||
@ -51,5 +59,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php } ?>
|
<?php } } ?>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
Loading…
Reference in New Issue
Block a user