コード例 #1
0
 /**
  * Decides if we need to create dummy shipment item or not
  * for eaxample we don't need create dummy parent if all
  * children are not in process
  *
  * @deprecated after 1.4, Mage_Sales_Model_Service_Order used
  * @param Mage_Sales_Model_Order_Item $item
  * @param array $qtys
  * @return bool
  */
 protected function _needToAddDummyForShipment($item, $qtys)
 {
     if ($item->getHasChildren()) {
         foreach ($item->getChildrenItems() as $child) {
             if ($child->getIsVirtual()) {
                 continue;
             }
             if (isset($qtys[$child->getId()]) && $qtys[$child->getId()] > 0) {
                 return true;
             }
         }
         if ($item->isShipSeparately()) {
             return true;
         }
         return false;
     } else {
         if ($item->getParentItem()) {
             if ($item->getIsVirtual()) {
                 return false;
             }
             if (isset($qtys[$item->getParentItem()->getId()]) && $qtys[$item->getParentItem()->getId()] > 0) {
                 return true;
             }
             return false;
         }
     }
 }
コード例 #2
0
 /**
  * Decides if we need to create dummy shipment item or not
  * for eaxample we don't need create dummy parent if all
  * children are not in process
  *
  * @deprecated after 1.4, Mage_Sales_Model_Service_Order used
  * @param Mage_Sales_Model_Order_Item $item
  * @param array $qtys
  * @return bool
  */
 protected function _needToAddDummy($item, $qtys)
 {
     if ($item->getHasChildren()) {
         foreach ($item->getChildrenItems() as $child) {
             if ($child->getIsVirtual()) {
                 continue;
             }
             if (isset($qtys[$child->getId()]) && $qtys[$child->getId()] > 0 || !isset($qtys[$child->getId()]) && $child->getQtyToShip()) {
                 return true;
             }
         }
         return false;
     } else {
         if ($item->getParentItem()) {
             if ($item->getIsVirtual()) {
                 return false;
             }
             if (isset($qtys[$item->getParentItem()->getId()]) && $qtys[$item->getParentItem()->getId()] > 0 || !isset($qtys[$item->getParentItem()->getId()]) && $item->getParentItem()->getQtyToShip()) {
                 return true;
             }
             return false;
         }
     }
 }
コード例 #3
0
ファイル: Order.php プロジェクト: hazaeluz/magento_connect
 /**
  * Check if order item can be shiped. Dummy item can be shiped or with his childrens or
  * with parent item which is included to shipment
  *
  * @param Mage_Sales_Model_Order_Item $item
  * @param array $qtys
  * @return bool
  */
 protected function _canShipItem($item, $qtys = array())
 {
     if ($item->getIsVirtual() || $item->getLockedDoShip()) {
         return false;
     }
     if ($item->isDummy(true)) {
         if ($item->getHasChildren()) {
             if ($item->isShipSeparately()) {
                 return true;
             }
             foreach ($item->getChildrenItems() as $child) {
                 if ($child->getIsVirtual()) {
                     continue;
                 }
                 if (empty($qtys)) {
                     if ($child->getQtyToShip() > 0) {
                         return true;
                     }
                 } else {
                     if (isset($qtys[$child->getId()]) && $qtys[$child->getId()] > 0) {
                         return true;
                     }
                 }
             }
             return false;
         } else {
             if ($item->getParentItem()) {
                 $parent = $item->getParentItem();
                 if (empty($qtys)) {
                     return $parent->getQtyToShip() > 0;
                 } else {
                     return isset($qtys[$parent->getId()]) && $qtys[$parent->getId()] > 0;
                 }
             }
         }
     } else {
         return $item->getQtyToShip() > 0;
     }
 }
コード例 #4
0
 /**
  * Get the shipping description to use for an item. Takes into account if
  * the item is a physical or virtual item.
  *
  * @param Mage_Sales_Model_Order_Item
  * @param Mage_Sales_Model_Order_Address
  * @return string
  */
 protected function getItemShippingDescription(Mage_Sales_Model_Order_Item $item, Mage_Sales_Model_Order_Address $address)
 {
     return $item->getIsVirtual() ? $this->shippingHelper->getVirtualMethodDescription() : $address->getShippingDescription();
 }
コード例 #5
0
ファイル: Order.php プロジェクト: ridhoq/mxpi-twitter
 /**
  * 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;
 }
コード例 #6
0
 /**
  * Get a default address for an item if one exists. For virtual items,
  * the default address will be the billing address of the order the item
  * belongs to. For non-virtual items, the default address will be the
  * primary shipping address of the order the item belongs to. If the
  * appropriate default address for the item does not exits, no address
  * will be returned.
  *
  * @param Mage_Sales_Model_Order_Item
  * @return Mage_Sales_Model_Order_Address|null
  */
 protected function _loadDefaultAddressForItem(Mage_Sales_Model_Order_Item $item)
 {
     $order = $item->getOrder();
     if (!$order) {
         return null;
     }
     $defaultAddress = $item->getIsVirtual() ? $order->getBillingAddress() : $order->getShippingAddress();
     // If the appropriate default address did not exist in the order, false
     // will have been returned. In such cases, return null to indicate that
     // no such address exists.
     return $defaultAddress ?: null;
 }