本文整理汇总了PHP中Zend_Locale_Math::Mul方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Locale_Math::Mul方法的具体用法?PHP Zend_Locale_Math::Mul怎么用?PHP Zend_Locale_Math::Mul使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Locale_Math
的用法示例。
在下文中一共展示了Zend_Locale_Math::Mul方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: add
/**
* Iterate over the order items and calculate the gst
* for each depending on StreakGSTModule.config.currency_percentages()
*
* @param Order $order
* @param null $value
* @throws ValidationException
* @throws null
*/
public function add($order, $value = null)
{
$gst = new Price();
$gst->setCurrency(ShopConfig::current_shop_config()->BaseCurrency);
$descriptions = array();
/** @var Price|null $calculated */
$calculated = null;
/** @var Item $item */
foreach ($order->Items() as $item) {
if ($price = $item->Price()) {
$currency = $price->getCurrency();
if ($rate = self::rate_for_currency($currency)) {
if (!$calculated) {
$calculated = new Price();
}
$percentage = Zend_Locale_Math::Div($rate, 100.0, 10);
$taxed = Zend_Locale_Math::Mul($price, $percentage, 10);
$temp = Zend_Locale_Math::Add($calculated, $taxed, 10);
$calculated->setAmount($temp);
$descriptions[$currency] = static::description($currency);
}
}
}
if ($calculated) {
$mod = new StreakGST_Modification();
$mod->OrderID = $order->ID;
$mod->Price = 0;
$mod->Description = implode("<br/>\n", $descriptions);
$mod->GST = $calculated->getAmount();
$mod->Value = $calculated->getAmount();
$mod->write();
}
}
示例2: discountedAmount
/**
* 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: add
/**
* @param Order $order
* @param null $value
* @throws ValidationException
* @throws null
*/
public function add($order, $value = null)
{
if ($order->ShippingRegionCode) {
if ($orderRegion = Region_Shipping::get()->filter('Code', $order->ShippingRegionCode)->first()) {
$shippingCost = 0.0;
/** @var Item $item */
foreach ($order->Items() as $item) {
$productRegion = $item->Product()->Shippables()->filter('RegionID', $orderRegion->ID)->first();
if ($productRegion) {
$shippingCost = Zend_Locale_Math::Add($shippingCost, Zend_Locale_Math::Mul($productRegion->Price, $item->Quantity));
}
}
//Generate the Modification now that we have picked the correct rate
$mod = new StreakRegionalShipping_Modification();
$mod->OrderID = $order->ID;
$mod->RegionID = $orderRegion->ID;
$mod->Price = $shippingCost;
$mod->Description = "Shipping to {$orderRegion->Title}";
$mod->Value = $shippingCost;
$mod->write();
}
}
}
示例4: testMultiplyingWithBCMathAndExponent
public function testMultiplyingWithBCMathAndExponent()
{
if (!extension_loaded('bcmath')) {
$this->markTestSkipped('BCMath extension not loaded, test skipped');
return;
}
$this->assertEquals('2000', Zend_Locale_Math::Mul('1e3', 2));
$this->assertEquals('2000', Zend_Locale_Math::Mul(2, '1e3'));
}