diff --git a/src/BackOffice/BackOffice.csproj b/src/BackOffice/BackOffice.csproj index 23b45c5..cc3aef2 100644 --- a/src/BackOffice/BackOffice.csproj +++ b/src/BackOffice/BackOffice.csproj @@ -143,7 +143,7 @@ - + diff --git a/src/BackOffice/Pages/DiscountShop/Components/ChangeOrderStatusDialog.razor b/src/BackOffice/Pages/DiscountShop/Components/ChangeOrderStatusDialog.razor index b3d2e8b..51bffb5 100644 --- a/src/BackOffice/Pages/DiscountShop/Components/ChangeOrderStatusDialog.razor +++ b/src/BackOffice/Pages/DiscountShop/Components/ChangeOrderStatusDialog.razor @@ -26,6 +26,7 @@ در حال آماده‌سازی ارسال شده تحویل داده شده + آماده تحویل در دفتر لغو شده مرجوع شده @@ -55,6 +56,15 @@ } + @if (Model.Status == OrderStatus.ReadyForOfficePickup) + { + + + سفارش برای تحویل حضوری در دفتر آماده است. + + + } + @if (Model.Status == OrderStatus.Shipped) { @@ -126,8 +136,9 @@ OrderStatus.Processing => Color.Primary, OrderStatus.Shipped => Color.Secondary, OrderStatus.Delivered => Color.Success, - OrderStatus.Cancelled => Color.Error, - OrderStatus.Returned => Color.Dark, + OrderStatus.ReadyForOfficePickup => Color.Primary, + OrderStatus.Cancelled => Color.Dark, + OrderStatus.Returned => Color.Error, _ => Color.Default }; } @@ -141,6 +152,7 @@ OrderStatus.Processing => "در حال آماده‌سازی", OrderStatus.Shipped => "ارسال شده", OrderStatus.Delivered => "تحویل داده شده", + OrderStatus.ReadyForOfficePickup => "آماده تحویل در دفتر", OrderStatus.Cancelled => "لغو شده", OrderStatus.Returned => "مرجوع شده", _ => "نامشخص" diff --git a/src/BackOffice/Pages/DiscountShop/Components/OrderDetailsDialog.razor b/src/BackOffice/Pages/DiscountShop/Components/OrderDetailsDialog.razor index 81c3ec1..3b22e32 100644 --- a/src/BackOffice/Pages/DiscountShop/Components/OrderDetailsDialog.razor +++ b/src/BackOffice/Pages/DiscountShop/Components/OrderDetailsDialog.razor @@ -91,6 +91,7 @@ در حال آماده‌سازی ارسال شده تحویل داده شده + آماده تحویل در دفتر لغو شده مرجوع شده @@ -114,6 +115,12 @@ توجه: در صورت لغو یا مرجوعی سفارش، موجودی محصولات به انبار بازگردانده می‌شود. } + @if (_newStatus == OrderStatus.ReadyForOfficePickup) + { + + سفارش برای تحویل حضوری در دفتر آماده است. + + } @if (_newStatus == OrderStatus.Shipped) { diff --git a/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor b/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor index dafd690..802ed20 100644 --- a/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor +++ b/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor @@ -49,6 +49,8 @@ ارسال شده تحویل داده شده لغو شده + آماده تحویل در دفتر + مرجوع شده diff --git a/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor.cs b/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor.cs index e93e6fa..0dd0373 100644 --- a/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor.cs +++ b/src/BackOffice/Pages/DiscountShop/DiscountOrdersMainPage.razor.cs @@ -187,8 +187,9 @@ public partial class DiscountOrdersMainPage OrderStatus.Processing => Color.Primary, OrderStatus.Shipped => Color.Secondary, OrderStatus.Delivered => Color.Success, - OrderStatus.Cancelled => Color.Error, - OrderStatus.Returned => Color.Dark, + OrderStatus.Cancelled => Color.Dark, + OrderStatus.ReadyForOfficePickup => Color.Primary, + OrderStatus.Returned => Color.Error, _ => Color.Default }; } @@ -203,6 +204,7 @@ public partial class DiscountOrdersMainPage OrderStatus.Shipped => "ارسال شده", OrderStatus.Delivered => "تحویل داده شده", OrderStatus.Cancelled => "لغو شده", + OrderStatus.ReadyForOfficePickup => "آماده تحویل در دفتر", OrderStatus.Returned => "مرجوع شده", _ => "نامشخص" }; diff --git a/src/BackOffice/Pages/DiscountShop/SalesReports.razor b/src/BackOffice/Pages/DiscountShop/SalesReports.razor index aefabdd..a58b7af 100644 --- a/src/BackOffice/Pages/DiscountShop/SalesReports.razor +++ b/src/BackOffice/Pages/DiscountShop/SalesReports.razor @@ -48,6 +48,7 @@ در حال پردازش ارسال شده تحویل شده + آماده تحویل در دفتر لغو شده مرجوع شده @@ -498,7 +499,8 @@ OrderStatus.Processing => Color.Info, OrderStatus.Shipped => Color.Info, OrderStatus.Delivered => Color.Success, - OrderStatus.Cancelled => Color.Error, + OrderStatus.ReadyForOfficePickup => Color.Primary, + OrderStatus.Cancelled => Color.Dark, OrderStatus.Returned => Color.Error, _ => Color.Default }; @@ -513,6 +515,7 @@ OrderStatus.Processing => "در حال پردازش", OrderStatus.Shipped => "ارسال شده", OrderStatus.Delivered => "تحویل شده", + OrderStatus.ReadyForOfficePickup => "آماده تحویل در دفتر", OrderStatus.Cancelled => "لغو شده", OrderStatus.Returned => "مرجوع شده", _ => "نامشخص" diff --git a/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor b/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor index b62ec9c..f1d7a22 100644 --- a/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor +++ b/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor @@ -27,6 +27,8 @@ تحویل پست تحویل به مشتری مرجوع شده + لغو شده + آماده تحویل در دفتر @@ -56,6 +58,24 @@ } + @if (_newStatus == 5) + { + + + توجه: وضعیت «لغو شده» یعنی ارسال این سفارش متوقف شده است. + + + } + + @if (_newStatus == 6) + { + + + سفارش برای تحویل حضوری در دفتر آماده است. + + + } + @if (_newStatus == 2) { diff --git a/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor.cs b/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor.cs index cd1dea1..c22a23e 100644 --- a/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor.cs +++ b/src/BackOffice/Pages/UserOrder/Components/ChangeOrderStatusDialog.razor.cs @@ -37,6 +37,8 @@ public partial class ChangeOrderStatusDialog 2 => "تحویل پست", 3 => "تحویل به مشتری", 4 => "مرجوع شده", + 5 => "لغو شده", + 6 => "آماده تحویل در دفتر", _ => "بدون ارسال / نامشخص" }; } @@ -49,6 +51,8 @@ public partial class ChangeOrderStatusDialog 2 => Color.Info, 3 => Color.Success, 4 => Color.Error, + 5 => Color.Dark, + 6 => Color.Primary, _ => Color.Default }; } diff --git a/src/BackOffice/Pages/UserOrder/Components/UserOrderDetailsDialog.razor b/src/BackOffice/Pages/UserOrder/Components/UserOrderDetailsDialog.razor index 99434a8..8e0eba0 100644 --- a/src/BackOffice/Pages/UserOrder/Components/UserOrderDetailsDialog.razor +++ b/src/BackOffice/Pages/UserOrder/Components/UserOrderDetailsDialog.razor @@ -95,6 +95,8 @@ تحویل پست تحویل به مشتری مرجوع شده + لغو شده + آماده تحویل در دفتر Color.Info, // InTransit 3 => Color.Success, // Delivered 4 => Color.Error, // Returned + 5 => Color.Dark, // Cancelled + 6 => Color.Primary, // ReadyForOfficePickup _ => Color.Default // None / Unknown }; } @@ -71,6 +73,8 @@ public partial class UserOrderDetailsDialog 2 => "تحویل پست", 3 => "تحویل به مشتری", 4 => "مرجوع شده", + 5 => "لغو شده", + 6 => "آماده تحویل در دفتر", _ => "بدون ارسال / نامشخص" }; } diff --git a/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor b/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor index 3180253..917f8b6 100644 --- a/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor +++ b/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor @@ -46,6 +46,7 @@ تحویل به مشتری مرجوع شده لغو شده + آماده تحویل در دفتر diff --git a/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor.cs b/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor.cs index 8bc8042..a49698c 100644 --- a/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor.cs +++ b/src/BackOffice/Pages/UserOrder/OrderSalesReports.razor.cs @@ -215,7 +215,8 @@ public partial class OrderSalesReports 2 => Color.Info, 3 => Color.Success, 4 => Color.Error, - 5 => Color.Error, + 5 => Color.Dark, + 6 => Color.Primary, _ => Color.Default }; } @@ -229,6 +230,7 @@ public partial class OrderSalesReports 3 => "تحویل به مشتری", 4 => "مرجوع شده", 5 => "لغو شده", + 6 => "آماده تحویل در دفتر", _ => "بدون ارسال / نامشخص" }; } diff --git a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor index 306569c..64c4a5d 100644 --- a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor +++ b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor @@ -56,6 +56,7 @@ تحویل به مشتری مرجوع شده لغو شده + آماده تحویل در دفتر diff --git a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs index ddc90d0..2681678 100644 --- a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs +++ b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs @@ -213,6 +213,8 @@ public partial class UserOrderMainPage 2 => Color.Info, // InTransit 3 => Color.Success, // Delivered 4 => Color.Error, // Returned + 5 => Color.Dark, // Cancelled + 6 => Color.Primary, // ReadyForOfficePickup _ => Color.Default // None / Unknown }; } @@ -225,6 +227,8 @@ public partial class UserOrderMainPage 2 => "تحویل پست", 3 => "تحویل به مشتری", 4 => "مرجوع شده", + 5 => "لغو شده", + 6 => "آماده تحویل در دفتر", _ => "بدون ارسال / نامشخص" }; } diff --git a/src/BackOffice/Services/DiscountOrder/DiscountOrderService.cs b/src/BackOffice/Services/DiscountOrder/DiscountOrderService.cs index 8172bdc..4ce9555 100644 --- a/src/BackOffice/Services/DiscountOrder/DiscountOrderService.cs +++ b/src/BackOffice/Services/DiscountOrder/DiscountOrderService.cs @@ -201,12 +201,13 @@ public class DiscountOrderService : IDiscountOrderService return status switch { OrderStatus.Pending => ProtoDeliveryStatus.DeliveryPending, - OrderStatus.Paid => ProtoDeliveryStatus.DeliveryPending, // Paid but not processed yet + OrderStatus.Paid => ProtoDeliveryStatus.DeliveryPending, OrderStatus.Processing => ProtoDeliveryStatus.DeliveryProcessing, OrderStatus.Shipped => ProtoDeliveryStatus.DeliveryShipped, OrderStatus.Delivered => ProtoDeliveryStatus.DeliveryDelivered, OrderStatus.Cancelled => ProtoDeliveryStatus.DeliveryCancelled, - OrderStatus.Returned => ProtoDeliveryStatus.DeliveryCancelled, // Treat as cancelled + OrderStatus.ReadyForOfficePickup => ProtoDeliveryStatus.DeliveryReadyForOffice, + OrderStatus.Returned => ProtoDeliveryStatus.DeliveryReturned, _ => ProtoDeliveryStatus.DeliveryPending }; } @@ -222,6 +223,8 @@ public class DiscountOrderService : IDiscountOrderService ProtoDeliveryStatus.DeliveryShipped => OrderStatus.Shipped, ProtoDeliveryStatus.DeliveryDelivered => OrderStatus.Delivered, ProtoDeliveryStatus.DeliveryCancelled => OrderStatus.Cancelled, + ProtoDeliveryStatus.DeliveryReadyForOffice => OrderStatus.ReadyForOfficePickup, + ProtoDeliveryStatus.DeliveryReturned => OrderStatus.Returned, _ => OrderStatus.Pending }; } @@ -236,6 +239,8 @@ public class DiscountOrderService : IDiscountOrderService ProtoDeliveryStatus.DeliveryShipped => OrderStatus.Shipped, ProtoDeliveryStatus.DeliveryDelivered => OrderStatus.Delivered, ProtoDeliveryStatus.DeliveryCancelled => OrderStatus.Cancelled, + ProtoDeliveryStatus.DeliveryReadyForOffice => OrderStatus.ReadyForOfficePickup, + ProtoDeliveryStatus.DeliveryReturned => OrderStatus.Returned, _ => OrderStatus.Pending }; } diff --git a/src/BackOffice/Services/DiscountOrder/IDiscountOrderService.cs b/src/BackOffice/Services/DiscountOrder/IDiscountOrderService.cs index 826e479..2328c18 100644 --- a/src/BackOffice/Services/DiscountOrder/IDiscountOrderService.cs +++ b/src/BackOffice/Services/DiscountOrder/IDiscountOrderService.cs @@ -27,13 +27,14 @@ public class OrderFilterDto // For backward compatibility with UI - maps to proto DeliveryStatus public enum OrderStatus { - Pending = 0, // DELIVERY_PENDING - Paid = 1, // Not in proto - handle in service - Processing = 2, // DELIVERY_PROCESSING - Shipped = 3, // DELIVERY_SHIPPED - Delivered = 4, // DELIVERY_DELIVERED - Cancelled = 5, // DELIVERY_CANCELLED - Returned = 6 // Not in proto - handle in service + Pending = 0, // DELIVERY_PENDING + Paid = 1, // Not in proto - handle in service + Processing = 2, // DELIVERY_PROCESSING + Shipped = 3, // DELIVERY_SHIPPED + Delivered = 4, // DELIVERY_DELIVERED + Cancelled = 5, // DELIVERY_CANCELLED + Returned = 6, // DELIVERY_RETURNED + ReadyForOfficePickup = 7 // DELIVERY_READY_FOR_OFFICE } public class DiscountOrderDto