Example #1
0
 /**
  * Collect snap gift card account totals for credit memo
  *
  * @param Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @return $this
  */
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     if ($order->getBaseSnapCardsAmount() && $order->getBaseSnapCardsInvoiced() != 0) {
         $gcaLeft = $order->getBaseSnapCardsInvoiced() - $order->getBaseSnapCardsRefunded();
         $used = 0;
         $baseUsed = 0;
         if ($gcaLeft >= $creditmemo->getBaseGrandTotal()) {
             $baseUsed = $creditmemo->getBaseGrandTotal();
             $used = $creditmemo->getGrandTotal();
             $creditmemo->setBaseGrandTotal(0);
             $creditmemo->setGrandTotal(0);
             $creditmemo->setAllowZeroGrandTotal(true);
         } else {
             $baseUsed = $order->getBaseSnapCardsInvoiced() - $order->getBaseSnapCardsRefunded();
             $used = $order->getSnapCardsInvoiced() - $order->getSnapCardsRefunded();
             $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $baseUsed);
             $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $used);
         }
         $creditmemo->setBaseSnapCardsAmount($baseUsed);
         $creditmemo->setSnapCardsAmount($used);
     }
     $creditmemo->setBaseCustomerBalanceReturnMax($creditmemo->getBaseCustomerBalanceReturnMax() + $creditmemo->getBaseSnapCardsAmount());
     $creditmemo->setCustomerBalanceReturnMax($creditmemo->getCustomerBalanceReturnMax() + $creditmemo->getSnapCardsAmount());
     $creditmemo->setCustomerBalanceReturnMax($creditmemo->getCustomerBalanceReturnMax() + $creditmemo->getGrandTotal());
     return $this;
 }
 /**
  * Collect customer balance totals for credit memo
  *
  * @param Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @return Enterprise_CustomerBalance_Model_Total_Creditmemo_Customerbalance
  */
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $creditmemo->setBsCustomerBalTotalRefunded(0);
     $creditmemo->setCustomerBalTotalRefunded(0);
     $creditmemo->setBaseCustomerBalanceReturnMax(0);
     $creditmemo->setCustomerBalanceReturnMax(0);
     if (!Mage::helper('enterprise_customerbalance')->isEnabled()) {
         return $this;
     }
     $order = $creditmemo->getOrder();
     if ($order->getBaseCustomerBalanceAmount() && $order->getBaseCustomerBalanceInvoiced() != 0) {
         $cbLeft = $order->getBaseCustomerBalanceInvoiced() - $order->getBaseCustomerBalanceRefunded();
         $used = 0;
         $baseUsed = 0;
         if ($cbLeft >= $creditmemo->getBaseGrandTotal()) {
             $baseUsed = $creditmemo->getBaseGrandTotal();
             $used = $creditmemo->getGrandTotal();
             $creditmemo->setBaseGrandTotal(0);
             $creditmemo->setGrandTotal(0);
             $creditmemo->setAllowZeroGrandTotal(true);
         } else {
             $baseUsed = $order->getBaseCustomerBalanceInvoiced() - $order->getBaseCustomerBalanceRefunded();
             $used = $order->getCustomerBalanceInvoiced() - $order->getCustomerBalanceRefunded();
             $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $baseUsed);
             $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $used);
         }
         $creditmemo->setBaseCustomerBalanceAmount($baseUsed);
         $creditmemo->setCustomerBalanceAmount($used);
     }
     $creditmemo->setBaseCustomerBalanceReturnMax($creditmemo->getBaseCustomerBalanceReturnMax() + $creditmemo->getBaseGrandTotal());
     $creditmemo->setBaseCustomerBalanceReturnMax($creditmemo->getBaseCustomerBalanceReturnMax() + $creditmemo->getBaseCustomerBalanceAmount());
     $creditmemo->setCustomerBalanceReturnMax($creditmemo->getCustomerBalanceReturnMax() + $creditmemo->getCustomerBalanceAmount());
     return $this;
 }
 /**
  * Collect gift wrapping totals
  *
  * @param   Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @return  Enterprise_GiftWrapping_Model_Total_Creditmemo_Giftwrapping
  */
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     /**
      * Wrapping for items
      */
     $refunded = 0;
     $baseRefunded = 0;
     foreach ($creditmemo->getAllItems() as $creditmemoItem) {
         if (!$creditmemoItem->getQty() || $creditmemoItem->getQty() == 0) {
             continue;
         }
         $orderItem = $creditmemoItem->getOrderItem();
         if ($orderItem->getGwId() && $orderItem->getGwBasePriceInvoiced() && $orderItem->getGwBasePriceInvoiced() != $orderItem->getGwBasePriceRefunded()) {
             $orderItem->setGwBasePriceRefunded($orderItem->getGwBasePriceInvoiced());
             $orderItem->setGwPriceRefunded($orderItem->getGwPriceInvoiced());
             $baseRefunded += $orderItem->getGwBasePriceInvoiced();
             $refunded += $orderItem->getGwPriceInvoiced();
         }
     }
     if ($refunded > 0 || $baseRefunded > 0) {
         $order->setGwItemsBasePriceRefunded($order->getGwItemsBasePriceRefunded() + $baseRefunded);
         $order->setGwItemsPriceRefunded($order->getGwItemsPriceRefunded() + $refunded);
         $creditmemo->setGwItemsBasePrice($baseRefunded);
         $creditmemo->setGwItemsPrice($refunded);
     }
     /**
      * Wrapping for order
      */
     if ($order->getGwId() && $order->getGwBasePriceInvoiced() && $order->getGwBasePriceInvoiced() != $order->getGwBasePriceRefunded()) {
         $order->setGwBasePriceRefunded($order->getGwBasePriceInvoiced());
         $order->setGwPriceRefunded($order->getGwPriceInvoiced());
         $creditmemo->setGwBasePrice($order->getGwBasePriceInvoiced());
         $creditmemo->setGwPrice($order->getGwPriceInvoiced());
     }
     /**
      * Printed card
      */
     if ($order->getGwAddCard() && $order->getGwCardBasePriceInvoiced() && $order->getGwCardBasePriceInvoiced() != $order->getGwCardBasePriceRefunded()) {
         $order->setGwCardBasePriceRefunded($order->getGwCardBasePriceInvoiced());
         $order->setGwCardPriceRefunded($order->getGwCardPriceInvoiced());
         $creditmemo->setGwCardBasePrice($order->getGwCardBasePriceInvoiced());
         $creditmemo->setGwCardPrice($order->getGwCardPriceInvoiced());
     }
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $creditmemo->getGwItemsBasePrice() + $creditmemo->getGwBasePrice() + $creditmemo->getGwCardBasePrice());
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $creditmemo->getGwItemsPrice() + $creditmemo->getGwPrice() + $creditmemo->getGwCardPrice());
     $creditmemo->setBaseCustomerBalanceReturnMax($creditmemo->getBaseCustomerBalanceReturnMax() + $creditmemo->getGwCardBasePrice() + $creditmemo->getGwBasePrice() + $creditmemo->getGwItemsBasePrice());
     $creditmemo->setCustomerBalanceReturnMax($creditmemo->getCustomerBalanceReturnMax() + $creditmemo->getGwCardPrice() + $creditmemo->getGwPrice() + $creditmemo->getGwItemsPrice());
     return $this;
 }