示例#1
0
 /**
  * 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);
     }
 }
示例#2
0
 /**
  * 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;
     }
 }