/** * 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(); } } }
/** * 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; }