/** * Save relations for Order * * @param \Magento\Framework\Model\AbstractModel $object * @return void * @throws \Exception */ public function processRelation(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order $object */ if (null !== $object->getItems()) { /** @var \Magento\Sales\Model\Order\Item $item */ foreach ($object->getItems() as $item) { $item->setOrderId($object->getId()); $item->setOrder($object); $this->orderItemRepository->save($item); } } if (null !== $object->getPayment()) { $payment = $object->getPayment(); $payment->setParentId($object->getId()); $payment->setOrder($object); $this->orderPaymentResource->save($payment); } if (null !== $object->getStatusHistories()) { /** @var \Magento\Sales\Model\Order\Status\History $statusHistory */ foreach ($object->getStatusHistories() as $statusHistory) { $statusHistory->setParentId($object->getId()); $statusHistory->setOrder($object); $this->orderStatusHistoryResource->save($statusHistory); } } if (null !== $object->getRelatedObjects()) { foreach ($object->getRelatedObjects() as $relatedObject) { $relatedObject->setOrder($object); $relatedObject->save(); } } $this->addressHandler->removeEmptyAddresses($object); $this->addressHandler->process($object); }
/** * Process relations for CreditMemo * * @param \Magento\Framework\Model\AbstractModel $object * @throws \Exception * @return void */ public function processRelation(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order\Creditmemo $object */ if (null !== $object->getItems()) { foreach ($object->getItems() as $item) { $item->setParentId($object->getId()); $this->creditmemoItemResource->save($item); } } if (null !== $object->getComments()) { foreach ($object->getComments() as $comment) { $this->creditmemoCommentResource->save($comment); } } }
/** * Perform actions after object save * * @param \Magento\Framework\Model\AbstractModel $object * @return $this */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order\Creditmemo $object */ if (null !== $object->getItems()) { foreach ($object->getItems() as $item) { $item->setParentId($object->getId()); $item->save(); } } if (null !== $object->getComments()) { foreach ($object->getComments() as $comment) { $comment->save(); } } return parent::_afterSave($object); }
/** * Process relations for Shipment * * @param \Magento\Framework\Model\AbstractModel $object * @return void * @throws \Exception */ public function processRelation(\Magento\Framework\Model\AbstractModel $object) { /** @var $object \Magento\Sales\Model\Order\Invoice */ if (null !== $object->getItems()) { foreach ($object->getItems() as $item) { /** @var \Magento\Sales\Model\Order\Invoice\Item */ $item->setParentId($object->getId()); $item->setOrderItem($item->getOrderItem()); $this->invoiceItemResource->save($item); } } if (null !== $object->getComments()) { foreach ($object->getComments() as $comment) { /** @var \Magento\Sales\Model\Order\Invoice\Comment */ $this->invoiceCommentResource->save($comment); } } }
/** * Perform actions before object save * * @param \Magento\Framework\Model\AbstractModel|\Magento\Framework\Object $object * @return $this */ protected function processRelations(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order\Invoice $object */ if (null !== $object->getItems()) { /** * Save invoice items */ foreach ($object->getItems() as $item) { $item->setParentId($object->getId()); $item->setOrderItem($item->getOrderItem()); $item->save(); } } if (null !== $object->getComments()) { foreach ($object->getComments() as $comment) { $comment->save(); } } return parent::processRelations($object); }
/** * Perform actions after object save * * @param \Magento\Framework\Model\AbstractModel $object * @return $this */ protected function processRelations(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order\Shipment $object */ if (null !== $object->getItems()) { foreach ($object->getItems() as $item) { $item->setParentId($object->getId()); $item->save(); } } if (null !== $object->getTracks()) { foreach ($object->getTracks() as $track) { $track->save(); } } if (null !== $object->getComments()) { foreach ($object->getComments() as $comment) { $comment->save(); } } return parent::processRelations($object); }
/** * Perform actions before object save * * @param \Magento\Framework\Model\AbstractModel|\Magento\Framework\Object $object * @return $this * @throws \Magento\Framework\Exception\LocalizedException */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order\Shipment $object */ if ((!$object->getId() || null !== $object->getItems()) && !count($object->getAllItems())) { throw new \Magento\Framework\Exception\LocalizedException(__('We cannot create an empty shipment.')); } if (!$object->getOrderId() && $object->getOrder()) { $object->setOrderId($object->getOrder()->getId()); $object->setShippingAddressId($object->getOrder()->getShippingAddress()->getId()); } return parent::_beforeSave($object); }