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;
 }
Beispiel #2
0
 /**
  * Creates OCL OrderStatus record
  *
  * @param Mage_Sales_Model_Order_Item $item
  * @return string
  */
 protected function _createOrderItemStatus(Mage_Sales_Model_Order_Item $item)
 {
     switch ($item->getStatusId()) {
         case Mage_Sales_Model_Order_Item::STATUS_SHIPPED:
             return self::STATUS_SHIPPED;
         case Mage_Sales_Model_Order_Item::STATUS_BACKORDERED:
             return self::STATUS_BACKORDERED;
         case Mage_Sales_Model_Order_Item::STATUS_CANCELED:
             return self::STATUS_CANCELLED;
         case Mage_Sales_Model_Order_Item::STATUS_PARTIAL:
             return self::STATUS_PARTIALLY_SHIPPED;
         case Mage_Sales_Model_Order_Item::STATUS_REFUNDED:
         case Mage_Sales_Model_Order_Item::STATUS_RETURNED:
             return self::STATUS_PROCESSING_RETURN;
     }
     $orderState = $item->getOrder()->getState();
     switch ($orderState) {
         case Mage_Sales_Model_Order::STATE_NEW:
             return self::STATUS_NEW;
         case Mage_Sales_Model_Order::STATE_HOLDED:
             return self::STATUS_ON_HOLD;
         case Mage_Sales_Model_Order::STATE_COMPLETE:
         case Mage_Sales_Model_Order::STATE_CLOSED:
             return self::STATUS_COMPLETED;
     }
     if ($orderState == Mage_Sales_Model_Order::STATE_PROCESSING && $item->getStatus() == Mage_Sales_Model_Order_Item::STATUS_INVOICED) {
         return $item->getIsVirtual() ? self::STATUS_PAID : self::STATUS_READY_TO_SHIP;
     }
     return self::STATUS_NEW;
 }