예제 #1
0
 /**
  * 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);
 }
예제 #2
0
 /**
  * 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);
         }
     }
 }
예제 #3
0
 /**
  * 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);
 }
예제 #4
0
 /**
  * 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);
         }
     }
 }
예제 #5
0
파일: Invoice.php 프로젝트: opexsw/magento2
 /**
  * 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);
 }
예제 #6
0
 /**
  * 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);
 }
예제 #7
0
 /**
  * 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);
 }