returnValidator = $returnValidator; } /** * @param RefundInvoiceInterface $refundInvoiceValidator * @param ValidatorResultInterface $validationResults * @param InvoiceInterface $invoice * @param OrderInterface $order * @param CreditmemoInterface $creditmemo * @param array $items * @param bool $isOnline * @param bool $notify * @param bool $appendComment * @param \Magento\Sales\Api\Data\CreditmemoCommentCreationInterface|null $comment * @param \Magento\Sales\Api\Data\CreditmemoCreationArgumentsInterface|null $arguments * @return ValidatorResultInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function afterValidate( RefundInvoiceInterface $refundInvoiceValidator, ValidatorResultInterface $validationResults, InvoiceInterface $invoice, OrderInterface $order, CreditmemoInterface $creditmemo, array $items = [], $isOnline = false, $notify = false, $appendComment = false, \Magento\Sales\Api\Data\CreditmemoCommentCreationInterface $comment = null, \Magento\Sales\Api\Data\CreditmemoCreationArgumentsInterface $arguments = null ) { if ($this->isReturnToStockItems($arguments)) { return $validationResults; } /** @var int[] $returnToStockItems */ $returnToStockItems = $arguments->getExtensionAttributes()->getReturnToStockItems(); $validationMessage = $this->returnValidator->validate($returnToStockItems, $creditmemo); if ($validationMessage) { $validationResults->addMessage($validationMessage); } return $validationResults; } /** * @param CreditmemoCreationArgumentsInterface|null $arguments * @return bool */ private function isReturnToStockItems($arguments) { return $arguments === null || $arguments->getExtensionAttributes() === null || $arguments->getExtensionAttributes()->getReturnToStockItems() === null; } }