public function collect(Mage_Sales_Model_Order_Invoice $invoice) { $invoice->setSurchargeAmount(0); $invoice->setBaseSurchargeAmount(0); $orderSurchargeAmount = Mage::helper('sagepaysuite/surcharge')->getAmount($invoice->getOrder()->getId()); if (!$orderSurchargeAmount) { $orderSurchargeAmount = Mage::getSingleton('core/session')->getData('surchargeamount'); } if ($orderSurchargeAmount) { $invoice->setSurchargeAmount($orderSurchargeAmount); $invoice->setBaseSurchargeAmount($orderSurchargeAmount); $invoice->setGrandTotal($invoice->getGrandTotal() + $orderSurchargeAmount); $invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $orderSurchargeAmount); } return $this; }
public function collect(Mage_Sales_Model_Order_Invoice $invoice) { $order = $invoice->getOrder(); $SurchargeAmountLeft = $order->getSurchargeAmount() - $order->getSurchargeAmountInvoiced(); $baseSurchargeAmountLeft = $order->getBaseSurchargeAmount() - $order->getBaseSurchargeAmountInvoiced(); if (abs($baseSurchargeAmountLeft) < $invoice->getBaseGrandTotal()) { $invoice->setGrandTotal($invoice->getGrandTotal() + $SurchargeAmountLeft); $invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseSurchargeAmountLeft); } else { $SurchargeAmountLeft = $invoice->getGrandTotal() * -1; $baseSurchargeAmountLeft = $invoice->getBaseGrandTotal() * -1; $invoice->setGrandTotal(0); $invoice->setBaseGrandTotal(0); } $invoice->setSurchargeAmount($SurchargeAmountLeft); $invoice->setBaseSurchargeAmount($baseSurchargeAmountLeft); return $this; }