returnValidator = $returnValidator; } /** * @param RefundOrderInterface $refundOrderValidator * @param ValidatorResultInterface $validationResults * @param OrderInterface $order * @param CreditmemoInterface $creditmemo * @param array $items * @param bool $notify * @param bool $appendComment * @param CreditmemoCommentCreationInterface|null $comment * @param CreditmemoCreationArgumentsInterface|null $arguments * @return ValidatorResultInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterValidate( RefundOrderInterface $refundOrderValidator, ValidatorResultInterface $validationResults, OrderInterface $order, CreditmemoInterface $creditmemo, array $items = [], $notify = false, $appendComment = false, CreditmemoCommentCreationInterface $comment = null, CreditmemoCreationArgumentsInterface $arguments = null ) { if ($this->isReturnToStockItems($arguments)) { return $validationResults; } $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; } }