/** * @param OnlineShop_Framework_Pricing_IEnvironment $environment * * @return OnlineShop_Framework_Pricing_IAction */ public function executeOnCart(OnlineShop_Framework_Pricing_IEnvironment $environment) { $priceCalculator = $environment->getCart()->getPriceCalculator(); $modDiscount = new OnlineShop_Framework_Impl_CartPriceModificator_Discount($environment->getRule()); $amount = round($this->getAmount() !== 0 ? $this->getAmount() : $priceCalculator->getSubTotal()->getAmount() * ($this->getPercent() / 100), 2); $modDiscount->setAmount('-' . $amount); $priceCalculator->addModificator($modDiscount); return $this; }
/** * @param OnlineShop_Framework_Pricing_IEnvironment $environment * * @return boolean */ public function check(OnlineShop_Framework_Pricing_IEnvironment $environment) { $rule = $environment->getRule(); if ($rule) { return $this->getSalesAmount($rule) < $this->getAmount(); } else { return false; } }
/** * @param OnlineShop_Framework_Pricing_IEnvironment $environment * * @return OnlineShop_Framework_Pricing_Action_IGift */ public function executeOnCart(OnlineShop_Framework_Pricing_IEnvironment $environment) { $comment = $environment->getRule()->getDescription(); $environment->getCart()->addGiftItem($this->getProduct(), 1, null, true, array(), array(), $comment); }