mirror of
https://github.com/Karaka-Management/oms-ItemManagement.git
synced 2026-01-16 22:08:41 +00:00
197 lines
10 KiB
PHP
Executable File
197 lines
10 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Karaka
|
|
*
|
|
* PHP Version 8.0
|
|
*
|
|
* @package Modules\ItemManagement\Admin
|
|
* @copyright Dennis Eichhorn
|
|
* @license OMS License 1.0
|
|
* @version 1.0.0
|
|
* @link https://karaka.app
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\ItemManagement\Admin;
|
|
|
|
use Modules\ItemManagement\Models\AttributeValueType;
|
|
use Modules\ItemManagement\Models\ItemAttributeType;
|
|
use Modules\ItemManagement\Models\ItemAttributeTypeL11n;
|
|
use Modules\ItemManagement\Models\ItemAttributeTypeL11nMapper;
|
|
use Modules\ItemManagement\Models\ItemAttributeTypeMapper;
|
|
use Modules\ItemManagement\Models\ItemAttributeValue;
|
|
use Modules\ItemManagement\Models\ItemAttributeValueMapper;
|
|
use phpOMS\Application\ApplicationAbstract;
|
|
use phpOMS\Config\SettingsInterface;
|
|
use phpOMS\DataStorage\Database\DatabasePool;
|
|
use phpOMS\Localization\ISO639x1Enum;
|
|
use phpOMS\Module\InstallerAbstract;
|
|
use phpOMS\Module\ModuleInfo;
|
|
|
|
/**
|
|
* Installer class.
|
|
*
|
|
* @package Modules\ItemManagement\Admin
|
|
* @license OMS License 1.0
|
|
* @link https://karaka.app
|
|
* @since 1.0.0
|
|
*/
|
|
final class Installer extends InstallerAbstract
|
|
{
|
|
/**
|
|
* Path of the file
|
|
*
|
|
* @var string
|
|
* @since 1.0.0
|
|
*/
|
|
public const PATH = __DIR__;
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public static function install(ApplicationAbstract $app, ModuleInfo $info, SettingsInterface $cfgHandler) : void
|
|
{
|
|
parent::install($app, $info, $cfgHandler);
|
|
|
|
$attrTypes = self::createItemAttributeTypes();
|
|
self::createItemAttributeValues($attrTypes);
|
|
}
|
|
|
|
/**
|
|
* Install default attribute types
|
|
*
|
|
* @return ItemAttributeType[]
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
private static function createItemAttributeTypes() : array
|
|
{
|
|
$itemAttrType = [];
|
|
|
|
$itemAttrType['color'] = new ItemAttributeType('color');
|
|
ItemAttributeTypeMapper::create()->execute($itemAttrType['color']);
|
|
ItemAttributeTypeL11nMapper::create()->execute(new ItemAttributeTypeL11n($itemAttrType['color']->getId(), 'Color', ISO639x1Enum::_EN));
|
|
ItemAttributeTypeL11nMapper::create()->execute(new ItemAttributeTypeL11n($itemAttrType['color']->getId(), 'Farbe', ISO639x1Enum::_DE));
|
|
|
|
// weight
|
|
// segment_level_1
|
|
// segment_level_2
|
|
// segment_level_3
|
|
// segment_level_4
|
|
// product_group
|
|
// consumable
|
|
// packaging
|
|
// service
|
|
// machine
|
|
// spare part
|
|
// transportation
|
|
|
|
return $itemAttrType;
|
|
}
|
|
|
|
/**
|
|
* Create default attribute values for types
|
|
*
|
|
* @param ItemAttributeType[] $itemAttrType Attribute types
|
|
*
|
|
* @return array<string, ItemAttributeValue[]>
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
private static function createItemAttributeValues(array $itemAttrType) : array
|
|
{
|
|
$itemAttrValue = [];
|
|
|
|
$itemAttrValue['color'] = [];
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Red', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][0]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Rot', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][1]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Blue', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][2]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Blau', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][3]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Green', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][4]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Grün', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][5]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Yellow', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][6]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Gelb', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][7]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'White', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][8]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Weiss', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][9]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Black', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][10]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Schwarz', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][11]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Braun', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][12]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Braun', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][13]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Purple', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][14]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Lila', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][15]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Pink', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][16]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Rosa', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][17]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Orange', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][18]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Orange', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][19]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Grey', ISO639x1Enum::_EN);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][20]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
$itemAttrValue['color'][] = new ItemAttributeValue(AttributeValueType::_STRING, 'Grau', ISO639x1Enum::_DE);
|
|
$id = ItemAttributeValueMapper::create()->execute($itemAttrValue['color'][21]);
|
|
ItemAttributeTypeMapper::writer()->createRelationTable('defaults', [$id], $itemAttrType['color']->getId());
|
|
|
|
return $itemAttrValue;
|
|
}
|
|
}
|