Beispiel #1
0
 /**
  * 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;
 }