/** * Cancel specific qty of order item * * @param Mage_Sales_Model_Order_Item $orderItem * @param null $qtyToCancel * @return Mage_Sales_Model_Order_Item */ public function cancelOrderItem(Mage_Sales_Model_Order_Item $orderItem, $qtyToCancel = null) { if ($orderItem->getStatusId() !== Mage_Sales_Model_Order_Item::STATUS_CANCELED) { if (is_null($qtyToCancel)) { $qtyToCancel = $orderItem->getQtyToCancel(); } Mage::dispatchEvent('sales_order_item_cancel', array('item' => $orderItem)); $orderItem->setQtyCanceled($orderItem->getQtyCanceled() + $qtyToCancel); $orderItem->setTaxCanceled($orderItem->getTaxCanceled() + $orderItem->getBaseTaxAmount() * $orderItem->getQtyCanceled() / $orderItem->getQtyOrdered()); $orderItem->setHiddenTaxCanceled($orderItem->getHiddenTaxCanceled() + $orderItem->getHiddenTaxAmount() * $orderItem->getQtyCanceled() / $orderItem->getQtyOrdered()); } return $orderItem; }
/** * Calculates and returns the grand total of an item including tax and excluding * discount. * * @param Mage_Sales_Model_Order_Item $item The item to return info from * @return Float The grand total */ protected function getItemTotal($item) { //return $item->getRowTotal() - $item->getDiscountAmount() + $item->getTaxAmount() + $item->getWeeeTaxAppliedRowAmount(); return $item->getRowTotal() + $item->getTaxAmount() + $item->getHiddenTaxAmount() + $item->getWeeeTaxAppliedRowAmount() - $item->getDiscountAmount(); }