本文整理汇总了PHP中Mage_Sales_Model_Order_Creditmemo::setBaseShippingAmount方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Creditmemo::setBaseShippingAmount方法的具体用法?PHP Mage_Sales_Model_Order_Creditmemo::setBaseShippingAmount怎么用?PHP Mage_Sales_Model_Order_Creditmemo::setBaseShippingAmount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Order_Creditmemo
的用法示例。
在下文中一共展示了Mage_Sales_Model_Order_Creditmemo::setBaseShippingAmount方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
$allowedAmount = $order->getShippingAmount() - $order->getShippingRefunded();
$baseAllowedAmount = $order->getBaseShippingAmount() - $order->getBaseShippingRefunded();
/**
* Check if shipping amount was specified (from invoice or another source).
* Using has magic method to allow setting 0 as shipping amount.
*/
if ($creditmemo->hasBaseShippingAmount()) {
$baseShippingAmount = Mage::app()->getStore()->roundPrice($creditmemo->getBaseShippingAmount());
if ($baseShippingAmount < $baseAllowedAmount) {
$shippingAmount = $allowedAmount * $baseShippingAmount / $baseAllowedAmount;
$shippingAmount = Mage::app()->getStore()->roundPrice($shippingAmount);
} elseif ($baseShippingAmount == $baseAllowedAmount) {
$shippingAmount = $allowedAmount;
} else {
$baseAllowedAmount = $order->formatBasePrice($baseAllowedAmount);
Mage::throwException(Mage::helper('sales')->__('Maximum shipping amount allowed to refound is: %s', $baseAllowedAmount));
}
} else {
$baseShippingAmount = $baseAllowedAmount;
$shippingAmount = $allowedAmount;
}
$creditmemo->setShippingAmount($shippingAmount);
$creditmemo->setBaseShippingAmount($baseShippingAmount);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $shippingAmount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseShippingAmount);
return $this;
}
示例2: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
$allowedAmount = $order->getShippingAmount() - $order->getShippingRefunded();
$baseAllowedAmount = $order->getBaseShippingAmount() - $order->getBaseShippingRefunded();
$shipping = $order->getShippingAmount();
$baseShipping = $order->getBaseShippingAmount();
$shippingInclTax = $order->getShippingInclTax();
$baseShippingInclTax = $order->getBaseShippingInclTax();
$isShippingInclTax = Mage::getSingleton('tax/config')->displaySalesShippingInclTax($order->getStoreId());
/**
* Check if shipping amount was specified (from invoice or another source).
* Using has magic method to allow setting 0 as shipping amount.
*/
if ($creditmemo->hasBaseShippingAmount()) {
$baseShippingAmount = Mage::app()->getStore()->roundPrice($creditmemo->getBaseShippingAmount());
if ($isShippingInclTax && $baseShippingInclTax != 0) {
$part = $baseShippingAmount / $baseShippingInclTax;
$shippingInclTax = Mage::app()->getStore()->roundPrice($shippingInclTax * $part);
$baseShippingInclTax = $baseShippingAmount;
$baseShippingAmount = Mage::app()->getStore()->roundPrice($baseShipping * $part);
}
if ($baseShippingAmount <= $baseAllowedAmount) {
if ($baseShipping != 0) {
$shipping = $shipping * $baseShippingAmount / $baseShipping;
}
$shipping = Mage::app()->getStore()->roundPrice($shipping);
$baseShipping = $baseShippingAmount;
} else {
$baseAllowedAmount = $order->formatBasePrice($baseAllowedAmount);
Mage::throwException(Mage::helper('sales')->__('Maximum shipping amount allowed to refund is: %s', $baseAllowedAmount));
}
} else {
if ($baseShipping != 0) {
$shippingInclTax = Mage::app()->getStore()->roundPrice($shippingInclTax * $allowedAmount / $shipping);
$baseShippingInclTax = Mage::app()->getStore()->roundPrice($baseShippingInclTax * $baseAllowedAmount / $baseShipping);
}
$shipping = $allowedAmount;
$baseShipping = $baseAllowedAmount;
}
$creditmemo->setShippingAmount($shipping);
$creditmemo->setBaseShippingAmount($baseShipping);
$creditmemo->setShippingInclTax($shippingInclTax);
$creditmemo->setBaseShippingInclTax($baseShippingInclTax);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $shipping);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseShipping);
return $this;
}
示例3: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
$allowedAmount = $order->getShippingAmount() - $order->getShippingRefunded();
$baseAllowedAmount = $order->getBaseShippingAmount() - $order->getBaseShippingRefunded();
$shipping = $order->getShippingAmount();
$baseShipping = $order->getBaseShippingAmount();
$shippingInclTax = $order->getShippingInclTax();
$baseShippingInclTax = $order->getBaseShippingInclTax();
$isShippingInclTax = Mage::getSingleton('tax/config')->displaySalesShippingInclTax($order->getStoreId());
/**
* Check if shipping amount was specified (from invoice or another source).
* Using has magic method to allow setting 0 as shipping amount.
*/
if ($creditmemo->hasBaseShippingAmount()) {
$baseShippingAmount = Mage::app()->getStore()->roundPrice($creditmemo->getBaseShippingAmount());
if ($isShippingInclTax && $baseShippingInclTax != 0) {
$part = $baseShippingAmount / $baseShippingInclTax;
$shippingInclTax = Mage::app()->getStore()->roundPrice($shippingInclTax * $part);
$baseShippingInclTax = $baseShippingAmount;
$baseShippingAmount = Mage::app()->getStore()->roundPrice($baseShipping * $part);
}
/*
* Rounded allowed shipping refund amount is the highest acceptable shipping refund amount.
* Shipping refund amount shouldn't cause errors, if it doesn't exceed that limit.
* Note: ($x < $y + 0.0001) means ($x <= $y) for floats
*/
if ($baseShippingAmount < Mage::app()->getStore()->roundPrice($baseAllowedAmount) + 0.0001) {
/*
* Shipping refund amount should be equated to allowed refund amount,
* if it exceeds that limit.
* Note: ($x > $y - 0.0001) means ($x >= $y) for floats
*/
if ($baseShippingAmount > $baseAllowedAmount - 0.0001) {
$shipping = $allowedAmount;
$baseShipping = $baseAllowedAmount;
} else {
if ($baseShipping != 0) {
$shipping = $shipping * $baseShippingAmount / $baseShipping;
}
$shipping = Mage::app()->getStore()->roundPrice($shipping);
$baseShipping = $baseShippingAmount;
}
} else {
$baseAllowedAmount = $order->getBaseCurrency()->format($baseAllowedAmount, null, false);
Mage::throwException(Mage::helper('sales')->__('Maximum shipping amount allowed to refund is: %s', $baseAllowedAmount));
}
} else {
if ($baseShipping != 0) {
$shippingInclTax = Mage::app()->getStore()->roundPrice($shippingInclTax * $allowedAmount / $shipping);
$baseShippingInclTax = Mage::app()->getStore()->roundPrice($baseShippingInclTax * $baseAllowedAmount / $baseShipping);
}
$shipping = $allowedAmount;
$baseShipping = $baseAllowedAmount;
}
$creditmemo->setShippingAmount($shipping);
$creditmemo->setBaseShippingAmount($baseShipping);
$creditmemo->setShippingInclTax($shippingInclTax);
$creditmemo->setBaseShippingInclTax($baseShippingInclTax);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $shipping);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseShipping);
return $this;
}
示例4: _initCreditmemoData
/**
* Initialize creditmemo state based on requested parameters
*
* @param Mage_Sales_Model_Order_Creditmemo $creditmemo
* @param array $data
*/
protected function _initCreditmemoData($creditmemo, $data)
{
if (isset($data['shipping_amount'])) {
$creditmemo->setBaseShippingAmount((double) $data['shipping_amount']);
}
if (isset($data['adjustment_positive'])) {
$creditmemo->setAdjustmentPositive($data['adjustment_positive']);
}
if (isset($data['adjustment_negative'])) {
$creditmemo->setAdjustmentNegative($data['adjustment_negative']);
}
}
示例5: _fixupTotals
/**
* The grand total is explicitly set from the totalCredit value in the payload
* Compute any adjustments necessary to make the credit memo total up properly
*
* @param Mage_Sales_Model_Order_Creditmemo $creditmemo
* @return Mage_Sales_Model_Order_Creditmemo
*/
protected function _fixupTotals(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$creditmemo->setBaseShippingAmount(0.0)->setShippingAmount(0.0)->setBaseTaxAmount(0.0)->setTaxAmount(0.0);
// totalCredit is passed as a negative number but the credit memo uses
// positive numbers for refunds so use abs() to get rid of negative numbers
$grandTotal = abs($this->_payload->getTotalCredit());
$subTotal = $creditmemo->getBaseSubtotal();
$creditmemo->setBaseGrandTotal($grandTotal);
$creditmemo->setGrandTotal($grandTotal);
if ($grandTotal < $subTotal) {
$creditmemo->setAdjustmentNegative($subTotal - $grandTotal);
} elseif ($grandTotal > $subTotal) {
$creditmemo->setAdjustmentPositive($grandTotal - $subTotal);
}
return $creditmemo;
}