예제 #1
0
 /**
  * Returns base basket price for payment cost calculations. Price depends on
  * payment setup (payment administration)
  *
  * @param oxbasket $oBasket oxbasket object
  *
  * @return double
  */
 public function getBaseBasketPriceForPaymentCostCalc($oBasket)
 {
     $dBasketPrice = 0;
     $iRules = $this->oxpayments__oxaddsumrules->value;
     // products brutto price
     if (!$iRules || $iRules & self::PAYMENT_ADDSUMRULE_ALLGOODS) {
         $dBasketPrice += $oBasket->getProductsPrice()->getBruttoSum();
     }
     // discounts
     if ((!$iRules || $iRules & self::PAYMENT_ADDSUMRULE_DISCOUNTS) && ($oCosts = $oBasket->getTotalDiscount())) {
         $dBasketPrice -= $oCosts->getBruttoPrice();
     }
     // vouchers
     if (!$iRules || $iRules & self::PAYMENT_ADDSUMRULE_VOUCHERS) {
         $dBasketPrice -= $oBasket->getVoucherDiscValue();
     }
     // delivery
     if ((!$iRules || $iRules & self::PAYMENT_ADDSUMRULE_SHIPCOSTS) && ($oCosts = $oBasket->getCosts('oxdelivery'))) {
         $dBasketPrice += $oCosts->getBruttoPrice();
     }
     // wrapping
     if ($iRules & self::PAYMENT_ADDSUMRULE_GIFTS && ($oCosts = $oBasket->getCosts('oxwrapping'))) {
         $dBasketPrice += $oCosts->getBruttoPrice();
     }
     return $dBasketPrice;
 }