protected function _assignSummaryInformations()
 {
     global $currency;
     if (file_exists(_PS_SHIP_IMG_DIR_ . (int) self::$cart->id_carrier . '.jpg')) {
         self::$smarty->assign('carrierPicture', 1);
     }
     $summary = self::$cart->getSummaryDetails();
     $customizedDatas = Product::getAllCustomizedDatas((int) self::$cart->id);
     Product::addCustomizationPrice($summary['products'], $customizedDatas);
     if ($free_ship = Tools::convertPrice((double) Configuration::get('PS_SHIPPING_FREE_PRICE'), new Currency((int) self::$cart->id_currency))) {
         $discounts = self::$cart->getDiscounts();
         $total_free_ship = $free_ship - ($summary['total_products_wt'] + $summary['total_discounts']);
         foreach ($discounts as $discount) {
             if ($discount['id_discount_type'] == 3) {
                 $total_free_ship = 0;
                 break;
             }
         }
         self::$smarty->assign('free_ship', $total_free_ship);
     }
     // for compatibility with 1.2 themes
     foreach ($summary['products'] as $key => $product) {
         $summary['products'][$key]['quantity'] = $product['cart_quantity'];
     }
     self::$smarty->assign($summary);
     self::$smarty->assign(array('token_cart' => Tools::getToken(false), 'isVirtualCart' => self::$cart->isVirtualCart(), 'productNumber' => self::$cart->nbProducts(), 'voucherAllowed' => Configuration::get('PS_VOUCHERS'), 'shippingCost' => self::$cart->getOrderTotal(true, Cart::ONLY_SHIPPING), 'shippingCostTaxExc' => self::$cart->getOrderTotal(false, Cart::ONLY_SHIPPING), 'customizedDatas' => $customizedDatas, 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'lastProductAdded' => self::$cart->getLastProduct(), 'displayVouchers' => Discount::getVouchersToCartDisplay((int) self::$cookie->id_lang, isset(self::$cookie->id_customer) ? (int) self::$cookie->id_customer : 0), 'currencySign' => $currency->sign, 'currencyRate' => $currency->conversion_rate, 'currencyFormat' => $currency->format, 'currencyBlank' => $currency->blank));
     self::$smarty->assign(array('HOOK_SHOPPING_CART' => Module::hookExec('shoppingCart', $summary), 'HOOK_SHOPPING_CART_EXTRA' => Module::hookExec('shoppingCartExtra', $summary)));
 }
 protected function _assignSummaryInformations()
 {
     $summary = $this->context->cart->getSummaryDetails();
     $customizedDatas = Product::getAllCustomizedDatas($this->context->cart->id);
     // override customization tax rate with real tax (tax rules)
     if ($customizedDatas) {
         foreach ($summary['products'] as &$productUpdate) {
             $productId = (int) (isset($productUpdate['id_product']) ? $productUpdate['id_product'] : $productUpdate['product_id']);
             $productAttributeId = (int) (isset($productUpdate['id_product_attribute']) ? $productUpdate['id_product_attribute'] : $productUpdate['product_attribute_id']);
             if (isset($customizedDatas[$productId][$productAttributeId])) {
                 $productUpdate['tax_rate'] = Tax::getProductTaxRate($productId, $this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
             }
         }
         Product::addCustomizationPrice($summary['products'], $customizedDatas);
     }
     foreach ($summary['products'] as $key => &$product) {
         $product['quantity'] = $product['cart_quantity'];
         // for compatibility with 1.2 themes
         $product['price_without_specific_price'] = Product::getPriceStatic($product['id_product'], !Product::getTaxCalculationMethod(), $product['id_product_attribute'], 2, null, false, false);
         if (Product::getTaxCalculationMethod()) {
             $product['is_discounted'] = $product['price_without_specific_price'] != $product['price'];
         } else {
             $product['is_discounted'] = $product['price_without_specific_price'] != $product['price_wt'];
         }
     }
     $show_option_allow_separate_package = !$this->context->cart->isAllProductsInStock(true) && Configuration::get('PS_SHIP_WHEN_AVAILABLE');
     $this->context->smarty->assign($summary);
     $this->context->smarty->assign(array('token_cart' => Tools::getToken(false), 'isVirtualCart' => $this->context->cart->isVirtualCart(), 'productNumber' => $this->context->cart->nbProducts(), 'voucherAllowed' => Configuration::get('PS_VOUCHERS') && CartRule::isFeatureActive(), 'shippingCost' => $this->context->cart->getOrderTotal(true, Cart::ONLY_SHIPPING), 'shippingCostTaxExc' => $this->context->cart->getOrderTotal(false, Cart::ONLY_SHIPPING), 'customizedDatas' => $customizedDatas, 'CUSTOMIZE_FILE' => Product::CUSTOMIZE_FILE, 'CUSTOMIZE_TEXTFIELD' => Product::CUSTOMIZE_TEXTFIELD, 'lastProductAdded' => $this->context->cart->getLastProduct(), 'displayVouchers' => Discount::getVouchersToCartDisplay($this->context->language->id, isset($this->context->customer->id) ? $this->context->customer->id : 0), 'currencySign' => $this->context->currency->sign, 'currencyRate' => $this->context->currency->conversion_rate, 'currencyFormat' => $this->context->currency->format, 'currencyBlank' => $this->context->currency->blank, 'show_option_allow_separate_package' => $show_option_allow_separate_package));
     $this->context->smarty->assign(array('HOOK_SHOPPING_CART' => Hook::exec('displayShoppingCartFooter', $summary), 'HOOK_SHOPPING_CART_EXTRA' => Hook::exec('displayShoppingCart', $summary)));
 }
        }
        $cart->addCartRule($voucher->id);
    } else {
        $voucher = new Discount();
        $voucher->id_discount_type = 2;
        $voucher->value = $amount;
        $languages = Language::getLanguages(true);
        $voucher->name = 'Fid\'Bag';
        $voucher->description = 'Discount Fid\'Bag';
        $voucher->id_customer = (int) $cart->id_customer;
        $voucher->id_currency = (int) $cart->id_currency;
        $voucher->quantity = 1;
        $voucher->quantity_per_user = 1;
        $voucher->cumulable = 1;
        $voucher->cumulable_reduction = 1;
        $voucher->minimal = (double) $voucher->value;
        $voucher->include_tax = 1;
        $voucher->active = 1;
        $voucher->cart_display = 1;
        $now = time();
        $voucher->date_from = date('Y-m-d H:i:s', $now);
        $voucher->date_to = date('Y-m-d H:i:s', $now + 3600 * 24 * 365.25);
        if (!$voucher->validateFieldsLang(false) || !$voucher->add()) {
            die('0');
        }
        $cart->addDiscount($voucher->id);
        Discount::getVouchersToCartDisplay(1, $cart->id_customer);
    }
}
$values = array('total' => Tools::ps_round($cart->getOrderTotal(), $currency->decimals), 'discount' => $amount);
die(Tools::jsonEncode($values));
Esempio n. 4
0
    foreach ($discounts as $discount) {
        if ($discount['id_discount_type'] == 3 || $discount['id_discount_type'] == 4 || $discount['id_discount_type'] == 5) {
            $total_free_ship = 0;
            break;
        }
    }
    $smarty->assign('free_ship', $total_free_ship);
}
// for compatibility with 1.2 themes
foreach ($summary['products'] as $key => $product) {
    $summary['products'][$key]['quantity'] = $product['cart_quantity'];
}
$smarty->assign($summary);
$address = new Address((int) $cart->id_address_delivery);
$smarty->assign('delivery_address', $address);
$smarty->assign(array('token_cart' => Tools::getToken(false), 'isVirtualCart' => $cart->isVirtualCart(), 'productNumber' => $cart->nbProducts(), 'voucherAllowed' => Configuration::get('PS_VOUCHERS'), 'shippingCost' => $cart->getOrderTotal(true, Cart::ONLY_SHIPPING), 'codCharge' => COD_CHARGE, 'shippingCostTaxExc' => $cart->getOrderTotal(false, Cart::ONLY_SHIPPING), 'customizedDatas' => $customizedDatas, 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'lastProductAdded' => $cart->getLastProduct(), 'displayVouchers' => Discount::getVouchersToCartDisplay((int) $cookie->id_lang, isset($cookie->id_customer) ? (int) $cookie->id_customer : 0), 'currencySign' => $currency->sign, 'currencyRate' => $currency->conversion_rate, 'currencyFormat' => $currency->format, 'currencyBlank' => $currency->blank));
/* Validate order */
if (Tools::getValue('confirm')) {
    $customer = new Customer((int) $cart->id_customer);
    $total = $cart->getOrderTotal(true, Cart::BOTH, false);
    $cashOnDelivery->validateOrder((int) $cart->id, _PS_OS_COD_PENDING_CONFIRMATION, $total, $cashOnDelivery->displayName, NULL, array(), NULL, false, $customer->secure_key);
    $order = new Order((int) $cashOnDelivery->currentOrder);
    Tools::redirectLink(__PS_BASE_URI__ . 'order-confirmation.php?key=' . $customer->secure_key . '&id_cart=' . (int) $cart->id . '&id_module=' . (int) $cashOnDelivery->id . '&id_order=' . (int) $cashOnDelivery->currentOrder);
} else {
    /* or ask for confirmation */
    $smarty->assign(array('total' => $cart->getOrderTotal(true, Cart::BOTH, false), 'this_path_ssl' => Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__ . 'modules/cashondelivery/'));
    $smarty->assign('this_path', __PS_BASE_URI__ . 'modules/cashondelivery/');
    $template = 'validation.tpl';
    echo Module::display('cashondelivery', $template);
}
include dirname(__FILE__) . '/../../footer.php';