예제 #1
6
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  * @throws RedirectException
  */
 public function handle($request, Closure $next)
 {
     $response = $next($request);
     $source = $request->get('source', 'api_data');
     $filename = $request->get('filename', 'export_' . date('Y-m-d_Hi'));
     if ($request->get('download') && array_key_exists($source, $response->original->getData())) {
         switch ($request->get('download')) {
             case 'json':
                 return response()->json($response->original->getData()[$source], 200, ['Content-Disposition' => 'attachment; filename="' . $filename . '.json"']);
             case 'csv':
                 $writer = Writer::createFromFileObject(new \SplTempFileObject());
                 $writer->setDelimiter(',');
                 $writer->setNewline("\r\n");
                 $writer->setEncodingFrom("utf-8");
                 $headers = ['Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename="' . $filename . '.csv"'];
                 $csv_headers_set = false;
                 foreach ($response->original->getData()[$source] as $data) {
                     if (!$csv_headers_set) {
                         $writer->insertOne(array_keys($this->getArrayRepresentation($data)));
                         $csv_headers_set = true;
                     }
                     $writer->insertOne($this->processData($this->getArrayRepresentation($data)));
                 }
                 return response()->make($writer, 200, $headers);
             default:
                 throw RedirectException::make('/')->setError('Unrecognised type to download');
         }
     }
     return $response;
 }
예제 #2
1
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->writeSection($output, 'Po to Csv converter');
     $this->cwd = getcwd() . DIRECTORY_SEPARATOR;
     $output->writeln('<info>Using CWD</info> ' . $this->cwd);
     $poFiles = $this->getInputPoFiles($input, $output);
     $outputFolder = $this->getOutputFolder($input, $output);
     $useDefaults = $input->getOption('use-defaults');
     if ($useDefaults) {
         $output->writeln('<info>Po files</info>:');
         $this->writeList($output, $poFiles);
         $output->writeln(['', '<info>Output folder</info>: ' . $outputFolder]);
     }
     $poHandles = [];
     foreach ($poFiles as $poFile) {
         $key = basename($poFile, '.po');
         $output->writeln('<info>loading ' . $key . '</info>...');
         $poHandles[$key] = Translations::fromPoFile($poFile);
     }
     $output->writeln('<info>merging po files</info>...');
     $csvArray = [];
     foreach ($poHandles as $language => $poHandle) {
         foreach ($poHandle as $translation) {
             $original = trim($translation->original);
             $translation = trim($translation->translation);
             if (!isset($csvArray[$original])) {
                 $csvArray[$original] = [$language => $translation];
             } elseif (!isset($csvArray[$original][$language])) {
                 $csvArray[$original][$language] = $translation;
             } elseif ($csvArray[$original][$language] != $translation) {
                 $csvArray[$original][$language] = $this->handleConflict($input, $output, $original, $csvArray[$original][$language], $translation);
             }
         }
     }
     $output->writeln('<info>writing csv</info>...');
     $writer = Writer::createFromFileObject(new SplTempFileObject());
     $writer->setDelimiter(';');
     $header = ['original'];
     $header = array_merge($header, array_keys($poHandles));
     $writer->insertOne($header);
     foreach ($csvArray as $original => $item) {
         $row = [];
         foreach ($header as $column) {
             if ($column === 'original') {
                 $row[] = $original;
             } else {
                 $row[] = isset($item[$column]) ? $item[$column] : null;
             }
         }
         $writer->insertOne($row);
     }
     $outputFile = $outputFolder . DIRECTORY_SEPARATOR . 'translations.csv';
     file_put_contents($outputFile, $writer->__toString());
     $output->writeln('<info>done. output file is</info> ' . $outputFile);
 }
예제 #3
0
파일: Merge.php 프로젝트: netsensei/resin
 /**
  * Execute the job.
  *
  * @return void
  */
 public function handle(MergeManager $mergeManager, FileManager $fileManager)
 {
     $columns = ['PID', 'entity type', 'title', 'document type', 'URL', 'enabled', 'notes', 'format', 'reference', 'order'];
     $items = $mergeManager->fetchAll();
     $writer = Writer::createFromFileObject(new SplTempFileObject());
     $writer->insertOne($columns);
     $count = 0;
     foreach ($items as $item) {
         $row = [$item->object_number, $item->entity_type, $item->object->title, $item->url, $item->enabled, $item->format, $item->representation_order, $item->reference];
         $writer->insertOne($row);
         $count++;
     }
     $output = (string) $writer;
     $timestamp = Carbon::now();
     $fileName = sprintf("import_%s.csv", $timestamp->format('dmY_His'));
     $fileManager->saveFile($fileName, $output);
     $merger = new Merger();
     $merger->filename = $fileName;
     $merger->documents = $count;
     $merger->save();
     $context = new \ZMQContext();
     $socket = $context->getSocket(\ZMQ::SOCKET_PUSH, 'my pusher');
     $socket->connect("tcp://localhost:5555");
     $socket->send('test');
 }
예제 #4
0
 /**
  * Overload render for array data output
  *
  * @param \FrenchFrogs\Table\Table\Table $table
  * @return array
  */
 public function table(Table\Table $table)
 {
     // INitilisation du CSV
     $csv = Writer::createFromFileObject(new \SplTempFileObject());
     // gestion des colonne
     $header = $columns = [];
     foreach ($table->getColumns() as $index => $column) {
         // Seule les colonnes Exportable peuvent être exporté
         if ($column instanceof Exportable) {
             $columns[$index] = $column;
             $header[$index] = $column->getLabel();
         }
     }
     // insertion du header
     $csv->insertOne(array_values($header));
     //@todo mettre en place un streaming pour économiser la memoire
     // insertion des lignes
     foreach ($table->getRows() as $row) {
         $line = [];
         foreach (array_keys($header) as $index) {
             $line[] = $columns[$index]->getValue($row);
         }
         $csv->insertOne($line);
     }
     $csv->output($table->getFilename());
     exit;
 }
예제 #5
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $experiments = Experiment::active()->get();
     $goals = array_unique(Goal::active()->orderBy('name')->lists('name'));
     $columns = array_merge(['Experiment', 'Visitors', 'Engagement'], array_map('ucfirst', $goals));
     $writer = Writer::createFromFileObject(new SplTempFileObject());
     $writer->insertOne($columns);
     foreach ($experiments as $experiment) {
         $engagement = $experiment->visitors ? $experiment->engagement / $experiment->visitors * 100 : 0;
         $row = [$experiment->name, $experiment->visitors, number_format($engagement, 2) . " % (" . $experiment->engagement . ")"];
         $results = $experiment->goals()->lists('count', 'name');
         foreach ($goals as $column) {
             $count = array_get($results, $column, 0);
             $percentage = $experiment->visitors ? $count / $experiment->visitors * 100 : 0;
             $row[] = number_format($percentage, 2) . " % ({$count})";
         }
         $writer->insertOne($row);
     }
     $output = (string) $writer;
     if ($file = $this->argument('file')) {
         $this->info("Creating {$file}");
         File::put($file, $output);
     } else {
         $this->line($output);
     }
 }
 public function exportSelected()
 {
     $selected_students = Input::get('studentId');
     if (is_array($selected_students)) {
         //Setup CSV
         $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
         $column_flag = false;
         $student = [];
         foreach ($selected_students as $student_id) {
             $student_data = Students::with('course')->find($student_id);
             //Personal data
             $student['firstname'] = $student_data['firstname'];
             $student['surname'] = $student_data['surname'];
             $student['email'] = $student_data['email'];
             //Course data
             $student['university'] = $student_data->course['university'];
             $student['course_name'] = $student_data->course['course_name'];
             //Check whether column headers have been set (not ideal for large datasets)
             if ($column_flag === false) {
                 $csv->insertOne(\Schema::getColumnListing('student'));
                 $column_flag = true;
             }
             //Add student record to file
             $csv->insertOne($student);
         }
     } else {
         return "NO STUDENTS SELECTED";
     }
     //is_array($selected_students)
     $csv->output("selected_student_records.csv");
 }
예제 #7
0
 public function run()
 {
     $commandResult = $this->runCommandPrompt();
     $salaryCalendar = SalaryCalendar::get($commandResult['startDate'], $commandResult['endDate'], $commandResult['year']);
     $csvWriter = Writer::createFromFileObject(new \SplTempFileObject());
     $writer = new CsvFileWriter($csvWriter, $salaryCalendar->calculatePayDays());
     $writer->write($commandResult['path'] . DIRECTORY_SEPARATOR . $commandResult['name']);
 }
예제 #8
0
 public function export()
 {
     $data = $this->formatData();
     $keys = array_keys($data[0]);
     $csv = Writer::createFromFileObject(new SplTempFileObject());
     $csv->insertOne($keys);
     $csv->insertAll($data);
     $csv->output($this->getFileName());
 }
예제 #9
0
 public function export()
 {
     $data = $this->formatData();
     $keys = array_keys($data[0]);
     $csv = Writer::createFromFileObject(new SplTempFileObject());
     $csv->insertOne($keys);
     $csv->insertAll($data);
     return (string) $csv;
 }
예제 #10
0
 /**
  * Exports $result to $file.
  */
 public function exportToFile(array $result, $file)
 {
     $writer = Writer::createFromFileObject(new SplTempFileObject());
     foreach ($result['result'] as $row) {
         unset($row['_id']);
         $writer->insertOne($row);
     }
     file_put_contents($file, $writer->__toString());
 }
예제 #11
0
 public static function export($table, $dbConnection = 'default')
 {
     $data = DB::connection($dbConnection)->table($table)->get();
     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
     $csv->insertOne(\Schema::getColumnListing($table));
     foreach ($data as $row) {
         $csv->insertOne((array) $row);
     }
     $csv->output($table . '-' . date('YmdHi') . '.csv');
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $size = (int) $this->argument('size');
     $documents = factory('App\\Models\\Document', $size)->make()->toArray();
     $headers = array_keys($documents[0]);
     $csv = Writer::createFromFileObject(new SplTempFileObject());
     $csv->insertOne($headers);
     $csv->insertAll($documents);
     Storage::put('testdata/test-' . $size . '.csv', $csv);
 }
예제 #13
0
 public function encode(array $content)
 {
     $writer = Writer::createFromFileObject(new \SplTempFileObject());
     $writer->setDelimiter($this->delimiter);
     $writer->setNewline($this->newline);
     $writer->setEnclosure($this->enclosure);
     $writer->setEscape($this->escapeChar);
     $writer->insertAll($content);
     return (string) $writer;
 }
예제 #14
0
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create()
 {
     $people = bbStock::all();
     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
     $csv->insertOne(\Schema::getColumnListing('bbstock'));
     foreach ($people as $person) {
         $csv->insertOne($person->toArray());
     }
     $csv->output('bbstock.csv');
 }
예제 #15
0
 /**
  * @param \Madewithlove\Export\Csv\Transformer $transformer
  *
  * @return \League\Csv\Writer
  */
 private function writer(Transformer $transformer = null)
 {
     $writer = Writer::createFromFileObject(new SplTempFileObject());
     if ($transformer instanceof WithHeaders) {
         $writer->insertOne($transformer->getHeaders());
     }
     if ($transformer instanceof Transformer) {
         $writer->addFormatter([$transformer, 'transform']);
     }
     return $writer;
 }
 /**
  * Converts a data collection to a CSV file.
  */
 protected function processExportData($columns, $results, $options)
 {
     /*
      * Validate
      */
     if (!$results) {
         throw new ApplicationException('There was no data supplied to export');
     }
     /*
      * Parse options
      */
     $defaultOptions = ['useOutput' => false, 'fileName' => 'export.csv', 'delimiter' => null, 'enclosure' => null, 'escape' => null];
     $options = array_merge($defaultOptions, $options);
     $columns = $this->exportExtendColumns($columns);
     /*
      * Prepare CSV
      */
     $csv = CsvWriter::createFromFileObject(new SplTempFileObject());
     if ($options['delimiter'] !== null) {
         $csv->setDelimiter($options['delimiter']);
     }
     if ($options['enclosure'] !== null) {
         $csv->setEnclosure($options['enclosure']);
     }
     if ($options['escape'] !== null) {
         $csv->setEscape($options['escape']);
     }
     /*
      * Add headers
      */
     $headers = $this->getColumnHeaders($columns);
     $csv->insertOne($headers);
     /*
      * Add records
      */
     foreach ($results as $result) {
         $data = $this->matchDataToColumns($result, $columns);
         $csv->insertOne($data);
     }
     /*
      * Output
      */
     if ($options['useOutput']) {
         $csv->output($options['fileName']);
     }
     /*
      * Save for download
      */
     $csvName = uniqid('oc');
     $csvPath = temp_path() . '/' . $csvName;
     $output = $csv->__toString();
     File::put($csvPath, $output);
     return $csvName;
 }
예제 #17
0
function exportCSV($query, $headerArray, $filename)
{
    $conn = Connection::getInstance();
    $statement = $conn->db->prepare($query);
    $statement->setFetchMode(PDO::FETCH_ASSOC);
    $statement->execute();
    $csv = Writer::createFromFileObject(new SplTempFileObject());
    $csv->insertOne($headerArray);
    $csv->insertAll($statement);
    $csv->output($filename . '.csv');
    die;
}
 public function post_export_subscriber_list_members()
 {
     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
     $columns = array("List Name", "Count Openers", "Count Clickers", "Count Active", "Count Unsubscribers", "Count Bounce", "Count Total", "Last Activity");
     $csv->insertOne($columns);
     $baseQuery = DB::table('subscribers_lists')->leftjoin('subscribers_lists_subscribers', 'subscribers_lists.id', '=', 'subscribers_lists_subscribers.subscribers_list_id')->leftjoin('subscribers', 'subscribers_lists_subscribers.subscriber_id', '=', 'subscribers.id')->select('subscribers_lists.name', 'subscribers_lists.id as count_openers', 'subscribers_lists.id as count_clickers', DB::raw('count(case when subscribers.status = "Active" then 1 else null end) as count_active'), DB::raw('count(case when subscribers.status = "Unsubscribed" then 1 else null end) as count_unsubsribers'), DB::raw('count(case when subscribers.status = "Bounced" then 1 else null end) as count_bounced'), DB::raw('count(subscribers_lists_subscribers.subscribers_list_id) as count_total'), 'subscribers_lists.updated_at as last_activity')->whereNull('subscribers_lists.webinar_id')->groupBy('subscribers_lists.id')->get();
     foreach ($baseQuery as $value) {
         $temp_data = array($value->name, $value->count_openers, $value->count_clickers, $value->count_active, $value->count_unsubsribers, $value->count_bounced, $value->count_total, $value->last_activity);
         $csv->insertOne($temp_data);
     }
     $current_time = Carbon::now();
     $csv->output('subscriber_list_members_' . $current_time->toDateTimeString() . '.csv');
 }
예제 #19
0
 public function download()
 {
     $col = new Collection(Request::input('data'));
     //dd();
     //we create the CSV into memory
     $csv = Writer::createFromFileObject(new SplTempFileObject());
     $csv->insertAll($col);
     // Because you are providing the filename you don't have to
     // set the HTTP headers Writer::output can
     // directly set them for you
     // The file is downloadable
     $csv->output(Request::input('id') . '.csv');
     die;
 }
예제 #20
0
 /**
  * Export the data
  *
  * @param mixed $input - required unless already set using setInput
  * @param array $options - an array of OptionInterface of key value pair resolvable as an option
  */
 public function export(DataInterface $input = null, array $options = array())
 {
     $input = $input ?: $this->getInput();
     $options = $options ?: $this->getOptions();
     if (!$this->supports($input)) {
         throw new UnsupportedDataException(sprintf('%s does not support exporting the set %s data of depth %d', get_class($this), get_class($input), $input->getDepth()));
     }
     $headers = $this->getHeaders($input, $options);
     $writer = Writer::createFromFileObject(new SplTempFileObject());
     $writer->insertOne($headers);
     foreach ($input as $row) {
         $writer->insertOne($this->getRow($headers, $row));
     }
     $this->outputResult($writer->__toString(), $options);
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     //$products = Product::select(['id', 'description', 'price'])->get();
     $query = "\n            select\n                products.id as CODICE,\n                products.description as NOME,\n                products.price as PREZZO,\n                products.category as CATEGORIA,\n                count(menu_products.id) as NUMERO_PUBBLICAZIONI,\n                count(menu_orders_products.id) as NUMERO_VENDITE,\n                DATE_FORMAT(\n                    (select menu.start_date\n                    from menu_products left join menu on (menu.id = menu_products.menu_id)\n                    where menu_products.product_id = products.id\n                    order by menu.start_date desc\n                    limit 1),\n                \"%d %b %Y\") as ULTIMA_PUBBLICAZIONE\n\n            from products\n                left join menu_products on (products.id = menu_products.product_id)\n                left join menu_orders_products on (menu_products.id = menu_orders_products.menu_product_id)\n\n            GROUP BY products.id\n            order by\n                FIELD(CATEGORIA, 'Primi Piatti', 'Secondi di Carne', 'Secondi di Pesce', 'Verdure, ortaggi e contorni', 'Piatti Vegetariani', 'Contorni', 'Panini Imbottiti', 'Frutta e Dessert', 'Pane', 'Salumi', 'Formaggi', 'Bibite', 'Snack', 'Aggiunte', 'Condimenti'),\n                NOME ASC\n        ";
     //we create the CSV into memory
     $csv = Writer::createFromFileObject(new \SplTempFileObject());
     //object to array
     $data = array_map(function ($row) {
         return (array) $row;
     }, Capsule::select($query));
     //we insert the CSV header
     $csv->insertOne(array_keys($data[0]));
     $csv->setOutputBOM(Writer::BOM_UTF8);
     // The PDOStatement Object implements the Traversable Interface
     // that's why Writer::insertAll can directly insert
     // the data into the CSV
     $csv->insertAll($data);
     $csv->output();
 }
예제 #22
0
 /**
  * Parses a DataTable into a CSV file.
  *
  * Pass in a DataTable and a csv file will be generated.
  *
  * @access public
  * @since  1.0.0
  * @param  string $filepath Path where to output the file
  * @throws \Khill\Lavacharts\Exceptions\InvalidFunctionParam
  * @return string
  */
 public function toCsv($filepath)
 {
     if (Utils::nonEmptyString($filepath) === false) {
         throw new InvalidFunctionParam($filepath, __FUNCTION__, 'string');
     }
     $csv = Writer::createFromFileObject(new \SplTempFileObject());
     $csv->insertOne($this->getColumnLabels());
     foreach ($this->rows as $row) {
         $rowData = [];
         foreach ($row['c'] as $data) {
             $rowData[] = $data['v'];
         }
         $csv->insertOne($rowData);
     }
     $csv->output($filepath);
 }
 public function downloadCsv($data)
 {
     $fileName = 'data-' . date('Y-m-d H:i:s') . '.csv';
     $headers = ['Cache-Control' => 'must-revalidate, post-check=0, pre-check=0', 'Content-type' => 'text/csv', 'Content-Disposition' => 'attachment; filename=' . $fileName, 'Expires' => '0', 'Pragma' => 'public'];
     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
     foreach ($data as $datum) {
         $csv->insertOne($datum);
     }
     $csv->output($fileName);
     //have to die out, for laravel not to append non-sense
     die;
 }
예제 #24
0
 /**
  * Returns the list results as a CSV export.
  */
 public function listExportCsv($options = [], $definition = null)
 {
     /*
      * Locate widget
      */
     if (!count($this->listWidgets)) {
         $this->makeLists();
     }
     if (!$definition || !isset($this->listDefinitions[$definition])) {
         $definition = $this->primaryDefinition;
     }
     $widget = $this->listWidgets[$definition];
     /*
      * Parse options
      */
     $defaultOptions = ['filename' => 'export.csv'];
     $options = array_merge($defaultOptions, $options);
     extract($options);
     /*
      * Prepare CSV
      */
     $csv = Writer::createFromFileObject(new SplTempFileObject());
     /*
      * Add headers
      */
     $headers = [];
     $columns = $widget->getVisibleColumns();
     foreach ($columns as $column) {
         $headers[] = Lang::get($column->label);
     }
     $csv->insertOne($headers);
     /*
      * Add records
      */
     $model = $widget->prepareModel();
     $results = $model->get();
     foreach ($results as $result) {
         $record = [];
         foreach ($columns as $column) {
             $record[] = $widget->getColumnValue($result, $column);
         }
         $csv->insertOne($record);
     }
     /*
      * Output
      */
     $csv->output($filename);
     exit;
 }
예제 #25
0
 public function getActions($docId)
 {
     $doc = Doc::where('id', $docId)->first();
     if ($doc) {
         $skip_ids = $doc->sponsorIds;
         $actions = DocAction::where('doc_id', $docId)->whereNotIn('user_id', $skip_ids)->with('user')->orderBy('created_at')->get();
         if ($actions) {
             if (Input::get('download') === 'csv') {
                 $csv = Writer::createFromFileObject(new \SplTempFileObject());
                 $fields = array('first_name', 'last_name', 'email', 'quote', 'text', 'type', 'created_at');
                 // Headings.
                 $csv->insertOne($fields);
                 foreach ($actions as $action) {
                     $actionRow = $action->toArray();
                     $actionRow['first_name'] = $actionRow['user']['fname'];
                     $actionRow['last_name'] = $actionRow['user']['lname'];
                     $actionRow['email'] = $actionRow['user']['email'];
                     // Rearrange our columns
                     $saveRow = array();
                     foreach ($fields as $field) {
                         $saveRow[$field] = $actionRow[$field];
                     }
                     $csv->insertOne($saveRow);
                 }
                 $csv->output('actions.csv');
                 return;
             } else {
                 return Response::json($actions->toArray());
             }
         }
     }
     return Response::notFound();
 }
예제 #26
0
 public function exportCSV($lines)
 {
     $csv = Writer::createFromFileObject(new SplTempFileObject(1000000000));
     foreach ($lines as $line) {
         $csv->insertOne($line);
     }
     $csv->output('report.csv');
     die;
 }
예제 #27
0
 public function export(Request $request, $race_id)
 {
     $race = Race::find($race_id);
     if ($request->has('format')) {
         $runners = Runner::where([['race_id', $race_id], ['status', 1]])->get();
         $csv = Writer::createFromFileObject(new \SplTempFileObject());
         if ($request->get('format') == 'excel_win') {
             $csv->setDelimiter(';');
             $csv->setOutputBOM(Writer::BOM_UTF8);
         }
         $csv->insertOne(\Schema::getColumnListing('runners'));
         foreach ($runners as $runner) {
             $csv->insertOne($runner->toArray());
         }
         $csv->output($race->prefix . '_runners.csv');
         die;
     }
     return view('admin.export');
 }
 /**
  * Output table data as csv.
  */
 public function export($format = 'csv')
 {
     // grab data
     $data = Advisor::select('advisors.id as AdvisorID', 'advisors.created_at as RegistrationTime', 'advisors.name as AdvisorName', 'schools.name as SchoolName', 'advisors.email as AdvisorEmail', 'advisors.attending_advisor as AttAdvisorResponsible', 'advisors.comments as Comments')->leftJoin('schools', 'schools.id', '=', 'advisors.school_id')->get();
     // create empty file
     $csv = Writer::createFromFileObject(new \SplTempFileObject());
     // create header
     $csv->insertOne(['AdvisorID', 'RegistrationTime', 'AdvisorName', 'SchoolName', 'AdvisorEmail', 'AttAdvisorResponsible', 'Comments']);
     // insert rows as associative array
     $csv->insertAll($data->toArray());
     $csv->output('advisors_' . \Carbon\Carbon::now()->timestamp . '.csv');
 }
예제 #29
0
 /**
  * Export Depreciation Report as CSV
  *
  * @return file download
  */
 public function exportDeprecationReport()
 {
     // Grab all the assets
     $assets = Asset::with('model', 'assigneduser', 'assetstatus', 'defaultLoc', 'assetlog')->orderBy('created_at', 'DESC')->get();
     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
     $csv->setOutputBOM(Reader::BOM_UTF16_BE);
     $rows = [];
     // Create the header row
     $header = [Lang::get('admin/hardware/table.asset_tag'), Lang::get('admin/hardware/table.title'), Lang::get('admin/hardware/table.serial'), Lang::get('admin/hardware/table.checkoutto'), Lang::get('admin/hardware/table.location'), Lang::get('admin/hardware/table.purchase_date'), Lang::get('admin/hardware/table.purchase_cost'), Lang::get('admin/hardware/table.book_value'), Lang::get('admin/hardware/table.diff')];
     //we insert the CSV header
     $csv->insertOne($header);
     // Create a row per asset
     foreach ($assets as $asset) {
         $row = [];
         $row[] = $asset->asset_tag;
         $row[] = $asset->name;
         $row[] = $asset->serial;
         if ($asset->assigned_to > 0) {
             $user = User::find($asset->assigned_to);
             $row[] = $user->fullName();
         } else {
             $row[] = '';
             // Empty string if unassigned
         }
         if ($asset->assigned_to > 0 && $asset->assigneduser->location_id > 0) {
             $location = Location::find($asset->assigneduser->location_id);
             if ($location->city) {
                 $row[] = $location->city . ', ' . $location->state;
             } elseif ($location->name) {
                 $row[] = $location->name;
             } else {
                 $row[] = '';
             }
         } else {
             $row[] = '';
             // Empty string if location is not set
         }
         if ($asset->assetloc) {
             $currency = $asset->assetloc->currency;
         } else {
             $currency = Setting::first()->default_currency;
         }
         $row[] = $asset->purchase_date;
         $row[] = $currency . number_format($asset->purchase_cost);
         $row[] = $currency . number_format($asset->getDepreciatedValue());
         $row[] = $currency . number_format($asset->purchase_cost - $asset->getDepreciatedValue());
         $csv->insertOne($row);
     }
     $csv->output('depreciation-report-' . date('Y-m-d') . '.csv');
     die;
 }
예제 #30
0
     return ['schools' => ['data_callback' => 'csv_export_schools', 'headers' => ['Κωδικός μονάδας', 'Ονομασία', 'Τύπος μονάδας', 'Περιφερειακή ενότητα', 'Διεύθυνση εκπαίδευσης', 'Περιφερειακή διεύθυνση εκπαίδευσης', 'Βαθμίδα εκπαίδευσης']], 'labs' => ['data_callback' => 'csv_export_labs', 'headers' => ['ID', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'Ονομασία χώρου', 'Τύπος χώρου', 'Ειδικότητα υπευθύνου', 'Νέος χώρος', 'Επιφάνεια (m^2)', 'Σύνδεση στο δίκτυο', 'Διαθέτει server', 'Μαθήματα', 'Χρήση στα πλαίσια μαθημάτων', 'Χρήση για δραστηριότητες εκτός εκπαιδευτικού προγράμματος']], 'assets' => ['data_callback' => 'csv_export_assets', 'headers' => ['Είδος', 'Πλήθος ', 'Έτος κτήσης', 'ID χώρου', 'Τύπος χώρου', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'Σχόλια - Παρατηρήσεις']], 'software' => ['data_callback' => 'csv_export_software', 'headers' => ['Τύπος', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'ID χώρου', 'Τύπος χώρου', 'Ονομασία', 'Κατασκευαστής', 'URL']], 'appforms' => ['data_callback' => 'csv_export_appforms', 'headers' => ['ID', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'Ημερομηνία υποβολής', 'Σχόλια - Παρατηρήσεις']], 'appnewforms' => ['data_callback' => 'csv_export_appnewforms', 'headers' => ['ID', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'Ημερομηνία υποβολής', 'Σχόλια - Παρατηρήσεις']], 'appforms_items' => ['data_callback' => 'csv_export_appforms_items', 'headers' => ['ID', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'Ημερομηνία υποβολής', 'ID χώρου', 'Τύπος χώρου', 'Νέος χώρος', 'Είδος', 'Πλήθος ', 'Αιτιολογία χρήσης']], 'newapplication' => ['data_callback' => 'csv_export_newapplication', 'headers' => ['ID', 'Κωδικός σχολείου', 'Ονομασία σχολείου', 'Είδος', 'Πλήθος Υπαρχόντων που λειτουργούν', 'Πλήθος Αιτουμένων', 'Αιτιολογία χρήσης']]];
 };
 $c['csv_export_csv_response'] = function ($c) {
     return function ($res, callable $dataCallback, array $headers, $filename) use($c) {
         $csvFactory = $c['csv_export_csv_factory'];
         $csv = $csvFactory($dataCallback(), $headers);
         $res = $res->withHeader('Content-Type', 'application/octet-stream');
         $res = $res->withHeader('Content-Transfer-Encoding', 'binary');
         $res = $res->withHeader('Content-Disposition', 'attachment; filename=' . $filename);
         $res->write($csv);
         return $res;
     };
 };
 $c['csv_export_csv_factory'] = function ($c) {
     return function (array $data, array $headers = null) {
         $csv = Writer::createFromFileObject(new SplTempFileObject());
         $csv->setOutputBOM(Reader::BOM_UTF8);
         $csv->addFormatter(function ($row) {
             return array_map(function ($value) {
                 return str_replace(["\n", "\r"], ' ', $value);
             }, $row);
         });
         if (null !== $headers) {
             $csv->insertOne($headers);
         }
         $csv->insertAll($data);
         return $csv;
     };
 };
 $c['csv_export_schools'] = function ($c) {
     return function () {