shop.balmet.com

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

return.php (33082B)


      1 <?php
      2 class ControllerSaleReturn extends Controller {
      3 	private $error = array();
      4 
      5 	public function index() {
      6 		$this->load->language('sale/return');
      7 
      8 		$this->document->setTitle($this->language->get('heading_title'));
      9 
     10 		$this->load->model('sale/return');
     11 
     12 		$this->getList();
     13 	}
     14 
     15 	public function add() {
     16 		$this->load->language('sale/return');
     17 
     18 		$this->document->setTitle($this->language->get('heading_title'));
     19 
     20 		$this->load->model('sale/return');
     21 
     22 		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
     23 			$this->model_sale_return->addReturn($this->request->post);
     24 
     25 			$this->session->data['success'] = $this->language->get('text_success');
     26 
     27 			$url = '';
     28 
     29 			if (isset($this->request->get['filter_return_id'])) {
     30 				$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
     31 			}
     32 
     33 			if (isset($this->request->get['filter_order_id'])) {
     34 				$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
     35 			}
     36 
     37 			if (isset($this->request->get['filter_customer'])) {
     38 				$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
     39 			}
     40 
     41 			if (isset($this->request->get['filter_product'])) {
     42 				$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
     43 			}
     44 
     45 			if (isset($this->request->get['filter_model'])) {
     46 				$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
     47 			}
     48 
     49 			if (isset($this->request->get['filter_return_status_id'])) {
     50 				$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
     51 			}
     52 
     53 			if (isset($this->request->get['filter_date_added'])) {
     54 				$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
     55 			}
     56 
     57 			if (isset($this->request->get['filter_date_modified'])) {
     58 				$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
     59 			}
     60 
     61 			if (isset($this->request->get['sort'])) {
     62 				$url .= '&sort=' . $this->request->get['sort'];
     63 			}
     64 
     65 			if (isset($this->request->get['order'])) {
     66 				$url .= '&order=' . $this->request->get['order'];
     67 			}
     68 
     69 			if (isset($this->request->get['page'])) {
     70 				$url .= '&page=' . $this->request->get['page'];
     71 			}
     72 
     73 			$this->response->redirect($this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url, true));
     74 		}
     75 
     76 		$this->getForm();
     77 	}
     78 
     79 	public function edit() {
     80 		$this->load->language('sale/return');
     81 
     82 		$this->document->setTitle($this->language->get('heading_title'));
     83 
     84 		$this->load->model('sale/return');
     85 
     86 		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
     87 			$this->model_sale_return->editReturn($this->request->get['return_id'], $this->request->post);
     88 
     89 			$this->session->data['success'] = $this->language->get('text_success');
     90 
     91 			$url = '';
     92 
     93 			if (isset($this->request->get['filter_return_id'])) {
     94 				$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
     95 			}
     96 
     97 			if (isset($this->request->get['filter_order_id'])) {
     98 				$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
     99 			}
    100 
    101 			if (isset($this->request->get['filter_customer'])) {
    102 				$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    103 			}
    104 
    105 			if (isset($this->request->get['filter_product'])) {
    106 				$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
    107 			}
    108 
    109 			if (isset($this->request->get['filter_model'])) {
    110 				$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    111 			}
    112 
    113 			if (isset($this->request->get['filter_return_status_id'])) {
    114 				$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
    115 			}
    116 
    117 			if (isset($this->request->get['filter_date_added'])) {
    118 				$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    119 			}
    120 
    121 			if (isset($this->request->get['filter_date_modified'])) {
    122 				$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
    123 			}
    124 
    125 			if (isset($this->request->get['sort'])) {
    126 				$url .= '&sort=' . $this->request->get['sort'];
    127 			}
    128 
    129 			if (isset($this->request->get['order'])) {
    130 				$url .= '&order=' . $this->request->get['order'];
    131 			}
    132 
    133 			if (isset($this->request->get['page'])) {
    134 				$url .= '&page=' . $this->request->get['page'];
    135 			}
    136 
    137 			$this->response->redirect($this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url, true));
    138 		}
    139 
    140 		$this->getForm();
    141 	}
    142 
    143 	public function delete() {
    144 		$this->load->language('sale/return');
    145 
    146 		$this->document->setTitle($this->language->get('heading_title'));
    147 
    148 		$this->load->model('sale/return');
    149 
    150 		if (isset($this->request->post['selected']) && $this->validateDelete()) {
    151 			foreach ($this->request->post['selected'] as $return_id) {
    152 				$this->model_sale_return->deleteReturn($return_id);
    153 			}
    154 
    155 			$this->session->data['success'] = $this->language->get('text_success');
    156 
    157 			$url = '';
    158 
    159 			if (isset($this->request->get['filter_return_id'])) {
    160 				$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
    161 			}
    162 
    163 			if (isset($this->request->get['filter_order_id'])) {
    164 				$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    165 			}
    166 
    167 			if (isset($this->request->get['filter_customer'])) {
    168 				$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    169 			}
    170 
    171 			if (isset($this->request->get['filter_product'])) {
    172 				$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
    173 			}
    174 
    175 			if (isset($this->request->get['filter_model'])) {
    176 				$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    177 			}
    178 
    179 			if (isset($this->request->get['filter_return_status_id'])) {
    180 				$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
    181 			}
    182 
    183 			if (isset($this->request->get['filter_date_added'])) {
    184 				$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    185 			}
    186 
    187 			if (isset($this->request->get['filter_date_modified'])) {
    188 				$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
    189 			}
    190 
    191 			if (isset($this->request->get['sort'])) {
    192 				$url .= '&sort=' . $this->request->get['sort'];
    193 			}
    194 
    195 			if (isset($this->request->get['order'])) {
    196 				$url .= '&order=' . $this->request->get['order'];
    197 			}
    198 
    199 			if (isset($this->request->get['page'])) {
    200 				$url .= '&page=' . $this->request->get['page'];
    201 			}
    202 
    203 			$this->response->redirect($this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url, true));
    204 		}
    205 
    206 		$this->getList();
    207 	}
    208 
    209 	protected function getList() {
    210 		if (isset($this->request->get['filter_return_id'])) {
    211 			$filter_return_id = $this->request->get['filter_return_id'];
    212 		} else {
    213 			$filter_return_id = '';
    214 		}
    215 
    216 		if (isset($this->request->get['filter_order_id'])) {
    217 			$filter_order_id = $this->request->get['filter_order_id'];
    218 		} else {
    219 			$filter_order_id = '';
    220 		}
    221 
    222 		if (isset($this->request->get['filter_customer'])) {
    223 			$filter_customer = $this->request->get['filter_customer'];
    224 		} else {
    225 			$filter_customer = '';
    226 		}
    227 
    228 		if (isset($this->request->get['filter_product'])) {
    229 			$filter_product = $this->request->get['filter_product'];
    230 		} else {
    231 			$filter_product = '';
    232 		}
    233 
    234 		if (isset($this->request->get['filter_model'])) {
    235 			$filter_model = $this->request->get['filter_model'];
    236 		} else {
    237 			$filter_model = '';
    238 		}
    239 
    240 		if (isset($this->request->get['filter_return_status_id'])) {
    241 			$filter_return_status_id = $this->request->get['filter_return_status_id'];
    242 		} else {
    243 			$filter_return_status_id = '';
    244 		}
    245 
    246 		if (isset($this->request->get['filter_date_added'])) {
    247 			$filter_date_added = $this->request->get['filter_date_added'];
    248 		} else {
    249 			$filter_date_added = '';
    250 		}
    251 
    252 		if (isset($this->request->get['filter_date_modified'])) {
    253 			$filter_date_modified = $this->request->get['filter_date_modified'];
    254 		} else {
    255 			$filter_date_modified = '';
    256 		}
    257 
    258 		if (isset($this->request->get['sort'])) {
    259 			$sort = $this->request->get['sort'];
    260 		} else {
    261 			$sort = 'r.return_id';
    262 		}
    263 
    264 		if (isset($this->request->get['order'])) {
    265 			$order = $this->request->get['order'];
    266 		} else {
    267 			$order = 'DESC';
    268 		}
    269 
    270 		if (isset($this->request->get['page'])) {
    271 			$page = $this->request->get['page'];
    272 		} else {
    273 			$page = 1;
    274 		}
    275 
    276 		$url = '';
    277 
    278 		if (isset($this->request->get['filter_return_id'])) {
    279 			$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
    280 		}
    281 
    282 		if (isset($this->request->get['filter_order_id'])) {
    283 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    284 		}
    285 
    286 		if (isset($this->request->get['filter_customer'])) {
    287 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    288 		}
    289 
    290 		if (isset($this->request->get['filter_product'])) {
    291 			$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
    292 		}
    293 
    294 		if (isset($this->request->get['filter_model'])) {
    295 			$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    296 		}
    297 
    298 		if (isset($this->request->get['filter_return_status_id'])) {
    299 			$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
    300 		}
    301 
    302 		if (isset($this->request->get['filter_date_added'])) {
    303 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    304 		}
    305 
    306 		if (isset($this->request->get['filter_date_modified'])) {
    307 			$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
    308 		}
    309 
    310 		if (isset($this->request->get['sort'])) {
    311 			$url .= '&sort=' . $this->request->get['sort'];
    312 		}
    313 
    314 		if (isset($this->request->get['order'])) {
    315 			$url .= '&order=' . $this->request->get['order'];
    316 		}
    317 
    318 		if (isset($this->request->get['page'])) {
    319 			$url .= '&page=' . $this->request->get['page'];
    320 		}
    321 
    322 		$data['breadcrumbs'] = array();
    323 
    324 		$data['breadcrumbs'][] = array(
    325 			'text' => $this->language->get('text_home'),
    326 			'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
    327 		);
    328 
    329 		$data['breadcrumbs'][] = array(
    330 			'text' => $this->language->get('heading_title'),
    331 			'href' => $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url, true)
    332 		);
    333 
    334 		$data['add'] = $this->url->link('sale/return/add', 'user_token=' . $this->session->data['user_token'] . $url, true);
    335 		$data['delete'] = $this->url->link('sale/return/delete', 'user_token=' . $this->session->data['user_token'] . $url, true);
    336 
    337 		$data['returns'] = array();
    338 
    339 		$filter_data = array(
    340 			'filter_return_id'        => $filter_return_id,
    341 			'filter_order_id'         => $filter_order_id,
    342 			'filter_customer'         => $filter_customer,
    343 			'filter_product'          => $filter_product,
    344 			'filter_model'            => $filter_model,
    345 			'filter_return_status_id' => $filter_return_status_id,
    346 			'filter_date_added'       => $filter_date_added,
    347 			'filter_date_modified'    => $filter_date_modified,
    348 			'sort'                    => $sort,
    349 			'order'                   => $order,
    350 			'start'                   => ($page - 1) * $this->config->get('config_limit_admin'),
    351 			'limit'                   => $this->config->get('config_limit_admin')
    352 		);
    353 
    354 		$return_total = $this->model_sale_return->getTotalReturns($filter_data);
    355 
    356 		$results = $this->model_sale_return->getReturns($filter_data);
    357 
    358 		foreach ($results as $result) {
    359 			$data['returns'][] = array(
    360 				'return_id'     => $result['return_id'],
    361 				'order_id'      => $result['order_id'],
    362 				'customer'      => $result['customer'],
    363 				'product'       => $result['product'],
    364 				'model'         => $result['model'],
    365 				'return_status' => $result['return_status'],
    366 				'date_added'    => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
    367 				'date_modified' => date($this->language->get('date_format_short'), strtotime($result['date_modified'])),
    368 				'edit'          => $this->url->link('sale/return/edit', 'user_token=' . $this->session->data['user_token'] . '&return_id=' . $result['return_id'] . $url, true)
    369 			);
    370 		}
    371 
    372 		$data['user_token'] = $this->session->data['user_token'];
    373 
    374 		if (isset($this->session->data['error'])) {
    375 			$data['error_warning'] = $this->session->data['error'];
    376 
    377 			unset($this->session->data['error']);
    378 		} elseif (isset($this->error['warning'])) {
    379 			$data['error_warning'] = $this->error['warning'];
    380 		} else {
    381 			$data['error_warning'] = '';
    382 		}
    383 
    384 		if (isset($this->session->data['success'])) {
    385 			$data['success'] = $this->session->data['success'];
    386 
    387 			unset($this->session->data['success']);
    388 		} else {
    389 			$data['success'] = '';
    390 		}
    391 
    392 		if (isset($this->request->post['selected'])) {
    393 			$data['selected'] = (array)$this->request->post['selected'];
    394 		} else {
    395 			$data['selected'] = array();
    396 		}
    397 
    398 		$url = '';
    399 
    400 		if (isset($this->request->get['filter_return_id'])) {
    401 			$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
    402 		}
    403 
    404 		if (isset($this->request->get['filter_order_id'])) {
    405 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    406 		}
    407 
    408 		if (isset($this->request->get['filter_customer'])) {
    409 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    410 		}
    411 
    412 		if (isset($this->request->get['filter_product'])) {
    413 			$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
    414 		}
    415 
    416 		if (isset($this->request->get['filter_model'])) {
    417 			$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    418 		}
    419 
    420 		if (isset($this->request->get['filter_return_status_id'])) {
    421 			$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
    422 		}
    423 
    424 		if (isset($this->request->get['filter_date_added'])) {
    425 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    426 		}
    427 
    428 		if (isset($this->request->get['filter_date_modified'])) {
    429 			$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
    430 		}
    431 
    432 		if ($order == 'ASC') {
    433 			$url .= '&order=DESC';
    434 		} else {
    435 			$url .= '&order=ASC';
    436 		}
    437 
    438 		if (isset($this->request->get['page'])) {
    439 			$url .= '&page=' . $this->request->get['page'];
    440 		}
    441 
    442 		$data['sort_return_id'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=r.return_id' . $url, true);
    443 		$data['sort_order_id'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=r.order_id' . $url, true);
    444 		$data['sort_customer'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=customer' . $url, true);
    445 		$data['sort_product'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=r.product' . $url, true);
    446 		$data['sort_model'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=r.model' . $url, true);
    447 		$data['sort_status'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=status' . $url, true);
    448 		$data['sort_date_added'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=r.date_added' . $url, true);
    449 		$data['sort_date_modified'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . '&sort=r.date_modified' . $url, true);
    450 
    451 		$url = '';
    452 
    453 		if (isset($this->request->get['filter_return_id'])) {
    454 			$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
    455 		}
    456 
    457 		if (isset($this->request->get['filter_order_id'])) {
    458 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    459 		}
    460 
    461 		if (isset($this->request->get['filter_customer'])) {
    462 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    463 		}
    464 
    465 		if (isset($this->request->get['filter_product'])) {
    466 			$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
    467 		}
    468 
    469 		if (isset($this->request->get['filter_model'])) {
    470 			$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    471 		}
    472 
    473 		if (isset($this->request->get['filter_return_status_id'])) {
    474 			$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
    475 		}
    476 
    477 		if (isset($this->request->get['filter_date_added'])) {
    478 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    479 		}
    480 
    481 		if (isset($this->request->get['filter_date_modified'])) {
    482 			$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
    483 		}
    484 
    485 		if (isset($this->request->get['sort'])) {
    486 			$url .= '&sort=' . $this->request->get['sort'];
    487 		}
    488 
    489 		if (isset($this->request->get['order'])) {
    490 			$url .= '&order=' . $this->request->get['order'];
    491 		}
    492 
    493 		$pagination = new Pagination();
    494 		$pagination->total = $return_total;
    495 		$pagination->page = $page;
    496 		$pagination->limit = $this->config->get('config_limit_admin');
    497 		$pagination->url = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url . '&page={page}', true);
    498 
    499 		$data['pagination'] = $pagination->render();
    500 
    501 		$data['results'] = sprintf($this->language->get('text_pagination'), ($return_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($return_total - $this->config->get('config_limit_admin'))) ? $return_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $return_total, ceil($return_total / $this->config->get('config_limit_admin')));
    502 
    503 		$data['filter_return_id'] = $filter_return_id;
    504 		$data['filter_order_id'] = $filter_order_id;
    505 		$data['filter_customer'] = $filter_customer;
    506 		$data['filter_product'] = $filter_product;
    507 		$data['filter_model'] = $filter_model;
    508 		$data['filter_return_status_id'] = $filter_return_status_id;
    509 		$data['filter_date_added'] = $filter_date_added;
    510 		$data['filter_date_modified'] = $filter_date_modified;
    511 
    512 		$this->load->model('localisation/return_status');
    513 
    514 		$data['return_statuses'] = $this->model_localisation_return_status->getReturnStatuses();
    515 
    516 		$data['sort'] = $sort;
    517 		$data['order'] = $order;
    518 
    519 		$data['header'] = $this->load->controller('common/header');
    520 		$data['column_left'] = $this->load->controller('common/column_left');
    521 		$data['footer'] = $this->load->controller('common/footer');
    522 
    523 		$this->response->setOutput($this->load->view('sale/return_list', $data));
    524 	}
    525 
    526 	protected function getForm() {
    527 		$data['text_form'] = !isset($this->request->get['return_id']) ? $this->language->get('text_add') : $this->language->get('text_edit');
    528 
    529 		$data['user_token'] = $this->session->data['user_token'];
    530 
    531 		if (isset($this->request->get['return_id'])) {
    532 			$data['return_id'] = $this->request->get['return_id'];
    533 		} else {
    534 			$data['return_id'] = 0;
    535 		}
    536 
    537 		if (isset($this->error['warning'])) {
    538 			$data['error_warning'] = $this->error['warning'];
    539 		} else {
    540 			$data['error_warning'] = '';
    541 		}
    542 
    543 		if (isset($this->error['order_id'])) {
    544 			$data['error_order_id'] = $this->error['order_id'];
    545 		} else {
    546 			$data['error_order_id'] = '';
    547 		}
    548 
    549 		if (isset($this->error['firstname'])) {
    550 			$data['error_firstname'] = $this->error['firstname'];
    551 		} else {
    552 			$data['error_firstname'] = '';
    553 		}
    554 
    555 		if (isset($this->error['lastname'])) {
    556 			$data['error_lastname'] = $this->error['lastname'];
    557 		} else {
    558 			$data['error_lastname'] = '';
    559 		}
    560 
    561 		if (isset($this->error['email'])) {
    562 			$data['error_email'] = $this->error['email'];
    563 		} else {
    564 			$data['error_email'] = '';
    565 		}
    566 
    567 		if (isset($this->error['telephone'])) {
    568 			$data['error_telephone'] = $this->error['telephone'];
    569 		} else {
    570 			$data['error_telephone'] = '';
    571 		}
    572 
    573 		if (isset($this->error['product'])) {
    574 			$data['error_product'] = $this->error['product'];
    575 		} else {
    576 			$data['error_product'] = '';
    577 		}
    578 
    579 		if (isset($this->error['model'])) {
    580 			$data['error_model'] = $this->error['model'];
    581 		} else {
    582 			$data['error_model'] = '';
    583 		}
    584 
    585 		$url = '';
    586 
    587 		if (isset($this->request->get['filter_return_id'])) {
    588 			$url .= '&filter_return_id=' . $this->request->get['filter_return_id'];
    589 		}
    590 
    591 		if (isset($this->request->get['filter_order_id'])) {
    592 			$url .= '&filter_order_id=' . $this->request->get['filter_order_id'];
    593 		}
    594 
    595 		if (isset($this->request->get['filter_customer'])) {
    596 			$url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8'));
    597 		}
    598 
    599 		if (isset($this->request->get['filter_product'])) {
    600 			$url .= '&filter_product=' . urlencode(html_entity_decode($this->request->get['filter_product'], ENT_QUOTES, 'UTF-8'));
    601 		}
    602 
    603 		if (isset($this->request->get['filter_model'])) {
    604 			$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
    605 		}
    606 
    607 		if (isset($this->request->get['filter_return_status_id'])) {
    608 			$url .= '&filter_return_status_id=' . $this->request->get['filter_return_status_id'];
    609 		}
    610 
    611 		if (isset($this->request->get['filter_date_added'])) {
    612 			$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
    613 		}
    614 
    615 		if (isset($this->request->get['filter_date_modified'])) {
    616 			$url .= '&filter_date_modified=' . $this->request->get['filter_date_modified'];
    617 		}
    618 
    619 		if (isset($this->request->get['sort'])) {
    620 			$url .= '&sort=' . $this->request->get['sort'];
    621 		}
    622 
    623 		if (isset($this->request->get['order'])) {
    624 			$url .= '&order=' . $this->request->get['order'];
    625 		}
    626 
    627 		if (isset($this->request->get['page'])) {
    628 			$url .= '&page=' . $this->request->get['page'];
    629 		}
    630 
    631 		$data['breadcrumbs'] = array();
    632 
    633 		$data['breadcrumbs'][] = array(
    634 			'text' => $this->language->get('text_home'),
    635 			'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
    636 		);
    637 
    638 		$data['breadcrumbs'][] = array(
    639 			'text' => $this->language->get('heading_title'),
    640 			'href' => $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url, true)
    641 		);
    642 
    643 		if (!isset($this->request->get['return_id'])) {
    644 			$data['action'] = $this->url->link('sale/return/add', 'user_token=' . $this->session->data['user_token'] . $url, true);
    645 		} else {
    646 			$data['action'] = $this->url->link('sale/return/edit', 'user_token=' . $this->session->data['user_token'] . '&return_id=' . $this->request->get['return_id'] . $url, true);
    647 		}
    648 
    649 		$data['cancel'] = $this->url->link('sale/return', 'user_token=' . $this->session->data['user_token'] . $url, true);
    650 
    651 		if (isset($this->request->get['return_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
    652 			$return_info = $this->model_sale_return->getReturn($this->request->get['return_id']);
    653 		}
    654 
    655 		if (isset($this->request->post['order_id'])) {
    656 			$data['order_id'] = $this->request->post['order_id'];
    657 		} elseif (!empty($return_info)) {
    658 			$data['order_id'] = $return_info['order_id'];
    659 		} else {
    660 			$data['order_id'] = '';
    661 		}
    662 
    663 		if (isset($this->request->post['date_ordered'])) {
    664 			$data['date_ordered'] = $this->request->post['date_ordered'];
    665 		} elseif (!empty($return_info)) {
    666 			$data['date_ordered'] = ($return_info['date_ordered'] != '0000-00-00' ? $return_info['date_ordered'] : '');
    667 		} else {
    668 			$data['date_ordered'] = '';
    669 		}
    670 
    671 		if (isset($this->request->post['customer'])) {
    672 			$data['customer'] = $this->request->post['customer'];
    673 		} elseif (!empty($return_info)) {
    674 			$data['customer'] = $return_info['customer'];
    675 		} else {
    676 			$data['customer'] = '';
    677 		}
    678 
    679 		if (isset($this->request->post['customer_id'])) {
    680 			$data['customer_id'] = $this->request->post['customer_id'];
    681 		} elseif (!empty($return_info)) {
    682 			$data['customer_id'] = $return_info['customer_id'];
    683 		} else {
    684 			$data['customer_id'] = '';
    685 		}
    686 
    687 		if (isset($this->request->post['firstname'])) {
    688 			$data['firstname'] = $this->request->post['firstname'];
    689 		} elseif (!empty($return_info)) {
    690 			$data['firstname'] = $return_info['firstname'];
    691 		} else {
    692 			$data['firstname'] = '';
    693 		}
    694 
    695 		if (isset($this->request->post['lastname'])) {
    696 			$data['lastname'] = $this->request->post['lastname'];
    697 		} elseif (!empty($return_info)) {
    698 			$data['lastname'] = $return_info['lastname'];
    699 		} else {
    700 			$data['lastname'] = '';
    701 		}
    702 
    703 		if (isset($this->request->post['email'])) {
    704 			$data['email'] = $this->request->post['email'];
    705 		} elseif (!empty($return_info)) {
    706 			$data['email'] = $return_info['email'];
    707 		} else {
    708 			$data['email'] = '';
    709 		}
    710 
    711 		if (isset($this->request->post['telephone'])) {
    712 			$data['telephone'] = $this->request->post['telephone'];
    713 		} elseif (!empty($return_info)) {
    714 			$data['telephone'] = $return_info['telephone'];
    715 		} else {
    716 			$data['telephone'] = '';
    717 		}
    718 
    719 		if (isset($this->request->post['product'])) {
    720 			$data['product'] = $this->request->post['product'];
    721 		} elseif (!empty($return_info)) {
    722 			$data['product'] = $return_info['product'];
    723 		} else {
    724 			$data['product'] = '';
    725 		}
    726 
    727 		if (isset($this->request->post['product_id'])) {
    728 			$data['product_id'] = $this->request->post['product_id'];
    729 		} elseif (!empty($return_info)) {
    730 			$data['product_id'] = $return_info['product_id'];
    731 		} else {
    732 			$data['product_id'] = '';
    733 		}
    734 
    735 		if (isset($this->request->post['model'])) {
    736 			$data['model'] = $this->request->post['model'];
    737 		} elseif (!empty($return_info)) {
    738 			$data['model'] = $return_info['model'];
    739 		} else {
    740 			$data['model'] = '';
    741 		}
    742 
    743 		if (isset($this->request->post['quantity'])) {
    744 			$data['quantity'] = $this->request->post['quantity'];
    745 		} elseif (!empty($return_info)) {
    746 			$data['quantity'] = $return_info['quantity'];
    747 		} else {
    748 			$data['quantity'] = '';
    749 		}
    750 
    751 		if (isset($this->request->post['opened'])) {
    752 			$data['opened'] = $this->request->post['opened'];
    753 		} elseif (!empty($return_info)) {
    754 			$data['opened'] = $return_info['opened'];
    755 		} else {
    756 			$data['opened'] = '';
    757 		}
    758 
    759 		if (isset($this->request->post['return_reason_id'])) {
    760 			$data['return_reason_id'] = $this->request->post['return_reason_id'];
    761 		} elseif (!empty($return_info)) {
    762 			$data['return_reason_id'] = $return_info['return_reason_id'];
    763 		} else {
    764 			$data['return_reason_id'] = '';
    765 		}
    766 
    767 		$this->load->model('localisation/return_reason');
    768 
    769 		$data['return_reasons'] = $this->model_localisation_return_reason->getReturnReasons();
    770 
    771 		if (isset($this->request->post['return_action_id'])) {
    772 			$data['return_action_id'] = $this->request->post['return_action_id'];
    773 		} elseif (!empty($return_info)) {
    774 			$data['return_action_id'] = $return_info['return_action_id'];
    775 		} else {
    776 			$data['return_action_id'] = '';
    777 		}
    778 
    779 		$this->load->model('localisation/return_action');
    780 
    781 		$data['return_actions'] = $this->model_localisation_return_action->getReturnActions();
    782 
    783 		if (isset($this->request->post['comment'])) {
    784 			$data['comment'] = $this->request->post['comment'];
    785 		} elseif (!empty($return_info)) {
    786 			$data['comment'] = $return_info['comment'];
    787 		} else {
    788 			$data['comment'] = '';
    789 		}
    790 
    791 		if (isset($this->request->post['return_status_id'])) {
    792 			$data['return_status_id'] = $this->request->post['return_status_id'];
    793 		} elseif (!empty($return_info)) {
    794 			$data['return_status_id'] = $return_info['return_status_id'];
    795 		} else {
    796 			$data['return_status_id'] = '';
    797 		}
    798 
    799 		$this->load->model('localisation/return_status');
    800 
    801 		$data['return_statuses'] = $this->model_localisation_return_status->getReturnStatuses();
    802 
    803 		$data['header'] = $this->load->controller('common/header');
    804 		$data['column_left'] = $this->load->controller('common/column_left');
    805 		$data['footer'] = $this->load->controller('common/footer');
    806 
    807 		$this->response->setOutput($this->load->view('sale/return_form', $data));
    808 	}
    809 
    810 	protected function validateForm() {
    811 		if (!$this->user->hasPermission('modify', 'sale/return')) {
    812 			$this->error['warning'] = $this->language->get('error_permission');
    813 		}
    814 
    815 		if (empty($this->request->post['order_id'])) {
    816 			$this->error['order_id'] = $this->language->get('error_order_id');
    817 		}
    818 
    819 		if ((utf8_strlen(trim($this->request->post['firstname'])) < 1) || (utf8_strlen(trim($this->request->post['firstname'])) > 32)) {
    820 			$this->error['firstname'] = $this->language->get('error_firstname');
    821 		}
    822 
    823 		if ((utf8_strlen(trim($this->request->post['lastname'])) < 1) || (utf8_strlen(trim($this->request->post['lastname'])) > 32)) {
    824 			$this->error['lastname'] = $this->language->get('error_lastname');
    825 		}
    826 
    827 		if ((utf8_strlen($this->request->post['email']) > 96) || !filter_var($this->request->post['email'], FILTER_VALIDATE_EMAIL)) {
    828 			$this->error['email'] = $this->language->get('error_email');
    829 		}
    830 
    831 		if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {
    832 			$this->error['telephone'] = $this->language->get('error_telephone');
    833 		}
    834 
    835 		if ((utf8_strlen($this->request->post['product']) < 1) || (utf8_strlen($this->request->post['product']) > 255)) {
    836 			$this->error['product'] = $this->language->get('error_product');
    837 		}
    838 
    839 		if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
    840 			$this->error['model'] = $this->language->get('error_model');
    841 		}
    842 
    843 		if (empty($this->request->post['return_reason_id'])) {
    844 			$this->error['reason'] = $this->language->get('error_reason');
    845 		}
    846 
    847 		if ($this->error && !isset($this->error['warning'])) {
    848 			$this->error['warning'] = $this->language->get('error_warning');
    849 		}
    850 
    851 		return !$this->error;
    852 	}
    853 
    854 	protected function validateDelete() {
    855 		if (!$this->user->hasPermission('modify', 'sale/return')) {
    856 			$this->error['warning'] = $this->language->get('error_permission');
    857 		}
    858 
    859 		return !$this->error;
    860 	}
    861 
    862 	public function history() {
    863 		$this->load->language('sale/return');
    864 
    865 		$this->load->model('sale/return');
    866 
    867 		if (isset($this->request->get['page'])) {
    868 			$page = $this->request->get['page'];
    869 		} else {
    870 			$page = 1;
    871 		}
    872 
    873 		$data['histories'] = array();
    874 
    875 		$results = $this->model_sale_return->getReturnHistories($this->request->get['return_id'], ($page - 1) * 10, 10);
    876 
    877 		foreach ($results as $result) {
    878 			$data['histories'][] = array(
    879 				'notify'     => $result['notify'] ? $this->language->get('text_yes') : $this->language->get('text_no'),
    880 				'status'     => $result['status'],
    881 				'comment'    => nl2br($result['comment']),
    882 				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
    883 			);
    884 		}
    885 
    886 		$history_total = $this->model_sale_return->getTotalReturnHistories($this->request->get['return_id']);
    887 
    888 		$pagination = new Pagination();
    889 		$pagination->total = $history_total;
    890 		$pagination->page = $page;
    891 		$pagination->limit = 10;
    892 		$pagination->url = $this->url->link('sale/return/history', 'user_token=' . $this->session->data['user_token'] . '&return_id=' . $this->request->get['return_id'] . '&page={page}', true);
    893 
    894 		$data['pagination'] = $pagination->render();
    895 
    896 		$data['results'] = sprintf($this->language->get('text_pagination'), ($history_total) ? (($page - 1) * 10) + 1 : 0, ((($page - 1) * 10) > ($history_total - 10)) ? $history_total : ((($page - 1) * 10) + 10), $history_total, ceil($history_total / 10));
    897 
    898 		$this->response->setOutput($this->load->view('sale/return_history', $data));
    899 	}
    900 	
    901 	public function addHistory() {
    902 		$this->load->language('sale/return');
    903 
    904 		$json = array();
    905 
    906 		if (!$this->user->hasPermission('modify', 'sale/return')) {
    907 			$json['error'] = $this->language->get('error_permission');
    908 		} else {
    909 			$this->load->model('sale/return');
    910 
    911 			$this->model_sale_return->addReturnHistory($this->request->get['return_id'], $this->request->post['return_status_id'], $this->request->post['comment'], $this->request->post['notify']);
    912 
    913 			$json['success'] = $this->language->get('text_success');
    914 		}
    915 
    916 		$this->response->addHeader('Content-Type: application/json');
    917 		$this->response->setOutput(json_encode($json));
    918 	}	
    919 }