ultimatepos/Modules/Maintenance/Http/Controllers/DataController.php

374 lines
21 KiB
PHP

<?php
namespace Modules\Maintenance\Http\Controllers;
use App\Http\MenuIcons;
use App\Utils\ModuleUtil;
use Illuminate\Routing\Controller;
use Menu;
class DataController extends Controller
{
public function superadmin_package()
{
return [
[
'name' => '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);
});
}
}