当前位置: 首页>>代码示例>>PHP>>正文


PHP Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount方法代码示例

本文整理汇总了PHP中Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount方法的具体用法?PHP Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount怎么用?PHP Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Mage_Sales_Model_Order_Creditmemo的用法示例。


在下文中一共展示了Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
 }
开发者ID:hunnybohara,项目名称:magento-chinese-localization,代码行数:30,代码来源:Shipping.php

示例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;
 }
开发者ID:codercv,项目名称:urbansurprisedev,代码行数:48,代码来源:Shipping.php

示例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;
 }
开发者ID:votanlean,项目名称:Magento-Pruebas,代码行数:63,代码来源:Shipping.php


注:本文中的Mage_Sales_Model_Order_Creditmemo::hasBaseShippingAmount方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。