123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Setup\Patch\Data;
- use Magento\Customer\Setup\CustomerSetup;
- use Magento\Customer\Setup\CustomerSetupFactory;
- use Magento\Framework\Module\Setup\Migration;
- use Magento\Framework\Setup\ModuleDataSetupInterface;
- use Magento\Framework\App\ResourceConnection;
- use Magento\Framework\Setup\Patch\DataPatchInterface;
- use Magento\Framework\Setup\Patch\PatchVersionInterface;
- /**
- * Class DefaultCustomerGroupsAndAttributes
- * @package Magento\Customer\Setup\Patch
- */
- class DefaultCustomerGroupsAndAttributes implements DataPatchInterface, PatchVersionInterface
- {
- /**
- * @var CustomerSetupFactory
- */
- private $customerSetupFactory;
- /**
- * @var ModuleDataSetupInterface
- */
- private $moduleDataSetup;
- /**
- * DefaultCustomerGroupsAndAttributes constructor.
- * @param CustomerSetupFactory $customerSetupFactory
- * @param ModuleDataSetupInterface $moduleDataSetup
- */
- public function __construct(
- CustomerSetupFactory $customerSetupFactory,
- \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup
- ) {
- $this->customerSetupFactory = $customerSetupFactory;
- $this->moduleDataSetup = $moduleDataSetup;
- }
- /**
- * {@inheritdoc}
- * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
- */
- public function apply()
- {
- /** @var CustomerSetup $customerSetup */
- $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]);
- // insert default customer groups
- $this->moduleDataSetup->getConnection()->insertForce(
- $this->moduleDataSetup->getTable('customer_group'),
- ['customer_group_id' => 0, 'customer_group_code' => 'NOT LOGGED IN', 'tax_class_id' => 3]
- );
- $this->moduleDataSetup->getConnection()->insertForce(
- $this->moduleDataSetup->getTable('customer_group'),
- ['customer_group_id' => 1, 'customer_group_code' => 'General', 'tax_class_id' => 3]
- );
- $this->moduleDataSetup->getConnection()->insertForce(
- $this->moduleDataSetup->getTable('customer_group'),
- ['customer_group_id' => 2, 'customer_group_code' => 'Wholesale', 'tax_class_id' => 3]
- );
- $this->moduleDataSetup->getConnection()->insertForce(
- $this->moduleDataSetup->getTable('customer_group'),
- ['customer_group_id' => 3, 'customer_group_code' => 'Retailer', 'tax_class_id' => 3]
- );
- $customerSetup->installEntities();
- $customerSetup->installCustomerForms();
- $disableAGCAttribute = $customerSetup->getEavConfig()->getAttribute('customer', 'disable_auto_group_change');
- $disableAGCAttribute->setData('used_in_forms', ['adminhtml_customer']);
- $disableAGCAttribute->save();
- $attributesInfo = [
- 'vat_id' => [
- 'label' => 'VAT number',
- 'type' => 'static',
- 'input' => 'text',
- 'position' => 140,
- 'visible' => true,
- 'required' => false,
- ],
- 'vat_is_valid' => [
- 'label' => 'VAT number validity',
- 'visible' => false,
- 'required' => false,
- 'type' => 'static',
- ],
- 'vat_request_id' => [
- 'label' => 'VAT number validation request ID',
- 'type' => 'static',
- 'visible' => false,
- 'required' => false,
- ],
- 'vat_request_date' => [
- 'label' => 'VAT number validation request date',
- 'type' => 'static',
- 'visible' => false,
- 'required' => false,
- ],
- 'vat_request_success' => [
- 'label' => 'VAT number validation request success',
- 'visible' => false,
- 'required' => false,
- 'type' => 'static',
- ],
- ];
- foreach ($attributesInfo as $attributeCode => $attributeParams) {
- $customerSetup->addAttribute('customer_address', $attributeCode, $attributeParams);
- }
- $vatIdAttribute = $customerSetup->getEavConfig()->getAttribute('customer_address', 'vat_id');
- $vatIdAttribute->setData(
- 'used_in_forms',
- ['adminhtml_customer_address', 'customer_address_edit', 'customer_register_address']
- );
- $vatIdAttribute->save();
- $entities = $customerSetup->getDefaultEntities();
- foreach ($entities as $entityName => $entity) {
- $customerSetup->addEntityType($entityName, $entity);
- }
- $customerSetup->updateAttribute(
- 'customer_address',
- 'street',
- 'backend_model',
- \Magento\Eav\Model\Entity\Attribute\Backend\DefaultBackend::class
- );
- $migrationSetup = $this->moduleDataSetup->createMigrationSetup();
- $migrationSetup->appendClassAliasReplace(
- 'customer_eav_attribute',
- 'data_model',
- Migration::ENTITY_TYPE_MODEL,
- Migration::FIELD_CONTENT_TYPE_PLAIN,
- ['attribute_id']
- );
- $migrationSetup->doUpdateClassAliases();
- }
- /**
- * {@inheritdoc}
- */
- public static function getDependencies()
- {
- return [];
- }
- /**
- * {@inheritdoc}
- */
- public static function getVersion()
- {
- return '2.0.0';
- }
- /**
- * {@inheritdoc}
- */
- public function getAliases()
- {
- return [];
- }
- }
|