Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Relation.php
Go to the documentation of this file.
1 <?php
8 
14 
18 class Relation implements RelationInterface
19 {
23  protected $addressHandler;
24 
29 
34 
39 
46  public function __construct(
47  AddressHandler $addressHandler,
51  ) {
52  $this->addressHandler = $addressHandler;
53  $this->orderItemRepository = $orderItemRepository;
54  $this->orderPaymentResource = $orderPaymentResource;
55  $this->orderStatusHistoryResource = $orderStatusHistoryResource;
56  }
57 
65  public function processRelation(\Magento\Framework\Model\AbstractModel $object)
66  {
69  if (null !== $object->getItems()) {
71  foreach ($object->getItems() as $item) {
72  $item->setOrderId($object->getId());
73  $item->setOrder($object);
74  $this->orderItemRepository->save($item);
75  }
76  }
77  if (null !== $object->getPayment()) {
78  $payment = $object->getPayment();
79  $payment->setParentId($object->getId());
80  $payment->setOrder($object);
81  $this->orderPaymentResource->save($payment);
82  }
83  if (null !== $object->getStatusHistories()) {
85  foreach ($object->getStatusHistories() as $statusHistory) {
86  $statusHistory->setParentId($object->getId());
87  $statusHistory->setOrder($object);
88  $this->orderStatusHistoryResource->save($statusHistory);
89  }
90  }
91  if (null !== $object->getRelatedObjects()) {
92  foreach ($object->getRelatedObjects() as $relatedObject) {
93  $relatedObject->setOrder($object);
94  $relatedObject->save();
95  }
96  }
97  $this->addressHandler->removeEmptyAddresses($object);
98  $this->addressHandler->process($object);
99  }
100 }
processRelation(\Magento\Framework\Model\AbstractModel $object)
$payment
Definition: order.php:17
__construct(AddressHandler $addressHandler, OrderItemRepositoryInterface $orderItemRepository, OrderPaymentResource $orderPaymentResource, OrderStatusHistoryResource $orderStatusHistoryResource)
Definition: Relation.php:46