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 }