Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

40 wiersze
1.1KB

  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Item;
  4. use App\Models\Location;
  5. use App\Models\Stock;
  6. use Framework\Routing\Router;
  7. class ShowDashboardController
  8. {
  9. public function handle(Router $router)
  10. {
  11. $items = Item::all();
  12. $stock = Stock::all();
  13. $totalsByItem = [];
  14. foreach ($stock as $row) {
  15. $totalsByItem[$row->item_id] = ($totalsByItem[$row->item_id] ?? 0) + $row->quantity;
  16. }
  17. $lowStockItems = array_values(array_filter($items, function ($item) use ($totalsByItem) {
  18. return $item->reorder_level > 0 && ($totalsByItem[$item->id] ?? 0) <= $item->reorder_level;
  19. }));
  20. foreach ($lowStockItems as $item) {
  21. $item->totalQuantity = $totalsByItem[$item->id] ?? 0;
  22. $item->route = $router->route('view-item', ['item' => $item->id]);
  23. }
  24. return view('dashboard', [
  25. 'locationCount' => count(Location::all()),
  26. 'itemCount' => count($items),
  27. 'totalStock' => array_sum(array_map(fn($row) => $row->quantity, $stock)),
  28. 'lowStockItems' => $lowStockItems,
  29. ]);
  30. }
  31. }

Powered by TurnKey Linux.