/** * Inserts New Report * * @return object */ public static function addNewReport($fileData = array()) { $report = new Reports(); $report->incident_name = Input::get('incident_name'); $report->incident_number = Input::get('incident_number'); $report->report_date = Input::get('report_date'); $report->config_id = Input::get('config_id'); $report->status = Input::get('config_id') ? Input::get('config_id') : 'Active'; $report->save(); return $report; }
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'); }
public function download($id = 0) { $currentReport = ConsolidatedReports::getById($id); $version = ConsolidatedReportsVersion::getById($id); # get table headers $originalReport = Reports::getReportById($currentReport->report_id); $reportFiles = ReportFile::getReportFilesById($originalReport->report_id); $reportColumns = array(); if (isset($reportFiles[0])) { $currentOriginalFile = $reportFiles[0]; $currentFileVersion = ReportFileVersion::getCurrentVersion($currentOriginalFile->file_id); // get sheets $reportColumns = ReportFileSheets::getFirstSheetByVersionId($currentFileVersion->version_id); $reportColumns = json_decode($reportColumns); $reportColumns = json_decode($reportColumns->data_table_columns); } # get table data $dataTable = json_decode($version->table_data); $report = ExcelExporter::formatFileArrays($dataTable); # combine headers and data $finalDataTable = array_merge($reportColumns, $report); # file name here $filename = "{$originalReport->incident_name} - Incident Number {$originalReport->incident_number}"; ExcelExporter::exportFileTest($finalDataTable, $filename); //$reformattedReport = }
/** * Uloads excel file then save data * * @return Response */ public function upload() { $file = array('report' => Input::file('report')); $rules = array('report' => 'required'); //mimes:jpeg,bmp,png and for max size max:10000 $validator = Validator::make($file, $rules); if ($validator->fails()) { return Redirect::to('preparedness_response/new')->withInput()->withErrors($validator); } else { // checking file is valid. if (Input::file('report')->isValid()) { $destinationPath = 'uploads'; // upload path $extension = Input::file('report')->getClientOriginalExtension(); $fileName = "preparedness_response_" . rand(11111, 99999) . '_' . date('YmdHis') . '.' . $extension; $originalName = Input::file('report')->getClientOriginalName(); Input::file('report')->move($destinationPath, $fileName); $reportData = array(); $reportData['fileName'] = $fileName; $reportData['originalName'] = $originalName; // create new report $newReport = PreparednessResponse::addNewReport($reportData); // parse and save to db Reports::parsePreparednessResponse($destinationPath . '/' . $fileName, $newReport); Session::flash('success', 'Report successfully uploaded.'); return Redirect::to('preparedness_response/list'); } else { // sending back with error message. Session::flash('error', 'uploaded file is not valid'); return Redirect::to('preparedness_response/new'); } } }