FIX_EXCEL_ERROR_FILE_ID_ERROR : RV

This commit is contained in:
VENKATESHWARAN 2024-04-26 13:36:27 +05:30
parent 6f319144f6
commit e17fd43594

View File

@ -131,8 +131,8 @@ class EmployeeController extends AdminController
// print_r($this->request->getPost('policies'));
// print_r($this->request->getPost('upload-action-type'));
// die();
$empServiceController = new EmployeeServiceController();
$res = $empServiceController->excelFileFormatValidation(['file_id' => '42']);
// $empServiceController = new EmployeeServiceController();
// $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']);
// dd($res);
// $empServiceController = new EmployeeServiceController();
@ -249,13 +249,13 @@ class EmployeeController extends AdminController
{
$file_id = $this->request->uri->getSegment(3);
$empServiceController = new EmployeeServiceController();
$result['file_id'] = $file_id;
// Render views and capture output
$result = $empServiceController->getExcelErrorData($file_id);
if ($result != 0) {
$result['file_id'] = $file_id;
echo view('excel_errors', $result);
} else if ($result == 0) {
@ -728,109 +728,109 @@ class EmployeeController extends AdminController
// Get file data from the database
$file_data = $this->fileModel->find($file_id);
$error = json_decode($file_data['reason']);
// echo '<pre>';
// print_r($error); die;
// dd($error);
// Check if the file exists
if (!$file_data) {
$error_message = "File not found";
$this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
return $error_message;
}
$fileName = $file_data['file_name'];
$filePath = WRITEPATH . '/uploads/excel/' . $fileName;
// Check if the file exists
if (!file_exists($filePath)) {
$error_message = "File not found";
$this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
return $error_message;
}
// Load the Excel file
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
// echo '<pre>';
foreach ($error->error_data as $index => $error_data) {
$rowIndex = $index+1;
if( $error->error_type == 1 ){
foreach ($error_data as $key => $value) {
$colIndex = $value->col_idx+1;
$originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
$error = json_decode($file_data['reason']);
// echo '<pre>';
// print_r($error); die;
// dd($error);
$newValue = implode(', ',$value->error);
$val = $originalValue . ' ( ' . $newValue . ' )';
$sheet->setCellValue([$colIndex, $rowIndex], $val);
$style = [
'fill' => [
'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
'startColor' => ['rgb' => 'ffad99'] // Red color
]
];
$sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
}
}else if( $error->error_type == 2){
foreach ($error_data as $key => $value) {
$originalValue = $sheet->getCell([1, $rowIndex])->getValue();
$newValue = implode(', ',$value->error);
$val = $originalValue . ' ( ' . $newValue . ' )';
$sheet->setCellValue([$colIndex, $rowIndex], $val);
$style = [
'fill' => [
'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
'startColor' => ['rgb' => 'ffad99'] // Red color
]
];
$sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
}
// Check if the file exists
if (!$file_data) {
$error_message = "File not found";
$this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
return $error_message;
}
$fileName = $file_data['file_name'];
$filePath = WRITEPATH . '/uploads/excel/' . $fileName;
// Check if the file exists
if (!file_exists($filePath)) {
$error_message = "File not found";
$this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
return $error_message;
}
// Load the Excel file
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
}
// echo '<pre>';
// Create a new filename for the modified Excel file
$newFileName = 'modified_' . $fileName;
// Save the modified Excel file to a new location
$newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save($newFilePath);
// Set headers to force download
$response = service('response');
$response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
$response->setHeader('Cache-Control', 'max-age=0');
$response->setHeader('Content-Length', filesize($newFilePath));
$response->setBody(file_get_contents($newFilePath));
// Delete the temporary file
unlink($newFilePath);
// Return the response
return $response;
foreach ($error->error_data as $index => $error_data) {
$rowIndex = $index+1;
if( $error->error_type == 1 ){
foreach ($error_data as $key => $value) {
$colIndex = $value->col_idx+1;
$originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
$newValue = implode(', ',$value->error);
$val = $originalValue . ' ( ' . $newValue . ' )';
$sheet->setCellValue([$colIndex, $rowIndex], $val);
$style = [
'fill' => [
'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
'startColor' => ['rgb' => 'ffad99'] // Red color
]
];
$sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
}
}else if( $error->error_type == 2){
foreach ($error_data as $key => $value) {
$originalValue = $sheet->getCell([1, $rowIndex])->getValue();
$newValue = implode(', ',$value->error);
$val = $originalValue . ' ( ' . $newValue . ' )';
$sheet->setCellValue([$colIndex, $rowIndex], $val);
$style = [
'fill' => [
'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
'startColor' => ['rgb' => 'ffad99'] // Red color
]
];
$sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
}
}
}
// Create a new filename for the modified Excel file
$newFileName = 'error_with_highlight_' . $fileName;
// Save the modified Excel file to a new location
$newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save($newFilePath);
// Set headers to force download
$response = service('response');
$response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
$response->setHeader('Cache-Control', 'max-age=0');
$response->setHeader('Content-Length', filesize($newFilePath));
$response->setBody(file_get_contents($newFilePath));
// Delete the temporary file
unlink($newFilePath);
// Return the response
return $response;
}
public function generateIDCardForEmployee($rand_string)