/** * Returns amount reduced by $this->Measure. * * @param Price|number $amount * @param $discount * @return Price */ public function discountedAmount($forAmount) { if ($this->owner->UsePriceColumn) { $price = new Price(); $price->setCurrency(ShopConfig::current_shop_config()->BaseCurrency); if ($forAmount instanceof Money) { $price->setAmount($forAmount->getAmount()); } else { $price->setAmount($forAmount); } $price->setAmount(Zend_Locale_Math::Sub($price->getAmount(), $this->owner->Measure, 10)); return $price; } return null; }
public function Price() { $price = new Price(); $price->setCurrency($this->Currency); $price->setAmount($this->GST); return $price; }
public function Amount($order) { $shopConfig = ShopConfig::current_shop_config(); $amount = new Price(); $amount->setAmount($order->SubTotal()->getAmount() * ($this->Rate / 100)); $amount->setCurrency($shopConfig->BaseCurrency); $amount->setSymbol($shopConfig->BaseCurrencySymbol); return $amount; }
/** * Choose Discounted price depending on current member's StreakDiscountType. * * @param Price $amount */ public function updateAmount($amount) { // only if we are on a front-end page if (Controller::curr() instanceof Page_Controller) { if ($discountedPrice = $this->discountedPrice()) { $amount->setAmount($discountedPrice); } } }
public function Amount() { // TODO: Multi currency $shopConfig = ShopConfig::current_shop_config(); $amount = new Price(); $amount->setAmount($this->Price); $amount->setCurrency($shopConfig->BaseCurrency); $amount->setSymbol($shopConfig->BaseCurrencySymbol); $this->extend('updateAmount', $amount); return $amount; }
/** * Returns the amount minus percentage from Measure. * * @param Price $forAmount * @return Price */ public function discountedAmount($forAmount) { if ($this->owner->UsePercentageColumn) { $price = new Price(); if ($forAmount instanceof Money) { $price->setAmount($forAmount->getAmount()); $price->setCurrency($forAmount->getCurrency()); } else { $price->setAmount($forAmount); $price->setCurrency(ShopConfig::current_shop_config()->BaseCurrency); } // only recalculate if there is a percentage if ($this->owner->Measure != 0) { $original = $price->getAmount(); $percentage = Zend_Locale_Math::Div($this->owner->Measure, self::OneHundred, 10); $difference = Zend_Locale_Math::Mul($original, $percentage, 10); $price->setAmount(Zend_Locale_Math::Sub($original, $difference, 10)); } return $price; } return null; }
/** * Get the form fields for the OrderForm. * * @return FieldList List of fields */ public function getFormFields() { $fields = new FieldList(); $field = new XeroTaxModifierField($this, _t('Xero.TAX', 'Tax')); $shopConfig = ShopConfig::current_shop_config(); $amount = new Price(); $amount->setAmount($this->Price); $amount->setCurrency($shopConfig->BaseCurrency); $amount->setSymbol($shopConfig->BaseCurrencySymbol); $field->setAmount($amount); $fields->push($field); if (!$fields->exists()) { Requirements::javascript('swipestripe-flatfeetax/javascript/FlatFeeTaxModifierField.js'); } return $fields; }
/** * Calculate the tax component based on tax rates for the items and modifications in the order * * @param Order $order * @return Price The tax amount for the order */ public function calculate(Order $order) { $taxAmount = 0; $shopConfig = ShopConfig::current_shop_config(); $items = $order->Items(); if ($items && $items->exists()) { foreach ($items as $item) { $taxAmount += $item->Total()->getAmount() * ($item->XeroTaxRate / 100); } } $mods = $order->Modifications(); if ($mods && $mods->exists()) { foreach ($mods as $mod) { $taxAmount += $mod->Amount()->getAmount() * ($mod->XeroTaxRate / 100); } } $amount = new Price(); $amount->setAmount($taxAmount); $amount->setCurrency($shopConfig->BaseCurrency); $amount->setSymbol($shopConfig->BaseCurrencySymbol); return $amount; }