ultimatepos/Modules/ShopFloor/Http/Controllers/DashboardController.php

42 lines
1.3 KiB
PHP

<?php
namespace Modules\ShopFloor\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Modules\ShopFloor\Models\OeeSnapshot;
use Modules\ShopFloor\Models\ProductionEvent;
use Modules\ShopFloor\Models\WorkCenter;
use Modules\ShopFloor\Services\OeeCalculationService;
class DashboardController extends Controller
{
public function index(Request $request, OeeCalculationService $oeeService)
{
if (! auth()->user()->can('shopfloor.access')) {
abort(403);
}
$business_id = $request->session()->get('user.business_id');
$stats = $oeeService->dashboardStats($business_id);
$workCenters = WorkCenter::forBusiness($business_id)
->with(['lineTemplate', 'maintenanceEquipment'])
->orderBy('name')
->get();
$recentEvents = ProductionEvent::forBusiness($business_id)
->with(['workCenter', 'workOrder', 'recordedBy'])
->latest('recorded_at')
->limit(10)
->get();
$todayOee = OeeSnapshot::forBusiness($business_id)
->with('workCenter')
->where('snapshot_date', now()->toDateString())
->get();
return view('shopfloor::dashboard.index', compact('stats', 'workCenters', 'recentEvents', 'todayOee'));
}
}