shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

recurring.php (16155B)


      1 <?php
      2 class ControllerSaleRecurring extends Controller {
      3 	private $error = array();
      4 
      5 	public function index() {
      6 		$this->load->language('sale/recurring');
      7 
      8 		$this->document->setTitle($this->language->get('heading_title'));
      9 
     10 		$this->load->model('sale/recurring');
     11 
     12 		$this->getList();
     13 	}
     14 
     15 	protected function getList() {
     16 		if (isset($this->request->get['filter_order_recurring_id'])) {
     17 			$filter_order_recurring_id = $this->request->get['filter_order_recurring_id'];
     18 		} else {
     19 			$filter_order_recurring_id = '';
     20 		}
     21 
     22 		if (isset($this->request->get['filter_order_id'])) {
     23 			$filter_order_id = $this->request->get['filter_order_id'];
     24 		} else {
     25 			$filter_order_id = '';
     26 		}
     27 
     28 		if (isset($this->request->get['filter_reference'])) {
     29 			$filter_reference = $this->request->get['filter_reference'];
     30 		} else {
     31 			$filter_reference = '';
     32 		}
     33 
     34 		if (isset($this->request->get['filter_customer'])) {
     35 			$filter_customer = $this->request->get['filter_customer'];
     36 		} else {
     37 			$filter_customer = '';
     38 		}
     39 
     40 		if (isset($this->request->get['filter_status'])) {
     41 			$filter_status = $this->request->get['filter_status'];
     42 		} else {
     43 			$filter_status = 0;
     44 		}
     45 
     46 		if (isset($this->request->get['sort'])) {
     47 			$sort = $this->request->get['sort'];
     48 		} else {
     49 			$sort = 'order_recurring_id';
     50 		}
     51 
     52 		if (isset($this->request->get['filter_date_added'])) {
     53 			$filter_date_added = $this->request->get['filter_date_added'];
     54 		} else {
     55 			$filter_date_added = '';
     56 		}
     57 
     58 		if (isset($this->request->get['order'])) {
     59 			$order = $this->request->get['order'];
     60 		} else {
     61 			$order = 'DESC';
     62 		}
     63 
     64 		if (isset($this->request->get['page'])) {
     65 			$page = $this->request->get['page'];
     66 		} else {
     67 			$page = 1;
     68 		}
     69 
     70 		$url = '';
     71 
     72 		if (isset($this->request->get['filter_order_recurring_id'])) {
     73 			$url .= '&filter_order_recurring_id=' . $this->request->get['filter_order_recurring_id'];
     74 		}
     75 
     76 		if (isset($this->request->get['filter_order_id'])) {
     77 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
     78 		}
     79 
     80 		if (isset($this->request->get['filter_reference'])) {
     81 			$url .= '&filter_reference=' . $this->request->get['filter_reference'];
     82 		}
     83 
     84 		if (isset($this->request->get['filter_customer'])) {
     85 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
     86 		}
     87 
     88 		if (isset($this->request->get['filter_status'])) {
     89 			$url .= '&filter_status=' . $this->request->get['filter_status'];
     90 		}
     91 
     92 		if (isset($this->request->get['filter_date_added'])) {
     93 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
     94 		}
     95 
     96 		if (isset($this->request->get['sort'])) {
     97 			$url .= '&sort=' . $this->request->get['sort'];
     98 		}
     99 
    100 		if (isset($this->request->get['order'])) {
    101 			$url .= '&order=' . $this->request->get['order'];
    102 		}
    103 
    104 		if (isset($this->request->get['page'])) {
    105 			$url .= '&page=' . $this->request->get['page'];
    106 		}
    107 
    108 		$data['breadcrumbs'] = array();
    109 
    110 		$data['breadcrumbs'][] = array(
    111 			'text' => $this->language->get('text_home'),
    112 			'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
    113 		);
    114 
    115 		$data['breadcrumbs'][] = array(
    116 			'text' => $this->language->get('heading_title'),
    117 			'href' => $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . $url, true)
    118 		);
    119 
    120 		$data['recurrings'] = array();
    121 
    122 		$filter_data = array(
    123 			'filter_order_recurring_id' => $filter_order_recurring_id,
    124 			'filter_order_id'           => $filter_order_id,
    125 			'filter_reference'          => $filter_reference,
    126 			'filter_customer'           => $filter_customer,
    127 			'filter_status'             => $filter_status,
    128 			'filter_date_added'         => $filter_date_added,
    129 			'order'                     => $order,
    130 			'sort'                      => $sort,
    131 			'start'                     => ($page - 1) * $this->config->get('config_limit_admin'),
    132 			'limit'                     => $this->config->get('config_limit_admin')
    133 		);
    134 
    135 		$recurrings_total = $this->model_sale_recurring->getTotalRecurrings($filter_data);
    136 
    137 		$results = $this->model_sale_recurring->getRecurrings($filter_data);
    138 
    139 		foreach ($results as $result) {
    140 			if ($result['status']) {
    141 				$status	= $this->language->get('text_status_' . $result['status']);
    142 			} else {
    143 				$status = '';
    144 			}
    145 			
    146 			$data['recurrings'][] = array(
    147 				'order_recurring_id' => $result['order_recurring_id'],
    148 				'order_id'           => $result['order_id'],
    149 				'reference'          => $result['reference'],
    150 				'customer'           => $result['customer'],
    151 				'status'             => $status,
    152 				'date_added'         => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
    153 				'view'               => $this->url->link('sale/recurring/info', 'user_token=' . $this->session->data['user_token'] . '&order_recurring_id=' . $result['order_recurring_id'] . $url, true),
    154 				'order'              => $this->url->link('sale/order/info', 'user_token=' . $this->session->data['user_token'] . '&order_id=' . $result['order_id'], true)
    155 			);
    156 		}
    157 
    158 		$data['user_token'] = $this->session->data['user_token'];
    159 
    160 		if (isset($this->error['warning'])) {
    161 			$data['error_warning'] = $this->error['warning'];
    162 		} else {
    163 			$data['error_warning'] = '';
    164 		}
    165 
    166 		if (isset($this->session->data['success'])) {
    167 			$data['success'] = $this->session->data['success'];
    168 
    169 			unset($this->session->data['success']);
    170 		} else {
    171 			$data['success'] = '';
    172 		}
    173 		
    174 		$url = '';
    175 
    176 		if (isset($this->request->get['filter_order_recurring_id'])) {
    177 			$url .= '&filter_order_recurring_id=' . $this->request->get['filter_order_recurring_id'];
    178 		}
    179 
    180 		if (isset($this->request->get['filter_order_id'])) {
    181 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    182 		}
    183 
    184 		if (isset($this->request->get['filter_reference'])) {
    185 			$url .= '&filter_reference=' . urlencode(html_entity_decode($this->request->get['filter_reference'], ENT_QUOTES, 'UTF-8'));
    186 		}
    187 
    188 		if (isset($this->request->get['filter_customer'])) {
    189 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    190 		}
    191 
    192 		if (isset($this->request->get['filter_status'])) {
    193 			$url .= '&filter_status=' . $this->request->get['filter_status'];
    194 		}
    195 
    196 		if (isset($this->request->get['filter_date_added'])) {
    197 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    198 		}
    199 
    200 		if ($order == 'ASC') {
    201 			$url .= '&order=DESC';
    202 		} else {
    203 			$url .= '&order=ASC';
    204 		}
    205 
    206 		if (isset($this->request->get['page'])) {
    207 			$url .= '&page=' . $this->request->get['page'];
    208 		}
    209 
    210 		$data['sort_order_recurring'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&sort=or.order_recurring_id' . $url, true);
    211 		$data['sort_order'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&sort=or.order_id' . $url, true);
    212 		$data['sort_reference'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&sort=or.reference' . $url, true);
    213 		$data['sort_customer'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&sort=customer' . $url, true);
    214 		$data['sort_status'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&sort=or.status' . $url, true);
    215 		$data['sort_date_added'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&sort=or.date_added' . $url, true);
    216 
    217 		$url = '';
    218 
    219 		if (isset($this->request->get['filter_order_recurring_id'])) {
    220 			$url .= '&filter_order_recurring_id=' . $this->request->get['filter_order_recurring_id'];
    221 		}
    222 
    223 		if (isset($this->request->get['filter_order_id'])) {
    224 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    225 		}
    226 
    227 		if (isset($this->request->get['filter_reference'])) {
    228 			$url .= '&filter_reference=' . urlencode(html_entity_decode($this->request->get['filter_reference'], ENT_QUOTES, 'UTF-8'));
    229 		}
    230 
    231 		if (isset($this->request->get['filter_customer'])) {
    232 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    233 		}
    234 
    235 		if (isset($this->request->get['filter_status'])) {
    236 			$url .= '&filter_status=' . $this->request->get['filter_status'];
    237 		}
    238 
    239 		if (isset($this->request->get['filter_date_added'])) {
    240 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    241 		}
    242 
    243 		if (isset($this->request->get['sort'])) {
    244 			$url .= '&sort=' . $this->request->get['sort'];
    245 		}
    246 
    247 		if (isset($this->request->get['order'])) {
    248 			$url .= '&order=' . $this->request->get['order'];
    249 		}
    250 
    251 		$pagination = new Pagination();
    252 		$pagination->total = $recurrings_total;
    253 		$pagination->page = $page;
    254 		$pagination->limit = $this->config->get('config_limit_admin');
    255 		$pagination->text = $this->language->get('text_pagination');
    256 		$pagination->url = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . '&page={page}' . $url, true);
    257 
    258 		$data['pagination'] = $pagination->render();
    259 
    260 		$data['results'] = sprintf($this->language->get('text_pagination'), ($recurrings_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($recurrings_total - $this->config->get('config_limit_admin'))) ? $recurrings_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $recurrings_total, ceil($recurrings_total / $this->config->get('config_limit_admin')));
    261 
    262 		$data['filter_order_recurring_id'] = $filter_order_recurring_id;
    263 		$data['filter_order_id'] = $filter_order_id;
    264 		$data['filter_reference'] = $filter_reference;
    265 		$data['filter_customer'] = $filter_customer;
    266 		$data['filter_status'] = $filter_status;
    267 		$data['filter_date_added'] = $filter_date_added;
    268 		
    269 		$data['sort'] = $sort;
    270 		$data['order'] = $order;
    271 		
    272 		$data['recurring_statuses'] = array();
    273 		
    274 		$data['recurring_statuses'][0] = array(
    275 			'text'  => '',
    276 			'value' => 0
    277 		);
    278 			
    279 		for ($i = 1; $i <= 6; $i++) {
    280 			$data['recurring_statuses'][$i] = array(
    281 				'text'  => $this->language->get('text_status_' . $i),
    282 				'value' => 1
    283 			);		
    284 		}
    285 
    286 		$data['header'] = $this->load->controller('common/header');
    287 		$data['column_left'] = $this->load->controller('common/column_left');
    288 		$data['footer'] = $this->load->controller('common/footer');
    289 
    290 		$this->response->setOutput($this->load->view('sale/recurring_list', $data));
    291 	}
    292 
    293 	public function info() {
    294 		$this->load->model('sale/recurring');
    295 		
    296 		if (isset($this->request->get['order_recurring_id'])) {
    297 			$order_recurring_id = $this->request->get['order_recurring_id'];
    298 		} else {
    299 			$order_recurring_id = 0;
    300 		}
    301 		
    302 		$order_recurring_info = $this->model_sale_recurring->getRecurring($order_recurring_id);
    303 
    304 		if ($order_recurring_info) {
    305 			$this->load->language('sale/recurring');
    306 		
    307 			$this->document->setTitle($this->language->get('heading_title'));
    308 
    309 			$data['user_token'] = $this->request->get['user_token'];
    310 			
    311 			$url = '';
    312 
    313 			if (isset($this->request->get['filter_order_recurring_id'])) {
    314 				$url .= '&filter_order_recurring_id=' . $this->request->get['filter_order_recurring_id'];
    315 			}
    316 
    317 			if (isset($this->request->get['filter_order_id'])) {
    318 				$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    319 			}
    320 
    321 			if (isset($this->request->get['filter_reference'])) {
    322 				$url .= '&filter_reference=' . $this->request->get['filter_reference'];
    323 			}
    324 
    325 			if (isset($this->request->get['filter_customer'])) {
    326 				$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    327 			}
    328 
    329 			if (isset($this->request->get['filter_status'])) {
    330 				$url .= '&filter_status=' . $this->request->get['filter_status'];
    331 			}
    332 
    333 			if (isset($this->request->get['filter_date_added'])) {
    334 				$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    335 			}
    336 
    337 			if (isset($this->request->get['sort'])) {
    338 				$url .= '&sort=' . $this->request->get['sort'];
    339 			}
    340 
    341 			if (isset($this->request->get['order'])) {
    342 				$url .= '&order=' . $this->request->get['order'];
    343 			}
    344 
    345 			if (isset($this->request->get['page'])) {
    346 				$url .= '&page=' . $this->request->get['page'];
    347 			}
    348 
    349 			$data['breadcrumbs'] = array();
    350 
    351 			$data['breadcrumbs'][] = array(
    352 				'text' => $this->language->get('text_home'),
    353 				'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
    354 			);
    355 
    356 			$data['breadcrumbs'][] = array(
    357 				'text' => $this->language->get('heading_title'),
    358 				'href' => $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . $url, true)
    359 			);
    360 
    361 			$data['cancel'] = $this->url->link('sale/recurring', 'user_token=' . $this->session->data['user_token'] . $url, true);
    362 			
    363 			// Recurring
    364 			$data['order_recurring_id'] = $order_recurring_info['order_recurring_id'];
    365 			$data['reference'] = $order_recurring_info['reference'];
    366 			$data['recurring_name'] = $order_recurring_info['recurring_name'];
    367 			
    368 			if ($order_recurring_info['recurring_id']) {
    369 				$data['recurring'] = $this->url->link('catalog/recurring/edit', 'user_token=' . $this->session->data['user_token'] . '&recurring_id=' . $order_recurring_info['recurring_id'], true);
    370 			} else {
    371 				$data['recurring'] = '';
    372 			}			
    373 			
    374 			$data['recurring_description'] = $order_recurring_info['recurring_description'];
    375 			
    376 			if ($order_recurring_info['status']) {
    377 				$data['recurring_status']= $this->language->get('text_status_' . $order_recurring_info['status']);
    378 			} else {
    379 				$data['recurring_status'] = '';
    380 			}
    381 			
    382 			$this->load->model('sale/order');
    383 
    384 			$order_info = $this->model_sale_order->getOrder($order_recurring_info['order_id']);
    385 			
    386 			$data['payment_method'] = $order_info['payment_method'];
    387 			
    388 			// Order
    389 			$data['order_id'] = $order_info['order_id'];
    390 			$data['order'] = $this->url->link('sale/order/info', 'user_token=' . $this->session->data['user_token'] . '&order_id=' . $order_info['order_id'], true);
    391 			$data['firstname'] = $order_info['firstname'];
    392 			$data['lastname'] = $order_info['lastname'];
    393 			
    394 			if ($order_info['customer_id']) {
    395 				$data['customer'] = $this->url->link('customer/customer/edit', 'user_token=' . $this->session->data['user_token'] . '&customer_id=' . $order_info['customer_id'], true);
    396 			} else {
    397 				$data['customer'] = '';
    398 			}
    399 		
    400 			$data['email'] = $order_info['email'];
    401 			$data['order_status'] = $order_info['order_status'];
    402 			$data['date_added'] = date($this->language->get('date_format_short'), strtotime($order_info['date_added']));
    403 			
    404 			// Product
    405 			$data['product'] = $order_recurring_info['product_name'];
    406 			$data['quantity'] = $order_recurring_info['product_quantity'];
    407 
    408 			// Transactions
    409 			$data['transactions'] = array();
    410 			
    411 			$transactions = $this->model_sale_recurring->getRecurringTransactions($order_recurring_info['order_recurring_id']);
    412 
    413 			foreach ($transactions as $transaction) {
    414 				$data['transactions'][] = array(
    415 					'date_added' => $transaction['date_added'],
    416 					'type'       => $transaction['type'],
    417 					'amount'     => $this->currency->format($transaction['amount'], $order_info['currency_code'], $order_info['currency_value'])
    418 				);
    419 			}
    420 
    421 			$data['buttons'] = $this->load->controller('extension/payment/' . $order_info['payment_code'] . '/recurringButtons');
    422 
    423 			$data['header'] = $this->load->controller('common/header');
    424 			$data['column_left'] = $this->load->controller('common/column_left');
    425 			$data['footer'] = $this->load->controller('common/footer');
    426 
    427 			$this->response->setOutput($this->load->view('sale/recurring_info', $data));
    428 		} else {
    429 			return new Action('error/not_found');
    430 		}
    431 	}
    432 }