/** * View report by id * * @return Response */ public function view($id) { $data = array(); // get config $config = Configuration::getById($id); $data['config'] = $config; // get config sheets $configSheets = ConfigurationSheet::getByConfigId($id); foreach ($configSheets as $currentConfigsheet) { $currentConfigsheet->decoded_config_string = json_decode($currentConfigsheet->configuration_string); } $data['configSheets'] = $configSheets; return view($this->viewPath . 'update', $data); }
public function savereport() { Session::flush('reportSheetData'); $allfiles = Input::get('allfiles'); $allfiles = explode(',', $allfiles); // get config $config = Configuration::getById(Input::get('config_id')); // get config sheets $configSheets = ConfigurationSheet::getArrangedSheets($config->config_id); // create the report first $report = Reports::addNewReport(); foreach ($allfiles as $currentFile) { if ($currentFile != '') { // save file $reporfileData = array(); //$reporfileData['flag_current_version'] = 1; //$reporfileData['report_filename'] = $currentFile; $reporfileData['report_id'] = $report->report_id; $reportFile = ReportFile::addReportFile($reporfileData); // save file version $reportFileVersionData = array(); $reportFileVersionData['file_id'] = $reportFile->file_id; $reportFileVersionData['flag_current_version'] = 1; $reportFileVersionData['report_filename'] = $currentFile; $reportVersion = ReportFileVersion::addReportFileVersion($reportFileVersionData); // save each sheet $file = "uploads/{$currentFile}"; Excel::load($file, function ($reader) use($reportFile, $reportVersion, $config, $configSheets) { foreach ($reader->getWorksheetIterator() as $worksheetNbr => $worksheet) { //echo 'Worksheet number - ', $worksheetNbr, PHP_EOL; $currentWorksheet = $worksheetNbr + 1; if (isset($configSheets["sheet{$currentWorksheet}"])) { $currentConfig = $configSheets["sheet{$currentWorksheet}"]; // data table columns $data_table_columns = $worksheet->rangeToArray($currentConfig['data_table_columns']); $data_table_columns = json_encode($data_table_columns); // data table //$data_table = $worksheet->rangeToArray($currentConfig['data_table']); $data_table = $worksheet->rangeToArray($currentConfig['data_table'], false, true, true, true); Reports::prepareFileSheetSession($data_table); $data_table = json_encode($data_table); // excel info if ($currentConfig['configuration_string'] != '') { $config_string = json_decode($currentConfig['configuration_string']); $new_config_string = array(); for ($i = 0; $i < count($config_string); $i++) { $currentCell = $worksheet->getCell("{$config_string[$i]->column}{$config_string[$i]->row}")->getValue(); $currentCellColor = $worksheet->getStyle("{$config_string[$i]->column}{$config_string[$i]->row}")->getFill()->getStartColor()->getARGB(); $new_config_string[$i] = $config_string[$i]; $new_config_string[$i]->cell_value = $currentCell; $new_config_string[$i]->cell_color = $currentCellColor; } $new_config_string = json_encode($new_config_string); } else { $new_config_string = ''; } // insert sheet $reportSheetData = array(); $reportSheetData['version_id'] = $reportVersion->version_id; $reportSheetData['worksheet_number'] = $worksheetNbr; $reportSheetData['data_table'] = $data_table; $reportSheetData['data_table_columns'] = $data_table_columns; $reportSheetData['excel_info'] = $new_config_string; ReportFileSheets::addReportFileSheet($reportSheetData); } } }); } } // get previous incident's data $previousIncidentData = Reports::getPreviousIncidentData(); // get current incident's data $reportSheets = Reports::retrieveFileSheetSession(); $newIncidenData = Reports::rearrangeSheetSession($reportSheets); $incidentComparison = Reports::compareIncidentData($previousIncidentData, $newIncidenData); if (count($incidentComparison) > 0) { Session::put('incidentReportErrors' . $report->report_id, $incidentComparison); /*$sessionErrors = Session::get('reportSheetData'); exit;*/ Session::flash('incident_warning', 'There are errors in your report. Please see below.'); return Redirect::to('reports/view1/' . $report->report_id); } else { Session::flash('success', 'Your report(s) has been successfully added.'); return Redirect::to('reports/list'); } exit; Session::flash('success', 'Your report(s) has been successfully added.'); return Redirect::to('reports/list'); }