Пример #1
0
 /**
  * calculateDiscountAndDelivery
  */
 protected function calculateDiscountAndDelivery(&$basket)
 {
     $Delivery = new ecommerce_delivery();
     // order exists?
     if ($this->orderFinished($basket['id'], $this->GET['order_id'])) {
         $Promotion = new ecommerce_promotion();
         $Promotion->setCacheable(false);
         // get data from database
         $code = $Promotion->getPromotionCodeForOrder($this->GET['order_id']);
         $verify_code = false;
         $this->Basket->calculateBasketDiscount($basket, $code, $verify_code);
         $basket['delivery'] = $Delivery->getDeliveryByOrderId($this->GET['order_id']);
     } else {
         // calculate data
         $code = $_SESSION['promotion_code'];
         $verify_code = true;
         $promotion_detail = $this->Basket->calculateBasketDiscount($basket, $code, $verify_code);
         $this->Basket->saveDiscount($basket);
         if ($this->guest_customer) {
             $basket['delivery'] = $Delivery->calculateDeliveryForCountry($basket, $this->delivery_options['carrier_id'], $this->delivery_country, $promotion_detail);
         } else {
             $basket['delivery'] = $Delivery->calculateDelivery($basket, $this->delivery_options['carrier_id'], $this->delivery_address_id, $promotion_detail);
         }
         // this only applies when using wizard checkout
         if ($basket['delivery'] == false) {
             $this->redirectToDeliveryOptionsPage();
         }
     }
 }
Пример #2
0
 /**
  * get detail of one order
  *
  * @param unknown_type $id
  * @return unknown
  */
 function getOrder($id)
 {
     require_once 'models/ecommerce/ecommerce_basket.php';
     require_once 'models/client/client_customer.php';
     require_once 'models/ecommerce/ecommerce_order_log.php';
     require_once 'models/ecommerce/ecommerce_delivery.php';
     $Basket = new ecommerce_basket();
     $Customer = new client_customer();
     $OrderLog = new ecommerce_order_log();
     $Delivery = new ecommerce_delivery();
     $Basket->setCacheable(false);
     $Customer->setCacheable(false);
     $OrderLog->setCacheable(false);
     //this can be cached (submitted orders cannot change address) $Delivery->setCacheable(false);
     $order = $this->getDetail($id);
     //get promotion code
     $order['promotion_code'] = $this->getPromotionCode($id);
     //get basket detail
     $basket_detail = $Basket->getDetail($order['basket_id']);
     $include_vat = $this->isVatEligible($order['delivery_address_id'], $basket_detail['customer_id']);
     $basket_content = $Basket->getFullDetail($order['basket_id'], GLOBAL_DEFAULT_CURRENCY);
     $Basket->calculateBasketSubTotals($basket_content, $include_vat);
     $Basket->calculateBasketDiscount($basket_content, $order['promotion_code'], false);
     $basket_content['delivery'] = $Delivery->getDeliveryByOrderId($id);
     $Basket->calculateBasketTotals($basket_content);
     $order['basket'] = $basket_content;
     //get client detail
     $order['client'] = $Customer->getClientData($basket_content['customer_id']);
     //get status (log) detail
     $order['log'] = $OrderLog->getLog($id);
     $order['status_title'] = $this->getStatusTitle($order['status']);
     //get address detail
     require_once 'models/client/client_address.php';
     $Address = new client_address();
     $Address->setCacheable(false);
     $address_detail['delivery'] = $Address->getDetail($order['delivery_address_id']);
     $address_detail['invoices'] = $Address->getDetail($order['invoices_address_id']);
     $order['address'] = $address_detail;
     //get invoice detail
     $order['invoice'] = $this->getInvoiceDetail($id);
     //get transaction detail
     $order['transaction'] = $this->getTransactionDetail($id);
     // get stats
     $order['client']['stats'] = $this->getNumberOfCustomersOrders($basket_detail['customer_id']);
     //print_r($order);
     return $order;
 }