public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo) { $order_id = $creditmemo->getOrderId(); $order = Mage::getModel('sales/order')->load($order_id); $creditmemo->setFeeAmount($order->getFeeAmount()); $creditmemo->setBaseFeeAmount($order->getBaseFeeAmount()); $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $creditmemo->getFeeAmount()); $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $creditmemo->getBaseFeeAmount()); return $this; }
/** * Collect credit memo total * * @param Mage_Sales_Model_Order_Creditmemo $creditmemo * @return Magentix_Fee_Model_Sales_Order_Total_Creditmemo_Fee */ public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo) { $order = $creditmemo->getOrder(); if ($order->getFeeAmountInvoiced() > 0) { $feeAmountLeft = $order->getFeeAmountInvoiced() - $order->getFeeAmountRefunded(); $basefeeAmountLeft = $order->getBaseFeeAmountInvoiced() - $order->getBaseFeeAmountRefunded(); if ($basefeeAmountLeft > 0) { $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $feeAmountLeft); $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $basefeeAmountLeft); $creditmemo->setFeeAmount($feeAmountLeft); $creditmemo->setBaseFeeAmount($basefeeAmountLeft); } } else { $feeAmount = $order->getFeeAmountInvoiced(); $basefeeAmount = $order->getBaseFeeAmountInvoiced(); $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $feeAmount); $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $basefeeAmount); $creditmemo->setFeeAmount($feeAmount); $creditmemo->setBaseFeeAmount($basefeeAmount); } return $this; }