/** * @inheritdoc */ public function up(Schema $schema, QueryBag $queries) { if (!$this->isExecutedFromInstallCommand()) { return; } $this->extendExtension->addManyToOneRelation($schema, 'oro_embedded_form', 'branch', 'diamante_branch', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'is_extend' => true]]); }
/** * Adds the association between the target table and the visit table * * @param Schema $schema * @param string $targetTableName Target entity table name * @param string $targetColumnName A column name is used to show related entity */ public function addIdentifierAssociation(Schema $schema, $targetTableName, $targetColumnName = null) { $visitTable = $schema->getTable(self::VISIT_TABLE_NAME); $targetTable = $schema->getTable($targetTableName); if (empty($targetColumnName)) { $primaryKeyColumns = $targetTable->getPrimaryKeyColumns(); $targetColumnName = array_shift($primaryKeyColumns); } $associationName = ExtendHelper::buildAssociationName($this->extendExtension->getEntityClassByTableName($targetTableName), self::ASSOCIATION_KIND); $this->extendExtension->addManyToOneRelation($schema, $visitTable, $associationName, $targetTable, $targetColumnName); }
/** * Adds the association between the target table and the note table * * @param Schema $schema * @param string $targetTableName Target entity table name * @param string $targetColumnName A column name is used to show related entity */ public function addNoteAssociation(Schema $schema, $targetTableName, $targetColumnName = null) { $noteTable = $schema->getTable(self::NOTE_TABLE_NAME); $targetTable = $schema->getTable($targetTableName); if (empty($targetColumnName)) { $primaryKeyColumns = $targetTable->getPrimaryKeyColumns(); $targetColumnName = array_shift($primaryKeyColumns); } $options = new OroOptions(); $options->set('note', 'enabled', true); $targetTable->addOption(OroOptions::KEY, $options); $associationName = ExtendHelper::buildAssociationName($this->extendExtension->getEntityClassByTableName($targetTableName)); $this->extendExtension->addManyToOneRelation($schema, $noteTable, $associationName, $targetTable, $targetColumnName); }
/** * Adds the association between the target table and the attachment table * * @param Schema $schema * @param string $targetTableName Target entity table name * @param string[] $allowedMimeTypes The list of allowed MIME types * @param int $maxFileSize Max allowed file size in megabytes */ public function addAttachmentAssociation(Schema $schema, $targetTableName, array $allowedMimeTypes = [], $maxFileSize = 1) { $noteTable = $schema->getTable(self::ATTACHMENT_ASSOCIATION_TABLE_NAME); $targetTable = $schema->getTable($targetTableName); $primaryKeyColumns = $targetTable->getPrimaryKeyColumns(); $targetColumnName = array_shift($primaryKeyColumns); $options = new OroOptions(); $options->set('attachment', 'enabled', true); $options->set('attachment', 'maxsize', $maxFileSize); $options->set('attachment', 'mimetypes', implode("\n", $allowedMimeTypes)); $targetTable->addOption(OroOptions::KEY, $options); $associationName = ExtendHelper::buildAssociationName($this->extendExtension->getEntityClassByTableName($targetTableName)); $this->extendExtension->addManyToOneRelation($schema, $noteTable, $associationName, $targetTable, $targetColumnName); }
/** * Create custom entity tables * * @param Schema $schema * * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function createTestCustomEntityTables(Schema $schema) { $table1 = $this->extendExtension->createCustomEntityTable($schema, 'TestEntity1'); $table1->addColumn('name', 'string', ['length' => 255, OroOptions::KEY => ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]]); $table2 = $this->extendExtension->createCustomEntityTable($schema, 'TestEntity2'); $table2->addColumn('name', 'string', ['length' => 255, OroOptions::KEY => ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]]); // unidirectional many-to-one $this->extendExtension->addManyToOneRelation($schema, $table1, 'uniM2OTarget', $table2, 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // bidirectional many-to-one $this->extendExtension->addManyToOneRelation($schema, $table1, 'biM2OTarget', $table2, 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); $this->extendExtension->addManyToOneInverseRelation($schema, $table1, 'biM2OTarget', $table2, 'biM2OOwners', ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // unidirectional many-to-many $this->extendExtension->addManyToManyRelation($schema, $table1, 'uniM2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // unidirectional many-to-many without default $this->extendExtension->addManyToManyRelation($schema, $table1, 'uniM2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]); // bidirectional many-to-many $this->extendExtension->addManyToManyRelation($schema, $table1, 'biM2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); $this->extendExtension->addManyToManyInverseRelation($schema, $table1, 'biM2MTargets', $table2, 'biM2MOwners', ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // bidirectional many-to-many without default $this->extendExtension->addManyToManyRelation($schema, $table1, 'biM2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]); $this->extendExtension->addManyToManyInverseRelation($schema, $table1, 'biM2MNDTargets', $table2, 'biM2MNDOwners', ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // unidirectional one-to-many $this->extendExtension->addOneToManyRelation($schema, $table1, 'uniO2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // unidirectional one-to-many without default $this->extendExtension->addOneToManyRelation($schema, $table1, 'uniO2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]); // bidirectional one-to-many $this->extendExtension->addOneToManyRelation($schema, $table1, 'biO2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); $this->extendExtension->addOneToManyInverseRelation($schema, $table1, 'biO2MTargets', $table2, 'biO2MOwner', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); // bidirectional one-to-many without default $this->extendExtension->addOneToManyRelation($schema, $table1, 'biO2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]); $this->extendExtension->addOneToManyInverseRelation($schema, $table1, 'biO2MNDTargets', $table2, 'biO2MNDOwner', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); }
/** * Create orocrm_sales_lead table * * @param Schema $schema */ protected function createOrocrmSalesLeadTable(Schema $schema) { $table = $schema->createTable('orocrm_sales_lead'); $table->addColumn('id', 'integer', ['autoincrement' => true]); $table->addColumn('address_id', 'integer', ['notnull' => false]); $table->addColumn('contact_id', 'integer', ['notnull' => false]); $table->addColumn('user_owner_id', 'integer', ['notnull' => false]); $table->addColumn('customer_id', 'integer', ['notnull' => false]); $table->addColumn('data_channel_id', 'integer', ['notnull' => false]); $table->addColumn('status_name', 'string', ['notnull' => false, 'length' => 32]); $table->addColumn('workflow_item_id', 'integer', ['notnull' => false]); $table->addColumn('workflow_step_id', 'integer', ['notnull' => false]); $table->addColumn('name', 'string', ['length' => 255]); $table->addColumn('name_prefix', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('first_name', 'string', ['length' => 255]); $table->addColumn('middle_name', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('last_name', 'string', ['length' => 255]); $table->addColumn('name_suffix', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('job_title', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('phone_number', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('email', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('company_name', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('website', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('number_of_employees', 'integer', ['notnull' => false]); $table->addColumn('industry', 'string', ['notnull' => false, 'length' => 255]); $table->addColumn('createdat', 'datetime', []); $table->addColumn('updatedat', 'datetime', ['notnull' => false]); $table->addColumn('notes', 'text', ['notnull' => false]); $this->extendExtension->addEnumField($schema, 'orocrm_sales_lead', 'source', 'lead_source'); $this->extendExtension->addManyToOneRelation($schema, $table, 'campaign', 'orocrm_campaign', 'combined_name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); $table->addIndex(['status_name'], 'idx_73db46336625d392', []); $table->addIndex(['user_owner_id'], 'idx_73db46339eb185f9', []); $table->addIndex(['customer_id'], 'IDX_73DB46339395C3F3', []); $table->addIndex(['data_channel_id'], 'IDX_73DB4633BDC09B73', []); $table->addIndex(['createdat'], 'lead_created_idx', []); $table->addIndex(['contact_id'], 'idx_73db4633e7a1254a', []); $table->setPrimaryKey(['id']); $table->addIndex(['workflow_step_id'], 'idx_73db463371fe882c', []); $table->addIndex(['address_id'], 'idx_73db4633f5b7af75', []); $table->addUniqueIndex(['workflow_item_id'], 'uniq_73db46331023c4ee'); }
/** * @param $schema */ public function addExtendedFields($schema) { $this->extendExtension->addManyToOneRelation($schema, 'oro_embedded_form', 'dataChannel', 'orocrm_channel', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'is_extend' => true]]); }
/** * Add 'channel' to oro_tracking_website * * @param Schema $schema */ protected function addChannelForeignKeyToTrackingWebsite(Schema $schema) { $this->extendExtension->addManyToOneRelation($schema, 'oro_tracking_website', 'channel', 'orocrm_channel', 'name', [ExtendOptionsManager::MODE_OPTION => ConfigModelManager::MODE_READONLY, 'entity' => ['label' => 'orocrm.channel.entity_label'], 'extend' => ['is_extend' => true, 'owner' => ExtendScope::OWNER_CUSTOM], 'datagrid' => ['is_visible' => false], 'form' => ['is_enabled' => true, 'form_type' => 'orocrm_channel_select_type', 'form_options' => ['tooltip' => 'orocrm.channel.tracking_website_channel_select.tooltip']], 'view' => ['is_displayable' => true], 'merge' => ['display' => false], 'dataaudit' => ['auditable' => false]]); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_tracking_website'); $this->extendExtension->addManyToOneRelation($schema, $table, 'channel', 'orocrm_channel', 'name', [ExtendOptionsManager::MODE_OPTION => ConfigModel::MODE_READONLY, 'entity' => ['label' => 'orocrm.channel.entity_label'], 'extend' => ['is_extend' => true, 'owner' => ExtendScope::OWNER_CUSTOM], 'datagrid' => ['is_visible' => false], 'form' => ['is_enabled' => true, 'form_type' => 'orocrm_channel_select_type', 'form_options' => ['tooltip' => 'orocrm.channel.tracking_website_channel_select.tooltip']], 'view' => ['is_displayable' => true], 'merge' => ['display' => false], 'dataaudit' => ['auditable' => false]]); }
/** * @inheritdoc */ public function up(Schema $schema, QueryBag $queries) { $this->extendExtension->addManyToOneRelation($schema, 'oro_embedded_form', 'branch', 'diamante_branch', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'is_extend' => true]]); }
/** * @inheritdoc */ public function up(Schema $schema, QueryBag $queries) { $this->extendExtension->addManyToOneRelation($schema, 'orocrm_sales_lead', 'campaign', 'orocrm_campaign', 'combined_name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); }
/** * @inheritdoc */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_user_access_role'); $table->addColumn('test_column', 'integer', []); $this->extendExtension->addManyToOneRelation($schema, $table, 'rel_m2o', 'oro_user', 'username', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]); }