/** * Check if no dummy order item can be refunded * * @param \Magento\Sales\Model\Order\Item $item * @param array $invoiceQtysRefundLimits * @return bool */ protected function _canRefundNoDummyItem($item, $invoiceQtysRefundLimits = []) { if ($item->getQtyToRefund() < 0) { return false; } if (isset($invoiceQtysRefundLimits[$item->getId()])) { return $invoiceQtysRefundLimits[$item->getId()] > 0; } return true; }
/** * @param \Magento\Sales\Model\Order\Item $orderItem * @return array */ public function getCreditmemoData(\Magento\Sales\Model\Order\Item $orderItem) { $data = [$orderItem->getId() => $orderItem->getQtyToRefund()]; return $data; }
/** * @param \Magento\Sales\Model\Order\Item $orderItem * @return array */ public function getCreditmemoData(\Magento\Sales\Model\Order\Item $orderItem) { $data = [$orderItem->getId() => $orderItem->getQtyToRefund()]; foreach ($this->observerManager->getObservers() as $observer) { if (is_callable([$observer, 'getCreditmemoData'])) { $params = new DataObject(['order_item' => $orderItem, 'credit_memo' => $data]); $data = $observer->getCreditmemoData($params); } } return $data; }
/** * Checks if quantity available for refund * * @param int $qty * @param \Magento\Sales\Model\Order\Item $orderItem * @return bool */ private function isQtyAvailable($qty, \Magento\Sales\Model\Order\Item $orderItem) { return $qty <= $orderItem->getQtyToRefund() || $orderItem->isDummy(); }