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

OroCRMCallBridgeBundle   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 2
dl 0
loc 44
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setActivityExtension() 0 4 1
A up() 0 4 1
A addCallActivityRelations() 0 22 3
1
<?php
2
3
namespace Oro\Bridge\CrmCall\Migrations\Schema\v1_0;
4
5
use Doctrine\DBAL\Schema\Schema;
6
7
use Oro\Bundle\MigrationBundle\Migration\Migration;
8
use Oro\Bundle\MigrationBundle\Migration\QueryBag;
9
use Oro\Bundle\ActivityBundle\Migration\Extension\ActivityExtension;
10
use Oro\Bundle\ActivityBundle\Migration\Extension\ActivityExtensionAwareInterface;
11
12
class OroCRMCallBridgeBundle implements Migration, ActivityExtensionAwareInterface
13
{
14
    /** @var ActivityExtension */
15
    protected $activityExtension;
16
17
    /**
18
     * {@inheritdoc}
19
     */
20
    public function setActivityExtension(ActivityExtension $activityExtension)
21
    {
22
        $this->activityExtension = $activityExtension;
23
    }
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    public function up(Schema $schema, QueryBag $queries)
29
    {
30
        self::addCallActivityRelations($schema, $this->activityExtension);
31
    }
32
33
    public static function addCallActivityRelations(Schema $schema, ActivityExtension $activityExtension)
34
    {
35
        $associationTables = [
36
            'orocrm_account',
37
            'orocrm_contact',
38
            'orocrm_case',
39
            'orocrm_contactus_request',
40
            'orocrm_magento_customer',
41
            'orocrm_magento_order',
42
            'orocrm_magento_cart',
43
            'orocrm_sales_lead',
44
            'orocrm_sales_opportunity',
45
            'orocrm_sales_b2bcustomer'
46
        ];
47
48
        foreach ($associationTables as $tableName) {
49
            $associationTableName = $activityExtension->getAssociationTableName('orocrm_call', $tableName);
50
            if (!$schema->hasTable($associationTableName)) {
51
                $activityExtension->addActivityAssociation($schema, 'orocrm_call', $tableName);
52
            }
53
        }
54
    }
55
}
56