diff --git a/docs/CUSTOMER-SERVICES.md b/docs/CUSTOMER-SERVICES.md index 05ff8bd..41a173e 100644 --- a/docs/CUSTOMER-SERVICES.md +++ b/docs/CUSTOMER-SERVICES.md @@ -101,7 +101,6 @@ | 6.6 | `UserOrderContract.SubmitShopBuyOrder` | `UserOrderContract` | `/checkout-summary` | ثبت سفارش و پرداخت از کیف پول | | 6.7 | `OrderService.GetOrdersAsync` | `UserOrderContract.GetCustomerOrders` | `/orders` | لیست سفارش‌های کاربر | | 6.8 | `OrderService.GetOrderAsync` | `UserOrderContract.GetCustomerOrder` | `/order/{id}`, `/order-tracking/{id}` | جزئیات یک سفارش | -| 6.9 | `OrderService.CalculateOrderPVAsync` | `UserOrderContract.CalculateOrderPV` | `/order/{id}` | محاسبه PV سفارش | | 6.10 | `VATService.GetRateAsync` | `UserOrderContract` (via scope) | Store/Discount صفحات قیمت | نرخ مالیات بر ارزش افزوده (کش روزانه) | | 6.11 | `WalletService.GetBalancesAsync` | `UserWalletContract` | `/checkout-summary` | بررسی موجودی برای پرداخت سفارش | diff --git a/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor b/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor index beba9e2..c455966 100644 --- a/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor +++ b/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor @@ -22,9 +22,11 @@ else if (_addresses.Count == 0) { - هیچ آدرسی ثبت نشده است. لطفاً از بخش پروفایل آدرس خود را اضافه کنید. + هیچ آدرسی ثبت نشده است. می‌توانید همین‌جا آدرس جدید اضافه کنید. - افزودن آدرس + افزودن آدرس } else { @@ -41,13 +43,25 @@ @address.Title @address.Address - @if (address.IsDefault) - { - پیش‌فرض - } + + @if (address.IsDefault) + { + پیش‌فرض + } + + + + } + افزودن آدرس جدید } diff --git a/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor.cs b/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor.cs index 1185e0b..3068fb4 100644 --- a/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor.cs +++ b/src/FrontOffice.Main/Pages/DiscountStore/Checkout.razor.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Components; using CMSMicroservice.Protobuf.Protos.UserAddress; +using FrontOffice.Main.Pages.Profile.Components; using FrontOffice.Main.Utilities; using MudBlazor; @@ -61,12 +62,14 @@ public partial class Checkout else { _addresses = new(); + _selectedAddress = null; } } catch (Exception ex) { Snackbar.Add($"خطا در بارگذاری آدرس‌ها: {ex.Message}", Severity.Error); _addresses = new(); + _selectedAddress = null; } finally { @@ -75,6 +78,30 @@ public partial class Checkout } } + private async Task OpenAddAddressDialog() + { + var dialog = await DialogService.ShowAsync("افزودن آدرس جدید"); + var result = await dialog.Result; + if (result is { Canceled: false }) + { + await AuthService.RefreshTokenAsync(); + await LoadAddresses(); + } + } + + private async Task OpenEditAddressDialog(CustomerAddressModel address) + { + var dialog = await DialogService.ShowAsync("ویرایش آدرس", new DialogParameters + { + { x => x.Model, address } + }); + var result = await dialog.Result; + if (result is { Canceled: false }) + { + await LoadAddresses(); + } + } + private async Task PlaceOrder() { if (!CanPlaceOrder || _selectedAddress is null) diff --git a/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor b/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor index b894fb3..9fcf078 100644 --- a/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor +++ b/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor @@ -21,9 +21,11 @@ else if (_addresses.Count == 0) { - هیچ آدرسی ثبت نشده است. لطفاً از بخش پروفایل آدرس خود را اضافه کنید. + هیچ آدرسی ثبت نشده است. می‌توانید همین‌جا آدرس جدید اضافه کنید. - افزودن آدرس + افزودن آدرس } else { @@ -40,13 +42,25 @@ @address.Title @address.Address - @if (address.IsDefault) - { - پیش‌فرض - } + + @if (address.IsDefault) + { + پیش‌فرض + } + + + + } + افزودن آدرس جدید } diff --git a/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor.cs b/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor.cs index 0c8aedf..479c633 100644 --- a/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor.cs +++ b/src/FrontOffice.Main/Pages/Store/CheckoutSummary.razor.cs @@ -1,5 +1,6 @@ using CMSMicroservice.Protobuf.Protos.UserAddress; using CMSMicroservice.Protobuf.Protos.UserOrder; +using FrontOffice.Main.Pages.Profile.Components; using FrontOffice.Main.Shared; using FrontOffice.Main.Utilities; using Microsoft.AspNetCore.Components; @@ -72,12 +73,14 @@ public partial class CheckoutSummary : ComponentBase else { _addresses = new(); + _selectedAddress = null; } } catch (Exception ex) { Snackbar.Add($"خطا در بارگذاری آدرس‌ها: {ex.Message}", Severity.Error); _addresses = new(); + _selectedAddress = null; } finally { @@ -86,6 +89,30 @@ public partial class CheckoutSummary : ComponentBase } } + private async Task OpenAddAddressDialog() + { + var dialog = await DialogService.ShowAsync("افزودن آدرس جدید"); + var result = await dialog.Result; + if (result is { Canceled: false }) + { + await AuthService.RefreshTokenAsync(); + await LoadAddresses(); + } + } + + private async Task OpenEditAddressDialog(CustomerAddressModel address) + { + var dialog = await DialogService.ShowAsync("ویرایش آدرس", new DialogParameters + { + { x => x.Model, address } + }); + var result = await dialog.Result; + if (result is { Canceled: false }) + { + await LoadAddresses(); + } + } + private async Task PlaceOrder() { if (!CanPlaceOrder || _selectedAddress is null) diff --git a/src/FrontOffice.Main/Pages/Store/OrderDetail.razor b/src/FrontOffice.Main/Pages/Store/OrderDetail.razor index abfd053..d94751d 100644 --- a/src/FrontOffice.Main/Pages/Store/OrderDetail.razor +++ b/src/FrontOffice.Main/Pages/Store/OrderDetail.razor @@ -112,30 +112,6 @@ else } - - @* نمایش PV سفارش *@ - @if (_pvData != null && _pvData.TotalPv > 0) - { - - - - - امتیاز فروش (PV) - - @foreach (var product in _pvData.Products) - { - - @product.ProductTitle × @product.Quantity - @string.Format("{0:N0}", product.TotalPv) PV - - } - - - جمع PV: - @string.Format("{0:N0}", _pvData.TotalPv) PV - - - } diff --git a/src/FrontOffice.Main/Pages/Store/OrderDetail.razor.cs b/src/FrontOffice.Main/Pages/Store/OrderDetail.razor.cs index a8ed6fa..ec8abbf 100644 --- a/src/FrontOffice.Main/Pages/Store/OrderDetail.razor.cs +++ b/src/FrontOffice.Main/Pages/Store/OrderDetail.razor.cs @@ -12,17 +12,12 @@ public partial class OrderDetail : ComponentBase [Parameter] public long id { get; set; } private GetUserOrderResponse? _order; - private CalculateOrderPVResponse? _pvData; private bool _loading; protected override async Task OnParametersSetAsync() { _loading = true; _order = await OrderService.GetOrderAsync(id); - if (_order != null) - { - _pvData = await OrderService.CalculateOrderPVAsync(id); - } _loading = false; } @@ -52,4 +47,3 @@ public partial class OrderDetail : ComponentBase private static string GetProductImageUrl(string? imageUrl) => string.IsNullOrWhiteSpace(imageUrl) ? "/images/product-placeholder.svg" : imageUrl.TrimStart('/'); } - diff --git a/src/FrontOffice.Main/Utilities/OrderService.cs b/src/FrontOffice.Main/Utilities/OrderService.cs index 39d9cfb..5f3ca8f 100644 --- a/src/FrontOffice.Main/Utilities/OrderService.cs +++ b/src/FrontOffice.Main/Utilities/OrderService.cs @@ -97,22 +97,4 @@ public class OrderService return 0.10; } } - - /// - /// محاسبه PV سفارش - /// - public async Task CalculateOrderPVAsync(long orderId) - { - try - { - return await _userOrderContractClient.CalculateOrderPVAsync(new CalculateOrderPVRequest - { - OrderId = orderId - }); - } - catch - { - return null; - } - } } \ No newline at end of file