<?php
class ControllerToolNewsletterSubscribers extends Controller {
	
	public function export() {
		
		if (isset($this->request->get['filter_newsletter'])) {
			$filter_newsletter = $this->request->get['filter_newsletter'];
		} else {
			$filter_newsletter = null;
		}
		
		if (isset($this->request->get['filter_name'])) {
			$filter_name = $this->request->get['filter_name'];
		} else {
			$filter_name = null;
		}
		
		if (isset($this->request->get['filter_email'])) {
			$filter_email = $this->request->get['filter_email'];
		} else {
			$filter_email = null;
		}
		
		if (isset($this->request->get['filter_customer_group_id'])) {
			$filter_customer_group_id = $this->request->get['filter_customer_group_id'];
		} else {
			$filter_customer_group_id = null;
		}
		
		if (isset($this->request->get['filter_status'])) {
			$filter_status = $this->request->get['filter_status'];
		} else {
			$filter_status = null;
		}
		
		if (isset($this->request->get['filter_approved'])) {
			$filter_approved = $this->request->get['filter_approved'];
		} else {
			$filter_approved = null;
		}
		
		if (isset($this->request->get['filter_ip'])) {
			$filter_ip = $this->request->get['filter_ip'];
		} else {
			$filter_ip = null;
		}
		
		if (isset($this->request->get['filter_date_added'])) {
			$filter_date_added = $this->request->get['filter_date_added'];
		} else {
			$filter_date_added = null;
		}
		
		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'name';
		}
		
		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'ASC';
		}
		
		$data = array(
				'filter_newsletter'		   => $filter_newsletter,
				'filter_name'              => $filter_name,
				'filter_email'             => $filter_email,
				'filter_customer_group_id' => $filter_customer_group_id,
				'filter_status'            => $filter_status,
				'filter_approved'          => $filter_approved,
				'filter_date_added'        => $filter_date_added,
				'filter_ip'                => $filter_ip,
				'sort'                     => $sort,
				'order'                    => $order,
		);
		
		$this->load->model('sale/customer');
		
		$this->load->model('sale/customer_group');
		
		$results = $this->model_sale_customer->getCustomers($data);
		
		$address = array();
		
		$data = array();
		
		$i = 0;
		
		foreach ($results as $customer) {
			$address = $this->model_sale_customer->getAddress($customer['address_id']);
			
			$customer_group = $this->model_sale_customer_group->getCustomerGroup($customer['customer_group_id']);
			
			$data[$i]['name'] = $customer['firstname'].' '.$customer['lastname'];
			$data[$i]['email'] = $customer['email'];
			$data[$i]['telephone'] = $customer['telephone'];
			$data[$i]['address'] = (!empty($address)) ? $customer['address'] = $address['city'].', '.$address['address_1'] : '';
			$data[$i]['customer_group'] = $customer_group['name'];
			$data[$i]['status'] = $customer['status'] == 0 ? 'Disabled' : 'Enabled';
			$data[$i]['approved'] = $customer['approved'] == 0 ? 'No' : 'Yes';
			$data[$i]['ip'] = $customer['ip'];
			$data[$i]['date_added'] = $customer['date_added'];
			$data[$i]['newsletter'] = $customer['newsletter'] == 0 ? 'Disabled' : 'Enabled';
			$i++;
		}
		
		$this->load->language('tool/newsletter_subscribers');
		
		$xls_head = array(
				'name' 			=> $this->language->get('text_name'),
				'email'			=> $this->language->get('text_email'),
				'telephone'		=> $this->language->get('text_telephone'),
				'address'		=> $this->language->get('text_address'),
				'customer_group'=> $this->language->get('text_customer_group'),
				'status'		=> $this->language->get('text_status'),
				'approved'		=> $this->language->get('text_approved'),
				'ip'			=> $this->language->get('text_ip'),
				'date_added'	=> $this->language->get('text_date_added'),
				'newsletter'	=> $this->language->get('text_newsletter'),
		);
		
		
		$this->load->library('PHPExcel');
		
		$phpexcel = new PHPExcel();
		
		$phpexcel->setActiveSheetIndex(0);
		
		$column = 'A';
		$row = '1';
		
		foreach ($xls_head as $head) {
			$position = $column.$row;
			$phpexcel->setActiveSheetIndex(0)->setCellValue($position, $head);
			$phpexcel->getActiveSheet()->getColumnDimension($column)->setAutoSize(true);
			$column++;
		}

		$row = '2';
		foreach ($data as $export) {
			$column = 'A';
			foreach (array_keys($xls_head) as $key) {
				$position = $column.$row;
				$phpexcel->setActiveSheetIndex(0)->setCellValueExplicit($position, $export[$key], PHPExcel_Cell_DataType::TYPE_STRING);
				$column++;
			}
			
			$row++;
		}
		
		$phpexcel->setActiveSheetIndex(0);
		
		$filename = 'newsletter_export_'.date('Ymd_Ihs');
		
		header('Content-Type: application/vnd.ms-excel');
		header('Content-Disposition: attachment;filename="'.$filename.'"');
		header('Cache-Control: max-age=0');
		
		$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
		$objWriter->save('php://output');
		exit;
		
		
	}
	
}
?>