diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 4ce78926..36e3690c 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -24,6 +24,10 @@ use App\Controllers\Jobs; use PhpOffice\PhpSpreadsheet\Spreadsheet; // use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Reader\Xlsx; +use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Reader\Exception as SpreadsheetReaderException; + +use function PHPUnit\Framework\returnSelf; class EmpDataServiceController extends BaseController { @@ -479,6 +483,12 @@ class EmpDataServiceController extends BaseController $file = $import_data['file']; $data = $this->readExcelToArray($file); + + if (!$data) { + + return 0; + } + unset($data[0]); array_pop($data); $count = count($data); @@ -491,18 +501,16 @@ class EmpDataServiceController extends BaseController try { - if($import_data['insurer_or_tpa'] == 'tpa'){ + if ($import_data['insurer_or_tpa'] == 'tpa') { if ($value[15] === null) { $missing_id[] = $key + 1; } + } else if ($import_data['insurer_or_tpa'] == 'insurer') { - }else if($import_data['insurer_or_tpa'] == 'insurer'){ - - if ( $value[16] === null) { + if ($value[16] === null) { $missing_id[] = $key + 1; } - } $emp_code = $value[2]; @@ -519,14 +527,12 @@ class EmpDataServiceController extends BaseController $query->where('employees.client_id', $client_id); $query->where('employees.name', $name); $query->where('employees.emp_code', $emp_code); - if($import_data['insurer_or_tpa'] == 'tpa'){ + if ($import_data['insurer_or_tpa'] == 'tpa') { $query->where('(employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = "")'); - - }else if($import_data['insurer_or_tpa'] == 'insurer'){ + } else if ($import_data['insurer_or_tpa'] == 'insurer') { $query->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")'); - } $query->where('employee_polices.is_active', 1); $query->limit(1); @@ -547,7 +553,7 @@ class EmpDataServiceController extends BaseController $empty_id_count = count($empty_emp_tpa_uh_ids); - if($import_data['insurer_or_tpa'] == 'tpa'){ + if ($import_data['insurer_or_tpa'] == 'tpa') { if ($empty_id_count == 0) { @@ -558,9 +564,7 @@ class EmpDataServiceController extends BaseController return 2; } - - - }else if($import_data['insurer_or_tpa'] == 'insurer'){ + } else if ($import_data['insurer_or_tpa'] == 'insurer') { if ($empty_id_count == 0) { @@ -571,7 +575,6 @@ class EmpDataServiceController extends BaseController return 4; } - } // if ($missing_id_count != $count) { @@ -585,7 +588,7 @@ class EmpDataServiceController extends BaseController // return 3; // } - + // dd($empty_emp_tpa_uh_ids); @@ -607,15 +610,14 @@ class EmpDataServiceController extends BaseController if (!empty($value)) { - - if($import_data['insurer_or_tpa'] == 'tpa'){ + + if ($import_data['insurer_or_tpa'] == 'tpa') { $tpa_id = $value[15] !== null ? $value[15] : ''; $uhid = $value[16] !== null ? $value[16] : ''; $data = ['tpa_id' => $tpa_id, 'uhid' => $uhid]; - - }else if($import_data['insurer_or_tpa'] == 'insurer'){ + } else if ($import_data['insurer_or_tpa'] == 'insurer') { $tpa_id = $value[15] !== null ? $value[15] : ''; $uhid = $value[16] !== null ? $value[16] : ''; @@ -623,11 +625,9 @@ class EmpDataServiceController extends BaseController } foreach ($empty_emp_tpa_uh_ids as $id) { - + $this->employeePolicyModel->where('id', $id)->set($data)->update(); } - - } else { return 0; @@ -1532,34 +1532,42 @@ class EmpDataServiceController extends BaseController + public function readExcelToArray($file) { - if ($file->isValid() && !$file->hasMoved()) { $file = $file; + + try { - $reader = new Xlsx(); - $spreadsheet = $reader->load($file->getPathname()); - - // Get the active sheet - $sheet = $spreadsheet->getActiveSheet(); - - // Iterate through rows to read data - $data = []; - foreach ($sheet->getRowIterator() as $row) { - $rowData = []; - foreach ($row->getCellIterator() as $cell) { - $rowData[] = $cell->getValue(); + $reader = IOFactory::createReaderForFile($file->getPathname()); + $spreadsheet = $reader->load($file->getPathname()); + + // Get the active sheet + $sheet = $spreadsheet->getActiveSheet(); + + // Iterate through rows to read data + $data = []; + foreach ($sheet->getRowIterator() as $row) { + $rowData = []; + foreach ($row->getCellIterator() as $cell) { + $rowData[] = $cell->getValue(); + } + $data[] = $rowData; } - $data[] = $rowData; + + return $data; + + } catch (SpreadsheetReaderException $e) { + + error_log('PhpSpreadsheet reader exception: ' . $e->getMessage()); + return false; } - - return $data; } else { - return false; } } + public function insertBatchFileAndBatchListForImportExcel($data, $ids) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 2676257c..1871fab0 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -409,7 +409,7 @@ class EmployeeController extends AdminController return redirect()->to(base_url('employee/upload')); }else if($return == 3){ - session()->setFlashdata('error', 'The following list of employees has already been updated with the TPA ID.'); + session()->setFlashdata('error', 'The list of employees provided has already been updated with the TPA ID, or this is not the correct file'); return redirect()->to(base_url('employee/upload')); }else if($return == 4){ @@ -417,7 +417,7 @@ class EmployeeController extends AdminController return redirect()->to(base_url('employee/upload')); }else if($return == 5){ - session()->setFlashdata('error', 'The following list of employees has already been updated with the UHID.'); + session()->setFlashdata('error', 'The list of employees provided has already been updated with the UHID, or this is not the correct file'); return redirect()->to(base_url('employee/upload')); }