diff --git a/Admin/Install/attributes.json b/Admin/Install/attributes.json index 89372d5..f2f7687 100755 --- a/Admin/Install/attributes.json +++ b/Admin/Install/attributes.json @@ -467,11 +467,171 @@ "de": "Dual use" }, "value_type": 1, + "is_custom_allowed": false, + "validation_pattern": "", + "is_required": false, + "default_value": 0, + "values": [ + { + "value": 0 + }, + { + "value": 1 + } + ] + }, + { + "name": "contract", + "l11n": { + "en": "Contract", + "de": "Vertrag" + }, + "value_type": 1, + "is_custom_allowed": true, + "validation_pattern": "", + "is_required": false, + "default_value": 0, + "values": [ + ] + }, + { + "name": "subscription", + "l11n": { + "en": "Subscription", + "de": "Abonoment" + }, + "value_type": 1, + "is_custom_allowed": false, + "validation_pattern": "", + "is_required": false, + "default_value": 0, + "values": [ + { + "value": 0 + }, + { + "value": 1 + } + ] + }, + { + "name": "subscription_interval_types", + "l11n": { + "en": "Subscription type", + "de": "Abonoment Typ" + }, + "value_type": 1, + "is_custom_allowed": false, + "validation_pattern": "", + "is_required": false, + "default_value": "", + "values": [ + { + "value": 0, + "l11n": { + "en": "Manual", + "de": "Manuell" + } + }, + { + "value": 1, + "l11n": { + "en": "Daily", + "de": "Daily" + } + }, + { + "value": 2, + "l11n": { + "en": "Weekly", + "de": "Weekly" + } + }, + { + "value": 3, + "l11n": { + "en": "Monthly", + "de": "Monthly" + } + }, + { + "value": 4, + "l11n": { + "en": "Annually", + "de": "Annually" + } + } + ] + }, + { + "name": "subscription_interval_value", + "l11n": { + "en": "Subscription interval", + "de": "Abonoment Intervall" + }, + "value_type": 2, "is_custom_allowed": true, "validation_pattern": "", "is_required": false, "default_value": "", - "values": [] + "values": [ + ] + }, + { + "name": "subscription_renewal_type", + "l11n": { + "en": "Subscription renewal type", + "de": "Abonoment Verlaengerung Art" + }, + "value_type": 1, + "is_custom_allowed": false, + "validation_pattern": "", + "is_required": false, + "default_value": "", + "values": [ + { + "value": 0, + "l11n": { + "en": "Manual", + "de": "Manuell" + } + }, + { + "value": 1, + "l11n": { + "en": "Automatic", + "de": "Automatic" + } + } + ] + }, + { + "name": "subscription_interval_end", + "l11n": { + "en": "Subscription renewal end", + "de": "Abonoment Verlaengerung Ende" + }, + "value_type": 1, + "is_custom_allowed": false, + "validation_pattern": "", + "is_required": false, + "default_value": "", + "values": [ + { + "value": 0, + "l11n": { + "en": "Exact", + "de": "Exakt" + } + }, + { + "value": 1, + "l11n": { + "en": "End of interval", + "de": "Intervallende" + } + } + ] }, { "name": "download_link", diff --git a/Admin/Installer.php b/Admin/Installer.php index fb775c8..35ab52a 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -16,6 +16,7 @@ namespace Modules\ItemManagement\Admin; use Modules\Attribute\Models\AttributeTypeMapper; use Modules\Attribute\Models\AttributeValue; +use Modules\ItemManagement\Models\ItemAttributeTypeMapper; use Modules\ItemManagement\Models\ItemL11nTypeMapper; use phpOMS\Application\ApplicationAbstract; use phpOMS\Config\SettingsInterface; @@ -110,7 +111,7 @@ final class Installer extends InstallerAbstract $module = $app->moduleManager->getModuleInstance('ItemManagement'); /** @var \Modules\Attribute\Models\AttributeType[] $attributeTypes */ - $attributeTypes = AttributeTypeMapper::getAll()->with('defaults')->execute(); + $attributeTypes = ItemAttributeTypeMapper::getAll()->with('defaults')->execute(); /** @var \Modules\ItemManagement\Models\ItemL11nType[] $l11nTypes */ $l11nTypes = ItemL11nTypeMapper::getAll()->execute(); diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 5a5b8bd..130a7b5 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -75,7 +75,7 @@ return [ ], '^/item/profile.*$' => [ [ - 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementItemItem', + 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementItem', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::NAME, diff --git a/Controller/BackendController.php b/Controller/BackendController.php index a31b6b8..34a31c5 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -18,8 +18,8 @@ use Modules\Admin\Models\LocalizationMapper; use Modules\Admin\Models\SettingsEnum; use Modules\Billing\Models\BillTransferType; use Modules\Billing\Models\SalesBillMapper; -use Modules\Attribute\Models\AttributeTypeMapper; -use Modules\Attribute\Models\AttributeValueMapper; +use Modules\ItemManagement\Models\ItemAttributeTypeMapper; +use Modules\ItemManagement\Models\ItemAttributeValueMapper; use Modules\ItemManagement\Models\ItemMapper; use phpOMS\Asset\AssetType; use phpOMS\Contract\RenderableInterface; @@ -62,7 +62,7 @@ final class BackendController extends Controller $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1004801001, $request, $response)); /** @var \Modules\Attribute\Models\AttributeType[] $attributes */ - $attributes = AttributeTypeMapper::getAll() + $attributes = ItemAttributeTypeMapper::getAll() ->with('l11n') ->where('l11n/language', $response->getLanguage()) ->execute(); @@ -91,7 +91,7 @@ final class BackendController extends Controller $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1004801001, $request, $response)); /** @var \Modules\Attribute\Models\AttributeValue[] $attributes */ - $attributes = AttributeValueMapper::getAll() + $attributes = ItemAttributeValueMapper::getAll() ->with('l11n') ->where('l11n/language', $response->getLanguage()) ->execute(); @@ -120,7 +120,7 @@ final class BackendController extends Controller $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1004801001, $request, $response)); /** @var \Modules\Attribute\Models\AttributeType $attribute */ - $attribute = AttributeTypeMapper::get() + $attribute = ItemAttributeTypeMapper::get() ->with('l11n') ->where('id', (int) $request->getData('id')) ->where('l11n/language', $response->getLanguage()) @@ -150,7 +150,7 @@ final class BackendController extends Controller $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1004801001, $request, $response)); /** @var \Modules\Attribute\Models\AttributeValue $attribute */ - $attribute = AttributeValueMapper::get() + $attribute = ItemAttributeValueMapper::get() ->with('l11n') ->where('id', (int) $request->getData('id')) ->where('l11n/language', $response->getLanguage()) @@ -322,7 +322,7 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewItemManagementItemItem(RequestAbstract $request, ResponseAbstract $response, $data = null) : View + public function viewItemManagementItem(RequestAbstract $request, ResponseAbstract $response, $data = null) : View { $head = $response->get('Content')->getData('head'); $head->addAsset(AssetType::CSS, 'Resources/chartjs/Chartjs/chart.css'); @@ -366,12 +366,14 @@ final class BackendController extends Controller $newestInvoices = SalesBillMapper::getAll() ->with('type') + ->with('type/l11n') ->where('type/transferType', BillTransferType::SALES) + ->where('type/l11n/language', $response->getLanguage()) ->sort('id', OrderType::DESC) ->limit(5) ->execute(); - $topCustomers = []; + $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); @@ -417,7 +419,7 @@ final class BackendController extends Controller */ public function viewItemManagementSalesItem(RequestAbstract $request, ResponseAbstract $response, $data = null) : View { - return $this->viewItemManagementItemItem($request, $response, $data); + return $this->viewItemManagementItem($request, $response, $data); } /** @@ -434,7 +436,7 @@ final class BackendController extends Controller */ public function viewItemManagementPurchaseItem(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { - return $this->viewItemManagementItemItem($request, $response, $data); + return $this->viewItemManagementItem($request, $response, $data); } /** @@ -451,7 +453,7 @@ final class BackendController extends Controller */ public function viewItemManagementWarehouseItem(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { - return $this->viewItemManagementItemItem($request, $response, $data); + return $this->viewItemManagementItem($request, $response, $data); } /** diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index 93167cc..ae181f9 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -101,6 +101,7 @@ return ['ItemManagement' => [ 'Properties' => 'Properties', 'Property' => 'Property', 'Purchase' => 'Purchase', + 'Procurement' => 'Procurement', 'PurchasePrice' => 'Purchase Price', 'Purchasing' => 'Purchasing', 'QA' => 'QA', @@ -137,5 +138,6 @@ return ['ItemManagement' => [ 'Volume' => 'Volume', 'Warehouse' => 'Warehouse', 'Width' => 'Width', + 'TopCustomers' => 'Top Customers', 'YTDSales' => 'YTD Sales', ]]; diff --git a/Theme/Backend/item-list.tpl.php b/Theme/Backend/item-list.tpl.php index 83aeafe..2fb6406 100755 --- a/Theme/Backend/item-list.tpl.php +++ b/Theme/Backend/item-list.tpl.php @@ -134,9 +134,9 @@ echo $this->getData('nav')->render(); ?> ?> <?= $this->getHtml('IMG_alt_item'); ?> + src="getPath()); ?>"> printHtml($value->number); ?> printHtml($value->getL11n('name1')->description); ?> printHtml($value->getL11n('name2')->description); ?> diff --git a/Theme/Backend/item-profile.tpl.php b/Theme/Backend/item-profile.tpl.php index 4c5d982..cb587a3 100755 --- a/Theme/Backend/item-profile.tpl.php +++ b/Theme/Backend/item-profile.tpl.php @@ -29,7 +29,7 @@ $files = $item->getFiles(); $newestInvoices = $this->getData('newestInvoices') ?? []; $allInvoices = $this->getData('allInvoices') ?? []; -$topCustomers = $this->getData('topCustomers') ?? []; +$topCustomers = $this->getData('topCustomers') ?? [[], []]; $regionSales = $this->getData('regionSales') ?? []; $countrySales = $this->getData('countrySales') ?? []; $monthlySalesCosts = $this->getData('monthlySalesCosts') ?? []; @@ -46,31 +46,30 @@ echo $this->getData('nav')->render();
request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
-
+
- +
@@ -79,7 +78,7 @@ echo $this->getData('nav')->render();
-
+
@@ -244,7 +243,7 @@ echo $this->getData('nav')->render();