|
- <?php
-
- namespace App\Http\Controllers;
-
- use App\Models\Item;
- use App\Models\Location;
- use App\Models\Stock;
- use Framework\Routing\Router;
-
- class ShowDashboardController
- {
- public function handle(Router $router)
- {
- $items = Item::all();
- $stock = Stock::all();
-
- $totalsByItem = [];
-
- foreach ($stock as $row) {
- $totalsByItem[$row->item_id] = ($totalsByItem[$row->item_id] ?? 0) + $row->quantity;
- }
-
- $lowStockItems = array_values(array_filter($items, function ($item) use ($totalsByItem) {
- return $item->reorder_level > 0 && ($totalsByItem[$item->id] ?? 0) <= $item->reorder_level;
- }));
-
- foreach ($lowStockItems as $item) {
- $item->totalQuantity = $totalsByItem[$item->id] ?? 0;
- $item->route = $router->route('view-item', ['item' => $item->id]);
- }
-
- return view('dashboard', [
- 'locationCount' => count(Location::all()),
- 'itemCount' => count($items),
- 'totalStock' => array_sum(array_map(fn($row) => $row->quantity, $stock)),
- 'lowStockItems' => $lowStockItems,
- ]);
- }
- }
|