SubSellerId   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 103
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 48
c 1
b 0
f 0
dl 0
loc 103
rs 10
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getAliases() 0 3 1
A getDependencies() 0 3 1
A apply() 0 49 2
A getVersion() 0 3 1
A __construct() 0 6 1
1
<?php
2
/**
3
 * Copyright © Getnet. All rights reserved.
4
 *
5
 * @author    Bruno Elisei <[email protected]>
6
 * See LICENSE for license details.
7
 */
8
9
namespace Getnet\SplitExampleMagento\Setup\Patch\Data;
10
11
use Magento\Eav\Setup\EavSetupFactory;
0 ignored issues
show
Bug introduced by
The type Magento\Eav\Setup\EavSetupFactory was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
12
use Magento\Framework\Setup\ModuleDataSetupInterface;
13
use Magento\Framework\Setup\Patch\DataPatchInterface;
14
15
/**
16
 * Class Sub Seller Id - add attribute for product.
17
 */
18
class SubSellerId implements DataPatchInterface
19
{
20
    /**
21
     * @var ModuleDataSetupInterface
22
     */
23
    protected $moduleDataSetup;
24
25
    /**
26
     * @var EavSetupFactory
27
     */
28
    protected $eavSetupFactory;
29
30
    /**
31
     * @param ModuleDataSetupInterface $moduleDataSetup
32
     * @param EavSetupFactory          $eavSetupFactory
33
     */
34
    public function __construct(
35
        ModuleDataSetupInterface $moduleDataSetup,
36
        EavSetupFactory $eavSetupFactory
37
    ) {
38
        $this->moduleDataSetup = $moduleDataSetup;
39
        $this->eavSetupFactory = $eavSetupFactory;
40
    }
41
42
    /**
43
     * @inheritdoc
44
     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
45
     */
46
    public function apply()
47
    {
48
        $eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]);
49
50
        $productTypes = [
51
            \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE,
52
            \Magento\Catalog\Model\Product\Type::TYPE_VIRTUAL,
53
            \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE,
54
            \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE,
55
            \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE,
0 ignored issues
show
Bug introduced by
The type Magento\ConfigurableProd...oduct\Type\Configurable was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
56
        ];
57
        $productTypes = join(',', $productTypes);
58
59
        $eavSetup->addAttribute(
60
            \Magento\Catalog\Model\Product::ENTITY,
61
            'getnet_sub_seller_id',
62
            [
63
                'type'                    => 'varchar',
64
                'backend'                 => '',
65
                'frontend'                => '',
66
                'label'                   => 'Getnet Sub Seller',
67
                'input'                   => 'hidden',
68
                'class'                   => '',
69
                'source'                  => '',
70
                'global'                  => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
71
                'visible'                 => true,
72
                'required'                => false,
73
                'user_defined'            => true,
74
                'default'                 => '',
75
                'searchable'              => false,
76
                'filterable'              => false,
77
                'comparable'              => false,
78
                'visible_on_front'        => false,
79
                'used_in_product_listing' => true,
80
                'unique'                  => false,
81
                'apply_to'                => $productTypes,
82
            ]
83
        );
84
85
        $entityTypeId = $eavSetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
86
        $attributeSetIds = $eavSetup->getAllAttributeSetIds($entityTypeId);
87
        foreach ($attributeSetIds as $attributeSetId) {
88
            $groupId = $eavSetup->getAttributeGroupId($entityTypeId, $attributeSetId, 'General');
89
            $eavSetup->addAttributeToGroup(
90
                $entityTypeId,
91
                $attributeSetId,
92
                $groupId,
93
                'getnet_sub_seller_id',
94
                null
95
            );
96
        }
97
    }
98
99
    /**
100
     * @inheritdoc
101
     */
102
    public static function getDependencies()
103
    {
104
        return [];
105
    }
106
107
    /**
108
     * @inheritdoc
109
     */
110
    public static function getVersion()
111
    {
112
        return '100.0.1';
113
    }
114
115
    /**
116
     * @inheritdoc
117
     */
118
    public function getAliases()
119
    {
120
        return [];
121
    }
122
}
123