/**
  * @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]]);
 }
Exemplo n.º 2
0
 /**
  * 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);
 }
Exemplo n.º 3
0
 /**
  * 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);
 }
Exemplo n.º 4
0
 /**
  * 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]]);
 }
Exemplo n.º 6
0
 /**
  * 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');
 }
Exemplo n.º 7
0
 /**
  * @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]]);
 }
Exemplo n.º 9
0
 /**
  * {@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]]);
 }
Exemplo n.º 11
0
 /**
  * @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]]);
 }
Exemplo n.º 12
0
 /**
  * @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]]);
 }