diff --git a/Admin/Install/db.json b/Admin/Install/db.json index 802d042..b7e2705 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -379,6 +379,30 @@ } } }, + "suppliermgmt_supplier_account": { + "name": "suppliermgmt_supplier_account", + "fields": { + "suppliermgmt_supplier_account_id": { + "name": "suppliermgmt_supplier_account_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "suppliermgmt_supplier_account_account": { + "name": "suppliermgmt_supplier_account_account", + "type": "VARCHAR(50)", + "null": false + }, + "suppliermgmt_supplier_account_supplier": { + "name": "suppliermgmt_supplier_account_supplier", + "type": "INT(11)", + "null": false, + "foreignTable": "suppliermgmt_supplier", + "foreignKey": "suppliermgmt_supplier_id" + } + } + }, "suppliermgmt_supplier_media": { "name": "suppliermgmt_supplier_media", "fields": { diff --git a/Admin/Installer.php b/Admin/Installer.php index 1998e67..70926b9 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -136,7 +136,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/Controller/ApiController.php b/Controller/ApiController.php index 53d4025..ec41b73 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -505,7 +505,7 @@ final class ApiController extends Controller $this->createModelRelation( $request->header->account, (int) $request->getData('type'), - $attrValue->getId(), + $attrValue->id, SupplierAttributeTypeMapper::class, 'defaults', '', $request->getOrigin() ); } @@ -668,7 +668,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', @@ -681,7 +681,7 @@ final class ApiController extends Controller $this->createModelRelation( $request->header->account, (int) $request->getData('supplier'), - \reset($uploaded)->getId(), + \reset($uploaded)->id, SupplierMapper::class, 'files', '', $request->getOrigin() ); @@ -715,7 +715,7 @@ final class ApiController extends Controller $this->createModelRelation( $request->header->account, $request->getData('id'), - $model->getId(), + $model->id, SupplierMapper::class, 'notes', '', diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 6148aa0..8c020c1 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace Modules\SupplierManagement\Controller; use Modules\Billing\Models\PurchaseBillMapper; +use Modules\SupplierManagement\Models\SupplierAttributeTypeL11nMapper; use Modules\SupplierManagement\Models\SupplierAttributeTypeMapper; use Modules\SupplierManagement\Models\SupplierAttributeValueMapper; use Modules\SupplierManagement\Models\SupplierMapper; @@ -50,7 +51,7 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function SupplierManagementAttributeTypeList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + public function viewSupplierManagementAttributeTypeList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/SupplierManagement/Theme/Backend/attribute-type-list'); @@ -79,7 +80,7 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function SupplierManagementAttributeValues(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + public function viewSupplierManagementAttributeValues(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/SupplierManagement/Theme/Backend/attribute-value-list'); @@ -108,7 +109,7 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function SupplierManagementAttributeType(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + public function viewSupplierManagementAttributeType(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/SupplierManagement/Theme/Backend/attribute-type'); @@ -121,7 +122,12 @@ final class BackendController extends Controller ->where('l11n/language', $response->getLanguage()) ->execute(); + $l11ns = SupplierAttributeTypeL11nMapper::getAll() + ->where('ref', $attribute->id) + ->execute(); + $view->addData('attribute', $attribute); + $view->addData('l11ns', $l11ns); return $view; } @@ -214,11 +220,11 @@ final class BackendController extends Controller // stats if ($this->app->moduleManager->isActive('Billing')) { - $ytd = PurchaseBillMapper::getPurchaseBySupplierId($supplier->getId(), new SmartDateTime('Y-01-01'), new SmartDateTime('now')); - $mtd = PurchaseBillMapper::getPurchaseBySupplierId($supplier->getId(), new SmartDateTime('Y-m-01'), new SmartDateTime('now')); - $lastOrder = PurchaseBillMapper::getLastOrderDateBySupplierId($supplier->getId()); - $newestInvoices = PurchaseBillMapper::getAll()->with('supplier')->where('supplier', $supplier->getId())->sort('id', OrderType::DESC)->limit(5)->execute(); - $monthlyPurchaseCosts = PurchaseBillMapper::getSupplierMonthlyPurchaseCosts($supplier->getId(), (new SmartDateTime('now'))->createModify(-1), new SmartDateTime('now')); + $ytd = PurchaseBillMapper::getPurchaseBySupplierId($supplier->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now')); + $mtd = PurchaseBillMapper::getPurchaseBySupplierId($supplier->id, new SmartDateTime('Y-m-01'), new SmartDateTime('now')); + $lastOrder = PurchaseBillMapper::getLastOrderDateBySupplierId($supplier->id); + $newestInvoices = PurchaseBillMapper::getAll()->with('supplier')->where('supplier', $supplier->id)->sort('id', OrderType::DESC)->limit(5)->execute(); + $monthlyPurchaseCosts = PurchaseBillMapper::getSupplierMonthlyPurchaseCosts($supplier->id, (new SmartDateTime('now'))->createModify(-1), new SmartDateTime('now')); } else { $ytd = new Money(); $mtd = new Money(); diff --git a/Models/Supplier.php b/Models/Supplier.php index d7e602a..48c04e4 100755 --- a/Models/Supplier.php +++ b/Models/Supplier.php @@ -40,15 +40,15 @@ class Supplier * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; public string $number = ''; public string $numberReverse = ''; - private int $status = SupplierStatus::ACTIVE; + public int $status = SupplierStatus::ACTIVE; - private int $type = 0; + public int $type = 0; public string $info = ''; diff --git a/Models/SupplierL11n.php b/Models/SupplierL11n.php index d1e3793..d431874 100755 --- a/Models/SupplierL11n.php +++ b/Models/SupplierL11n.php @@ -32,7 +32,7 @@ class SupplierL11n implements \JsonSerializable * @var int * @since 1.0.0 */ - protected int $id = 0; + public int $id = 0; /** * Supplier ID. diff --git a/Models/SupplierL11nType.php b/Models/SupplierL11nType.php index 0acd1f9..7a43861 100755 --- a/Models/SupplierL11nType.php +++ b/Models/SupplierL11nType.php @@ -30,7 +30,7 @@ class SupplierL11nType 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 4348293..df890b6 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -13,6 +13,8 @@ declare(strict_types=1); return ['SupplierManagement' => [ + 'AttributeTypes' => 'Attribute Types', + 'Attribute' => 'Attribute', 'Accounting' => 'Accounting', 'Addition' => 'Addition', 'Address' => 'Address', diff --git a/Theme/Backend/attribute-type-list.tpl.php b/Theme/Backend/attribute-type-list.tpl.php new file mode 100644 index 0000000..1a01c71 --- /dev/null +++ b/Theme/Backend/attribute-type-list.tpl.php @@ -0,0 +1,71 @@ +getData('attributes'); + +echo $this->getData('nav')->render(); ?> + +
+
+
+
getHtml('AttributeTypes'); ?>
+
+ + + + + $value) : ++$count; + $url = UriFactory::build('{/base}/purchase/supplier/attribute/type?{?}&id=' . $value->id); + ?> + +
getHtml('ID', '0', '0'); ?> + + + + getHtml('Name'); ?> + + + +
id; ?> + printHtml($value->getL11n()); ?> + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
+
diff --git a/Theme/Backend/attribute-type.tpl.php b/Theme/Backend/attribute-type.tpl.php new file mode 100755 index 0000000..73e7a9d --- /dev/null +++ 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/supplier-list.tpl.php b/Theme/Backend/supplier-list.tpl.php index e77d4a4..4d121bf 100755 --- a/Theme/Backend/supplier-list.tpl.php +++ b/Theme/Backend/supplier-list.tpl.php @@ -103,11 +103,11 @@ echo $this->getData('nav')->render(); ?> $value) : ++$count; - $url = UriFactory::build('{/base}/purchase/supplier/profile?{?}&id=' . $value->getId()); + $url = UriFactory::build('{/base}/purchase/supplier/profile?{?}&id=' . $value->id); $image = $value->getFileByTypeName('supplier_profile_image'); ?> <?= $this->getHtml('IMG_alt_supplier'); ?>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/supplier-profile.tpl.php b/Theme/Backend/supplier-profile.tpl.php index 768d642..4d91b83 100755 --- a/Theme/Backend/supplier-profile.tpl.php +++ b/Theme/Backend/supplier-profile.tpl.php @@ -239,7 +239,7 @@ echo $this->getData('nav')->render(); getHtml('CreatedAt'); ?> getId()); + $url = UriFactory::build('{/base}/editor/single?{?}&id=' . $note->id); ?> title; ?> @@ -262,7 +262,7 @@ echo $this->getData('nav')->render(); getHtml('CreatedAt'); ?> getId()); + $url = UriFactory::build('{/base}/media/single?{?}&id=' . $file->id); ?> name; ?> @@ -292,7 +292,7 @@ echo $this->getData('nav')->render(); getId()); + $url = UriFactory::build('{/base}/purchase/bill?{?}&id=' . $invoice->id); ?> getNumber(); ?> diff --git a/tests/Controller/Api/ApiControllerAttributeTrait.php b/tests/Controller/Api/ApiControllerAttributeTrait.php index c0b09aa..80f9e5c 100755 --- a/tests/Controller/Api/ApiControllerAttributeTrait.php +++ b/tests/Controller/Api/ApiControllerAttributeTrait.php @@ -38,7 +38,7 @@ trait ApiControllerAttributeTrait $request->setData('language', ISO639x1Enum::_EN); $this->module->apiSupplierAttributeTypeCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -56,7 +56,7 @@ trait ApiControllerAttributeTrait $request->setData('language', ISO639x1Enum::_DE); $this->module->apiSupplierAttributeTypeL11nCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -76,7 +76,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiSupplierAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -95,7 +95,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiSupplierAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -114,7 +114,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiSupplierAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -133,7 +133,7 @@ trait ApiControllerAttributeTrait $request->setData('country', ISO3166TwoEnum::_DEU); $this->module->apiSupplierAttributeValueCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -151,7 +151,7 @@ trait ApiControllerAttributeTrait $request->setData('type', '1'); $this->module->apiSupplierAttributeCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** diff --git a/tests/Controller/Api/ApiControllerSupplierTrait.php b/tests/Controller/Api/ApiControllerSupplierTrait.php index 92845d5..17a014c 100755 --- a/tests/Controller/Api/ApiControllerSupplierTrait.php +++ b/tests/Controller/Api/ApiControllerSupplierTrait.php @@ -56,7 +56,7 @@ trait ApiControllerSupplierTrait $request->setData('country', ISO3166TwoEnum::_USA); $this->module->apiSupplierCreate($request, $response); - self::assertGreaterThan(0, $response->get('')['response']->getId()); + self::assertGreaterThan(0, $response->get('')['response']->id); } /** @@ -103,7 +103,7 @@ trait ApiControllerSupplierTrait $this->module->apiFileCreate($request, $response); $file = $response->get('')['response']; - self::assertGreaterThan(0, \reset($file)->getId()); + self::assertGreaterThan(0, \reset($file)->id); } /** @@ -133,7 +133,7 @@ trait ApiControllerSupplierTrait $this->module->apiFileCreate($request, $response); $file = $response->get('')['response']; - self::assertGreaterThan(0, \reset($file)->getId()); + self::assertGreaterThan(0, \reset($file)->id); } /** @@ -154,7 +154,7 @@ trait ApiControllerSupplierTrait $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/NullSupplierTest.php b/tests/Models/NullSupplierTest.php index 17d778b..9e0626b 100755 --- a/tests/Models/NullSupplierTest.php +++ b/tests/Models/NullSupplierTest.php @@ -37,6 +37,6 @@ final class NullSupplierTest extends \PHPUnit\Framework\TestCase public function testId() : void { $null = new NullSupplier(2); - self::assertEquals(2, $null->getId()); + self::assertEquals(2, $null->id); } } diff --git a/tests/Models/SupplierTest.php b/tests/Models/SupplierTest.php index 386c2f9..f31fac2 100755 --- a/tests/Models/SupplierTest.php +++ b/tests/Models/SupplierTest.php @@ -41,7 +41,7 @@ final class SupplierTest extends \PHPUnit\Framework\TestCase */ public function testDefault() : void { - self::assertEquals(0, $this->supplier->getId()); + self::assertEquals(0, $this->supplier->id); self::assertEquals('', $this->supplier->number); self::assertEquals('', $this->supplier->numberReverse); self::assertEquals('', $this->supplier->info);