/** * Parses configuration then save to database * * @return object */ public static function saveConfiguration() { self::print_this($_POST, '$_POST'); $config = Input::get('config'); $rows = Input::get('row'); $columns = Input::get('column'); // create a report, then save $config_id = self::createConfigurationTable(); // add spreadsheets ConfigurationSheet::addReportSheet($config_id); }
/** * 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 static function addReportSheet($config_id = 0) { $sheet_name = Input::get('sheet_name'); foreach ($sheet_name as $sheetKey => $sheetData) { $config_string = array(); $data_table_columns = Input::get('data_table_columns'); $data_table = Input::get('data_table'); $config = Input::get('config'); $config = $config[$sheetKey]; $rows = Input::get('row'); $rows = $rows[$sheetKey]; $columns = Input::get('column'); $columns = $columns[$sheetKey]; // config string here $config_string = array(); if ($config && count($config) > 0) { for ($i = 0; $i < count($config); $i++) { $config_string[$i]['config_name'] = $config[$i]; $config_string[$i]['column'] = $columns[$i]; $config_string[$i]['row'] = $rows[$i]; } } $config_string = json_encode($config_string); $sheet = new ConfigurationSheet(); $sheet->config_id = $config_id; $sheet->sheet_name = $sheet_name[$sheetKey]; $sheet->configuration_string = $config_string; $sheet->data_table = $data_table[$sheetKey]; $sheet->data_table_columns = $data_table_columns[$sheetKey]; $sheet->save(); } }
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'); }