/** * {@inheritdoc} */ protected function transformData($data, $sourceDocument, $destDocument, $recordTransformer, $destinationRecords) { parent::transformData($data, $sourceDocument, $destDocument, $recordTransformer, $destinationRecords); /** @var \Magento\Framework\DB\Adapter\Pdo\Mysql $adapter */ $adapter = $this->destination->getAdapter()->getSelect()->getAdapter(); $entityType = $this->helper->getEntityTypeData('entity_type_id', $data['entity_type_id']); $incrementMaxNumber = $this->helper->getMaxIncrementForEntityType($data['entity_type_id']); if ($incrementMaxNumber === false) { return; } foreach ($this->helper->getStoreIds() as $storeId) { $tableName = $this->helper->getTableName($entityType['entity_type_table'], $storeId); $adapter->insertOnDuplicate($tableName, [$entityType['column'] => $incrementMaxNumber]); } }
/** * @param array $entityType * @param int $storeId * @return void */ protected function createSequenceTable(array $entityType, $storeId) { /** @var \Magento\Framework\DB\Adapter\Pdo\Mysql $adapter */ $adapter = $this->destination->getAdapter()->getSelect()->getAdapter(); $tableName = $this->helper->getTableName($entityType['entity_type_table'], $storeId); $adapter->dropTable($tableName); $columnOptions = ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true, 'auto_increment' => true]; /** @var \Magento\Framework\DB\Ddl\Table $table */ $table = $adapter->newTable($tableName)->addColumn($entityType['column'], \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, $columnOptions); $adapter->createTable($table); $incrementMaxNumber = $this->helper->getMaxIncrementForEntityType($entityType['entity_type_id']); if ($incrementMaxNumber !== false) { $adapter->insert($tableName, [$entityType['column'] => $incrementMaxNumber]); } }