Ejemplo n.º 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();
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * main action
  */
 public function mainAction()
 {
     /**
      * Input data
      */
     if (is_numeric($this->GET['id'])) {
         $order_id = $this->GET['id'];
     } else {
         return false;
     }
     /**
      * Create objects
      */
     require_once 'models/ecommerce/ecommerce_order.php';
     $Order = new ecommerce_order();
     require_once 'models/ecommerce/ecommerce_delivery.php';
     $Delivery = new ecommerce_delivery();
     /**
      * Get details for order to be able make a security check
      */
     if (is_numeric($order_id)) {
         $order_data = $Order->getOrder($order_id);
     }
     //security check of owner
     if ($order_data['basket']['customer_id'] !== $_SESSION['client']['customer']['id'] && !Onxshop_Bo_Authentication::getInstance()->isAuthenticated()) {
         msg('unauthorized access to view transaction detail', 'error');
     } else {
         $delivery_list = $Delivery->getDeliveryListByOrderId($order_id);
         //print_r($transaction_list);
         if (is_array($delivery_list)) {
             foreach ($delivery_list as $item) {
                 $item['other_data'] = unserialize($item['other_data']);
                 if ($item['customer_note'] == "") {
                     $item['customer_note'] = 'n/a';
                 }
                 $this->tpl->assign('ITEM', $item);
                 $this->tpl->parse('content.item');
             }
         }
     }
     return true;
 }
Ejemplo n.º 3
0
 /**
  * insert delivery
  */
 function insertDelivery($order_data)
 {
     require_once 'models/ecommerce/ecommerce_basket.php';
     $Basket = new ecommerce_basket();
     $Basket->setCacheable(false);
     $basket = $Basket->getFullDetail($order_data['basket_id']);
     $include_vat = $this->isVatEligible($order_data['delivery_address_id'], $basket['customer_id']);
     $Basket->calculateBasketSubTotals($basket, $include_vat);
     $code = $order_data['other_data']['promotion_code'];
     $verify_code = false;
     $promotion_detail = $Basket->calculateBasketDiscount($basket, $code, $verify_code);
     require_once 'models/ecommerce/ecommerce_delivery.php';
     $Delivery = new ecommerce_delivery();
     $delivery = $Delivery->calculateDelivery($basket, $order_data['other_data']['delivery_options']['carrier_id'], $order_data['delivery_address_id'], $promotion_detail);
     //prepare object
     require_once 'models/ecommerce/ecommerce_delivery.php';
     $Ecommerce_Delivery = new ecommerce_delivery();
     //format data
     $delivery_data['order_id'] = $order_data['id'];
     $delivery_data['carrier_id'] = $order_data['other_data']['delivery_options']['carrier_id'];
     $delivery_data['value_net'] = $delivery['value_net'];
     $delivery_data['vat'] = $delivery['vat'];
     $delivery_data['vat_rate'] = $delivery['vat_rate'];
     $delivery_data['required_datetime'] = $order_data['other_data']['delivery_options']['required_datetime'];
     $delivery_data['note_customer'] = '';
     $delivery_data['note_backoffice'] = '';
     $delivery_data['other_data'] = $order_data['other_data']['delivery_options']['other_data'];
     $delivery_data['weight'] = $delivery['weight'];
     //insert
     if ($id = $Ecommerce_Delivery->insertDelivery($delivery_data)) {
         return $id;
     } else {
         return false;
     }
 }