![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-quote/Model/Quote/Address/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Quote\Model\Quote\Address; use Magento\Framework\DataObject\Copy; use Magento\Framework\Event\ManagerInterface; use Magento\Quote\Model\Quote\Address; use Magento\Sales\Api\Data\OrderInterface; use Magento\Sales\Api\Data\OrderInterfaceFactory as OrderFactory; /** * Class ToOrder converter */ class ToOrder { /** * @var Copy */ protected $objectCopyService; /** * @var OrderFactory */ protected $orderFactory; /** * @var \Magento\Framework\Event\ManagerInterface */ protected $eventManager; /** * @var \Magento\Framework\Api\DataObjectHelper */ protected $dataObjectHelper; /** * @param OrderFactory $orderFactory * @param Copy $objectCopyService * @param ManagerInterface $eventManager * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper */ public function __construct( OrderFactory $orderFactory, Copy $objectCopyService, ManagerInterface $eventManager, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper ) { $this->orderFactory = $orderFactory; $this->objectCopyService = $objectCopyService; $this->eventManager = $eventManager; $this->dataObjectHelper = $dataObjectHelper; } /** * @param Address $object * @param array $data * @return OrderInterface */ public function convert(Address $object, $data = []) { $orderData = $this->objectCopyService->getDataFromFieldset( 'sales_convert_quote_address', 'to_order', $object ); /** * @var $order \Magento\Sales\Model\Order */ $order = $this->orderFactory->create(); $this->dataObjectHelper->populateWithArray( $order, array_merge($orderData, $data), \Magento\Sales\Api\Data\OrderInterface::class ); $order->setStoreId($object->getQuote()->getStoreId()) ->setQuoteId($object->getQuote()->getId()) ->setIncrementId($object->getQuote()->getReservedOrderId()); $this->objectCopyService->copyFieldsetToTarget( 'sales_convert_quote', 'to_order', $object->getQuote(), $order ); $this->eventManager->dispatch( 'sales_convert_quote_to_order', ['order' => $order, 'quote' => $object->getQuote()] ); return $order; } }