Completed
Push — master ( 43fb10...664b94 )
by
unknown
12:57
created

OroCRMTaskBundle::addTaskActivityRelations()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 22
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 8.9197
c 0
b 0
f 0
cc 4
eloc 16
nc 4
nop 2
1
<?php
2
3
namespace Oro\Bridge\CrmTask\Migrations\Schema\v1_0;
4
5
use Doctrine\DBAL\Schema\Schema;
6
7
use Oro\Bundle\ActivityBundle\Migration\Extension\ActivityExtension;
8
use Oro\Bundle\ActivityBundle\Migration\Extension\ActivityExtensionAwareInterface;
9
use Oro\Bundle\MigrationBundle\Migration\Migration;
10
use Oro\Bundle\MigrationBundle\Migration\QueryBag;
11
12
class OroCRMTaskBundle implements
13
    Migration,
14
    ActivityExtensionAwareInterface
15
{
16
     /** @var ActivityExtension */
17
    protected $activityExtension;
18
19
    /**
20
     * @param ActivityExtension $activityExtension
21
     */
22
    public function setActivityExtension(ActivityExtension $activityExtension)
23
    {
24
        $this->activityExtension = $activityExtension;
25
    }
26
27
    /**
28
     * {@inheritdoc}
29
     */
30
    public function up(Schema $schema, QueryBag $queries)
31
    {
32
        self::addTaskActivityRelations($schema, $this->activityExtension);
33
    }
34
35
    /**
36
     * @param Schema $schema
37
     * @param ActivityExtension $activityExtension
38
     */
39
    public static function addTaskActivityRelations(Schema $schema, ActivityExtension $activityExtension)
40
    {
41
        if (!$schema->hasTable('orocrm_task')) {
42
            return;
43
        }
44
        $targetTables = [
45
            'orocrm_account',
46
            'orocrm_contact',
47
            'orocrm_sales_lead',
48
            'orocrm_sales_opportunity',
49
            'orocrm_sales_b2bcustomer',
50
            'orocrm_case',
51
            'orocrm_magento_customer',
52
            'orocrm_magento_order'
53
        ];
54
        foreach ($targetTables as $targetTable) {
55
            $associationTableName = $activityExtension->getAssociationTableName('orocrm_task', $targetTable);
56
            if (!$schema->hasTable($associationTableName)) {
57
                $activityExtension->addActivityAssociation($schema, 'orocrm_task', $targetTable);
58
            }
59
        }
60
    }
61
}
62