moduleDataSetup = $moduleDataSetup; $this->salesSetupFactory = $salesSetupFactory; $this->state = $state; $this->eavConfig = $eavConfig; $this->addressCollectionFactory = $addressCollectionFactory; $this->orderFactory = $orderFactory; $this->quoteFactory = $quoteFactory; } /** * {@inheritdoc} */ public function apply() { $this->state->emulateAreaCode( \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE, [$this, 'fillQuoteAddressIdInSalesOrderAddress'], [$this->moduleDataSetup] ); $this->eavConfig->clear(); } /** * Fill quote_address_id in table sales_order_address if it is empty. * * @param ModuleDataSetupInterface $setup */ public function fillQuoteAddressIdInSalesOrderAddress(ModuleDataSetupInterface $setup) { $addressTable = $setup->getTable('sales_order_address'); $updateOrderAddress = $setup->getConnection() ->select() ->joinInner( ['sales_order' => $setup->getTable('sales_order')], $addressTable . '.parent_id = sales_order.entity_id', ['quote_address_id' => 'quote_address.address_id'] ) ->joinInner( ['quote_address' => $setup->getTable('quote_address')], 'sales_order.quote_id = quote_address.quote_id AND ' . $addressTable . '.address_type = quote_address.address_type', [] ) ->where( $addressTable . '.quote_address_id IS NULL' ); $updateOrderAddress = $setup->getConnection()->updateFromSelect( $updateOrderAddress, $addressTable ); $setup->getConnection()->query($updateOrderAddress); } /** * {@inheritdoc} */ public static function getDependencies() { return [ ConvertSerializedDataToJson::class ]; } /** * {@inheritdoc} */ public static function getVersion() { return '2.0.8'; } /** * {@inheritdoc} */ public function getAliases() { return []; } }