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 }