From f2eb46f65ff274818b962643c68f1a3557eab13c Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Tue, 9 May 2023 16:07:43 +0000 Subject: [PATCH] fixes --- Controller/ApiController.php | 25 ++-- Models/Item.php | 16 +-- Models/ItemL11n.php | 143 ----------------------- Models/ItemL11nMapper.php | 13 ++- Models/ItemL11nType.php | 93 --------------- Models/ItemL11nTypeMapper.php | 11 +- Models/ItemMapper.php | 12 +- Models/NullItemL11n.php | 47 -------- Models/NullItemL11nType.php | 46 -------- Theme/Backend/item-profile.tpl.php | 10 +- Theme/Backend/sales-item-profile.tpl.php | 8 +- tests/Models/ItemL11nTest.php | 78 ------------- tests/Models/ItemL11nTypeTest.php | 70 ----------- tests/Models/ItemTest.php | 3 +- tests/Models/NullItemL11nTest.php | 42 ------- tests/Models/NullItemL11nTypeTest.php | 42 ------- 16 files changed, 60 insertions(+), 599 deletions(-) delete mode 100755 Models/ItemL11n.php delete mode 100755 Models/ItemL11nType.php delete mode 100755 Models/NullItemL11n.php delete mode 100755 Models/NullItemL11nType.php delete mode 100755 tests/Models/ItemL11nTest.php delete mode 100755 tests/Models/ItemL11nTypeTest.php delete mode 100755 tests/Models/NullItemL11nTest.php delete mode 100755 tests/Models/NullItemL11nTypeTest.php diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 3e565e7..88521a4 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -26,9 +26,7 @@ use Modules\ItemManagement\Models\ItemAttributeTypeL11nMapper; use Modules\ItemManagement\Models\ItemAttributeTypeMapper; use Modules\ItemManagement\Models\ItemAttributeValueL11nMapper; use Modules\ItemManagement\Models\ItemAttributeValueMapper; -use Modules\ItemManagement\Models\ItemL11n; use Modules\ItemManagement\Models\ItemL11nMapper; -use Modules\ItemManagement\Models\ItemL11nType; use Modules\ItemManagement\Models\ItemL11nTypeMapper; use Modules\ItemManagement\Models\ItemMapper; use Modules\ItemManagement\Models\ItemPrice; @@ -36,15 +34,16 @@ use Modules\ItemManagement\Models\ItemPriceStatus; use Modules\ItemManagement\Models\ItemRelationType; use Modules\ItemManagement\Models\ItemRelationTypeMapper; use Modules\ItemManagement\Models\ItemStatus; -use Modules\ItemManagement\Models\NullItemL11nType; use Modules\Media\Models\Collection; use Modules\Media\Models\CollectionMapper; use Modules\Media\Models\MediaMapper; use Modules\Media\Models\MediaTypeMapper; use Modules\Media\Models\PathSettings; use phpOMS\Localization\BaseStringL11n; +use phpOMS\Localization\BaseStringL11nType; use phpOMS\Localization\ISO4217CharEnum; use phpOMS\Localization\ISO639x1Enum; +use phpOMS\Localization\NullBaseStringL11nType; use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\RequestStatusCode; @@ -81,7 +80,7 @@ final class ApiController extends Controller */ public function apiItemFind(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { - /** @var \Modules\ItemManagement\Models\ItemL11n[] $l11n */ + /** @var \Modules\ItemManagement\Models\BaseStringL11n[] $l11n */ $l11n = ItemL11nMapper::getAll() ->with('type') ->where('type/title', ['name1', 'name2', 'name3'], 'IN') @@ -893,13 +892,13 @@ final class ApiController extends Controller * * @param RequestAbstract $request Request * - * @return ItemL11nType + * @return BaseStringL11nType * * @since 1.0.0 */ - private function createItemL11nTypeFromRequest(RequestAbstract $request) : ItemL11nType + private function createItemL11nTypeFromRequest(RequestAbstract $request) : BaseStringL11nType { - $itemL11nType = new ItemL11nType(); + $itemL11nType = new BaseStringL11nType(); $itemL11nType->title = $request->getDataString('title') ?? ''; $itemL11nType->isRequired = (bool) ($request->getData('is_required') ?? false); @@ -1020,19 +1019,19 @@ final class ApiController extends Controller * * @param RequestAbstract $request Request * - * @return ItemL11n + * @return BaseStringL11n * * @since 1.0.0 */ - private function createItemL11nFromRequest(RequestAbstract $request) : ItemL11n + private function createItemL11nFromRequest(RequestAbstract $request) : BaseStringL11n { - $itemL11n = new ItemL11n(); - $itemL11n->item = $request->getDataInt('item') ?? 0; - $itemL11n->type = new NullItemL11nType($request->getDataInt('type') ?? 0); + $itemL11n = new BaseStringL11n(); + $itemL11n->ref = $request->getDataInt('item') ?? 0; + $itemL11n->type = new NullBaseStringL11nType($request->getDataInt('type') ?? 0); $itemL11n->setLanguage( $request->getDataString('language') ?? $request->getLanguage() ); - $itemL11n->description = $request->getDataString('description') ?? ''; + $itemL11n->content = $request->getDataString('description') ?? ''; return $itemL11n; } diff --git a/Models/Item.php b/Models/Item.php index e5149f3..455af0a 100755 --- a/Models/Item.php +++ b/Models/Item.php @@ -15,6 +15,8 @@ declare(strict_types=1); namespace Modules\ItemManagement\Models; use Modules\Editor\Models\EditorDoc; +use phpOMS\Localization\BaseStringL11n; +use phpOMS\Localization\NullBaseStringL11n; use phpOMS\Stdlib\Base\FloatInt; /** @@ -64,7 +66,7 @@ class Item implements \JsonSerializable /** * Localizations. * - * @var ItemL11n[] + * @var BaseStringL11n[] * @since 1.0.0 */ private array $l11n = []; @@ -118,13 +120,13 @@ class Item implements \JsonSerializable /** * Add item l11n * - * @param ItemL11n $l11n Item localization + * @param BaseStringL11n $l11n Item localization * * @return void * * @since 1.0.0 */ - public function addL11n(ItemL11n $l11n) : void + public function addL11n(BaseStringL11n $l11n) : void { foreach ($this->l11n as $l11n) { if ($l11n->type->title === $l11n->type->title) { @@ -140,11 +142,11 @@ class Item implements \JsonSerializable * * @param null|string $type Localization type * - * @return ItemL11n + * @return BaseStringL11n * * @since 1.0.0 */ - public function getL11n(string $type = null) : ItemL11n + public function getL11n(string $type = null) : BaseStringL11n { foreach ($this->l11n as $l11n) { if ($l11n->type->title === $type) { @@ -152,13 +154,13 @@ class Item implements \JsonSerializable } } - return new NullItemL11n(); + return new NullBaseStringL11n(); } /** * Get localizations * - * @return ItemL11n[] + * @return BaseStringL11n[] * * @since 1.0.0 */ diff --git a/Models/ItemL11n.php b/Models/ItemL11n.php deleted file mode 100755 index 5c17e4f..0000000 --- a/Models/ItemL11n.php +++ /dev/null @@ -1,143 +0,0 @@ -type = $type ?? new ItemL11nType(); - $this->description = $description; - $this->language = $language; - } - - /** - * Get id - * - * @return int - * - * @since 1.0.0 - */ - public function getId() : int - { - return $this->id; - } - - /** - * Get language - * - * @return string - * - * @since 1.0.0 - */ - public function getLanguage() : string - { - return $this->language; - } - - /** - * Set language - * - * @param string $language Language - * - * @return void - * - * @since 1.0.0 - */ - public function setLanguage(string $language) : void - { - $this->language = $language; - } - - /** - * {@inheritdoc} - */ - public function toArray() : array - { - return [ - 'id' => $this->id, - 'description' => $this->description, - 'item' => $this->item, - 'language' => $this->language, - ]; - } - - /** - * {@inheritdoc} - */ - public function jsonSerialize() : mixed - { - return $this->toArray(); - } -} diff --git a/Models/ItemL11nMapper.php b/Models/ItemL11nMapper.php index 83f7da4..3803d28 100755 --- a/Models/ItemL11nMapper.php +++ b/Models/ItemL11nMapper.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace Modules\ItemManagement\Models; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; +use phpOMS\Localization\BaseStringL11n; /** * Item mapper class. @@ -37,8 +38,8 @@ final class ItemL11nMapper extends DataMapperFactory */ public const COLUMNS = [ 'itemmgmt_item_l11n_id' => ['name' => 'itemmgmt_item_l11n_id', 'type' => 'int', 'internal' => 'id'], - 'itemmgmt_item_l11n_description' => ['name' => 'itemmgmt_item_l11n_description', 'type' => 'string', 'internal' => 'description', 'autocomplete' => true], - 'itemmgmt_item_l11n_item' => ['name' => 'itemmgmt_item_l11n_item', 'type' => 'int', 'internal' => 'item'], + 'itemmgmt_item_l11n_description' => ['name' => 'itemmgmt_item_l11n_description', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], + 'itemmgmt_item_l11n_item' => ['name' => 'itemmgmt_item_l11n_item', 'type' => 'int', 'internal' => 'ref'], 'itemmgmt_item_l11n_lang' => ['name' => 'itemmgmt_item_l11n_lang', 'type' => 'string', 'internal' => 'language'], 'itemmgmt_item_l11n_typeref' => ['name' => 'itemmgmt_item_l11n_typeref', 'type' => 'int', 'internal' => 'type'], ]; @@ -71,4 +72,12 @@ final class ItemL11nMapper extends DataMapperFactory * @since 1.0.0 */ public const PRIMARYFIELD = 'itemmgmt_item_l11n_id'; + + /** + * Model to use by the mapper. + * + * @var class-string + * @since 1.0.0 + */ + public const MODEL = BaseStringL11n::class; } diff --git a/Models/ItemL11nType.php b/Models/ItemL11nType.php deleted file mode 100755 index 7170f48..0000000 --- a/Models/ItemL11nType.php +++ /dev/null @@ -1,93 +0,0 @@ -title = $title; - } - - /** - * Get id - * - * @return int - * - * @since 1.0.0 - */ - public function getId() : int - { - return $this->id; - } - - /** - * {@inheritdoc} - */ - public function toArray() : array - { - return [ - 'id' => $this->id, - 'title' => $this->title, - ]; - } - - /** - * {@inheritdoc} - */ - public function jsonSerialize() : mixed - { - return $this->toArray(); - } -} diff --git a/Models/ItemL11nTypeMapper.php b/Models/ItemL11nTypeMapper.php index 32e937f..ae46476 100755 --- a/Models/ItemL11nTypeMapper.php +++ b/Models/ItemL11nTypeMapper.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace Modules\ItemManagement\Models; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; +use phpOMS\Localization\BaseStringL11nType; /** * Item mapper class. @@ -24,7 +25,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; * @link https://jingga.app * @since 1.0.0 * - * @template T of ItemL11nType + * @template T of BaseStringL11nType * @extends DataMapperFactory */ final class ItemL11nTypeMapper extends DataMapperFactory @@ -56,4 +57,12 @@ final class ItemL11nTypeMapper extends DataMapperFactory * @since 1.0.0 */ public const PRIMARYFIELD = 'itemmgmt_item_l11n_type_id'; + + /** + * Model to use by the mapper. + * + * @var class-string + * @since 1.0.0 + */ + public const MODEL = BaseStringL11nType::class; } diff --git a/Models/ItemMapper.php b/Models/ItemMapper.php index 3d39d80..61e59a2 100755 --- a/Models/ItemMapper.php +++ b/Models/ItemMapper.php @@ -19,6 +19,8 @@ use Modules\Media\Models\Media; use Modules\Media\Models\MediaMapper; use Modules\Media\Models\MediaType; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; +use phpOMS\Localization\BaseStringL11n; +use phpOMS\Localization\BaseStringL11nType; /** * Item mapper class. @@ -169,18 +171,18 @@ final class ItemMapper extends DataMapperFactory $l11nsResult = $sth->fetchAll(); foreach ($l11nsResult as $res) { - $l11nType = new ItemL11nType(); + $l11nType = new BaseStringL11nType(); $l11nType->id = $res['itemmgmt_item_l11n_typeref']; $l11nType->title= $res['itemmgmt_item_l11n_type_title']; - $l11n = new ItemL11n(); + $l11n = new BaseStringL11n(); $l11n->id = $res['itemmgmt_item_l11n_id']; - $l11n->item = $res['itemmgmt_item_id']; + $l11n->ref = $res['itemmgmt_item_id']; $l11n->type = $l11nType; - $l11n->description = $res['itemmgmt_item_l11n_description']; + $l11n->content = $res['itemmgmt_item_l11n_description']; $l11n->setLanguage($res['itemmgmt_item_l11n_lang']); - $items[$l11n->item]->addL11n($l11n); + $items[$l11n->ref]->addL11n($l11n); } return $items; diff --git a/Models/NullItemL11n.php b/Models/NullItemL11n.php deleted file mode 100755 index f26756b..0000000 --- a/Models/NullItemL11n.php +++ /dev/null @@ -1,47 +0,0 @@ -id = $id; - parent::__construct(); - } - - /** - * {@inheritdoc} - */ - public function jsonSerialize() : mixed - { - return ['id' => $this->id]; - } -} diff --git a/Models/NullItemL11nType.php b/Models/NullItemL11nType.php deleted file mode 100755 index 7f33d90..0000000 --- a/Models/NullItemL11nType.php +++ /dev/null @@ -1,46 +0,0 @@ -id = $id; - } - - /** - * {@inheritdoc} - */ - public function jsonSerialize() : mixed - { - return ['id' => $this->id]; - } -} diff --git a/Theme/Backend/item-profile.tpl.php b/Theme/Backend/item-profile.tpl.php index eaca14d..906f595 100755 --- a/Theme/Backend/item-profile.tpl.php +++ b/Theme/Backend/item-profile.tpl.php @@ -74,11 +74,11 @@ echo $this->getData('nav')->render(); - + - + - +
@@ -232,7 +232,7 @@ echo $this->getData('nav')->render(); printHtml($invoice->getNumber()); ?> printHtml($invoice->type->getL11n()); ?> printHtml($invoice->billTo); ?> - printHtml($invoice->netSales->getCurrency()); ?> + getCurrency($invoice->netSales); ?> printHtml($invoice->createdAt->format('Y-m-d')); ?> @@ -1072,7 +1072,7 @@ echo $this->getData('nav')->render(); getNumber(); ?> type->getL11n(); ?> billTo; ?> - netSales->getCurrency(); ?> + getCurrency($invoice->netSales); ?> createdAt->format('Y-m-d'); ?> diff --git a/Theme/Backend/sales-item-profile.tpl.php b/Theme/Backend/sales-item-profile.tpl.php index cb6df73..b1111e2 100755 --- a/Theme/Backend/sales-item-profile.tpl.php +++ b/Theme/Backend/sales-item-profile.tpl.php @@ -74,11 +74,11 @@ echo $this->getData('nav')->render(); - + - + - +
@@ -526,7 +526,7 @@ echo $this->getData('nav')->render(); - + diff --git a/tests/Models/ItemL11nTest.php b/tests/Models/ItemL11nTest.php deleted file mode 100755 index b64b895..0000000 --- a/tests/Models/ItemL11nTest.php +++ /dev/null @@ -1,78 +0,0 @@ -l11n = new ItemL11n(); - } - - /** - * @covers Modules\ItemManagement\Models\ItemL11n - * @group module - */ - public function testDefault() : void - { - self::assertEquals(0, $this->l11n->id); - self::assertEquals('', $this->l11n->description); - self::assertEquals(0, $this->l11n->item); - self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage()); - self::assertInstanceOf('Modules\ItemManagement\Models\ItemL11nType', $this->l11n->type); - } - - /** - * @covers Modules\ItemManagement\Models\ItemL11n - * @group module - */ - public function testNameInputOutput() : void - { - $this->l11n->description = 'TestName'; - self::assertEquals('TestName', $this->l11n->description); - } - - /** - * @covers Modules\ItemManagement\Models\ItemL11n - * @group module - */ - public function testSerialize() : void - { - $this->l11n->description = 'Title'; - $this->l11n->item = 2; - $this->l11n->setLanguage(ISO639x1Enum::_DE); - - self::assertEquals( - [ - 'id' => 0, - 'description' => 'Title', - 'item' => 2, - 'language' => ISO639x1Enum::_DE, - ], - $this->l11n->jsonSerialize() - ); - } -} diff --git a/tests/Models/ItemL11nTypeTest.php b/tests/Models/ItemL11nTypeTest.php deleted file mode 100755 index 5a248b0..0000000 --- a/tests/Models/ItemL11nTypeTest.php +++ /dev/null @@ -1,70 +0,0 @@ -l11n = new ItemL11nType(); - } - - /** - * @covers Modules\ItemManagement\Models\ItemL11nType - * @group module - */ - public function testDefault() : void - { - self::assertEquals(0, $this->l11n->id); - self::assertEquals('', $this->l11n->title); - } - - /** - * @covers Modules\ItemManagement\Models\ItemL11nType - * @group module - */ - public function testTitleInputOutput() : void - { - $this->l11n->title = 'TestName'; - self::assertEquals('TestName', $this->l11n->title); - } - - /** - * @covers Modules\ItemManagement\Models\ItemL11nType - * @group module - */ - public function testSerialize() : void - { - $this->l11n->title = 'Title'; - - self::assertEquals( - [ - 'id' => 0, - 'title' => 'Title', - ], - $this->l11n->jsonSerialize() - ); - } -} diff --git a/tests/Models/ItemTest.php b/tests/Models/ItemTest.php index 347526e..b5d6f7e 100755 --- a/tests/Models/ItemTest.php +++ b/tests/Models/ItemTest.php @@ -20,6 +20,7 @@ use Modules\Attribute\Models\Attribute; use Modules\ItemManagement\Models\ItemL11n; use Modules\ItemManagement\Models\ItemStatus; use Modules\Media\Models\Media; +use phpOMS\Localization\BaseStringL11n; /** * @internal @@ -101,7 +102,7 @@ final class ItemTest extends \PHPUnit\Framework\TestCase */ public function testL11nInputOutput() : void { - $this->item->addL11n($t = new ItemL11n()); // has by default '' as type + $this->item->addL11n($t = new BaseStringL11n()); // has by default '' as type self::assertEquals($t, $this->item->getL11n('')); } diff --git a/tests/Models/NullItemL11nTest.php b/tests/Models/NullItemL11nTest.php deleted file mode 100755 index b7fe0e1..0000000 --- a/tests/Models/NullItemL11nTest.php +++ /dev/null @@ -1,42 +0,0 @@ -id); - } -} diff --git a/tests/Models/NullItemL11nTypeTest.php b/tests/Models/NullItemL11nTypeTest.php deleted file mode 100755 index 12b1553..0000000 --- a/tests/Models/NullItemL11nTypeTest.php +++ /dev/null @@ -1,42 +0,0 @@ -id); - } -}