Deploy Ladill Mini / deploy (push) Successful in 23s
Staff-facing counter register at pos.ladill.com with catalog cart, cash and MoMo/card checkout via Ladill Pay, CRM timeline/import, invoice prefill, and Merchant catalog import. Co-authored-by: Cursor <cursoragent@cursor.com>
44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Pos;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Controllers\Pos\Concerns\ScopesToAccount;
|
|
use App\Models\PosProduct;
|
|
use App\Models\PosSale;
|
|
use App\Services\Pos\PosLocationService;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\View\View;
|
|
|
|
class DashboardController extends Controller
|
|
{
|
|
use ScopesToAccount;
|
|
|
|
public function __construct(private PosLocationService $locations) {}
|
|
|
|
public function index(Request $request): View
|
|
{
|
|
$owner = $this->ownerRef($request);
|
|
$todayStart = now()->startOfDay();
|
|
|
|
$todaySales = PosSale::owned($owner)
|
|
->where('status', PosSale::STATUS_PAID)
|
|
->where('paid_at', '>=', $todayStart);
|
|
|
|
$stats = [
|
|
'today_total_minor' => (int) (clone $todaySales)->sum('total_minor'),
|
|
'today_count' => (clone $todaySales)->count(),
|
|
'product_count' => PosProduct::owned($owner)->active()->count(),
|
|
'open_pending' => PosSale::owned($owner)->where('status', PosSale::STATUS_PENDING)->count(),
|
|
];
|
|
|
|
$recentSales = PosSale::owned($owner)
|
|
->with('lines')
|
|
->latest()
|
|
->limit(8)
|
|
->get();
|
|
|
|
return view('pos.dashboard', compact('stats', 'recentSales'));
|
|
}
|
|
}
|