/** * Applies discount for current price * * @param oxprice $oPrice basket item price object * @param double $dAmount basket item amount (default 1) * * @return null */ public function applyDiscount($oPrice, $dAmount = 1) { if ($this->oxdiscount__oxaddsumtype->value == 'abs') { $oCur = $this->getConfig()->getActShopCurrencyObject(); $oDiscountPrice = oxNew('oxprice'); $oDiscountPrice->setBruttoPriceMode(); $oDiscountPrice->setPrice($this->oxdiscount__oxaddsum->value * $oCur->rate, $oPrice->getVat()); } else { //percent discount $oDiscountPrice = oxNew('oxprice'); $oDiscountPrice->setBruttoPriceMode(); $oDiscountPrice->setPrice($oPrice->getBruttoPrice() / 100 * $this->oxdiscount__oxaddsum->value, $oPrice->getVat()); } $oDiscountPrice->multiply($dAmount * -1); $oPrice->addPrice($oDiscountPrice); if ($oPrice->getBruttoPrice() < 0 || $oPrice->getNettoPrice() < 0) { $oPrice->setPrice(0); } }