![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales/Model/Order/Validation/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Model\Order\Validation; use Magento\Sales\Api\Data\CreditmemoInterface; use Magento\Sales\Api\Data\OrderInterface; use Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface; use Magento\Sales\Model\Order\Creditmemo\Item\Validation\CreationQuantityValidator; use Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface; use Magento\Sales\Model\Order\Creditmemo\Validation\QuantityValidator; use Magento\Sales\Model\Order\Creditmemo\Validation\TotalsValidator; use Magento\Sales\Model\Order\OrderValidatorInterface; use Magento\Sales\Model\ValidatorResultMerger; /** * Class RefundOrder */ class RefundOrder implements RefundOrderInterface { /** * @var OrderValidatorInterface */ private $orderValidator; /** * @var CreditmemoValidatorInterface */ private $creditmemoValidator; /** * @var ItemCreationValidatorInterface */ private $itemCreationValidator; /** * @var ValidatorResultMerger */ private $validatorResultMerger; /** * RefundArguments constructor. * * @param OrderValidatorInterface $orderValidator * @param CreditmemoValidatorInterface $creditmemoValidator * @param ItemCreationValidatorInterface $itemCreationValidator * @param ValidatorResultMerger $validatorResultMerger */ public function __construct( OrderValidatorInterface $orderValidator, CreditmemoValidatorInterface $creditmemoValidator, ItemCreationValidatorInterface $itemCreationValidator, ValidatorResultMerger $validatorResultMerger ) { $this->orderValidator = $orderValidator; $this->creditmemoValidator = $creditmemoValidator; $this->itemCreationValidator = $itemCreationValidator; $this->validatorResultMerger = $validatorResultMerger; } /** * @inheritdoc */ public function validate( OrderInterface $order, CreditmemoInterface $creditmemo, array $items = [], $notify = false, $appendComment = false, \Magento\Sales\Api\Data\CreditmemoCommentCreationInterface $comment = null, \Magento\Sales\Api\Data\CreditmemoCreationArgumentsInterface $arguments = null ) { $orderValidationResult = $this->orderValidator->validate( $order, [ CanRefund::class ] ); $creditmemoValidationResult = $this->creditmemoValidator->validate( $creditmemo, [ QuantityValidator::class, TotalsValidator::class ] ); $itemsValidation = []; foreach ($items as $item) { $itemsValidation[] = $this->itemCreationValidator->validate( $item, [CreationQuantityValidator::class], $order )->getMessages(); } return $this->validatorResultMerger->merge( $orderValidationResult, $creditmemoValidationResult, ...$itemsValidation ); } }