public function GetSkusByFilter_get() { set_time_limit(0); if (ob_get_level()) { ob_end_clean(); } $filename = 'Filter_SKUs_' . date('Y_m_d') . '.csv'; header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=' . $filename . ''); header("Content-Transfer-Encoding: binary"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); flush(); // Get the headers out immediately to show the download dialog $output_csv = fopen('php://output', 'w'); $this->load->model('assess_results'); $this->load->model('batches_model'); $this->load->model('filters_values'); $this->load->model('batches_combinations'); $this->load->model('combo_chronicle_model'); $this->load->model('imported_data_parsed_model'); $this->load->model('products_filters'); $this->load->model('product_category_model'); $this->load->model('product_uploaded_images_model'); $action = $this->input->get('action'); $batch_id = $this->input->get('batch_id'); $brand_id = (int) $this->input->get('brand_id'); // optional $filter_id = (int) $this->input->get('filter_id'); $super_filter = (int) $this->input->get('super_filter'); $category_id = (int) $this->input->get('category_id'); // optional $chronicles = (array) $this->input->get('chronicles'); $chronicle_id = (int) $this->input->get('chronicle_id'); $unique_id = $this->input->get('unique_id'); $current_tab = $this->input->get('current_tab'); if (!$chronicle_id && $chronicles) { $chronicle_id = (int) isset($chronicles[0]) ? $chronicles[0] : 0; } $combination = $this->batches_combinations->findByAttributes(array('batch_id' => $batch_id, 'category_id' => 0, 'brand_id' => 0, 'compare_batch_id' => 0, 'super_filter_id' => 0)); if (!$chronicle_id && isset($combination->id)) { $lastCombo = $this->combo_chronicle_model->findByAttributes(array('combo_id' => $combination->id), array('select' => array('column' => 'id'), 'order_by' => array('column' => 'date desc'))); if (isset($lastCombo->id)) { $chronicle_id = $lastCombo->id; } } if (!$brand_id) { $brand_id = ''; } if (!$category_id) { $category_id = 0; } else { $category_id = $this->product_category_model->getChildCategories($category_id); } $chronicle = $this->combo_chronicle_model->getComboByChronicles($chronicle_id); $date = $chronicle[0]->date; $results = array(); $sort_array = array(array('column' => 'imported_data_id', 'order' => 'asc')); $results['enabled_columns'] = $enabled_columns = (array) $this->resultTableColumns(); $full_columns_headers = AssessHelper::getFullColumnNames(AssessHelper::columns()); $customer = $this->batches_model->getCustomerById($batch_id); $column_names = array('product_name' => 'Product Name', 'upc' => 'UPC', 'retailer' => 'Retailer', 'url' => 'URL'); if ($current_tab) { foreach ($full_columns_headers as $key => $value) { if (isset($enabled_columns[$key]) && $enabled_columns[$key] === 'true') { $column_names[$key] = strip_tags($value); } } } fputcsv($output_csv, array_values($column_names)); flush(); if ($filter_id && $this->filters_values->isFilterExists($filter_id)) { $per_page = 2000; $offset = 0; do { $res = $this->assess_results->result($chronicle_id, $batch_id, $category_id, '', array($filter_id), $offset, $per_page, 0, true, $super_filter, $brand_id, $sort_array, 'product_name', '', '', false); $offset += $per_page; $skus = $res['rows']; foreach ($skus as $sku_row) { $sku_row_data = json_decode($sku_row->row_data); $sku_row_data = AssessHelper::fixRow($sku_row, false); // $sku_row_data->img_count = count($sku_row_data->parsed_attributes['attr_data']['image_urls']); // $sku_row_data->new_image_urls = $this->product_uploaded_images_model->getUploadedImgs($chronicle_id,$sku_row_data->imported_data_id); // $sku_row_data->new_image_count = count($sku_row_data->new_image_urls); $column_values = array(); foreach ($column_names as $key => $value) { $column_values[$key] = isset($sku_row_data->{$key}) ? $sku_row_data->{$key} : ''; } if (!$current_tab) { $column_values['retailer'] = $customer->name; } fputcsv($output_csv, array_values($column_values)); flush(); } } while ($skus); } exit; }
public function getTableColumns() { $retData = array("columns" => AssessHelper::getSelectableColumns(AssessHelper::columns()), "col" => $this->resultTableColumns()); $this->output->set_content_type('application/json')->set_output(json_encode($retData)); }