diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index 4d7e2170..fc4a4e86 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -2080,95 +2080,102 @@ class LeadsController extends BaseController if (!$lead_data) { return ['status' => 'failed', 'message' => 'Lead data not found']; } - if ($lead_data['file_name']) { - // $file_name_with_path = WRITEPATH . "/uploads/lead_files/NonPrintableCharacters.xlsx"; - //check physical file - if (!file_exists($file_name_with_path)) { - //file not found update status and reason - $message = "Lead Physcial file not found"; - // echo $message; - $this->myLogger->logme('error', ($message . ' for file ' . $file_name_with_path)); - return ['status' => 'failed', 'message' => 'no physical file']; - } + try{ + if ($lead_data['file_name']) { + // $file_name_with_path = WRITEPATH . "/uploads/lead_files/NonPrintableCharacters.xlsx"; - $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path); - - //get members data - $members_sheet = $spreadsheet->getSheet(0); - $highestRowAndColumn = $members_sheet->getHighestRowAndColumn(); - // dd($highestRowAndColumn); - $uncleaned_members = $members_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); - $members = ExcelSanitizeHelper::sanitizeArrayData($uncleaned_members); - //get age band data - $age_band_sheet = $spreadsheet->getSheet(1); - $highestRowAndColumn = $age_band_sheet->getHighestRowAndColumn(); - $age_band_data = $age_band_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); - - - //check age or dob column - $members_heading = $members[0]; - $available_col = null; - $col_index = null; - - if (in_array('age', array_map('strtolower', $members_heading))) { - $available_col = 'age'; - $col_index = array_search('age', array_map('strtolower', $members_heading)); - } elseif (in_array('dob', array_map('strtolower', $members_heading))) { - $available_col = 'dob'; - $col_index = array_search('dob', array_map('strtolower', $members_heading)); - } - - if ($available_col == null) { - $message = 'No DOB or Age column '; - $this->myLogger->logme('error', ($message . $file_name_with_path)); - return ['status' => 'failed', 'message' => $message]; - } - - try { - $classifiers = $this->getDemographyData($members, $age_band_data, $members_heading, $available_col, $col_index); - } catch (Exception $e) { - return ['status' => 'fail', 'message' => $e->getMessage()]; - } - - //for this to view the demography in the RFQ and QCR page to using internal - if($returnType == "internal"){ - return ['data' => $classifiers]; - // print_rr($classifiers); die; - } - - - try { - $result = $this->generateClassifierSpreadsheet($classifiers, WRITEPATH . 'uploads/lead_files/'); - if ($result['success']) { - $this->myLogger->logme('error', "Spreadsheet generated successfully!"); - - echo "Location: " . $result['fullpath'] . "\n"; - echo "Filename: " . $result['filename'] . "\n"; - $filePaths = [ - ['file_path' => WRITEPATH . 'uploads/lead_files/' . $lead_data['file_name'], 'sheets' => [0, 1]], - ['file_path' => WRITEPATH . '/uploads/lead_files/' . $result['filename'], 'sheets' => []], - ]; - $outputPath = WRITEPATH . 'uploads/lead_files/' . $lead_data['file_name']; - $result_merge = ExcelMergeHelper::mergeExcelFiles($filePaths, $outputPath); - if ($result_merge) { - // Call the delete function after the file is successfully created - $deleteResponse = $this->deleteGeneratedFile($result['fullpath']); - - // Add delete message to response - $response['deleteMessage'] = $deleteResponse['message']; - return ['status' => 'success', 'message' => 'Member_Data Merged Suceesfully']; - } - } else { - echo "Error generating spreadsheet: " . $result['error']; + //check physical file + if (!file_exists($file_name_with_path)) { + //file not found update status and reason + $message = "Lead Physcial file not found"; + // echo $message; + $this->myLogger->logme('error', ($message . ' for file ' . $file_name_with_path)); + return ['status' => 'failed', 'message' => 'no physical file']; } - } catch (Exception $e) { - echo "Error: " . $e->getMessage(); - return ['status' => 'fail', 'message' => $e->getMessage()]; + + $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path); + + //get members data + $members_sheet = $spreadsheet->getSheet(0); + $highestRowAndColumn = $members_sheet->getHighestRowAndColumn(); + // dd($highestRowAndColumn); + $uncleaned_members = $members_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); + $members = ExcelSanitizeHelper::sanitizeArrayData($uncleaned_members); + //get age band data + $age_band_sheet = $spreadsheet->getSheet(1); + $highestRowAndColumn = $age_band_sheet->getHighestRowAndColumn(); + $age_band_data = $age_band_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); + + + //check age or dob column + $members_heading = $members[0]; + $available_col = null; + $col_index = null; + + if (in_array('age', array_map('strtolower', $members_heading))) { + $available_col = 'age'; + $col_index = array_search('age', array_map('strtolower', $members_heading)); + } elseif (in_array('dob', array_map('strtolower', $members_heading))) { + $available_col = 'dob'; + $col_index = array_search('dob', array_map('strtolower', $members_heading)); + } + + if ($available_col == null) { + $message = 'No DOB or Age column '; + $this->myLogger->logme('error', ($message . $file_name_with_path)); + return ['status' => 'failed', 'message' => $message]; + } + + try { + $classifiers = $this->getDemographyData($members, $age_band_data, $members_heading, $available_col, $col_index); + } catch (Exception $e) { + return ['status' => 'fail', 'message' => $e->getMessage()]; + } + + //for this to view the demography in the RFQ and QCR page to using internal + if($returnType == "internal"){ + return ['data' => $classifiers]; + // print_rr($classifiers); die; + } + + + try { + $result = $this->generateClassifierSpreadsheet($classifiers, WRITEPATH . 'uploads/lead_files/'); + if ($result['success']) { + $this->myLogger->logme('error', "Spreadsheet generated successfully!"); + + echo "Location: " . $result['fullpath'] . "\n"; + echo "Filename: " . $result['filename'] . "\n"; + $filePaths = [ + ['file_path' => WRITEPATH . 'uploads/lead_files/' . $lead_data['file_name'], 'sheets' => [0, 1]], + ['file_path' => WRITEPATH . '/uploads/lead_files/' . $result['filename'], 'sheets' => []], + ]; + $outputPath = WRITEPATH . 'uploads/lead_files/' . $lead_data['file_name']; + $result_merge = ExcelMergeHelper::mergeExcelFiles($filePaths, $outputPath); + if ($result_merge) { + // Call the delete function after the file is successfully created + $deleteResponse = $this->deleteGeneratedFile($result['fullpath']); + + // Add delete message to response + $response['deleteMessage'] = $deleteResponse['message']; + return ['status' => 'success', 'message' => 'Member_Data Merged Suceesfully']; + } + } else { + echo "Error generating spreadsheet: " . $result['error']; + } + } catch (Exception $e) { + echo "Error: " . $e->getMessage(); + return ['status' => 'fail', 'message' => $e->getMessage()]; + } + } else { + $this->myLogger->logme('error', (' no file found ' . $file_name_with_path)); + return ['status' => 'failed', 'message' => 'no file found']; } - } else { - $this->myLogger->logme('error', (' no file found ' . $file_name_with_path)); - return ['status' => 'failed', 'message' => 'no file found']; + + }catch(Exception $e){ + $this->myLogger->logme("error", "Exception: " . $e->getMessage() . " --- Line: " . $e->getLine() . " --- Trace: " . $e->getTraceAsString()); + return ['status' => 'fail', 'error' => "File not found / Wrong file"]; } } diff --git a/app/Views/view_rfq.php b/app/Views/view_rfq.php index f00350cb..58e0fc03 100644 --- a/app/Views/view_rfq.php +++ b/app/Views/view_rfq.php @@ -706,7 +706,7 @@ if(isset($demogrphy_html_data) && !empty($demogrphy_html_data)){ echo $demogrphy_html_data; }else{ - echo "
No Demography Data Found
"; + echo "No Demography Data Found or Wrong File
"; } ?>