Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReturnValidator.php
Go to the documentation of this file.
1 <?php
7 
13 
18 {
22  private $orderItemRepository;
23 
28  public function __construct(OrderItemRepositoryInterface $orderItemRepository)
29  {
30  $this->orderItemRepository = $orderItemRepository;
31  }
32 
38  public function validate($returnToStockItems, CreditmemoInterface $creditmemo)
39  {
40  $creditmemoItems = $creditmemo->getItems();
41 
43  foreach ($returnToStockItems as $item) {
44  try {
45  $orderItem = $this->orderItemRepository->get($item);
46  if (!$this->isOrderItemPartOfCreditmemo($creditmemoItems, $orderItem)) {
47  return __('The "%1" product is not part of the current creditmemo.', $orderItem->getSku());
48  }
49  } catch (NoSuchEntityException $e) {
50  return __('The return to stock argument contains product item that is not part of the original order.');
51  }
52  }
53  return null;
54  }
55 
61  private function isOrderItemPartOfCreditmemo(array $creditmemoItems, OrderItemInterface $orderItem)
62  {
63  foreach ($creditmemoItems as $creditmemoItem) {
64  if ($creditmemoItem->getOrderItemId() == $orderItem->getItemId()) {
65  return true;
66  }
67  }
68  return false;
69  }
70 }
$orderItem
Definition: order.php:30
__()
Definition: __.php:13
__construct(OrderItemRepositoryInterface $orderItemRepository)