diff --git a/Admin/Installer.php b/Admin/Installer.php index 35ab52a..be65f95 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -14,7 +14,6 @@ declare(strict_types=1); namespace Modules\ItemManagement\Admin; -use Modules\Attribute\Models\AttributeTypeMapper; use Modules\Attribute\Models\AttributeValue; use Modules\ItemManagement\Models\ItemAttributeTypeMapper; use Modules\ItemManagement\Models\ItemL11nTypeMapper; @@ -139,7 +138,7 @@ final class Installer extends InstallerAbstract continue; } - $itemId = $responseData['response']->getId(); + $itemId = $responseData['response']->id; $itemArray[] = !\is_array($responseData['response']) ? $responseData['response']->toArray() @@ -154,7 +153,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('item', $itemId); - $request->setData('type', $l11nType->getId()); + $request->setData('type', $l11nType->id); $request->setData('language', (string) $language); $request->setData('description', (string) $l11n); @@ -170,7 +169,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('item', $itemId); - $request->setData('type', $attrType->getId()); + $request->setData('type', $attrType->id); if ($attribute['custom'] ?? true) { $request->setData('custom', $attribute['value']); @@ -202,7 +201,7 @@ final class Installer extends InstallerAbstract || $val->valueInt === $value || $val->valueDec === $value ) { - return $val->getId(); + return $val->id; } } @@ -318,7 +317,7 @@ final class Installer extends InstallerAbstract $request->setData('title', \reset($attribute['l11n'])); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); $request->setData('is_required', $attribute['is_required'] ?? false); - $request->setData('is_custom_allowed', $attribute['is_custom_allowed'] ?? false); + $request->setData('custom', $attribute['is_custom_allowed'] ?? false); $request->setData('validation_pattern', $attribute['validation_pattern'] ?? ''); $request->setData('datatype', (int) $attribute['value_type']); diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 0eb8e60..675e26d 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -28,5 +28,25 @@ return [ 'state' => PermissionCategory::SALES_ITEM, ], ], + ], + '^.*/item/attribute.*$' => [ + [ + 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemAttributeCreate', + 'verb' => RouteVerb::PUT, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::READ, + 'state' => PermissionCategory::SALES_ITEM, + ], + ], + [ + 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemAttributeUpdate', + 'verb' => RouteVerb::SET, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::READ, + 'state' => PermissionCategory::SALES_ITEM, + ], + ], ] ]; diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 4a9c686..3e565e7 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -45,7 +45,6 @@ use Modules\Media\Models\PathSettings; use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\ISO4217CharEnum; use phpOMS\Localization\ISO639x1Enum; -use phpOMS\Localization\Money; use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\RequestStatusCode; @@ -53,6 +52,7 @@ use phpOMS\Message\NotificationLevel; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Model\Message\FormValidation; +use phpOMS\Stdlib\Base\FloatInt; use phpOMS\System\MimeType; use phpOMS\Uri\HttpUri; @@ -138,7 +138,7 @@ final class ApiController extends Controller private function createItemDir(Item $item) : string { return '/Modules/ItemManagement/Item/' - . $item->getId(); + . $item->id; } /** @@ -177,7 +177,7 @@ final class ApiController extends Controller $internalRequest->header->account = $request->header->account; $internalRequest->setData('name', 'base_price'); - $internalRequest->setData('item', $item->getId()); + $internalRequest->setData('item', $item->id); $internalRequest->setData('price', $request->getDataInt('salesprice') ?? 0); $billing->apiPriceCreate($internalRequest, $internalResponse); @@ -208,8 +208,8 @@ final class ApiController extends Controller $this->createModelRelation( $request->header->account, - $uploaded[0]->getId(), - $profileImageType->getId(), + $uploaded[0]->id, + $profileImageType->id, MediaMapper::class, 'types', '', @@ -219,8 +219,8 @@ final class ApiController extends Controller // create item relation $this->createModelRelation( $request->header->account, - $item->getId(), - $uploaded[0]->getId(), + $item->id, + $uploaded[0]->id, ItemMapper::class, 'files', '', @@ -267,8 +267,8 @@ final class ApiController extends Controller { $item = new Item(); $item->number = $request->getDataString('number') ?? ''; - $item->salesPrice = new Money($request->getDataInt('salesprice') ?? 0); - $item->purchasePrice = new Money($request->getDataInt('purchaseprice') ?? 0); + $item->salesPrice = new FloatInt($request->getDataInt('salesprice') ?? 0); + $item->purchasePrice = new FloatInt($request->getDataInt('purchaseprice') ?? 0); $item->info = $request->getDataString('info') ?? ''; $item->parent = $request->getDataInt('parent'); $item->unit = $request->getDataInt('unit'); @@ -336,7 +336,7 @@ final class ApiController extends Controller { $item = new ItemPrice(); $item->currency = $request->getDataString('currency') ?? ''; - $item->price = new Money($request->getDataInt('price') ?? 0); + $item->price = new FloatInt($request->getDataInt('price') ?? 0); $item->minQuantity = $request->getDataInt('minquantity') ?? 0; $item->relativeDiscount = $request->getDataInt('relativediscount') ?? 0; $item->absoluteDiscount = $request->getDataInt('absolutediscount') ?? 0; @@ -450,6 +450,96 @@ final class ApiController extends Controller return []; } + /** + * Api method to create item attribute + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiItemAttributeUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void + { + if (!empty($val = $this->validateItemAttributeUpdate($request))) { + $response->set('attribute_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + + $old = ItemAttributeMapper::get() + ->with('type') + ->with('type/defaults') + ->with('value') + ->where('id', (int) $request->getData('id')) + ->execute(); + + $new = $this->updateItemAttributeFromRequest($request, $old->deepClone()); + $this->updateModel($request->header->account, $old, $new, ItemAttributeMapper::class, 'attribute', $request->getOrigin()); + + if ($new->value->getValue() !== $old->value->getValue()) { + $this->updateModel($request->header->account, $old->value, $new->value, ItemAttributeValueMapper::class, 'attribute_value', $request->getOrigin()); + } + + $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully updated', $new); + } + + /** + * Method to create item attribute from request. + * + * @param RequestAbstract $request Request + * + * @return Attribute + * + * @since 1.0.0 + */ + private function updateItemAttributeFromRequest(RequestAbstract $request, Attribute $attribute) : Attribute + { + if ($attribute->type->custom) { + if ($request->hasData('value')) { + // @question: we are overwriting the old value, could there be a use case where we want to create a new value and keep the old one? + $attribute->value->setValue($request->getData('value'), $attribute->type->datatype); + } + } else { + if ($request->hasData('value')) { + // @todo: fix by only accepting the value id to be used + // this is a workaround for now because the front end doesn't allow to dynamically show default values. + $value = $attribute->type->getDefaultByValue($request->getData('value')); + + if ($value->id !== 0) { + $attribute->value = $attribute->type->getDefaultByValue($request->getData('value')); + } + } + } + + return $attribute; + } + + /** + * Validate item attribute create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateItemAttributeUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = !$request->hasData('id')) + ) { + return $val; + } + + return []; + } + /** * Api method to create item attribute l11n * @@ -619,7 +709,7 @@ final class ApiController extends Controller $this->createModelRelation( $request->header->account, (int) $request->getData('type'), - $attrValue->getId(), + $attrValue->id, ItemAttributeTypeMapper::class, 'defaults', '', $request->getOrigin() ); } @@ -744,6 +834,33 @@ final class ApiController extends Controller return []; } + /** + * Api method to handle api item attributes + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiItemAttribute(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void + { + if (!empty($val = $this->validateItemAttributeValueL11nCreate($request))) { + $response->set('attr_value_l11n_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + + $attrL11n = $this->createAttributeValueL11nFromRequest($request); + $this->createModel($request->header->account, $attrL11n, ItemAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin()); + $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n); + } + /** * Api method to create item l11n type * @@ -994,7 +1111,7 @@ final class ApiController extends Controller foreach ($uploaded as $file) { $this->createModelRelation( $request->header->account, - $file->getId(), + $file->id, $request->getDataInt('type'), MediaMapper::class, 'types', @@ -1007,7 +1124,7 @@ final class ApiController extends Controller $this->createModelRelation( $request->header->account, (int) $request->getData('item'), - \reset($uploaded)->getId(), + \reset($uploaded)->id, ItemMapper::class, 'files', '', $request->getOrigin() ); @@ -1069,7 +1186,7 @@ final class ApiController extends Controller } $model = $responseData['response']; - $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->getId(), ItemMapper::class, 'notes', '', $request->getOrigin()); + $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, ItemMapper::class, 'notes', '', $request->getOrigin()); } /** diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 419fd16..d6e2565 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -16,13 +16,20 @@ namespace Modules\ItemManagement\Controller; use Modules\Admin\Models\LocalizationMapper; use Modules\Admin\Models\SettingsEnum; +use Modules\Auditor\Models\AuditMapper; use Modules\Billing\Models\BillTransferType; +use Modules\Billing\Models\Price\PriceMapper; +use Modules\Billing\Models\Price\PriceType; use Modules\Billing\Models\SalesBillMapper; +use Modules\ItemManagement\Models\ItemAttributeTypeL11nMapper; use Modules\ItemManagement\Models\ItemAttributeTypeMapper; use Modules\ItemManagement\Models\ItemAttributeValueMapper; +use Modules\ItemManagement\Models\ItemL11nMapper; +use Modules\ItemManagement\Models\ItemL11nTypeMapper; use Modules\ItemManagement\Models\ItemMapper; use Modules\Media\Models\MediaMapper; use Modules\Media\Models\MediaTypeMapper; +use Modules\Organization\Models\UnitMapper; use phpOMS\Asset\AssetType; use phpOMS\Contract\RenderableInterface; use phpOMS\DataStorage\Database\Query\Builder; @@ -33,6 +40,7 @@ use phpOMS\Localization\Money; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Stdlib\Base\SmartDateTime; +use phpOMS\Utils\StringUtils; use phpOMS\Views\View; /** @@ -129,7 +137,12 @@ final class BackendController extends Controller ->where('l11n/language', $response->getLanguage()) ->execute(); + $l11ns = ItemAttributeTypeL11nMapper::getAll() + ->where('ref', $attribute->id) + ->execute(); + $view->addData('attribute', $attribute); + $view->addData('l11ns', $l11ns); return $view; } @@ -342,11 +355,16 @@ final class BackendController extends Controller ->with('l11n/type') ->with('files') ->with('files/types') + ->with('attributes') + ->with('attributes/type') + ->with('attributes/type/l11n') + ->with('attributes/value') ->with('notes') ->where('id', (int) $request->getData('id')) ->where('l11n/language', $response->getLanguage()) + ->where('attributes/type/l11n/language', $response->getLanguage()) ->where('l11n/type/title', ['name1', 'name2', 'name3'], 'IN') - ->limit(5, 'files')->sort('files/id', OrderType::DESC) // @todo: limit not working!!! + ->limit(5, 'files')->sort('files/id', OrderType::DESC) ->limit(5, 'notes')->sort('notes/id', OrderType::DESC) ->execute(); @@ -368,7 +386,7 @@ final class BackendController extends Controller ->on(MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD, '=', MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['self']) ->leftJoin(MediaTypeMapper::TABLE) ->on(MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['external'], '=', MediaTypeMapper::TABLE . '.' . MediaTypeMapper::PRIMARYFIELD) - ->where(ItemMapper::HAS_MANY['files']['self'], '=', $item->getId()) + ->where(ItemMapper::HAS_MANY['files']['self'], '=', $item->id) ->where(MediaTypeMapper::TABLE . '.' . MediaTypeMapper::getColumnByMember('name'), '=', 'item_profile_image'); $itemImage = MediaMapper::get() @@ -384,15 +402,60 @@ final class BackendController extends Controller SettingsEnum::DEFAULT_LOCALIZATION, ]); - $view->setData('defaultlocalization', LocalizationMapper::get()->where('id', (int) $settings->getId())->execute()); + $view->setData('defaultlocalization', LocalizationMapper::get()->where('id', (int) $settings->id)->execute()); + + $l11nTypes = ItemL11nTypeMapper::getAll() + ->execute(); + $view->setData('l11nTypes', $l11nTypes); + + $l11nValues = ItemL11nMapper::getAll() + ->with('type') + ->where('item', $item->id) + ->execute(); + $view->setData('l11nValues', $l11nValues); + + $attributeTypes = ItemAttributeTypeMapper::getAll() + ->with('l11n') + ->where('l11n/language', $response->getLanguage()) + ->execute(); + $view->setData('attributeTypes', $attributeTypes); + + $units = UnitMapper::getAll() + ->execute(); + $view->setData('units', $units); + + $prices = PriceMapper::getAll() + ->where('item', $item->id) + ->where('type', PriceType::SALES) + ->where('client', null) + ->execute(); + $view->setData('prices', $prices); + + $audits = AuditMapper::getAll() + ->where('type', StringUtils::intHash(ItemMapper::class)) + ->where('module', 'ItemManagement') + ->where('ref', $item->id) + ->execute(); + $view->setData('audits', $audits); + + $files = MediaMapper::getAll() + ->with('types') + ->join('id', ItemMapper::class, 'files') // id = media id, files = item relations + ->on('id', $item->id, relation: 'files') // id = item id + ->execute(); + $view->setData('files', $files); + + $mediaListView = new \Modules\Media\Theme\Backend\Components\Media\ListView($this->app->l11nManager, $request, $response); + $mediaListView->setTemplate('/Modules/Media/Theme/Backend/Components/Media/list'); + $view->addData('medialist', $mediaListView); // stats if ($this->app->moduleManager->isActive('Billing')) { - $ytd = SalesBillMapper::getSalesByItemId($item->getId(), new SmartDateTime('Y-01-01'), new SmartDateTime('now')); - $mtd = SalesBillMapper::getSalesByItemId($item->getId(), new SmartDateTime('Y-m-01'), new SmartDateTime('now')); - $avg = SalesBillMapper::getAvgSalesPriceByItemId($item->getId(), (new SmartDateTime('now'))->smartModify(-1), new SmartDateTime('now')); + $ytd = SalesBillMapper::getSalesByItemId($item->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now')); + $mtd = SalesBillMapper::getSalesByItemId($item->id, new SmartDateTime('Y-m-01'), new SmartDateTime('now')); + $avg = SalesBillMapper::getAvgSalesPriceByItemId($item->id, (new SmartDateTime('now'))->smartModify(-1), new SmartDateTime('now')); - $lastOrder = SalesBillMapper::getLastOrderDateByItemId($item->getId()); + $lastOrder = SalesBillMapper::getLastOrderDateByItemId($item->id); $newestInvoices = SalesBillMapper::getAll() ->with('type') @@ -403,11 +466,11 @@ final class BackendController extends Controller ->limit(5) ->execute(); - $topCustomers = SalesBillMapper::getItemTopClients($item->getId(), new SmartDateTime('Y-01-01'), new SmartDateTime('now'), 5); - $allInvoices = SalesBillMapper::getItemBills($item->getId(), new SmartDateTime('Y-01-01'), new SmartDateTime('now')); - $regionSales = SalesBillMapper::getItemRegionSales($item->getId(), new SmartDateTime('Y-01-01'), new SmartDateTime('now')); - $countrySales = SalesBillMapper::getItemCountrySales($item->getId(), new SmartDateTime('Y-01-01'), new SmartDateTime('now'), 5); - $monthlySalesCosts = SalesBillMapper::getItemMonthlySalesCosts($item->getId(), (new SmartDateTime('now'))->createModify(-1), new SmartDateTime('now')); + $topCustomers = SalesBillMapper::getItemTopClients($item->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now'), 5); + $allInvoices = SalesBillMapper::getItemBills($item->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now')); + $regionSales = SalesBillMapper::getItemRegionSales($item->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now')); + $countrySales = SalesBillMapper::getItemCountrySales($item->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now'), 5); + $monthlySalesCosts = SalesBillMapper::getItemMonthlySalesCosts($item->id, (new SmartDateTime('now'))->createModify(-1), new SmartDateTime('now')); } else { $ytd = new Money(); $mtd = new Money(); diff --git a/Models/Item.php b/Models/Item.php index 79edf3f..e5149f3 100755 --- a/Models/Item.php +++ b/Models/Item.php @@ -15,9 +15,7 @@ declare(strict_types=1); namespace Modules\ItemManagement\Models; use Modules\Editor\Models\EditorDoc; -use Modules\Media\Models\Media; -use Modules\Media\Models\NullMedia; -use phpOMS\Localization\Money; +use phpOMS\Stdlib\Base\FloatInt; /** * Item class. @@ -35,7 +33,7 @@ class Item implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; /** * Item number/id @@ -49,11 +47,11 @@ class Item implements \JsonSerializable public ?int $parent = null; - private int $status = ItemStatus::ACTIVE; + public int $status = ItemStatus::ACTIVE; - public Money $salesPrice; + public FloatInt $salesPrice; - public Money $purchasePrice; + public FloatInt $purchasePrice; /** * Notes. @@ -101,8 +99,8 @@ class Item implements \JsonSerializable public function __construct() { $this->createdAt = new \DateTimeImmutable('now'); - $this->salesPrice = new Money(); - $this->purchasePrice = new Money(); + $this->salesPrice = new FloatInt(); + $this->purchasePrice = new FloatInt(); } /** diff --git a/Models/ItemAttributeMapper.php b/Models/ItemAttributeMapper.php index 4836914..3634bdb 100755 --- a/Models/ItemAttributeMapper.php +++ b/Models/ItemAttributeMapper.php @@ -25,7 +25,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; * @link https://jingga.app * @since 1.0.0 * - * @template T of Attribte + * @template T of Attribute * @extends DataMapperFactory */ final class ItemAttributeMapper extends DataMapperFactory diff --git a/Models/ItemL11n.php b/Models/ItemL11n.php index 343558d..5c17e4f 100755 --- a/Models/ItemL11n.php +++ b/Models/ItemL11n.php @@ -32,7 +32,7 @@ class ItemL11n implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; /** * Item ID. diff --git a/Models/ItemL11nType.php b/Models/ItemL11nType.php index ffecb3a..7170f48 100755 --- a/Models/ItemL11nType.php +++ b/Models/ItemL11nType.php @@ -30,7 +30,7 @@ class ItemL11nType implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; /** * Identifier for the l11n type. diff --git a/Models/ItemMapper.php b/Models/ItemMapper.php index 66249bb..3d39d80 100755 --- a/Models/ItemMapper.php +++ b/Models/ItemMapper.php @@ -15,7 +15,9 @@ declare(strict_types=1); namespace Modules\ItemManagement\Models; use Modules\Editor\Models\EditorDocMapper; +use Modules\Media\Models\Media; use Modules\Media\Models\MediaMapper; +use Modules\Media\Models\MediaType; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; /** @@ -96,4 +98,91 @@ final class ItemMapper extends DataMapperFactory 'external' => null, ], ]; + + // @todo: experimental (not 100% working) + public static function getItemList(string $langugae) : array + { + // items + $query = <<con->query($query)->fetchAll(); + $items = []; + + foreach ($itemsResult as $res) { + $media = null; + if ($res['media_id'] !== null) { + $mediaType = new MediaType(); + $mediaType->id = $res['media_type_id']; + $mediaType->name = $res['media_type_name']; + + $media = new Media(); + $media->id = $res['media_id']; + $media->setPath($res['media_file']); + } + + $item = new Item(); + $item->id = $res['itemmgmt_item_id']; + $item->number = $res['itemmgmt_item_no']; + $item->salesPrice->setInt($res['itemmgmt_item_salesprice']); + + if ($media !== null) { + $item->addFile($media); + } + + $items[$item->id] = $item; + } + + // l11ns + $query = <<con->prepare($query); + $sth->execute(['lang' => $langugae]); + + $l11nsResult = $sth->fetchAll(); + + foreach ($l11nsResult as $res) { + $l11nType = new ItemL11nType(); + $l11nType->id = $res['itemmgmt_item_l11n_typeref']; + $l11nType->title= $res['itemmgmt_item_l11n_type_title']; + + $l11n = new ItemL11n(); + $l11n->id = $res['itemmgmt_item_l11n_id']; + $l11n->item = $res['itemmgmt_item_id']; + $l11n->type = $l11nType; + $l11n->description = $res['itemmgmt_item_l11n_description']; + $l11n->setLanguage($res['itemmgmt_item_l11n_lang']); + + $items[$l11n->item]->addL11n($l11n); + } + + return $items; + } } diff --git a/Models/ItemPrice.php b/Models/ItemPrice.php index 2633e2f..6ae70c7 100755 --- a/Models/ItemPrice.php +++ b/Models/ItemPrice.php @@ -33,7 +33,7 @@ class ItemPrice implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; public string $name = ''; diff --git a/Models/ItemRelation.php b/Models/ItemRelation.php index b23869a..af0f011 100755 --- a/Models/ItemRelation.php +++ b/Models/ItemRelation.php @@ -30,7 +30,7 @@ class ItemRelation implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; /** * Item source. diff --git a/Models/ItemRelationType.php b/Models/ItemRelationType.php index f02a33a..8152480 100755 --- a/Models/ItemRelationType.php +++ b/Models/ItemRelationType.php @@ -30,7 +30,7 @@ class ItemRelationType implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; /** * Identifier for the l11n type. diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index 79ffcdc..6494755 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -13,6 +13,15 @@ declare(strict_types=1); return ['ItemManagement' => [ + 'SalesPricing' => 'Sales Pricing', + 'ItemGroup' => 'Item Group', + 'ItemSegment' => 'Item Segment', + 'ItemSection' => 'Item Section', + 'ItemType' => 'Item Type', + 'ClientGroup' => 'Client Group', + 'ClientSegment' => 'Client Segment', + 'ClientSection' => 'Client Section', + 'ClientType' => 'Client Type', 'Accounting' => 'Accounting', 'Address' => 'Address', 'All' => 'All', diff --git a/Theme/Backend/attribute-type-list.tpl.php b/Theme/Backend/attribute-type-list.tpl.php index e912690..4672424 100755 --- a/Theme/Backend/attribute-type-list.tpl.php +++ b/Theme/Backend/attribute-type-list.tpl.php @@ -55,10 +55,10 @@ echo $this->getData('nav')->render(); ?> $value) : ++$count; - $url = UriFactory::build('{/base}/item/attribute/type?{?}&id=' . $value->getId()); + $url = UriFactory::build('{/base}/item/attribute/type?{?}&id=' . $value->id); ?> - getId(); ?> + id; ?> printHtml($value->getL11n()); ?> diff --git a/Theme/Backend/attribute-type.tpl.php b/Theme/Backend/attribute-type.tpl.php index e69de29..c84c0bd 100755 --- a/Theme/Backend/attribute-type.tpl.php +++ b/Theme/Backend/attribute-type.tpl.php @@ -0,0 +1,65 @@ +getData('attribute'); +$l11ns = $this->getData('l11ns'); + +echo $this->getData('nav')->render(); ?> + +
+
+
+
getHtml('Attribute'); ?>
+ +
+
+ + +
+ +
+ + +
+
+
+
+ +
+
+
getHtml('Language', '0', '0'); ?>
+ + + + + $value) : ++$c; ?> + +
+ + getHtml('Language', '0', '0'); ?> + getHtml('Title'); ?> +
+ + getLanguage())); ?> + content; ?> + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
diff --git a/Theme/Backend/item-list.tpl.php b/Theme/Backend/item-list.tpl.php index 2fb6406..2558476 100755 --- a/Theme/Backend/item-list.tpl.php +++ b/Theme/Backend/item-list.tpl.php @@ -129,19 +129,19 @@ echo $this->getData('nav')->render(); ?> $value) : ++$count; - $url = UriFactory::build('{/base}/item/profile?{?}&id=' . $value->getId()); + $url = UriFactory::build('{/base}/item/profile?{?}&id=' . $value->id); $image = $value->getFileByTypeName('item_profile_image'); ?> <?= $this->getHtml('IMG_alt_item'); ?>id === 0 ? 'Web/Backend/img/logo_grey.png' : UriFactory::build($image->getPath()); ?>"> printHtml($value->number); ?> printHtml($value->getL11n('name1')->description); ?> printHtml($value->getL11n('name2')->description); ?> printHtml($value->getL11n('name3')->description); ?> - printHtml($value->salesPrice->getCurrency()); ?> + getCurrency($value->salesPrice); ?> diff --git a/Theme/Backend/item-profile.tpl.php b/Theme/Backend/item-profile.tpl.php index 82b61eb..eaca14d 100755 --- a/Theme/Backend/item-profile.tpl.php +++ b/Theme/Backend/item-profile.tpl.php @@ -16,13 +16,13 @@ use Modules\Media\Models\NullMedia; use phpOMS\Localization\ISO639Enum; use phpOMS\Localization\Money; use phpOMS\Localization\NullLocalization; +use phpOMS\Message\Http\HttpHeader; use phpOMS\Uri\UriFactory; /** @var \Modules\ItemManagement\Models\Item $item */ $item = $this->getData('item'); -$itemL11n = $item->getL11ns(); -$Attribute = $item->getAttributes(); +$attribute = $item->getAttributes(); $notes = $item->getNotes(); $files = $item->getFiles(); @@ -49,7 +49,7 @@ echo $this->getData('nav')->render();
  • -
  • +
  • @@ -91,7 +91,7 @@ echo $this->getData('nav')->render();
    <?= $this->printHtml($image->name); ?>id === 0 ? 'Web/Backend/img/logo_grey.png' : UriFactory::build($image->getPath()); ?>">
    @@ -110,9 +110,9 @@ echo $this->getData('nav')->render();
    getId()); + $url = UriFactory::build('{/base}/editor/single?{?}&id=' . $note->id); ?> getId()); + $url = UriFactory::build('{/base}/media/single?{?}&id=' . $file->id); ?> getId()); + $url = UriFactory::build('{/base}/sales/client/profile?id=' . $client->id); ?> + getData('audits') ?? []; + $previous = empty($audits) ? HttpHeader::getAllHeaders()['Referer'] ?? 'admin/module/settings?id={?id}#{\#}' : 'admin/module/settings?{?}&audit=' . \reset($audits)->id . '&ptype=p#{\#}'; + $next = empty($audits) ? HttpHeader::getAllHeaders()['Referer'] ?? 'admin/module/settings?id={?id}#{\#}' : 'admin/module/settings?{?}&audit=' . \end($audits)->id . '&ptype=n#{\#}'; + + foreach ($audits as $key => $audit) : ++$count; + $url = UriFactory::build('{/base}/admin/audit/single?{?}&id=' . $audit->id); ?> + +
    getHtml('YTDSales'); ?>: - getData('ytd')->getCurrency(); ?> + getCurrency($this->getData('ytd')); ?>
    getHtml('MTDSales'); ?>: - getData('mtd')->getCurrency(); ?> + getCurrency($this->getData('mtd')); ?>
    getHtml('ILV'); ?>:
    getHtml('MRR'); ?>: @@ -144,9 +144,9 @@ echo $this->getData('nav')->render();
    getHtml('SalesPrice'); ?>: - salesPrice->getCurrency(); ?> + getCurrency($item->salesPrice); ?>
    getHtml('PurchasePrice'); ?>: - purchasePrice->getCurrency(); ?> + getCurrency($item->purchasePrice); ?>
    getHtml('Margin'); ?>: salesPrice->getInt() === 0 @@ -154,7 +154,7 @@ echo $this->getData('nav')->render(); : ($item->salesPrice->getInt() - $item->purchasePrice->getInt()) / $item->salesPrice->getInt() * 100, 2 ); ?> %
    getHtml('AvgPrice'); ?>: - getData('avg')->getCurrency(); ?> + getCurrency($this->getData('avg')); ?>
    @@ -173,7 +173,7 @@ echo $this->getData('nav')->render();
    getHtml('CreatedAt'); ?>
    printHtml($note->title); ?> @@ -196,7 +196,7 @@ echo $this->getData('nav')->render(); getHtml('CreatedAt'); ?>
    printHtml($file->name); ?> @@ -226,12 +226,12 @@ echo $this->getData('nav')->render(); getId()); + $url = UriFactory::build('{/base}/sales/bill?{?}&id=' . $invoice->id); ?>
    printHtml($invoice->getNumber()); ?> printHtml($invoice->type->getL11n()); ?> - printHtml($invoice->billTo); ?> + printHtml($invoice->billTo); ?> printHtml($invoice->netSales->getCurrency()); ?> printHtml($invoice->createdAt->format('Y-m-d')); ?> @@ -254,7 +254,7 @@ echo $this->getData('nav')->render(); getHtml('Net'); ?>
    printHtml($client->number); ?> @@ -426,33 +426,32 @@ echo $this->getData('nav')->render();
    -
    getHtml('Description'); ?>
    +
    getHtml('Localization'); ?>
    - - - - - - - - -
    -
    - -
    -
    - -
    -
    -
    +
    + + +
    + +
    + + +
    + +
    + + +
    @@ -462,28 +461,33 @@ echo $this->getData('nav')->render();
    getHtml('Localizations'); ?>
    - +
    +
    $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> + $itemL11n = $this->getData('l11nValues'); + foreach ($itemL11n as $value) : ++$c; + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?> - +
    getHtml('ID', '0', '0'); ?> getHtml('Name'); ?> + getHtml('Language'); ?> getHtml('Localization'); ?>
    - getId(); ?> + id; ?> printHtml($value->type->title); ?> + printHtml($value->getLanguage()); ?> printHtml($value->description); ?> - - -
    getHtml('Empty', '0', '0'); ?> - + + +
    getHtml('Empty', '0', '0'); ?> +
    +
    @@ -493,75 +497,110 @@ echo $this->getData('nav')->render();
    -
    getHtml('Attribute'); ?>
    -
    -
    - - - - - - - - - - - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    +
    +
    getHtml('Attribute'); ?>
    +
    +
    + + +
    + + + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    +
    + + + +
    +
    -
    getHtml('Groups'); ?>
    - +
    getHtml('Attributes'); ?>
    +
    +
    + + $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> - - - + +
    getHtml('ID', '0', '0'); ?> getHtml('Name'); ?> - getHtml('Name'); ?> + getHtml('Value'); ?> + getHtml('Unit'); ?>
    - getId(); ?> - printHtml($value->type->getL11n()); ?> - value->getValue() instanceof \DateTime ? $value->value->getValue()->format('Y-m-d') : $this->printHtml((string) $value->value->getValue()); ?> - - -
    getHtml('Empty', '0', '0'); ?> - + foreach ($attribute as $key => $value) : ++$c; ?> +
    + + + id; ?> + printHtml($value->type->getL11n()); ?> + value->getValue() instanceof \DateTime ? $value->value->getValue()->format('Y-m-d') : $this->printHtml((string) $value->value->getValue()); ?> + printHtml($value->value->unit); ?> + + +
    getHtml('Empty', '0', '0'); ?> +
    +
    @@ -570,79 +609,121 @@ echo $this->getData('nav')->render();
    -
    -
    -

    getHtml('Pricing'); ?>

    -
    -
    -
    - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    getHtml('Pricing'); ?>
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    +
    + +
    +
    -
    +
    getHtml('Prices'); ?>
    +
    - $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> + getData('prices'); + foreach ($prices as $key => $value) : ++$c; + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?>
    getHtml('ID', '0', '0'); ?> - getHtml('Name'); ?> + getHtml('Name'); ?> + getHtml('Price'); ?> + getHtml('Quantity'); ?> + getHtml('Discount'); ?> + getHtml('DiscountP'); ?> + getHtml('Bonus'); ?> + getHtml('ItemGroup'); ?> + getHtml('ItemSegment'); ?> + getHtml('ItemSection'); ?> + getHtml('ItemType'); ?> + getHtml('ClientGroup'); ?> + getHtml('ClientSegment'); ?> + getHtml('ClientSection'); ?> + getHtml('ClientType'); ?> + getHtml('Country'); ?> + getHtml('Start'); ?> + getHtml('End'); ?>
    - getId(); ?> + id; ?> printHtml($value->name); ?> - - + printHtml($value->price->getAmount()); ?> + printHtml((string) $value->quantity); ?> + printHtml((string) $value->discount); ?> + printHtml((string) $value->discountPercentage); ?> + printHtml((string) $value->bonus); ?> + printHtml((string) $value->itemgroup->getL11n()); ?> + printHtml((string) $value->itemsegment->getL11n()); ?> + printHtml((string) $value->itemsection->getL11n()); ?> + printHtml((string) $value->itemtype->getL11n()); ?> + printHtml((string) $value->clientgroup->getL11n()); ?> + printHtml((string) $value->clientsegment->getL11n()); ?> + printHtml((string) $value->clientsection->getL11n()); ?> + printHtml((string) $value->clienttype->getL11n()); ?> + printHtml((string) $value->clientcountry); ?> + printHtml((string) $value->start?->format('Y-m-d')); ?> + printHtml((string) $value->end?->format('Y-m-d')); ?> + +
    getHtml('Empty', '0', '0'); ?> - +
    +
    @@ -650,13 +731,11 @@ echo $this->getData('nav')->render();
    -
    -
    -
    -

    getHtml('Purchase'); ?>

    -
    -
    -
    +
    +
    + +
    getHtml('Purchase'); ?>
    +
    @@ -682,121 +761,170 @@ echo $this->getData('nav')->render(); -
    +
    - -
    +
    +
    + +
    +
    -
    -
    -
    -

    getHtml('Supplier'); ?>

    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    getHtml('Pricing'); ?>
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    +
    + +
    +
    -
    - - - - - - $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> - - + $value) : ++$c; + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?> + + +
    getHtml('Prices'); ?>
    - getHtml('ID', '0', '0'); ?> - getHtml('Name'); ?> -
    - getId(); ?> - printHtml($value->name); ?> - - +
    +
    +
    getHtml('Prices'); ?>
    + + -
    getHtml('Empty', '0', '0'); ?> - -
    +
    + getHtml('ID', '0', '0'); ?> + getHtml('Name'); ?> +
    + id; ?> + printHtml($value->name); ?> + + +
    getHtml('Empty', '0', '0'); ?> + +
    +
    +
    +
    +
    getHtml('PartsList'); ?>
    +
    +
    +
    + +
    +
    +
    getHtml('UsedIn'); ?>
    +
    +
    +
    +
    + +
    +
    +
    +
    getHtml('ProductionSteps'); ?>
    +
    +
    +
    + +
    +
    +
    getHtml('Machines'); ?>
    +
    +
    +
    +
    + +
    +
    +
    +
    getHtml('Documents'); ?>
    +
    +
    +
    +
    +
    +
    getHtml('Issues'); ?>
    +
    +
    +
    + +
    +
    +
    getHtml('UsedIn'); ?>
    +
    +
    +
    -
    -
    -

    getHtml('General'); ?>

    -
    -
    -
    +
    + +
    getHtml('General'); ?>
    +
    @@ -833,11 +961,12 @@ echo $this->getData('nav')->render(); -
    -
    - -
    +
    +
    + +
    +
    @@ -913,6 +1042,9 @@ echo $this->getData('nav')->render();
    +
    + getData('medialist')->render($this->getData('files')); ?> +
    @@ -934,7 +1066,7 @@ echo $this->getData('nav')->render(); getId()); + $url = UriFactory::build('{/base}/sales/bill?{?}&id=' . $invoice->id); ?>
    getNumber(); ?> @@ -953,26 +1085,59 @@ echo $this->getData('nav')->render();
    - - - +
    +
    getHtml('Audits', 'Auditor'); ?>
    +
    +
    getHtml('Logs'); ?>
    + + + + + + + + + + + - - - - -
    IP getHtml('ID', '0', '0'); ?> - getHtml('Name'); ?> - getHtml('Log'); ?> - getHtml('Date'); ?> -
    -
    printHtml($this->request->getOrigin()); ?> - printHtml((string) $this->request->header->account); ?> - printHtml((string) $this->request->header->account); ?> - Creating item - printHtml((new \DateTime('now'))->format('Y-m-d H:i:s')); ?> -
    +
    getHtml('Module', 'Auditor'); ?> + getHtml('Type', 'Auditor'); ?> + getHtml('Trigger', 'Auditor'); ?> + getHtml('Content', 'Auditor'); ?> + getHtml('By', 'Auditor'); ?> + getHtml('Ref', 'Auditor'); ?> + getHtml('Date', 'Auditor'); ?> +
    id; ?> + printHtml($audit->module); ?> + type; ?> + printHtml($audit->trigger); ?> + printHtml((string) $audit->content); ?> + printHtml($audit->createdBy->login); ?> + printHtml((string) $audit->ref); ?> + createdAt->format('Y-m-d H:i'); ?> + + +
    getHtml('Empty', '0', '0'); ?> + +
    +
    + + diff --git a/Theme/Backend/purchase-item-list.tpl.php b/Theme/Backend/purchase-item-list.tpl.php index 51c9b84..3b304f4 100755 --- a/Theme/Backend/purchase-item-list.tpl.php +++ b/Theme/Backend/purchase-item-list.tpl.php @@ -127,14 +127,14 @@ echo $this->getData('nav')->render(); ?> $value) : ++$count; - $url = UriFactory::build('{/base}/purchase/item/profile?{?}&id=' . $value->getId()); + $url = UriFactory::build('{/base}/purchase/item/profile?{?}&id=' . $value->id); $image = $value->getFileByType('backend_image'); ?> <?= $this->getHtml('IMG_alt_item'); ?> + src="id === 0 ? + UriFactory::build('Web/Backend/img/user_default_' . \mt_rand(1, 6) .'.png') : + UriFactory::build('{/base}/' . $image->getPath()); ?>"> printHtml($value->number); ?> printHtml($value->getL11n('name1')->description); ?> printHtml($value->getL11n('name2')->description); ?> diff --git a/Theme/Backend/sales-item-list.tpl.php b/Theme/Backend/sales-item-list.tpl.php index caa44de..251d6d8 100755 --- a/Theme/Backend/sales-item-list.tpl.php +++ b/Theme/Backend/sales-item-list.tpl.php @@ -129,12 +129,12 @@ echo $this->getData('nav')->render(); ?> $value) : ++$count; - $url = UriFactory::build('{/base}/sales/item/profile?{?}&id=' . $value->getId()); + $url = UriFactory::build('{/base}/sales/item/profile?{?}&id=' . $value->id); $image = $value->getFileByTypeName('item_profile_image'); ?> <?= $this->getHtml('IMG_alt_item'); ?>id === 0 ? UriFactory::build('Web/Backend/img/user_default_' . \mt_rand(1, 6) .'.png') : UriFactory::build('{/base}/' . $image->getPath()); ?>"> printHtml($value->number); ?> diff --git a/Theme/Backend/sales-item-profile.tpl.php b/Theme/Backend/sales-item-profile.tpl.php index 2870300..cb6df73 100755 --- a/Theme/Backend/sales-item-profile.tpl.php +++ b/Theme/Backend/sales-item-profile.tpl.php @@ -88,7 +88,7 @@ echo $this->getData('nav')->render();
    getFileByType(0); - if (!($image instanceof NullMedia)) : ?> + if ($image->id > 0) : ?>
    <?= $this->printHtml($image->name); ?>getData('nav')->render(); getHtml('CreatedAt'); ?> getId()); + $url = UriFactory::build('{/base}/editor/single?{?}&id=' . $note->id); ?> printHtml($note->title); ?> @@ -194,7 +194,7 @@ echo $this->getData('nav')->render(); getHtml('CreatedAt'); ?> getId()); + $url = UriFactory::build('{/base}/media/single?{?}&id=' . $file->id); ?> printHtml($file->name); ?> @@ -224,12 +224,12 @@ echo $this->getData('nav')->render(); getId()); + $url = UriFactory::build('{/base}/sales/bill?{?}&id=' . $invoice->id); ?> printHtml($invoice->getNumber()); ?> printHtml($invoice->type->getL11n()); ?> - printHtml($invoice->billTo); ?> + printHtml($invoice->billTo); ?> printHtml($invoice->netSales->getCurrency()); ?> printHtml($invoice->createdAt->format('Y-m-d')); ?> @@ -252,7 +252,7 @@ echo $this->getData('nav')->render(); getHtml('Net'); ?> getId()); + $url = UriFactory::build('{/base}/sales/client/profile?id=' . $client->id); ?> printHtml($client->number); ?> @@ -470,10 +470,10 @@ echo $this->getData('nav')->render(); $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?> - getId(); ?> + id; ?> printHtml($value->type->title); ?> printHtml($value->description); ?> @@ -548,10 +548,10 @@ echo $this->getData('nav')->render(); $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?> - getId(); ?> + id; ?> printHtml($value->type->getL11n()); ?> value->getValue() instanceof \DateTime ? $value->value->getValue()->format('Y-m-d') : $this->printHtml((string) $value->value->getValue()); ?> @@ -630,10 +630,10 @@ echo $this->getData('nav')->render(); $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?> - getId(); ?> + id; ?> printHtml($value->name); ?> @@ -761,10 +761,10 @@ echo $this->getData('nav')->render(); $value) : ++$c; - $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->getId()); ?> + $url = UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?> - getId(); ?> + id; ?> printHtml($value->name); ?> @@ -932,7 +932,7 @@ echo $this->getData('nav')->render(); getId()); + $url = UriFactory::build('{/base}/sales/bill?{?}&id=' . $invoice->id); ?> getNumber(); ?> diff --git a/Theme/Backend/stock-item-list.tpl.php b/Theme/Backend/stock-item-list.tpl.php index b4419cb..976b1a8 100755 --- a/Theme/Backend/stock-item-list.tpl.php +++ b/Theme/Backend/stock-item-list.tpl.php @@ -117,12 +117,12 @@ echo $this->getData('nav')->render(); ?> $value) : ++$count; - $url = UriFactory::build('{/base}/item/profile?{?}&id=' . $value->getId()); + $url = UriFactory::build('{/base}/item/profile?{?}&id=' . $value->id); $image = $value->getFileByTypeName('item_profile_image'); ?> <?= $this->getHtml('IMG_alt_item'); ?>id === 0 ? 'Web/Backend/img/logo_grey.png' : UriFactory::build($image->getPath()); ?>"> printHtml($value->number); ?> diff --git a/tests/Controller/Api/ApiControllerAttributeTrait.php b/tests/Controller/Api/ApiControllerAttributeTrait.php index ba3e1ff..5689bd6 100755 --- a/tests/Controller/Api/ApiControllerAttributeTrait.php +++ b/tests/Controller/Api/ApiControllerAttributeTrait.php @@ -39,7 +39,7 @@ trait ApiControllerAttributeTrait $request->setData('language', ISO639x1Enum::_EN); $this->module->apiItemL11nTypeCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -57,7 +57,7 @@ trait ApiControllerAttributeTrait $request->setData('description', 'Description'); $this->module->apiItemL11nCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -75,7 +75,7 @@ trait ApiControllerAttributeTrait $request->setData('language', ISO639x1Enum::_EN); $this->module->apiItemAttributeTypeCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -93,7 +93,7 @@ trait ApiControllerAttributeTrait $request->setData('language', ISO639x1Enum::_DE); $this->module->apiItemAttributeTypeL11nCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -113,7 +113,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiItemAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -132,7 +132,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiItemAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -151,7 +151,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiItemAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -170,7 +170,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiItemAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -188,7 +188,7 @@ trait ApiControllerAttributeTrait $request->setData('type', '1'); $this->module->apiItemAttributeCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** diff --git a/tests/Controller/Api/ApiControllerItemTrait.php b/tests/Controller/Api/ApiControllerItemTrait.php index 7383c39..94399da 100755 --- a/tests/Controller/Api/ApiControllerItemTrait.php +++ b/tests/Controller/Api/ApiControllerItemTrait.php @@ -48,7 +48,7 @@ trait ApiControllerItemTrait $request->setData('info', 'Info text'); $this->module->apiItemCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -95,7 +95,7 @@ trait ApiControllerItemTrait $this->module->apiFileCreate($request, $response); $file = $response->get('')['response']; - self::assertGreaterThan(0, \reset($file)->getId()); + self::assertGreaterThan(0, \reset($file)->id); } /** @@ -125,7 +125,7 @@ trait ApiControllerItemTrait $this->module->apiFileCreate($request, $response); $file = $response->get('')['response']; - self::assertGreaterThan(0, \reset($file)->getId()); + self::assertGreaterThan(0, \reset($file)->id); } /** @@ -146,7 +146,7 @@ trait ApiControllerItemTrait $request->setData('plain', \preg_replace('/^.+\n/', '', $MARKDOWN)); $this->module->apiNoteCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** diff --git a/tests/Models/ItemL11nTest.php b/tests/Models/ItemL11nTest.php index 4a94b62..b64b895 100755 --- a/tests/Models/ItemL11nTest.php +++ b/tests/Models/ItemL11nTest.php @@ -38,7 +38,7 @@ final class ItemL11nTest extends \PHPUnit\Framework\TestCase */ public function testDefault() : void { - self::assertEquals(0, $this->l11n->getId()); + self::assertEquals(0, $this->l11n->id); self::assertEquals('', $this->l11n->description); self::assertEquals(0, $this->l11n->item); self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage()); diff --git a/tests/Models/ItemL11nTypeTest.php b/tests/Models/ItemL11nTypeTest.php index 563199b..5a248b0 100755 --- a/tests/Models/ItemL11nTypeTest.php +++ b/tests/Models/ItemL11nTypeTest.php @@ -37,7 +37,7 @@ final class ItemL11nTypeTest extends \PHPUnit\Framework\TestCase */ public function testDefault() : void { - self::assertEquals(0, $this->l11n->getId()); + self::assertEquals(0, $this->l11n->id); self::assertEquals('', $this->l11n->title); } diff --git a/tests/Models/ItemMapperTest.php b/tests/Models/ItemMapperTest.php index 3032348..d053cc8 100755 --- a/tests/Models/ItemMapperTest.php +++ b/tests/Models/ItemMapperTest.php @@ -32,7 +32,7 @@ final class ItemMapperTest extends \PHPUnit\Framework\TestCase $item->number = '123456789'; $id = ItemMapper::create()->execute($item); - self::assertGreaterThan(0, $item->getId()); - self::assertEquals($id, $item->getId()); + self::assertGreaterThan(0, $item->id); + self::assertEquals($id, $item->id); } } diff --git a/tests/Models/ItemTest.php b/tests/Models/ItemTest.php index 5fada57..347526e 100755 --- a/tests/Models/ItemTest.php +++ b/tests/Models/ItemTest.php @@ -42,7 +42,7 @@ final class ItemTest extends \PHPUnit\Framework\TestCase */ public function testDefault() : void { - self::assertEquals(0, $this->item->getId()); + self::assertEquals(0, $this->item->id); self::assertEquals('', $this->item->number); self::assertEquals(0, $this->item->successor); self::assertEquals('', $this->item->info); diff --git a/tests/Models/NullItemL11nTest.php b/tests/Models/NullItemL11nTest.php index ae3bc40..b7fe0e1 100755 --- a/tests/Models/NullItemL11nTest.php +++ b/tests/Models/NullItemL11nTest.php @@ -37,6 +37,6 @@ final class NullItemL11nTest extends \PHPUnit\Framework\TestCase public function testId() : void { $null = new NullItemL11n(2); - self::assertEquals(2, $null->getId()); + self::assertEquals(2, $null->id); } } diff --git a/tests/Models/NullItemL11nTypeTest.php b/tests/Models/NullItemL11nTypeTest.php index 07f798d..12b1553 100755 --- a/tests/Models/NullItemL11nTypeTest.php +++ b/tests/Models/NullItemL11nTypeTest.php @@ -37,6 +37,6 @@ final class NullItemL11nTypeTest extends \PHPUnit\Framework\TestCase public function testId() : void { $null = new NullItemL11nType(2); - self::assertEquals(2, $null->getId()); + self::assertEquals(2, $null->id); } } diff --git a/tests/Models/NullItemTest.php b/tests/Models/NullItemTest.php index 0fd86b5..dd0404f 100755 --- a/tests/Models/NullItemTest.php +++ b/tests/Models/NullItemTest.php @@ -37,6 +37,6 @@ final class NullItemTest extends \PHPUnit\Framework\TestCase public function testId() : void { $null = new NullItem(2); - self::assertEquals(2, $null->getId()); + self::assertEquals(2, $null->id); } }