/** * Returns the least of the passed in price and the price with this discount applied, or null * if this discounted price is larger than the existing one. This can then be used in extension * call to find the least discounted price. * * @param Price $amount * @return Price|null */ public function provideLeastAmount(Price $amount) { /** @var StreakDiscountType $discountType */ if (($discountType = $this->owner->StreakDiscountType()) && $discountType->exists()) { $discounted = $discountType->discountedAmount($amount); $res = Zend_Locale_Math::Comp($amount->getAmount(), $discounted->getAmount()); if ($res) { return $discounted; } } return null; }
/** * Returns the least of the passed in price and the price with this discount applied, or null * if this discounted price is larger than the existing one. This can then be used in extension * call to find the least discounted price. * * @param Price $amount * @param number $discountAmount * @return bool */ public function provideLeastAmount(Price $amount, $discountAmount) { if (!$discountAmount) { return false; } $discounted = self::calc_discounted_amount($amount, $discountAmount); $res = Zend_Locale_Math::Comp($amount->getAmount(), $discounted->getAmount()); if ($res) { return $discounted; } return null; }
public function testComparisonWithBCMathAndExponent() { if (!extension_loaded('bcmath')) { $this->markTestSkipped('BCMath extension not loaded, test skipped'); return; } $this->assertEquals('1', Zend_Locale_Math::Comp('1e3', 2)); $this->assertEquals('-1', Zend_Locale_Math::Comp(2, '1e3')); $this->assertEquals('0', Zend_Locale_Math::Comp('1e3', '1e3')); }