示例#1
0
 public function getPriceForDays($days)
 {
     $price = Price::fromString('0', $this->price->getCurrency());
     while ($days > 0) {
         $days -= $this->unitInDays;
         $price = $price->add($this->price);
     }
     return $price;
 }
 /**
  * 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;
 }
示例#3
0
文件: Price.php 项目: ayeo/price
 /**
  * @param Price $priceToSubtract
  * @return Price
  */
 public function subtract(Price $priceToSubtract)
 {
     $this->checkCurrencies($this->getCurrency(), $priceToSubtract->getCurrency());
     if ($this->isGreaterThan($priceToSubtract)) {
         $newGross = $this->getGross() - $priceToSubtract->getGross();
         $newNett = $this->getNett() - $priceToSubtract->getNett();
         return new Price($newNett, $newGross, $this->getCurrencySymbol(), $this->getTaxForPrices($this, $priceToSubtract));
     }
     return Price::buildEmpty($this->getCurrencySymbol());
 }
示例#4
0
 /**
  * @param Price $other
  */
 private function currencyGuard(Price $other)
 {
     if (!$this->getCurrency()->equals($other->getCurrency())) {
         throw new \InvalidArgumentException();
     }
 }
示例#5
0
 public function testGetters()
 {
     $cartItem = new Price(123, new Currency(Currency::USD));
     $this->assertSame(123, $cartItem->getAmount());
     $this->assertSame(Currency::USD, $cartItem->getCurrency()->getValue());
 }