Beispiel #1
0
 /**
  * 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');
 }