/catalog/model/total/voucher.php

https://gitlab.com/hazelnuts23/unitedfoodstuff · PHP · 52 lines · 40 code · 12 blank · 0 comment · 7 complexity · 638f1bde466c3449a14452a21e994f3a MD5 · raw file

  1. <?php
  2. class ModelTotalVoucher extends Model {
  3. public function getTotal(&$total_data, &$total, &$taxes) {
  4. if (isset($this->session->data['voucher'])) {
  5. $this->load->language('total/voucher');
  6. $this->load->model('checkout/voucher');
  7. $voucher_info = $this->model_checkout_voucher->getVoucher($this->session->data['voucher']);
  8. if ($voucher_info) {
  9. if ($voucher_info['amount'] > $total) {
  10. $amount = $total;
  11. } else {
  12. $amount = $voucher_info['amount'];
  13. }
  14. $total_data[] = array(
  15. 'code' => 'voucher',
  16. 'title' => sprintf($this->language->get('text_voucher'), $this->session->data['voucher']),
  17. 'value' => -$amount,
  18. 'sort_order' => $this->config->get('voucher_sort_order')
  19. );
  20. $total -= $amount;
  21. }
  22. }
  23. }
  24. public function confirm($order_info, $order_total) {
  25. $code = '';
  26. $start = strpos($order_total['title'], '(') + 1;
  27. $end = strrpos($order_total['title'], ')');
  28. if ($start && $end) {
  29. $code = substr($order_total['title'], $start, $end - $start);
  30. }
  31. $this->load->model('checkout/voucher');
  32. $voucher_info = $this->model_checkout_voucher->getVoucher($code);
  33. if ($voucher_info) {
  34. $this->db->query("INSERT INTO `" . DB_PREFIX . "voucher_history` SET voucher_id = '" . (int)$voucher_info['voucher_id'] . "', order_id = '" . (int)$order_info['order_id'] . "', amount = '" . (float)$order_total['value'] . "', date_added = NOW()");
  35. }
  36. }
  37. public function unconfirm($order_id) {
  38. $this->db->query("DELETE FROM `" . DB_PREFIX . "voucher_history` WHERE order_id = '" . (int)$order_id . "'");
  39. }
  40. }