'industrial_engineering_module', 'label' => __('industrialengineering::lang.module_name'), 'default' => false, ], ]; } public function user_permissions() { return [ ['value' => 'ie.access', 'label' => __('industrialengineering::lang.access'), 'default' => false], ['value' => 'ie.view', 'label' => __('industrialengineering::lang.view_dashboard'), 'default' => false], ['value' => 'ie.items.view', 'label' => __('industrialengineering::lang.items_view'), 'default' => false], ['value' => 'ie.items.create', 'label' => __('industrialengineering::lang.items_create'), 'default' => false], ['value' => 'ie.platforms.view', 'label' => __('industrialengineering::lang.platforms_view'), 'default' => false], ['value' => 'ie.platforms.create', 'label' => __('industrialengineering::lang.platforms_create'), 'default' => false], ['value' => 'ie.revisions.view', 'label' => __('industrialengineering::lang.revisions_view'), 'default' => false], ['value' => 'ie.revisions.create', 'label' => __('industrialengineering::lang.revisions_create'), 'default' => false], ['value' => 'ie.bom.view', 'label' => __('industrialengineering::lang.bom_view'), 'default' => false], ['value' => 'ie.bom.create', 'label' => __('industrialengineering::lang.bom_create'), 'default' => false], ['value' => 'ie.costing.view', 'label' => __('industrialengineering::lang.costing_view'), 'default' => false], ['value' => 'ie.costing.create', 'label' => __('industrialengineering::lang.costing_create'), 'default' => false], ['value' => 'ie.release.view', 'label' => __('industrialengineering::lang.release_view'), 'default' => false], ['value' => 'ie.release.create', 'label' => __('industrialengineering::lang.release_create'), 'default' => false], ['value' => 'ie.release.approve', 'label' => __('industrialengineering::lang.release_approve'), 'default' => false], ['value' => 'ie.traceability.view', 'label' => __('industrialengineering::lang.traceability_view'), 'default' => false], ['value' => 'ie.traceability.create', 'label' => __('industrialengineering::lang.traceability_create'), 'default' => false], ['value' => 'ie.installed.view', 'label' => __('industrialengineering::lang.installed_view'), 'default' => false], ['value' => 'ie.installed.create', 'label' => __('industrialengineering::lang.installed_create'), 'default' => false], ['value' => 'ie.installed.update', 'label' => __('industrialengineering::lang.installed_update'), 'default' => false], ['value' => 'ie.sourcing.view', 'label' => __('industrialengineering::lang.sourcing_view'), 'default' => false], ['value' => 'ie.sourcing.create', 'label' => __('industrialengineering::lang.sourcing_create'), 'default' => false], ['value' => 'ie.research.view', 'label' => __('industrialengineering::lang.research_view'), 'default' => false], ['value' => 'ie.research.create', 'label' => __('industrialengineering::lang.research_create'), 'default' => false], ['value' => 'ie.cpq.view', 'label' => __('industrialengineering::lang.cpq_view'), 'default' => false], ['value' => 'ie.cpq.create', 'label' => __('industrialengineering::lang.cpq_create'), 'default' => false], ]; } public function modifyAdminMenu() { if (! \Module::has('IndustrialEngineering') || ! \Module::isEnabled('IndustrialEngineering')) { return; } $module_util = new ModuleUtil(); if (! $module_util->isModuleInstalled('IndustrialEngineering')) { return; } $user = auth()->user(); if (! $user->can('ie.access') && ! $user->can('ie.view')) { return; } Menu::modify('admin-sidebar-menu', function ($menu) { $menu->dropdown( __('industrialengineering::lang.module_name'), function ($sub) { $user = auth()->user(); if ($user->can('ie.view') || $user->can('ie.access')) { $sub->url(action([IeDashboardController::class, 'index']), __('industrialengineering::lang.dashboard'), ['active' => request()->segment(2) == 'dashboard']); } if ($user->can('ie.items.view')) { $sub->url(action([ItemMasterController::class, 'index']), __('industrialengineering::lang.item_masters'), ['active' => request()->segment(2) == 'item-masters']); } if ($user->can('ie.platforms.view')) { $sub->url(action([ProductHubController::class, 'index']), __('industrialengineering::lang.products'), ['active' => in_array(request()->segment(2), ['products', 'platforms'])]); } if ($user->can('ie.revisions.view')) { $sub->url(action([LineRevisionController::class, 'index']), __('industrialengineering::lang.line_revisions'), ['active' => request()->segment(2) == 'line-revisions']); $productionLineLabel = config('menu_consolidation.unified_production_line_labels', true) ? __('lang_v1.production_lines_plm') : __('industrialengineering::lang.production_lines'); $sub->url(action([ProductionLineController::class, 'index']), $productionLineLabel, ['active' => request()->segment(2) == 'production-lines']); } if ($user->can('ie.bom.view')) { $sub->url(action([BomController::class, 'index']), __('industrialengineering::lang.boms'), ['active' => request()->segment(2) == 'boms']); } if ($user->can('ie.costing.view')) { $sub->url(action([CostScenarioController::class, 'index']), __('industrialengineering::lang.cost_scenarios'), ['active' => request()->segment(2) == 'cost-scenarios']); } if ($user->can('ie.release.view')) { $sub->url(action([ReleasePackageController::class, 'index']), __('industrialengineering::lang.release_packages'), ['active' => request()->segment(2) == 'release-packages']); } if ($user->can('ie.traceability.view')) { $sub->url(action([SerializedUnitController::class, 'index']), __('industrialengineering::lang.serialized_units'), ['active' => request()->segment(2) == 'serialized-units']); } if ($user->can('ie.installed.view')) { $sub->url(action([InstalledAssetController::class, 'index']), __('industrialengineering::lang.installed_assets'), ['active' => request()->segment(2) == 'installed-assets']); $sub->url(action([InstalledAssetController::class, 'lookup']), __('industrialengineering::lang.lookup'), ['active' => request()->segment(2) == 'lookup']); } if ($user->can('ie.sourcing.view')) { $sub->url(action([SourcingController::class, 'index']), __('industrialengineering::lang.sourcing'), ['active' => request()->segment(2) == 'sourcing']); } if ($user->can('ie.research.view')) { $sub->url(action([ResearchProjectController::class, 'index']), __('industrialengineering::lang.research'), ['active' => request()->segment(2) == 'research']); } }, ['icon' => MenuIcons::svg('diagram'), 'active' => request()->segment(1) == 'industrial-engineering', 'data-module' => 'IndustrialEngineering', 'data-menu-group' => 'engineering'] )->order(86); }); } }