You are here

function _uc_csv_prepare_report in Ubercart CSV 7.2

Prepare the report

Prepare the report regardless if we're preparing a csv or XLS report

1 call to _uc_csv_prepare_report()
uc_csv_select_report_to_export_submit in ./uc_csv.module
Put together an export based on the report id

File

./uc_csv.module, line 323

Code

function _uc_csv_prepare_report($report, $order) {
  if ($report->file_type == 'csv') {
    $headers = implode(',', $order['headers']) . "\n";
    $source = NULL;
    foreach ($order['order_data'] as $order) {
      $csv_array = array();
      foreach ($order as $cell) {
        $csv_array[] = $cell;
      }

      // We need to make sure the lines are properly escaped.
      // from comments at: http://php.net/manual/en/function.fputcsv.php
      $csv = fopen('php://temp/maxmemory:' . 1 * 1024 * 1024, 'r+');
      fputcsv($csv, $csv_array);
      rewind($csv);
      $source = stream_get_contents($csv);
      fclose($csv);
      $source .= "\n";
    }
    return $headers . $source;
  }
  elseif ($report->file_type == 'xls') {
    module_load_include('inc', 'uc_csv', 'inc/excel-export');

    // generate file (constructor parameters are optional)
    $xls = new Excel_XML('UTF-8', FALSE, $report->report_name);
    $data = array(
      $order['headers'],
    );
    foreach ($order['order_data'] as $line) {
      $set = array();
      foreach ($line as $key => $value) {
        $set[] = $value;
      }
      $data[] = $set;
    }
    $xls
      ->addArray($data);
    $contents = $xls->generateXML;
    return $contents;
  }
  return FALSE;
}