'maintenance_module', 'label' => __('maintenance::lang.module_name'), 'default' => false, ], ]; } public function user_permissions() { return [ ['value' => 'maintenance.access', 'label' => __('maintenance::lang.access'), 'default' => false], ['value' => 'maintenance.view', 'label' => __('maintenance::lang.view_dashboard'), 'default' => false], ['value' => 'maintenance.equipment.view', 'label' => __('maintenance::lang.equipment_view'), 'default' => false], ['value' => 'maintenance.equipment.create', 'label' => __('maintenance::lang.equipment_create'), 'default' => false], ['value' => 'maintenance.equipment.update', 'label' => __('maintenance::lang.equipment_update'), 'default' => false], ['value' => 'maintenance.equipment.delete', 'label' => __('maintenance::lang.equipment_delete'), 'default' => false], ['value' => 'maintenance.categories.view', 'label' => __('maintenance::lang.categories_view'), 'default' => false], ['value' => 'maintenance.categories.create', 'label' => __('maintenance::lang.categories_create'), 'default' => false], ['value' => 'maintenance.categories.update', 'label' => __('maintenance::lang.categories_update'), 'default' => false], ['value' => 'maintenance.categories.delete', 'label' => __('maintenance::lang.categories_delete'), 'default' => false], ['value' => 'maintenance.lines.view', 'label' => __('maintenance::lang.lines_view'), 'default' => false], ['value' => 'maintenance.lines.create', 'label' => __('maintenance::lang.lines_create'), 'default' => false], ['value' => 'maintenance.lines.update', 'label' => __('maintenance::lang.lines_update'), 'default' => false], ['value' => 'maintenance.lines.delete', 'label' => __('maintenance::lang.lines_delete'), 'default' => false], ['value' => 'maintenance.preventive.view', 'label' => __('maintenance::lang.preventive_view'), 'default' => false], ['value' => 'maintenance.preventive.create', 'label' => __('maintenance::lang.preventive_create'), 'default' => false], ['value' => 'maintenance.preventive.update', 'label' => __('maintenance::lang.preventive_update'), 'default' => false], ['value' => 'maintenance.preventive.delete', 'label' => __('maintenance::lang.preventive_delete'), 'default' => false], ['value' => 'maintenance.overhaul.view', 'label' => __('maintenance::lang.overhaul_view'), 'default' => false], ['value' => 'maintenance.overhaul.create', 'label' => __('maintenance::lang.overhaul_create'), 'default' => false], ['value' => 'maintenance.overhaul.update', 'label' => __('maintenance::lang.overhaul_update'), 'default' => false], ['value' => 'maintenance.overhaul.delete', 'label' => __('maintenance::lang.overhaul_delete'), 'default' => false], ['value' => 'maintenance.rebuild.view', 'label' => __('maintenance::lang.rebuild_view'), 'default' => false], ['value' => 'maintenance.rebuild.create', 'label' => __('maintenance::lang.rebuild_create'), 'default' => false], ['value' => 'maintenance.rebuild.update', 'label' => __('maintenance::lang.rebuild_update'), 'default' => false], ['value' => 'maintenance.rebuild.delete', 'label' => __('maintenance::lang.rebuild_delete'), 'default' => false], ['value' => 'maintenance.work_orders.view', 'label' => __('maintenance::lang.work_orders_view'), 'default' => false], ['value' => 'maintenance.work_orders.create', 'label' => __('maintenance::lang.work_orders_create'), 'default' => false], ['value' => 'maintenance.work_orders.update', 'label' => __('maintenance::lang.work_orders_update'), 'default' => false], ['value' => 'maintenance.work_orders.delete', 'label' => __('maintenance::lang.work_orders_delete'), 'default' => false], ['value' => 'maintenance.spare_parts.view', 'label' => __('maintenance::lang.spare_parts_view'), 'default' => false], ['value' => 'maintenance.spare_parts.create', 'label' => __('maintenance::lang.spare_parts_create'), 'default' => false], ['value' => 'maintenance.spare_parts.update', 'label' => __('maintenance::lang.spare_parts_update'), 'default' => false], ['value' => 'maintenance.spare_parts.delete', 'label' => __('maintenance::lang.spare_parts_delete'), 'default' => false], ['value' => 'maintenance.checklists.view', 'label' => __('maintenance::lang.checklists_view'), 'default' => false], ['value' => 'maintenance.checklists.create', 'label' => __('maintenance::lang.checklists_create'), 'default' => false], ['value' => 'maintenance.checklists.update', 'label' => __('maintenance::lang.checklists_update'), 'default' => false], ['value' => 'maintenance.checklists.delete', 'label' => __('maintenance::lang.checklists_delete'), 'default' => false], ['value' => 'maintenance.failures.view', 'label' => __('maintenance::lang.failures_view'), 'default' => false], ['value' => 'maintenance.failures.create', 'label' => __('maintenance::lang.failures_create'), 'default' => false], ['value' => 'maintenance.failures.update', 'label' => __('maintenance::lang.failures_update'), 'default' => false], ['value' => 'maintenance.failures.delete', 'label' => __('maintenance::lang.failures_delete'), 'default' => false], ['value' => 'maintenance.inspections.view', 'label' => __('maintenance::lang.inspections_view'), 'default' => false], ['value' => 'maintenance.inspections.create', 'label' => __('maintenance::lang.inspections_create'), 'default' => false], ['value' => 'maintenance.inspections.delete', 'label' => __('maintenance::lang.inspections_delete'), 'default' => false], ['value' => 'maintenance.catalogs.view', 'label' => __('maintenance::lang.catalogs_view'), 'default' => false], ['value' => 'maintenance.catalogs.create', 'label' => __('maintenance::lang.catalogs_create'), 'default' => false], ['value' => 'maintenance.catalogs.update', 'label' => __('maintenance::lang.catalogs_update'), 'default' => false], ['value' => 'maintenance.catalogs.delete', 'label' => __('maintenance::lang.catalogs_delete'), 'default' => false], ['value' => 'maintenance.providers.view', 'label' => __('maintenance::lang.providers_view'), 'default' => false], ['value' => 'maintenance.providers.create', 'label' => __('maintenance::lang.providers_create'), 'default' => false], ['value' => 'maintenance.providers.update', 'label' => __('maintenance::lang.providers_update'), 'default' => false], ['value' => 'maintenance.providers.delete', 'label' => __('maintenance::lang.providers_delete'), 'default' => false], ['value' => 'maintenance.reports.view', 'label' => __('maintenance::lang.reports_view'), 'default' => false], ['value' => 'maintenance.calendar.view', 'label' => __('maintenance::lang.calendar_view'), 'default' => false], ['value' => 'maintenance.tools.view', 'label' => __('maintenance::lang.tools_view'), 'default' => false], ['value' => 'maintenance.tools.create', 'label' => __('maintenance::lang.tools_create'), 'default' => false], ['value' => 'maintenance.tools.update', 'label' => __('maintenance::lang.tools_update'), 'default' => false], ['value' => 'maintenance.tools.delete', 'label' => __('maintenance::lang.tools_delete'), 'default' => false], ['value' => 'maintenance.materials.view', 'label' => __('maintenance::lang.materials_view'), 'default' => false], ['value' => 'maintenance.materials.manage', 'label' => __('maintenance::lang.materials_manage'), 'default' => false], ['value' => 'maintenance.materials.procure', 'label' => __('maintenance::lang.materials_procure'), 'default' => false], ['value' => 'maintenance.repair_dispatch.view', 'label' => __('maintenance::lang.repair_dispatch_view'), 'default' => false], ['value' => 'maintenance.repair_dispatch.manage', 'label' => __('maintenance::lang.repair_dispatch_manage'), 'default' => false], ['value' => 'maintenance.mission.view', 'label' => __('maintenance::lang.mission_view'), 'default' => false], ['value' => 'maintenance.mission.manage', 'label' => __('maintenance::lang.mission_manage'), 'default' => false], ['value' => 'maintenance.mission.issue', 'label' => __('maintenance::lang.mission_issue'), 'default' => false], ['value' => 'maintenance.mission.expense', 'label' => __('maintenance::lang.mission_expense'), 'default' => false], ]; } public function get_contact_view_tabs() { $module_util = new ModuleUtil(); $business_id = request()->session()->get('user.business_id'); if (! \Module::has('Maintenance') || ! \Module::isEnabled('Maintenance')) { return []; } if (! $module_util->isModuleInstalled('Maintenance') || ! $module_util->hasThePermissionInSubscription($business_id, 'maintenance_module')) { return []; } if (! auth()->user()->can('maintenance.equipment.view')) { return []; } return [ [ 'tab_menu_path' => 'maintenance::contact.partial.tab_menu', 'tab_content_path' => 'maintenance::contact.partial.tab_content', 'tab_data' => [], 'module_js_path' => 'maintenance::contact.partial.tab_js', ], ]; } public function modifyAdminMenu() { if (! \Module::has('Maintenance') || ! \Module::isEnabled('Maintenance')) { return; } $business_id = session()->get('user.business_id'); $module_util = new ModuleUtil(); $is_enabled = (bool) $module_util->isModuleInstalled('Maintenance'); if (! $is_enabled) { return; } $user = auth()->user(); if (! $user->can('maintenance.access') && ! $user->can('maintenance.view')) { return; } $hasSubscription = true; if ($module_util->isSuperadminInstalled()) { $hasSubscription = (bool) $module_util->hasThePermissionInSubscription($business_id, 'maintenance_module'); } if (! $hasSubscription) { return; } Menu::modify('admin-sidebar-menu', function ($menu) { $menu->dropdown( __('maintenance::lang.module_name'), function ($sub) { $user = auth()->user(); if ($user->can('maintenance.view') || $user->can('maintenance.access')) { $sub->url( action([DashboardController::class, 'index']), __('maintenance::lang.dashboard'), ['active' => request()->segment(1) == 'maintenance' && request()->segment(2) == 'dashboard'] ); } $sub->header(__('maintenance::lang.nav_group_assets')); if ($user->can('maintenance.equipment.view')) { $sub->url( action([EquipmentController::class, 'index']), __('maintenance::lang.equipment'), ['active' => request()->segment(2) == 'equipment'] ); } if ($user->can('maintenance.categories.view')) { $sub->url( action([EquipmentCategoryController::class, 'index']), __('maintenance::lang.categories'), ['active' => request()->segment(2) == 'equipment-categories'] ); } if ($user->can('maintenance.lines.view')) { $productionLineLabel = config('menu_consolidation.unified_production_line_labels', true) ? __('lang_v1.production_lines_equipment') : __('maintenance::lang.production_lines'); $sub->url( action([ProductionLineController::class, 'index']), $productionLineLabel, ['active' => request()->segment(2) == 'production-lines'] ); } $sub->header(__('maintenance::lang.nav_group_operations')); if ($user->can('maintenance.preventive.view')) { $sub->url( action([PreventiveScheduleController::class, 'index']), __('maintenance::lang.preventive'), ['active' => request()->segment(2) == 'preventive-schedules'] ); } if ($user->can('maintenance.overhaul.view')) { $sub->url( action([OverhaulController::class, 'index']), __('maintenance::lang.overhauls'), ['active' => request()->segment(2) == 'overhauls'] ); } if ($user->can('maintenance.rebuild.view')) { $sub->url( action([RebuildController::class, 'index']), __('maintenance::lang.rebuilds'), ['active' => request()->segment(2) == 'rebuilds'] ); } if ($user->can('maintenance.work_orders.view')) { $sub->url( action([WorkOrderController::class, 'index']), __('maintenance::lang.work_orders'), ['active' => request()->segment(2) == 'work-orders'] ); } if ($user->can('maintenance.inspections.view')) { $sub->url( action([InspectionVisitController::class, 'index']), __('maintenance::lang.inspection_visits'), ['active' => request()->segment(2) == 'inspection-visits'] ); } if ($user->can('maintenance.failures.view')) { $sub->url( action([FailureReportController::class, 'index']), __('maintenance::lang.failure_reports'), ['active' => request()->segment(2) == 'failure-reports'] ); } if ($user->can('maintenance.work_orders.view')) { $sub->url( action([ServiceRecordController::class, 'index']), __('maintenance::lang.service_records'), ['active' => request()->segment(2) == 'service-records'] ); } if ($user->can('maintenance.checklists.view')) { $sub->url( action([ChecklistController::class, 'index']), __('maintenance::lang.checklists'), ['active' => request()->segment(2) == 'checklists'] ); } if ($user->can('maintenance.mission.view')) { $sub->url( action([FieldMissionController::class, 'index']), __('maintenance::lang.field_missions'), ['active' => request()->segment(2) == 'field-missions'] ); $sub->url( action([DispatchBoardController::class, 'index']), __('maintenance::lang.dispatch_board'), ['active' => request()->segment(2) == 'dispatch-board'] ); } if ($user->can('maintenance.repair_dispatch.view')) { $sub->url( action([RepairDispatchController::class, 'index']), __('maintenance::lang.repair_dispatches'), ['active' => request()->segment(2) == 'repair-dispatches'] ); } if ($user->can('maintenance.view') || $user->can('maintenance.access')) { $sub->url( action([HealthController::class, 'index']), __('maintenance::lang.system_health'), ['active' => request()->segment(2) == 'health'] ); $sub->url( action([SettingsController::class, 'index']), __('maintenance::lang.settings'), ['active' => request()->segment(2) == 'settings'] ); } $sub->header(__('maintenance::lang.nav_group_inventory')); if ($user->can('maintenance.spare_parts.view')) { $sub->url( action([SparePartController::class, 'index']), __('maintenance::lang.spare_parts'), ['active' => request()->segment(2) == 'spare-parts'] ); } if ($user->can('maintenance.spare_parts.view')) { $sub->url( action([PartReplacementController::class, 'index']), __('maintenance::lang.part_replacements'), ['active' => request()->segment(2) == 'part-replacements'] ); } if ($user->can('maintenance.catalogs.view')) { $sub->url( action([PartCatalogController::class, 'index']), __('maintenance::lang.part_catalogs'), ['active' => request()->segment(2) == 'part-catalogs'] ); } if ($user->can('maintenance.providers.view')) { $sub->url( action([ServiceProviderController::class, 'index']), __('maintenance::lang.service_providers'), ['active' => request()->segment(2) == 'service-providers'] ); } if ($user->can('maintenance.tools.view')) { $sub->url( action([ToolController::class, 'index']), __('maintenance::lang.tools'), ['active' => request()->segment(2) == 'tools'] ); } if ($user->can('maintenance.equipment.view')) { $sub->url( action([ServiceContractController::class, 'index']), __('maintenance::lang.service_contracts'), ['active' => request()->segment(2) == 'service-contracts'] ); } $sub->header(__('maintenance::lang.nav_group_reports')); if ($user->can('maintenance.calendar.view')) { $sub->url( action([CalendarController::class, 'index']), __('maintenance::lang.calendar'), ['active' => request()->segment(2) == 'calendar'] ); } if ($user->can('maintenance.reports.view')) { $sub->url( action([ReportController::class, 'index']), __('maintenance::lang.reports'), ['active' => request()->segment(2) == 'reports'] ); } }, [ 'icon' => MenuIcons::svg('wrench'), 'active' => request()->segment(1) == 'maintenance', 'data-module' => 'Maintenance', 'data-menu-group' => 'engineering', ] )->order(87); }); } }