42 lines
1.3 KiB
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'));
|
|
}
|
|
}
|