/** * 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; }