本文整理汇总了PHP中calculationHelper::getInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP calculationHelper::getInstance方法的具体用法?PHP calculationHelper::getInstance怎么用?PHP calculationHelper::getInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类calculationHelper
的用法示例。
在下文中一共展示了calculationHelper::getInstance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPrices
public function getPrices()
{
$tmpcart = $this->cart;
foreach ($tmpcart->products as $key1 => $product) {
foreach ($product->allPrices as $key2 => $pricearr) {
$tmpcart->products[$key1]->allPrices[$key2]['product_tax_id'] = "";
}
}
if (!class_exists('calculationHelper')) {
require VMPATH_ADMIN . DS . 'helpers' . DS . 'calculationh.php';
}
$calculator = calculationHelper::getInstance();
$calculator->getCheckoutPrices($tmpcart, true);
$price = $this->cart->pricesUnformatted;
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart' . DS . 'helpers' . DS . 'currencydisplay.php';
$cdisp = CurrencyDisplay::getInstance();
//echo json_encode($this->cart);exit;
foreach ($price as $id => $value) {
if (!is_array($value)) {
continue;
}
$nprice["products"][$id]["subtotal_tax_amount"] = !empty($price[$id]["taxAmount"]) ? $cdisp->priceDisplay($price[$id]["taxAmount"]) : "";
$nprice["products"][$id]["subtotal_discount"] = !empty($price[$id]["subtotal_discount"]) ? $cdisp->priceDisplay($price[$id]["discountAmount"]) : "";
if (VmConfig::get('checkout_show_origprice', 1) && !empty($this->cart->pricesUnformatted[$id]['basePriceWithTax']) && $this->cart->pricesUnformatted[$id]['basePriceWithTax'] != $this->cart->pricesUnformatted[$id]['salesPrice']) {
$nprice["products"][$id]["subtotal_with_tax"] = '<span class="line-through">' . $cdisp->createPriceDiv('basePriceWithTax', '', $this->cart->pricesUnformatted[$id], true, false, $this->cart->products[$id]->quantity) . '</span><br />';
}
$nprice["products"][$id]["subtotal_with_tax"] .= $cdisp->createPriceDiv('salesPrice', '', $this->cart->pricesUnformatted[$id], false, false, $this->cart->products[$id]->quantity);
}
$nprice["taxAmount"] = !empty($this->cart->pricesUnformatted["taxAmount"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["taxAmount"]) : "";
$nprice["discountAmount"] = !empty($this->cart->pricesUnformatted["discountAmount"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["discountAmount"]) : "";
$nprice["salesPrice"] = !empty($this->cart->pricesUnformatted["salesPrice"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["salesPrice"]) : "";
$nprice["shipmentTax"] = !empty($this->cart->pricesUnformatted["shipmentTax"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["shipmentTax"]) : "";
$nprice["salesPriceShipment"] = !empty($this->cart->pricesUnformatted["salesPriceShipment"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["salesPriceShipment"]) : "";
$nprice["paymentTax"] = !empty($this->cart->pricesUnformatted["paymentTax"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["paymentTax"]) : "";
$nprice["salesPricePayment"] = !empty($this->cart->pricesUnformatted["salesPricePayment"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["salesPricePayment"]) : "";
$nprice["billTaxAmount"] = !empty($this->cart->pricesUnformatted["billTaxAmount"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["billTaxAmount"]) : "";
$nprice["billDiscountAmount"] = !empty($this->cart->pricesUnformatted["billDiscountAmount"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["billDiscountAmount"]) : "";
$nprice["billTotal"] = !empty($this->cart->pricesUnformatted["billTotal"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["billTotal"]) : "";
$nprice["couponTax"] = !empty($this->cart->pricesUnformatted["couponTax"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["couponTax"]) : "";
$nprice["salesPriceCoupon"] = !empty($this->cart->pricesUnformatted["salesPriceCoupon"]) ? $cdisp->priceDisplay($this->cart->pricesUnformatted["salesPriceCoupon"]) : "";
//print_r($this->cart);
$nprice["couponCode"] = !empty($this->cart->couponCode) ? $this->cart->couponCode : "";
$nprice["couponCode"] = empty($nprice["couponCode"]) && !empty($this->cart->cartData["couponCode"]) ? $this->cart->cartData["couponCode"] : $nprice["couponCode"];
$nprice["couponDescr"] = !empty($this->cart->cartData["couponDescr"]) ? $this->cart->cartData["couponDescr"] : "";
$nprice["billTotalunformat"] = $this->cart->pricesUnformatted["billTotal"];
/*$nprice["taxAmount"]=!empty($price["taxAmount"])?$cdisp->priceDisplay($price["taxAmount"]):"";
$nprice["discountAmount"]=!empty($price["discountAmount"])?$cdisp->priceDisplay($price["discountAmount"]):"";
$nprice["salesPrice"]=!empty($price["salesPrice"])?$cdisp->priceDisplay($price["salesPrice"]):"";
$nprice["shipmentTax"]=!empty($price["shipmentTax"])?$cdisp->priceDisplay($price["shipmentTax"]):"";
$nprice["salesPriceShipment"]=!empty($price["salesPriceShipment"])?$cdisp->priceDisplay($price["salesPriceShipment"]):"";
$nprice["paymentTax"]=!empty($price["paymentTax"])?$cdisp->priceDisplay($price["paymentTax"]):"";
$nprice["salesPricePayment"]=!empty($price["salesPricePayment"])?$cdisp->priceDisplay($price["salesPricePayment"]):"";
$nprice["billTaxAmount"]=!empty($price["billTaxAmount"])?$cdisp->priceDisplay($price["billTaxAmount"]):"";
$nprice["billDiscountAmount"]=!empty($price["billDiscountAmount"])?$cdisp->priceDisplay($price["billDiscountAmount"]):"";
$nprice["billTotal"]=!empty($price["billTotal"])?$cdisp->priceDisplay($price["billTotal"]):"";*/
//echo "<pre>";print_r($nprice);exit;
return $nprice;
}
示例2: getList
public static function getList($params)
{
if (class_exists('VirtueMartCart')) {
$productModel = VmModel::getModel('product');
$calculator = calculationHelper::getInstance();
$customfields = VmModel::getModel('Customfields');
$cart = VirtueMartCart::getCart(false);
$cart->pricesUnformatted = $calculator->getCheckoutPrices($cart, true);
$viewName = vRequest::getString('view', 0);
if ($viewName == 'cart') {
$checkAutomaticPS = true;
} else {
$checkAutomaticPS = false;
}
$cart->prepareAjaxData($checkAutomaticPS);
$productModel->addImages($cart->products);
ini_set('xdebug.var_display_max_depth', 10);
return $cart;
}
}
示例3: getPrice
public function getPrice($product, $customVariant, $quantity)
{
$this->_db = JFactory::getDBO();
// vmdebug('strange',$product);
// Loads the product price details
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . '/helpers/calculationh.php';
}
$model = new VirtueMartModelProduct();
$model->getRawProductPrices($product, 1, array(), true);
$calculator = calculationHelper::getInstance();
// Calculate the modificator
$prices = $calculator->getProductPrices($product);
$currency = CurrencyDisplay::getInstance();
$oldPrice = 'basePrice';
if ($prices['taxAmount']) {
$oldPrice = 'basePriceWithTax';
}
$product->old_price = $currency->createPriceDiv($oldPrice, '', $prices, true, true);
$product->sales_price = $currency->createPriceDiv('salesPrice', '', $prices, true, true);
return $product;
}
示例4: setCartPrices
function setCartPrices(VirtueMartCart $cart, &$cart_prices, $method)
{
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
$calculator = calculationHelper::getInstance();
$_psType = ucfirst($this->_psType);
if (isset($method->tax_id) and (int) $method->tax_id === -1) {
} else {
if (!empty($method->tax_id)) {
$cart_prices[$this->_psType . '_calc_id'] = $method->tax_id;
$db = JFactory::getDBO();
$q = 'SELECT * FROM #__virtuemart_calcs WHERE `virtuemart_calc_id`="' . $method->tax_id . '" ';
$db->setQuery($q);
$taxrules = $db->loadAssocList();
} else {
//This construction makes trouble, if there are products with different vats in the cart
//on the other side, it is very unlikely to have different vats in the cart and simultaneous it is not possible to use a fixed tax rule for the shipment
if (!empty($calculator->_cartData['VatTax']) and count($calculator->_cartData['VatTax']) == 1) {
$taxrules = $calculator->_cartData['VatTax'];
foreach ($taxrules as &$rule) {
$rule['subTotal'] = $cart_prices[$this->_psType . 'Value'];
}
} else {
$taxrules = $calculator->_cartData['taxRulesBill'];
foreach ($taxrules as &$rule) {
unset($rule['subTotal']);
}
}
}
}
$cartTotalAmount = $cart_prices['salesPrice'] + $cart_prices['salesPriceShipment'] - $cart_prices['salesPriceCoupon'];
if (isset($method->cost_percent_total)) {
if (preg_match('/%$/', $method->cost_percent_total)) {
$cost_percent_total = substr($method->cost_percent_total, 0, -1) * 0.01;
} else {
$cost_percent_total = $method->cost_percent_total * 0.01;
}
} else {
$cost_percent_total = 0;
}
if (isset($method->cost_per_transaction)) {
$cost_per_transaction = $method->cost_per_transaction;
} else {
$cost_per_transaction = 0;
}
if (count($taxrules) > 0) {
$cost_percent_total_vat = $calculator->executeCalculation($taxrules, $cost_percent_total, true);
$cost_per_transaction_vat = $calculator->executeCalculation($taxrules, $cost_per_transaction, true);
$NewTotalAmount = ($cartTotalAmount + $cost_per_transaction_vat) / (1 - $cost_percent_total_vat);
$feeWithVat = $NewTotalAmount - $cartTotalAmount;
$calculator->setRevert(true);
$feeNoVat = $calculator->roundInternal($calculator->executeCalculation($taxrules, $feeWithVat, true), 'salesPrice');
$calculator->setRevert(false);
$cart_prices[$this->_psType . 'Tax'] = $feeWithVat - $feeNoVat;
$cart_prices['salesPrice' . $_psType] = $feeWithVat;
$cart_prices[$_psType . 'Value'] = $feeNoVat;
reset($taxrules);
$taxrule = current($taxrules);
$cart_prices[$this->_psType . '_calc_id'] = $taxrule['virtuemart_calc_id'];
} else {
$NewTotalAmount = ($cartTotalAmount + $method->cost_per_transaction) / (1 - $cost_percent_total);
$fee = $NewTotalAmount - $cartTotalAmount;
$cart_prices['salesPrice' . $_psType] = $fee;
$cart_prices[$this->_psType . 'Tax'] = 0;
$cart_prices[$this->_psType . '_calc_id'] = 0;
}
return $cart_prices['salesPrice' . $_psType];
}
示例5: CustomsFieldCartDisplay
/**
* TODO This is html and view stuff and MUST NOT be in the model, notice by Max
* render custom fields display cart FE
*/
public function CustomsFieldCartDisplay($priceKey, $product)
{
static $calculator;
if (empty($calculator)) {
JLoader::register('calculationHelper', JPATH_VM_ADMINISTRATOR . '/helpers/calculationh.php');
$calculator = calculationHelper::getInstance();
}
vmdebug('CustomsFieldCartDisplay ', $priceKey);
$variantmods = $calculator->parseModifier($priceKey);
return self::customFieldDisplay($product, $variantmods, '<div class="vm-customfield-cart">', 'plgVmOnViewCart');
}
示例6: getCartPrices
public function getCartPrices($checkAutomaticSelected = true)
{
JLoader::register('calculationHelper', JPATH_VM_ADMINISTRATOR . '/helpers/calculationh.php');
$calculator = calculationHelper::getInstance();
$this->pricesUnformatted = $calculator->getCheckoutPrices($this, $checkAutomaticSelected);
return $this->pricesUnformatted;
}
示例7: CustomsFieldCartDisplay
/**
* TODO This is html and view stuff and MUST NOT be in the model, notice by Max
* render custom fields display cart FE
*/
public static function CustomsFieldCartDisplay($priceKey, $product)
{
if (empty($calculator)) {
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
$calculator = calculationHelper::getInstance();
}
$variantmods = $calculator->parseModifier($priceKey);
return self::customFieldDisplay($product, $variantmods, '<div class="vm-customfield-cart">', 'plgVmOnViewCart');
}
示例8: setCartPrices
/**
* update the plugin cart_prices
*
* @author Valérie Isaksen
*
* @param $cart_prices: $cart_prices['salesPricePayment'] and $cart_prices['paymentTax'] updated. Displayed in the cart.
* @param $value : fee
* @param $tax_id : tax id
*/
function setCartPrices(VirtueMartCart $cart, &$cart_prices, $method, $progressive = true)
{
if (!class_exists('calculationHelper')) {
require VMPATH_ADMIN . DS . 'helpers' . DS . 'calculationh.php';
}
$_psType = ucfirst($this->_psType);
$calculator = calculationHelper::getInstance();
$cart_prices[$this->_psType . 'Value'] = $calculator->roundInternal($this->getCosts($cart, $method, $cart_prices), 'salesPrice');
if (!isset($cart_prices[$this->_psType . 'Value'])) {
$cart_prices[$this->_psType . 'Value'] = 0.0;
}
if (!isset($cart_prices[$this->_psType . 'Tax'])) {
$cart_prices[$this->_psType . 'Tax'] = 0.0;
}
if ($this->_psType == 'payment') {
$cartTotalAmountOrig = $this->getCartAmount($cart_prices);
if (!$progressive) {
//Simple
$cartTotalAmount = ($cartTotalAmountOrig + $method->cost_per_transaction) * (1 + $method->cost_percent_total * 0.01);
//vmdebug('Simple $cartTotalAmount = ('.$cartTotalAmountOrig.' + '.$method->cost_per_transaction.') * (1 + ('.$method->cost_percent_total.' * 0.01)) = '.$cartTotalAmount );
//vmdebug('Simple $cartTotalAmount = '.($cartTotalAmountOrig + $method->cost_per_transaction).' * '. (1 + $method->cost_percent_total * 0.01) .' = '.$cartTotalAmount );
} else {
//progressive
$cartTotalAmount = ($cartTotalAmountOrig + $method->cost_per_transaction) / (1 - $method->cost_percent_total * 0.01);
//vmdebug('Progressive $cartTotalAmount = ('.$cartTotalAmountOrig.' + '.$method->cost_per_transaction.') / (1 - ('.$method->cost_percent_total.' * 0.01)) = '.$cartTotalAmount );
//vmdebug('Progressive $cartTotalAmount = '.($cartTotalAmountOrig + $method->cost_per_transaction) .' / '. (1 - $method->cost_percent_total * 0.01) .' = '.$cartTotalAmount );
}
$cart_prices[$this->_psType . 'Value'] = $cartTotalAmount - $cartTotalAmountOrig;
}
if (!isset($cart_prices['salesPrice' . $_psType])) {
$cart_prices['salesPrice' . $_psType] = $cart_prices[$this->_psType . 'Value'];
}
$taxrules = array();
if (isset($method->tax_id) and (int) $method->tax_id === -1) {
} else {
if (!empty($method->tax_id)) {
$cart_prices[$this->_psType . '_calc_id'] = $method->tax_id;
$db = JFactory::getDBO();
$q = 'SELECT * FROM #__virtuemart_calcs WHERE `virtuemart_calc_id`="' . $method->tax_id . '" ';
$db->setQuery($q);
$taxrules = $db->loadAssocList();
if (!empty($taxrules)) {
foreach ($taxrules as &$rule) {
if (!isset($rule['subTotal'])) {
$rule['subTotal'] = 0;
}
if (!isset($rule['taxAmount'])) {
$rule['taxAmount'] = 0;
}
$rule['subTotalOld'] = $rule['subTotal'];
$rule['taxAmountOld'] = $rule['taxAmount'];
$rule['taxAmount'] = 0;
$rule['subTotal'] = $cart_prices[$this->_psType . 'Value'];
$cart_prices[$this->_psType . 'TaxPerID'][$rule['virtuemart_calc_id']] = $calculator->roundInternal($calculator->roundInternal($calculator->interpreteMathOp($rule, $rule['subTotal'])) - $rule['subTotal'], 'salesPrice');
$cart_prices[$this->_psType . 'Tax'] += $cart_prices[$this->_psType . 'TaxPerID'][$rule['virtuemart_calc_id']];
}
}
} else {
$taxrules = array_merge($cart->cartData['VatTax'], $cart->cartData['taxRulesBill']);
if (!empty($taxrules)) {
$denominator = 0.0;
foreach ($taxrules as &$rule) {
//Quickn dirty
if (!isset($rule['calc_kind'])) {
$rule = (array) VmModel::getModel('calc')->getCalc($rule['virtuemart_calc_id']);
}
if (!isset($rule['subTotal'])) {
$rule['subTotal'] = 0;
}
if (!isset($rule['taxAmount'])) {
$rule['taxAmount'] = 0;
}
$denominator += $rule['subTotal'] - $rule['taxAmount'];
$rule['subTotalOld'] = $rule['subTotal'];
$rule['subTotal'] = 0;
$rule['taxAmountOld'] = $rule['taxAmount'];
$rule['taxAmount'] = 0;
}
if (empty($denominator)) {
$denominator = 1;
}
foreach ($taxrules as &$rule) {
$frac = ($rule['subTotalOld'] - $rule['taxAmountOld']) / $denominator;
$rule['subTotal'] = $cart_prices[$this->_psType . 'Value'] * $frac;
if (!isset($cart_prices[$this->_psType . 'Tax'])) {
$cart_prices[$this->_psType . 'Tax'] = 0.0;
}
$cart_prices[$this->_psType . 'TaxPerID'][$rule['virtuemart_calc_id']] = $calculator->roundInternal($calculator->roundInternal($calculator->interpreteMathOp($rule, $rule['subTotal'])) - $rule['subTotal'], 'salesPrice');
$cart_prices[$this->_psType . 'Tax'] += $cart_prices[$this->_psType . 'TaxPerID'][$rule['virtuemart_calc_id']];
}
}
//.........这里部分代码省略.........
示例9: _getProductPrice
/**
* Get product prices
*
* @copyright
* @author RolandD
* @todo
* @see
* @access public
* @param int $product_id the ID of the product
* @return
* @since 4.0
*/
private function _getProductPrice($product_id)
{
if (!isset($this->_prices[$product_id])) {
// Define VM constant to make the classes work
if (!defined('JPATH_VM_ADMINISTRATOR')) {
define('JPATH_VM_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/com_virtuemart/');
}
// Load the configuration for the currency formatting
require_once JPATH_ADMINISTRATOR . '/components/com_virtuemart/helpers/config.php';
// Include the calculation helper
require_once JPATH_ADMINISTRATOR . '/components/com_virtuemart/helpers/calculationh.php';
$calc = calculationHelper::getInstance();
// Include the version class to compare
require_once JPATH_ADMINISTRATOR . '/components/com_virtuemart/version.php';
// Do a version check due to changed core code
if (vmVersion::$RELEASE > '2.0.6') {
require_once JPATH_ADMINISTRATOR . '/components/com_virtuemart/models/product.php';
$product = $this->getInstance('Product', 'VirtueMartModel');
$prices = $calc->getProductPrices($product->getProductSingle($product_id));
} else {
$prices = $calc->getProductPrices($product_id);
}
if (is_array($prices)) {
$this->_prices[$product_id] = array_change_key_case($prices, CASE_LOWER);
} else {
$this->_prices[$product_id] = array();
}
}
return $this->_prices[$product_id];
}
示例10: display
function display($tpl = null)
{
// Get the task
$task = JRequest::getWord('task');
// Load helpers
$this->loadHelper('currencydisplay');
$this->loadHelper('html');
$this->loadHelper('image');
//$category_model = VmModel::getModel('category');
$model = VmModel::getModel();
// Handle any publish/unpublish
switch ($task) {
case 'add':
case 'edit':
//this was in the controller for the edit tasks, I dont know if it is still needed,
$this->addTemplatePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'views' . DS . 'product' . DS . 'tmpl');
$virtuemart_product_id = JRequest::getVar('virtuemart_product_id', array());
if (is_array($virtuemart_product_id) && count($virtuemart_product_id) > 0) {
$virtuemart_product_id = (int) $virtuemart_product_id[0];
} else {
$virtuemart_product_id = (int) $virtuemart_product_id;
}
$product = $model->getProductSingle($virtuemart_product_id, false);
$product_parent = $model->getProductParent($product->product_parent_id);
$mf_model = VmModel::getModel('manufacturer');
$manufacturers = $mf_model->getManufacturerDropdown($product->virtuemart_manufacturer_id);
$this->assignRef('manufacturers', $manufacturers);
// Get the category tree
if (isset($product->categories)) {
$category_tree = ShopFunctions::categoryListTree($product->categories);
} else {
$category_tree = ShopFunctions::categoryListTree();
}
$this->assignRef('category_tree', $category_tree);
//Get the shoppergoup list - Cleanshooter Custom Shopper Visibility
if (isset($product->shoppergroups)) {
$shoppergroupList = ShopFunctions::renderShopperGroupList($product->shoppergroups, true);
}
$this->assignRef('shoppergroupList', $shoppergroupList);
// Load the product price
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
$calculator = calculationHelper::getInstance();
$product->prices = $calculator->getProductPrices($product);
$product_childIds = $model->getProductChildIds($virtuemart_product_id);
$product_childs = array();
foreach ($product_childIds as $id) {
$product_childs[] = $model->getProductSingle($id, false);
}
$this->assignRef('product_childs', $product_childs);
$DBTax = '';
//JText::_('COM_VIRTUEMART_RULES_EFFECTING') ;
foreach ($calculator->rules['DBTax'] as $rule) {
$DBTax .= $rule['calc_name'] . '<br />';
}
$this->assignRef('DBTaxRules', $DBTax);
$tax = '';
//JText::_('COM_VIRTUEMART_TAX_EFFECTING').'<br />';
foreach ($calculator->rules['Tax'] as $rule) {
$tax .= $rule['calc_name'] . '<br />';
}
foreach ($calculator->rules['VatTax'] as $rule) {
$tax .= $rule['calc_name'] . '<br />';
}
$this->assignRef('taxRules', $tax);
$DATax = '';
//JText::_('COM_VIRTUEMART_RULES_EFFECTING');
foreach ($calculator->rules['DATax'] as $rule) {
$DATax .= $rule['calc_name'] . '<br />';
}
$this->assignRef('DATaxRules', $DATax);
// $this->assignRef('override', $calculator->override);
// $this->assignRef('product_override_price', $calculator->product_override_price);
if (!isset($product->product_tax_id)) {
$product->product_tax_id = 0;
}
$lists['taxrates'] = ShopFunctions::renderTaxList($product->product_tax_id, 'product_tax_id');
if (!isset($product->product_discount_id)) {
$product->product_discount_id = 0;
}
$lists['discounts'] = $this->renderDiscountList($product->product_discount_id);
if (!class_exists('VirtueMartModelConfig')) {
require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'config.php';
}
$productLayouts = VirtueMartModelConfig::getLayoutList('productdetails');
$this->assignRef('productLayouts', $productLayouts);
// Load Images
$model->addImages($product);
if (is_Dir(VmConfig::get('vmtemplate') . DS . 'images' . DS . 'availability' . DS)) {
$imagePath = VmConfig::get('vmtemplate') . '/images/availability/';
} else {
$imagePath = '/components/com_virtuemart/assets/images/availability/';
}
$this->assignRef('imagePath', $imagePath);
// Load the vendors
$vendor_model = VmModel::getModel('vendor');
// $vendors = $vendor_model->getVendors();
// $lists['vendors'] = JHTML::_('select.genericlist', $vendors, 'virtuemart_vendor_id', '', 'virtuemart_vendor_id', 'vendor_name', $product->virtuemart_vendor_id);
if (Vmconfig::get('multix', 'none') !== 'none') {
//.........这里部分代码省略.........
示例11: calculePrice
/**
* Calcule final price to product
*
* @param VirtueMartCart $cart
* @param $key
* @return float
*/
private function calculePrice(VirtueMartCart $cart, $key)
{
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'components' . DS . 'virtuemart' . DS . 'helpers' . DS . 'calculationh.php';
}
$calculator = calculationHelper::getInstance();
$cart_prices = $calculator->getCheckoutPrices($cart);
$sales_price = $cart->products[$key]->product_price;
foreach ($cart_prices as $prices_key => $prices) {
if ($key === $prices_key) {
$sales_price = $prices["salesPrice"];
}
}
return $sales_price;
}
示例12: getPrice
/**
* Gets the price for a variant
*
* @author Max Milbers
*/
public function getPrice($product, $quantity)
{
$db = JFactory::getDBO();
// vmdebug('strange',$product);
if (!is_object($product)) {
$product = $this->getProduct($product, TRUE, FALSE, TRUE, $quantity);
}
//if (empty($product->customfields) and !empty($product->virtuemart_customfield_id)) {
if (empty($product->customfields)) {
$customfieldsModel = VmModel::getModel('Customfields');
$product->customfields = $customfieldsModel->getCustomEmbeddedProductCustomFields($product->allIds);
}
// Loads the product price details
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
$calculator = calculationHelper::getInstance();
// Calculate the modificator
$customfieldsModel = VmModel::getModel('Customfields');
$variantPriceModification = $customfieldsModel->calculateModificators($product);
//$variantPriceModification = $calculator->calculateModificators ($product, $customVariant);
$prices = $calculator->getProductPrices($product, $variantPriceModification, $quantity);
return $prices;
}
示例13: plgVmConfirmedOrder
function plgVmConfirmedOrder($cart, $order)
{
$avaTaxRule = 0;
if (isset($order['calc_rules'])) {
foreach ($order['calc_rules'] as $rule) {
if ($rule->calc_mathop == 'avalara') {
$avaTaxRule = $rule;
break;
}
}
}
if ($avaTaxRule !== 0) {
if (!empty($avaTaxRule->calc_params)) {
VmTable::bindParameterable($avaTaxRule, $this->_xParams, $this->_varsToPushParam);
vmdebug('$avaTaxRule', $avaTaxRule);
if ($rule->activated == 0) {
return false;
}
if (empty($this->addresses)) {
$this->addresses = $this->fillValidateAvalaraAddress($rule);
}
if ($this->addresses) {
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
vmdebug('$order', $order);
$orderModel = VmModel::getModel('orders');
$invoiceNumber = 'onr_' . $order['details']['BT']->order_number;
$orderModel->createInvoiceNumber($order['details']['BT'], $invoiceNumber);
$calculator = calculationHelper::getInstance();
$tax = $this->getTax($calculator, $rule, 0, $invoiceNumber);
// vmdebug('tax',$tax);
}
}
}
/* VmTable::bindParameterable ($rule, $this->_xParams, $this->_varsToPushParam);
if($rule->activated==0) return $price;
if(empty($this->addresses)){
$this->addresses = $this->fillValidateAvalaraAddress($rule);
}
if($this->addresses){
$tax = $this->getTax( $calculationHelper,$rule,$price,true);
}*/
}
示例14: getInvoiceFeeInclTax
public static function getInvoiceFeeInclTax($method, $country)
{
$invoice_fee = self::getInvoiceFee($method, $country);
$invoice_tax_id = self::getInvoiceTaxId($method, $country);
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
if (!class_exists('CurrencyDisplay')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php';
}
if (!class_exists('VirtueMartModelVendor')) {
require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'vendor.php';
}
$vendor_id = 1;
$vendor_currency = VirtueMartModelVendor::getVendorCurrency($vendor_id);
$db = JFactory::getDBO();
$calculator = calculationHelper::getInstance();
$currency = CurrencyDisplay::getInstance();
$value = $currency->convertCurrencyTo($vendor_currency->virtuemart_currency_id, $invoice_fee);
$taxrules = array();
if (!empty($invoice_tax_id)) {
$q = 'SELECT * FROM #__virtuemart_calcs WHERE `virtuemart_calc_id`="' . $invoice_tax_id . '" ';
$db->setQuery($q);
$taxrules = $db->loadAssocList();
}
if (count($taxrules) > 0) {
$salesPrice = $calculator->roundInternal($calculator->executeCalculation($taxrules, $value));
} else {
$salesPrice = $value;
}
return $salesPrice;
}
示例15: checkoutData
function checkoutData($redirect = true)
{
$cart =& self::$current_cart;
$this->_redirect = false;
$this->_inCheckOut = true;
include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php';
$cart->_inCheckOut = true;
if (!isset($cart->tosAccepted)) {
$cart->tosAccepted = 1;
}
$cart->tosAccepted = JRequest::getInt('tosAccepted', $cart->tosAccepted);
if (!isset($cart->customer_comment)) {
$cart->customer_comment = '';
}
$cart->customer_comment = JRequest::getVar('customer_comment', $cart->customer_comment);
if (empty($cart->customer_comment)) {
$cart->customer_comment = JRequest::getVar('customer_note', $cart->customer_comment);
}
$op_disable_shipto = OPCloader::getShiptoEnabled($cart);
if (empty($op_disable_shipto)) {
$shipto = JRequest::getVar('shipto', null);
if ($shipto != 'new') {
if (($cart->selected_shipto = $shipto) !== null) {
//JModel::addIncludePath(JPATH_VM_ADMINISTRATOR . DS . 'models');
require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php';
$userModel = OPCmini::getModel('user');
//JModel::getInstance('user', 'VirtueMartModel');
$stData = $userModel->getUserAddressList(0, 'ST', $cart->selected_shipto);
if (isset($stData[0])) {
$this->validateUserData('ST', $stData[0], $cart);
}
}
}
} else {
$cart->STsameAsBT = 1;
$cart->ST = $cart->BT;
}
$cart->setCartIntoSession();
$mainframe = JFactory::getApplication();
if (isset($cart->cartProductsData)) {
$count = count($cart->cartProductsData);
} else {
$count = count($cart->products);
}
if ($count == 0) {
$mainframe->redirect(JRoute::_('index.php?option=com_virtuemart', false), JText::_('COM_VIRTUEMART_CART_NO_PRODUCT'));
} else {
foreach ($cart->products as $product) {
$redirectMsg = $this->checkForQuantities($product, $product->quantity);
if (!$redirectMsg) {
// $this->setCartIntoSession();
$this->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout', false, VmConfig::get('useSSL', false)), $redirectMsg);
}
}
}
include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php';
//But we check the data again to be sure
if (empty($cart->BT)) {
$this->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout', false, VmConfig::get('useSSL', false)));
} else {
$redirectMsg = $this->validateUserData('BT', null, $cart);
if ($redirectMsg) {
$this->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout', false, VmConfig::get('useSSL', false)), $redirectMsg);
}
}
if ($cart->STsameAsBT !== 0) {
$cart->ST = $cart->BT;
} else {
//Only when there is an ST data, test if all necessary fields are filled
if (!empty($cart->ST)) {
$redirectMsg = $this->validateUserData('ST', null, $cart);
if ($redirectMsg) {
// $cart->setCartIntoSession();
$this->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout', false, VmConfig::get('useSSL', false)), $redirectMsg);
}
}
}
// Test Coupon
$shipment = $cart->virtuemart_shipmentmethod_id;
$payment = $cart->virtuemart_paymentmethod_id;
//2.0.144: $prices = $cartClass->getCartPrices();
$cart->virtuemart_shipmentmethod_id = $shipment;
$cart->virtuemart_paymentmethod_id = $payment;
//2.0.144 added
if (!class_exists('calculationHelper')) {
require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php';
}
$calc = calculationHelper::getInstance();
if (method_exists($calc, 'setCartPrices')) {
$vm2015 = true;
} else {
$vm2015 = false;
}
if ($vm2015) {
$calc->setCartPrices(array());
}
// $cart->pricesUnformatted = $prices = $calc->getCheckoutPrices( $cart, false, 'opc');
$cart->pricesUnformatted = $prices = OPCloader::getCheckoutPrices($cart, false, $vm2015, 'opc');
//$calc->getCheckoutPrices( $cart, false, 'opc');
// Check if a minimun purchase value is set
//.........这里部分代码省略.........