_eventManager = $eventManager; $this->invoiceRepository = $invoiceRepository; $this->_invoiceItemFactory = $invoiceItemFactory; $this->shipmentRepository = $shipmentRepository; $this->_shipmentItemFactory = $shipmentItemFactory; $this->creditmemoRepository = $creditmemoRepository; $this->_creditmemoItemFactory = $creditmemoItemFactory; $this->_objectCopyService = $objectCopyService; parent::__construct($data); } /** * Convert order object to invoice * * @param \Magento\Sales\Model\Order $order * @return \Magento\Sales\Model\Order\Invoice */ public function toInvoice(\Magento\Sales\Model\Order $order) { $invoice = $this->invoiceRepository->create(); $invoice->setOrder( $order )->setStoreId( $order->getStoreId() )->setCustomerId( $order->getCustomerId() )->setBillingAddressId( $order->getBillingAddressId() )->setShippingAddressId( $order->getShippingAddressId() ); $this->_objectCopyService->copyFieldsetToTarget('sales_convert_order', 'to_invoice', $order, $invoice); return $invoice; } /** * Convert order item object to invoice item * * @param \Magento\Sales\Model\Order\Item $item * @return \Magento\Sales\Model\Order\Invoice\Item */ public function itemToInvoiceItem(\Magento\Sales\Model\Order\Item $item) { $invoiceItem = $this->_invoiceItemFactory->create(); $invoiceItem->setOrderItem($item)->setProductId($item->getProductId()); $this->_objectCopyService->copyFieldsetToTarget( 'sales_convert_order_item', 'to_invoice_item', $item, $invoiceItem ); return $invoiceItem; } /** * Convert order object to Shipment * * @param \Magento\Sales\Model\Order $order * @return \Magento\Sales\Model\Order\Shipment */ public function toShipment(\Magento\Sales\Model\Order $order) { $shipment = $this->shipmentRepository->create(); $shipment->setOrder( $order )->setStoreId( $order->getStoreId() )->setCustomerId( $order->getCustomerId() )->setBillingAddressId( $order->getBillingAddressId() )->setShippingAddressId( $order->getShippingAddressId() ); $this->_objectCopyService->copyFieldsetToTarget('sales_convert_order', 'to_shipment', $order, $shipment); return $shipment; } /** * Convert order item object to Shipment item * * @param \Magento\Sales\Model\Order\Item $item * @return \Magento\Sales\Model\Order\Shipment\Item */ public function itemToShipmentItem(\Magento\Sales\Model\Order\Item $item) { $shipmentItem = $this->_shipmentItemFactory->create(); $shipmentItem->setOrderItem($item)->setProductId($item->getProductId()); $this->_objectCopyService->copyFieldsetToTarget( 'sales_convert_order_item', 'to_shipment_item', $item, $shipmentItem ); return $shipmentItem; } /** * Convert order object to creditmemo * * @param \Magento\Sales\Model\Order $order * @return \Magento\Sales\Model\Order\Creditmemo */ public function toCreditmemo(\Magento\Sales\Model\Order $order) { $creditmemo = $this->creditmemoRepository->create(); $creditmemo->setOrder( $order )->setStoreId( $order->getStoreId() )->setCustomerId( $order->getCustomerId() )->setBillingAddressId( $order->getBillingAddressId() )->setShippingAddressId( $order->getShippingAddressId() ); $this->_objectCopyService->copyFieldsetToTarget('sales_convert_order', 'to_cm', $order, $creditmemo); return $creditmemo; } /** * Convert order item object to Creditmemo item * * @param \Magento\Sales\Model\Order\Item $item * @return \Magento\Sales\Model\Order\Creditmemo\Item */ public function itemToCreditmemoItem(\Magento\Sales\Model\Order\Item $item) { $creditmemoItem = $this->_creditmemoItemFactory->create(); $creditmemoItem->setOrderItem($item)->setProductId($item->getProductId()); $this->_objectCopyService->copyFieldsetToTarget( 'sales_convert_order_item', 'to_cm_item', $item, $creditmemoItem ); return $creditmemoItem; } }