133 lines
9.0 KiB
PHP
133 lines
9.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\IndustrialEngineering\Http\Controllers;
|
|
|
|
use App\Http\MenuIcons;
|
|
use App\Utils\ModuleUtil;
|
|
use Illuminate\Routing\Controller;
|
|
use Menu;
|
|
use Modules\IndustrialEngineering\Http\Controllers\DashboardController as IeDashboardController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\ItemMasterController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\ProductHubController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\ProductionLineController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\LineRevisionController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\BomController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\CostScenarioController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\ReleasePackageController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\SerializedUnitController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\InstalledAssetController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\SourcingController;
|
|
use Modules\IndustrialEngineering\Http\Controllers\ResearchProjectController;
|
|
|
|
class DataController extends Controller
|
|
{
|
|
public function superadmin_package()
|
|
{
|
|
return [
|
|
[
|
|
'name' => '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);
|
|
});
|
|
}
|
|
}
|