Files
star-erp/app/Modules/Core/Controllers/DashboardController.php

52 lines
1.8 KiB
PHP
Raw Normal View History

2026-01-06 16:17:12 +08:00
<?php
namespace App\Modules\Core\Controllers;
2026-01-06 16:17:12 +08:00
use App\Http\Controllers\Controller;
use App\Modules\Inventory\Contracts\InventoryServiceInterface;
use App\Modules\Procurement\Contracts\ProcurementServiceInterface;
2026-01-06 16:17:12 +08:00
use Inertia\Inertia;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
protected $inventoryService;
protected $procurementService;
public function __construct(
InventoryServiceInterface $inventoryService,
ProcurementServiceInterface $procurementService
) {
$this->inventoryService = $inventoryService;
$this->procurementService = $procurementService;
}
2026-01-06 16:17:12 +08:00
public function index()
{
$centralDomains = config('tenancy.central_domains', []);
$demoPort = config('tenancy.demo_tenant_port');
if ((!$demoPort || request()->getPort() != $demoPort) && in_array(request()->getHost(), $centralDomains)) {
return redirect()->route('landlord.dashboard');
}
$invStats = $this->inventoryService->getDashboardStats();
$procStats = $this->procurementService->getDashboardStats();
2026-01-22 15:39:35 +08:00
2026-01-06 16:17:12 +08:00
$stats = [
'productsCount' => $invStats['productsCount'],
'vendorsCount' => $procStats['vendorsCount'],
'purchaseOrdersCount' => $procStats['purchaseOrdersCount'],
'warehousesCount' => $invStats['warehousesCount'],
'totalInventoryValue' => $invStats['totalInventoryQuantity'], // 原本前端命名是 totalInventoryValue 但實作是 Quantity暫且保留欄位名以不破壞前端
'pendingOrdersCount' => $procStats['pendingOrdersCount'],
'lowStockCount' => $invStats['lowStockCount'],
2026-01-06 16:17:12 +08:00
];
return Inertia::render('Dashboard', [
'stats' => $stats,
]);
}
}