From 9f52c27f56d2f4324634dff39b21362f884b5a44 Mon Sep 17 00:00:00 2001 From: Ho Ngoc Hai Date: Thu, 26 Mar 2026 17:08:50 +0700 Subject: [PATCH] fix(pos-dashboard): show payment method names instead of order status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .../WebClientTpos.Client/Pages/Pos/Cafe/CafeDesktop.razor | 2 +- .../Application/Queries/GetPosDashboardQuery.cs | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Pos/Cafe/CafeDesktop.razor b/apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Pos/Cafe/CafeDesktop.razor index 87705eb7..0020cf6f 100644 --- a/apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Pos/Cafe/CafeDesktop.razor +++ b/apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Pos/Cafe/CafeDesktop.razor @@ -547,7 +547,7 @@ {
- @p.Method + @MapPaymentMethodLabel(p.Method) @FormatPrice(p.Amount)
diff --git a/services/order-service-net/src/OrderService.API/Application/Queries/GetPosDashboardQuery.cs b/services/order-service-net/src/OrderService.API/Application/Queries/GetPosDashboardQuery.cs index 5a180871..9f4622c4 100644 --- a/services/order-service-net/src/OrderService.API/Application/Queries/GetPosDashboardQuery.cs +++ b/services/order-service-net/src/OrderService.API/Application/Queries/GetPosDashboardQuery.cs @@ -140,18 +140,17 @@ public class GetPosDashboardQueryHandler : IRequestHandler(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(paymentSql, parameters, commandTimeout: 5)).AsList();