/** * 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; } } }
/** * 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; } } }
/** * Decides if we need to create dummy invoice item or not * for eaxample we don't need create dummy parent if all * children are not in process * * @param Mage_Sales_Model_Order_Item $item * @param array $qtys * @return bool */ protected function _needToAddDummy($item, $qtys = array()) { if ($item->getHasChildren()) { foreach ($item->getChildrenItems() as $child) { if (empty($qtys)) { if ($child->getQtyToInvoice() > 0) { return true; } } else { if (isset($qtys[$child->getId()]) && $qtys[$child->getId()] > 0) { return true; } } } return false; } else { if ($item->getParentItem()) { if (empty($qtys)) { if ($item->getParentItem()->getQtyToInvoice() > 0) { return true; } } else { if (isset($qtys[$child->getId()]) && $qtys[$child->getId()] > 0) { return true; } } return false; } } }
/** * Decides if we need to create dummy invoice item or not * for eaxample we don't need create dummy parent if all * children are not in process * * @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 (isset($qtys[$child->getId()]) && isset($qtys[$child->getId()]['qty']) && $qtys[$child->getId()]['qty'] > 0) { return true; } } return false; } else { if ($item->getParentItem()) { if (isset($qtys[$item->getParentItem()->getId()]) && isset($qtys[$item->getParentItem()->getId()]['qty']) && $qtys[$item->getParentItem()->getId()]['qty'] > 0) { return true; } return false; } } }
/** * Check if order item can be refunded * * @param Mage_Sales_Model_Order_Item $item * @param array $qtys * @param array $invoiceQtysRefundLimits * @return bool */ protected function _canRefundItem($item, $qtys = array(), $invoiceQtysRefundLimits = array()) { if ($item->isDummy()) { if ($item->getHasChildren()) { foreach ($item->getChildrenItems() as $child) { if (empty($qtys)) { if ($this->_canRefundNoDummyItem($child, $invoiceQtysRefundLimits)) { 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 $this->_canRefundNoDummyItem($parent, $invoiceQtysRefundLimits); } else { return isset($qtys[$parent->getId()]) && $qtys[$parent->getId()] > 0; } } } } else { return $this->_canRefundNoDummyItem($item, $invoiceQtysRefundLimits); } }
/** * Check if order item can be refunded * * @param Mage_Sales_Model_Order_Item $item * @param array $qtys * @return bool */ protected function _canRefundItem($item, $qtys = array()) { if ($item->isDummy()) { if ($item->getHasChildren()) { foreach ($item->getChildrenItems() as $child) { if (empty($qtys)) { if ($child->getQtyToRefund() > 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->getQtyToRefund() > 0; } else { return isset($qtys[$parent->getId()]) && $qtys[$parent->getId()] > 0; } } } } else { return $item->getQtyToRefund() > 0; } }