Files
star-erp/app/Http/Controllers/DashboardController.php
sky121113 32f993a6e1
All checks were successful
Koori-ERP-Deploy-System / deploy-demo (push) Successful in 55s
Koori-ERP-Deploy-System / deploy-production (push) Has been skipped
refactor: use DEMO_TENANT_PORT env var for demo logic isolation
2026-01-16 09:28:29 +08:00

40 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Product;
use App\Models\Vendor;
use App\Models\PurchaseOrder;
use App\Models\Warehouse;
use App\Models\Inventory;
use Inertia\Inertia;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
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');
}
$stats = [
'productsCount' => Product::count(),
'vendorsCount' => Vendor::count(),
'purchaseOrdersCount' => PurchaseOrder::count(),
'warehousesCount' => Warehouse::count(),
'totalInventoryValue' => Inventory::join('products', 'inventories.product_id', '=', 'products.id')
->sum('inventories.quantity'), // Simplified, maybe just sum quantities for now
'pendingOrdersCount' => PurchaseOrder::where('status', 'pending')->count(),
'lowStockCount' => Inventory::whereColumn('quantity', '<=', 'safety_stock')->count(),
];
return Inertia::render('Dashboard', [
'stats' => $stats,
]);
}
}