fix(pos-dashboard): show payment method names instead of order status
GetPosDashboardQuery payment breakdown SQL was grouping by order_statuses.name (e.g. "Completed") instead of orders.payment_method (e.g. "cash", "card", "qr", "transfer"). Fix: GROUP BY o.payment_method with COALESCE for empty values. Frontend: apply MapPaymentMethodLabel() to translate method names to Vietnamese (Tiền mặt, Thẻ, Mã QR, Chuyển khoản). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -547,7 +547,7 @@
|
||||
{
|
||||
<div class="pos-dashboard__payment-row">
|
||||
<div class="pos-dashboard__payment-header">
|
||||
<span>@p.Method</span>
|
||||
<span>@MapPaymentMethodLabel(p.Method)</span>
|
||||
<span style="font-weight:600;">@FormatPrice(p.Amount)</span>
|
||||
</div>
|
||||
<div class="pos-dashboard__payment-bar">
|
||||
|
||||
@@ -140,18 +140,17 @@ public class GetPosDashboardQueryHandler : IRequestHandler<GetPosDashboardQuery,
|
||||
|
||||
var popularItems = (await _connection.QueryAsync<PopularItemDto>(popularSql, parameters, commandTimeout: 5)).AsList();
|
||||
|
||||
// EN: Payment breakdown by status / VI: Phân tích theo trạng thái
|
||||
// EN: Payment breakdown by payment method / VI: Phân tích theo hình thức thanh toán
|
||||
var paymentSql = @"
|
||||
SELECT
|
||||
os.name AS Method,
|
||||
COALESCE(NULLIF(o.payment_method, ''), 'unknown') AS Method,
|
||||
COUNT(*) AS Count,
|
||||
COALESCE(SUM(o.total_amount), 0) AS Amount
|
||||
FROM orders o
|
||||
INNER JOIN order_statuses os ON o.status_id = os.id
|
||||
WHERE o.shop_id = @ShopId
|
||||
AND o.created_at >= @Today
|
||||
AND o.created_at < @Tomorrow
|
||||
GROUP BY os.name";
|
||||
GROUP BY COALESCE(NULLIF(o.payment_method, ''), 'unknown')";
|
||||
|
||||
var paymentBreakdown = (await _connection.QueryAsync<PaymentBreakdownDto>(paymentSql, parameters, commandTimeout: 5)).AsList();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user