Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RefundOrder.php
Go to the documentation of this file.
1 <?php
7 
17 
22 {
26  private $orderValidator;
27 
31  private $creditmemoValidator;
32 
36  private $itemCreationValidator;
37 
41  private $validatorResultMerger;
42 
51  public function __construct(
52  OrderValidatorInterface $orderValidator,
53  CreditmemoValidatorInterface $creditmemoValidator,
54  ItemCreationValidatorInterface $itemCreationValidator,
55  ValidatorResultMerger $validatorResultMerger
56  ) {
57  $this->orderValidator = $orderValidator;
58  $this->creditmemoValidator = $creditmemoValidator;
59  $this->itemCreationValidator = $itemCreationValidator;
60  $this->validatorResultMerger = $validatorResultMerger;
61  }
62 
66  public function validate(
69  array $items = [],
70  $notify = false,
71  $appendComment = false,
72  \Magento\Sales\Api\Data\CreditmemoCommentCreationInterface $comment = null,
73  \Magento\Sales\Api\Data\CreditmemoCreationArgumentsInterface $arguments = null
74  ) {
75  $orderValidationResult = $this->orderValidator->validate(
76  $order,
77  [
78  CanRefund::class
79  ]
80  );
81  $creditmemoValidationResult = $this->creditmemoValidator->validate(
83  [
84  QuantityValidator::class,
85  TotalsValidator::class
86  ]
87  );
88 
89  $itemsValidation = [];
90  foreach ($items as $item) {
91  $itemsValidation[] = $this->itemCreationValidator->validate(
92  $item,
93  [CreationQuantityValidator::class],
94  $order
95  )->getMessages();
96  }
97 
98  return $this->validatorResultMerger->merge(
99  $orderValidationResult,
100  $creditmemoValidationResult,
101  ...$itemsValidation
102  );
103  }
104 }
$order
Definition: order.php:55
__construct(OrderValidatorInterface $orderValidator, CreditmemoValidatorInterface $creditmemoValidator, ItemCreationValidatorInterface $itemCreationValidator, ValidatorResultMerger $validatorResultMerger)
Definition: RefundOrder.php:51
$arguments
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)
Definition: RefundOrder.php:66
$items