feat : complete ordering , add version 0.17.18.25

release
Amir Hossein Khademi 2024-02-26 18:16:29 +03:30
parent 4ae2dcfb39
commit 25ade7ce1c
12 changed files with 366 additions and 295 deletions

View File

@ -6,9 +6,6 @@
@inject IUserUtility UserUtility @inject IUserUtility UserUtility
@inject IDialogService DialogService @inject IDialogService DialogService
<head>
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
</head>
<MudDialog class="mx-auto"> <MudDialog class="mx-auto">
<DialogContent> <DialogContent>

View File

@ -34,10 +34,10 @@
<MudItem sm="9"> <MudItem sm="9">
<MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto.OrderDelivery.Address</MudField> <MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto?.OrderDelivery?.Address</MudField>
</MudItem> </MudItem>
<MudItem sm="3"> <MudItem sm="3">
<MudField Variant="Variant.Outlined" Label="روش ارسال">@ViewModel.PageDto.OrderDelivery.ShippingMethod</MudField> <MudField Variant="Variant.Outlined" Label="روش ارسال">@ViewModel.PageDto?.OrderDelivery?.ShippingMethod</MudField>
</MudItem> </MudItem>
</MudGrid> </MudGrid>
@ -180,18 +180,18 @@
<BaseButtonUi class="w-64 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing" <BaseButtonUi class="w-64 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
Icon="@Icons.Material.Outlined.AirportShuttle" Icon="@Icons.Material.Outlined.AirportShuttle"
Variant="Variant.Filled" Color="Color.Success" Variant="Variant.Filled" Color="Color.Success"
Content="ثبت ارسال سفارش" OnClickCallback="ViewModel.SubmitEditAsync" /> Content="@ViewModel.ConfirmOrderButtonText" OnClickCallback="ViewModel.SubmitConfirmAsync" />
<BaseButtonUi class="w-52 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing" <BaseButtonUi class="w-52 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
Icon="@Icons.Material.Outlined.RemoveCircle" Icon="@Icons.Material.Outlined.RemoveCircle"
Variant="Variant.Outlined" Color="Color.Error" Variant="Variant.Outlined" Color="Color.Error"
Content="لغو سفارش" OnClickCallback="ViewModel.SubmitEditAsync" /> Content="لغو سفارش" />
<MudSpacer /> <MudSpacer />
<BaseButtonUi class="w-52 h-12 rounded-md my-auto" IsProcessing="@ViewModel.IsProcessing" <BaseButtonUi class="w-52 h-12 rounded-md my-auto" IsProcessing="@ViewModel.IsProcessing"
Icon="@Icons.Material.Outlined.Print" Icon="@Icons.Material.Outlined.Print"
Size="Size.Small" Size="Size.Small"
Variant="Variant.Outlined" Color="Color.Info" Variant="Variant.Outlined" Color="Color.Info"
Content="چاپــ فاکتور" OnClickCallback="ViewModel.SubmitEditAsync" /> Content="چاپــ فاکتور" />
<MudButton Variant="Variant.Outlined" Size="Size.Medium" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton> <MudButton Variant="Variant.Outlined" Size="Size.Medium" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton>
</MudStack> </MudStack>
</DialogActions> </DialogActions>

View File

@ -36,6 +36,8 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
public void Cancel() => _mudDialog.Cancel(); public void Cancel() => _mudDialog.Cancel();
public string ConfirmOrderButtonText { get; set; } = string.Empty;
public bool IsEditing = false; public bool IsEditing = false;
@ -54,6 +56,23 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
var order = await _restWrapper.OrderRestApi.ReadOne(PageDto.Id, token); var order = await _restWrapper.OrderRestApi.ReadOne(PageDto.Id, token);
PageDto = order; PageDto = order;
switch (PageDto.OrderStatus)
{
case OrderStatus.Submitted:
ConfirmOrderButtonText = "ثبت پرداختی سفارش";
break;
case OrderStatus.Paid:
ConfirmOrderButtonText = "ثبت سفارش";
break;
case OrderStatus.Processing:
ConfirmOrderButtonText = "ثبت ارسال سفارش";
break;
case OrderStatus.Delivered:
ConfirmOrderButtonText = "ثبت انجام سفارش";
break;
default:
throw new ArgumentOutOfRangeException();
}
} }
catch (ApiException ex) catch (ApiException ex)
{ {
@ -74,11 +93,51 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
}; };
} }
public async Task SubmitEditAsync() public async Task SubmitConfirmAsync()
{ {
var options = new DialogOptions { CloseOnEscapeKey = true };
var parameters = new DialogParameters<QuestionDialog>();
parameters.Add(x => x.ContentText, "آیا از حذف دسته بندی اطمینان دارید ?");
var dialogReference = await _dialogService.ShowAsync<QuestionDialog>("حذف شرح حال", parameters, options);
var result = await dialogReference.Result;
if (!result.Canceled)
{
try try
{ {
var token = await _userUtility.GetBearerTokenAsync();
if (token == null)
throw new Exception("Token is null");
IsProcessing = true; IsProcessing = true;
OrderStatus nextOrderStatus = OrderStatus.Canceled;
switch (PageDto.OrderStatus)
{
case OrderStatus.OrderBag:
return;
break;
case OrderStatus.Submitted:
nextOrderStatus = OrderStatus.Paid;
break;
case OrderStatus.Paid:
nextOrderStatus = OrderStatus.Processing;
break;
case OrderStatus.Processing:
nextOrderStatus = OrderStatus.Delivered;
break;
case OrderStatus.Delivered:
nextOrderStatus = OrderStatus.Done;
break;
case OrderStatus.Done:
return;
break;
case OrderStatus.Canceled:
return;
break;
default:
throw new ArgumentOutOfRangeException();
}
await _restWrapper.OrderRestApi.ConfirmOrderStepAsync(PageDto.Id, nextOrderStatus, token);
_snackbar.Add($"ویرایش سفارش {PageDto.FactorCode} با موفقیت انجام شد", Severity.Success); _snackbar.Add($"ویرایش سفارش {PageDto.FactorCode} با موفقیت انجام شد", Severity.Success);
_mudDialog.Close(); _mudDialog.Close();
} }
@ -99,4 +158,6 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
IsProcessing = false; IsProcessing = false;
} }
} }
}
} }

View File

@ -7,10 +7,10 @@
<MudDialog class="mx-auto"> <MudDialog class="mx-auto">
<DialogContent> <DialogContent>
<MudContainer class="h-full"> <MudContainer class="h-full">
<MudTabs Outlined="true" Elevation="0" Rounded="true" Centered="true"> <MudTabs Outlined="true" Elevation="0" Rounded="true" Centered="true">
<MudTabPanel class="h-full" Text="اطلاعات کلی" Icon="@Icons.Material.Outlined.Info"> <MudTabPanel class="h-full" Text="اطلاعات کلی" Icon="@Icons.Material.Outlined.Info">
<div class="h-full"> <div class="h-full">
<MudStack Spacing="0" class="mt-4"> <MudStack Spacing="0" class="mt-4">
@ -106,8 +106,8 @@
</MudItem> </MudItem>
</MudGrid> </MudGrid>
</div> </div>
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="ویژگی های کلی" Icon="@Icons.Material.Outlined.AutoGraph"> <MudTabPanel Text="ویژگی های کلی" Icon="@Icons.Material.Outlined.AutoGraph">
<div class="min-h-[33rem]"> <div class="min-h-[33rem]">
<MudStack class="mt-4" Spacing="0"> <MudStack class="mt-4" Spacing="0">
@ -156,8 +156,8 @@
</MudItem> </MudItem>
</MudGrid> </MudGrid>
</div> </div>
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="توضیحات تکمیلی" Icon="@Icons.Material.Outlined.Article"> <MudTabPanel Text="توضیحات تکمیلی" Icon="@Icons.Material.Outlined.Article">
<div class="min-h-[33rem]"> <div class="min-h-[33rem]">
<MudStack class="mt-4" Spacing="0"> <MudStack class="mt-4" Spacing="0">
@ -173,8 +173,8 @@
</MudItem> </MudItem>
</MudGrid> </MudGrid>
</div> </div>
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="تـــــصاویر" Icon="@Icons.Material.Outlined.ImageSearch"> <MudTabPanel Text="تـــــصاویر" Icon="@Icons.Material.Outlined.ImageSearch">
<div class="min-h-[33rem]"> <div class="min-h-[33rem]">
<MudStack class="mt-4 mb-2" Spacing="0"> <MudStack class="mt-4 mb-2" Spacing="0">
@ -217,9 +217,9 @@
</MudStack> </MudStack>
</div> </div>
</MudTabPanel> </MudTabPanel>
<MudTabPanel Text="پیشنهاد ویژه" Icon="@Icons.Material.Outlined.LocalOffer"> <MudTabPanel Text="پیشنهاد ویژه" Icon="@Icons.Material.Outlined.LocalOffer">
<div class="min-h-[33rem]"> <div class="min-h-[33rem]">
<MudGrid> <MudGrid>
@ -262,11 +262,11 @@
</MudGrid> </MudGrid>
</div> </div>
</MudTabPanel> </MudTabPanel>
</MudTabs> </MudTabs>
</MudContainer> </MudContainer>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<MudStack Row="true" class="w-full h-fit mx-4 mb-3 bottom-0"> <MudStack Row="true" class="w-full h-fit mx-4 mb-3 bottom-0">
@if (ViewModel.IsEditing) @if (ViewModel.IsEditing)
@ -286,7 +286,7 @@
<MudSpacer /> <MudSpacer />
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton> <MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton>
</MudStack> </MudStack>
</DialogActions> </DialogActions>
</MudDialog> </MudDialog>
@code { @code {

View File

@ -1,16 +1,10 @@
@using NetinaShop.Common.Models.Exception @inject ISnackbar Snackbar
@using NetinaShop.Domain.CommandQueries.Commands
@using Radzen.Blazor
@inject ISnackbar Snackbar
@inject IRestWrapper RestWrapper @inject IRestWrapper RestWrapper
@inject IUserUtility UserUtility @inject IUserUtility UserUtility
<head>
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
</head>
<MudDialog class="mx-auto" DisableSidePadding="true"> <MudDialog class="mx-auto" DisableSidePadding="true">
<DialogContent> <DialogContent>
<MudStack> <MudStack class="mx-5 overflow-x-hidden overflow-y-hidden">
<MudDivider class="-mt-3" /> <MudDivider class="-mt-3" />
<MudStack Spacing="0"> <MudStack Spacing="0">
@ -49,7 +43,7 @@
</MudAutocomplete> </MudAutocomplete>
</MudItem> </MudItem>
<MudItem sm="12" lg="12" md="12"> <MudItem sm="12" lg="12" md="12">
<MudContainer class="max-h-[20rem] lg:max-h-[25rem] overflow-y-scroll"> <MudContainer class="max-h-[20rem] lg:max-h-[25rem] overflow-y-scroll overflow-x-hidden">
<MudStack class="mt-4 mb-2" Spacing="0"> <MudStack class="mt-4 mb-2" Spacing="0">
<MudText Typo="Typo.h6">توضیحات تکمیلی</MudText> <MudText Typo="Typo.h6">توضیحات تکمیلی</MudText>

View File

@ -3,8 +3,8 @@
public static class Address public static class Address
{ {
#if DEBUG #if DEBUG
//public static string BaseAddress = "http://localhost:32770/api"; public static string BaseAddress = "http://localhost:32770/api";
public static string BaseAddress = "https://api.vesmook.com/api"; //public static string BaseAddress = "https://api.vesmook.com/api";
#else #else
public static string BaseAddress = "https://api.vesmook.com/api"; public static string BaseAddress = "https://api.vesmook.com/api";
#endif #endif

View File

@ -19,7 +19,7 @@ public static class MainTheme
}, },
PaletteDark = new PaletteDark() PaletteDark = new PaletteDark()
{ {
Primary = "#001A46", Primary = "#E59F2E",
Secondary = "#E59F2E", Secondary = "#E59F2E",
} }
}; };

View File

@ -5,8 +5,8 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest> <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
<AssemblyVersion>0.17.16.23</AssemblyVersion> <AssemblyVersion>0.17.18.25</AssemblyVersion>
<FileVersion>0.17.16.23</FileVersion> <FileVersion>0.17.18.25</FileVersion>
<AssemblyName>$(MSBuildProjectName)</AssemblyName> <AssemblyName>$(MSBuildProjectName)</AssemblyName>
</PropertyGroup> </PropertyGroup>

View File

@ -7,4 +7,7 @@ public interface IOrderRestApi
[Get("/{id}")] [Get("/{id}")]
Task<OrderLDto> ReadOne(Guid id, [Header("Authorization")] string authorization); Task<OrderLDto> ReadOne(Guid id, [Header("Authorization")] string authorization);
[Post("/{id}/confirm")]
Task<bool> ConfirmOrderStepAsync(Guid id,[Query] OrderStatus nextOrderStatus , [Header("Authorization")] string authorization);
} }

View File

@ -1,5 +1,5 @@
{ {
"version": "0.17.16.23", "version": "0.17.18.25",
"versionNumber": 0.101623, "versionNumber": 0.101623,
"versionName": "چرتکه", "versionName": "چرتکه",
"description": "", "description": "",

View File

@ -1076,6 +1076,10 @@ input:checked + .toggle-bg {
margin-left: 1rem; margin-left: 1rem;
margin-right: 1rem; margin-right: 1rem;
} }
.mx-5 {
margin-left: 1.25rem;
margin-right: 1.25rem;
}
.mx-auto { .mx-auto {
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
@ -1437,6 +1441,9 @@ input:checked + .toggle-bg {
.overflow-x-hidden { .overflow-x-hidden {
overflow-x: hidden; overflow-x: hidden;
} }
.overflow-y-hidden {
overflow-y: hidden;
}
.overflow-x-scroll { .overflow-x-scroll {
overflow-x: scroll; overflow-x: scroll;
} }

View File

@ -1155,6 +1155,11 @@ input:checked + .toggle-bg {
margin-right: 1rem; margin-right: 1rem;
} }
.mx-5 {
margin-left: 1.25rem;
margin-right: 1.25rem;
}
.mx-auto { .mx-auto {
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
@ -1628,6 +1633,10 @@ input:checked + .toggle-bg {
overflow-x: hidden; overflow-x: hidden;
} }
.overflow-y-hidden {
overflow-y: hidden;
}
.overflow-x-scroll { .overflow-x-scroll {
overflow-x: scroll; overflow-x: scroll;
} }