229 lines
13 KiB
Plaintext
229 lines
13 KiB
Plaintext
@page "/orders"
|
|
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
|
|
|
|
@inject IDialogService DialogService
|
|
@inject NavigationManager NavigationManager
|
|
@inject ISnackbar Snackbar
|
|
@inject IUserUtility UserUtility
|
|
@inject IRestWrapper RestWrapper
|
|
|
|
|
|
<MudStack class="px-3 md:p-5 lg:px-8 w-full h-screen overflow-x-hidden overflow-y-scroll bg-[--mud-palette-background-grey]">
|
|
|
|
<MudHidden Breakpoint="Breakpoint.Xs">
|
|
<MudGrid>
|
|
<MudItem xs="12" sm="6" lg="3">
|
|
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-4">سفارشات امروز</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>@ViewModel.PageDto.TodayOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" lg="3">
|
|
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-4">سفارشات در انتظار تایید</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-blue-600"><b>@ViewModel.PageDto.PayedOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" lg="3">
|
|
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-4">سفارشات ارسال نشده</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-lime-600"><b>@ViewModel.PageDto.UnSendOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" lg="3">
|
|
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-4">مجموع سفارش ماه</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-rose-600"><b>@ViewModel.PageDto.ThisMonthOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</MudHidden>
|
|
|
|
<MudHidden Breakpoint="Breakpoint.SmAndUp">
|
|
|
|
<MudStack Row="true" class="whitespace-nowrap overflow-x-scroll w-screen no-scrollbar">
|
|
|
|
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-6 ml-16">سفارشات امروز</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>@ViewModel.PageDto.TodayOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
|
|
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-6 ml-16">سفارشات در انتظار تایید</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-blue-600"><b>@ViewModel.PageDto.PayedOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
|
|
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-6 ml-16">سفارشات ارسال نشده</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-lime-600"><b>@ViewModel.PageDto.UnSendOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
|
|
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
|
<MudText Typo="Typo.body1" class="mb-6 ml-16">مجموع سفارش ماه</MudText>
|
|
<MudText Typo="Typo.h3" Align="Align.Center" class="text-rose-600"><b>@ViewModel.PageDto.ThisMonthOrdersCount</b></MudText>
|
|
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
|
</MudPaper>
|
|
</MudStack>
|
|
</MudHidden>
|
|
|
|
<MudGrid>
|
|
<MudItem xs="12">
|
|
|
|
<MudHidden Breakpoint="Breakpoint.SmAndUp">
|
|
<MudGrid class="mb-3" Row="true">
|
|
<MudItem xs="12" sm="6">
|
|
<MudTextField T="string" Placeholder="جست جو بر اساس کد فاکتور" OnClearButtonClick="@ViewModel.SearchAsync"
|
|
Adornment="Adornment.Start"
|
|
Immediate="true"
|
|
Clearable="true"
|
|
AdornmentIcon="@Icons.Material.Filled.Search"
|
|
IconSize="Size.Medium"
|
|
class="my-auto"
|
|
@bind-Value="@ViewModel.FactorCodeSearch"
|
|
OnAdornmentClick="@ViewModel.SearchAsync"></MudTextField>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6">
|
|
<MudSelect class="-mt-0.5" T="OrderStatus" Label="وظعیت سفارش" ToStringFunc="status => status.ToDisplay()" ValueChanged="@ViewModel.OrderStatusSearchChanged" Clearable="true" AnchorOrigin="Origin.BottomCenter">
|
|
<MudSelectItem Value="OrderStatus.Paid" />
|
|
<MudSelectItem Value="OrderStatus.Submitted" />
|
|
<MudSelectItem Value="OrderStatus.Delivered" />
|
|
<MudSelectItem Value="OrderStatus.Done" />
|
|
<MudSelectItem Value="OrderStatus.Canceled" />
|
|
</MudSelect>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</MudHidden>
|
|
<MudPaper class="!max-h-[80vh] overflow-auto">
|
|
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
|
T="OrderSDto" Items="@ViewModel.MainOrders" CurrentPage="@ViewModel.MainGridCurrentPage"
|
|
RowsPerPage="20" Filterable="false" Loading="@ViewModel.IsProcessing"
|
|
SortMode="@SortMode.None" Groupable="false">
|
|
|
|
<ToolBarContent>
|
|
<MudGrid class="md:visible collapse">
|
|
<MudItem md="6">
|
|
<MudTextField T="string" Placeholder="جست جو بر اساس کد فاکتور" OnClearButtonClick="@ViewModel.SearchAsync"
|
|
Adornment="Adornment.Start"
|
|
Immediate="true"
|
|
Clearable="true"
|
|
AdornmentIcon="@Icons.Material.Filled.Search"
|
|
IconSize="Size.Medium"
|
|
class="my-auto"
|
|
@bind-Value="@ViewModel.FactorCodeSearch"
|
|
OnAdornmentClick="@ViewModel.SearchAsync"></MudTextField>
|
|
</MudItem>
|
|
<MudItem md="6">
|
|
<MudSelect class="-mt-0.5" T="OrderStatus" Label="وظعیت سفارش" ToStringFunc="status => status.ToDisplay()" ValueChanged="@ViewModel.OrderStatusSearchChanged" Clearable="true" AnchorOrigin="Origin.BottomCenter">
|
|
<MudSelectItem Value="OrderStatus.Paid" />
|
|
<MudSelectItem Value="OrderStatus.Submitted" />
|
|
<MudSelectItem Value="OrderStatus.Delivered" />
|
|
<MudSelectItem Value="OrderStatus.Done" />
|
|
<MudSelectItem Value="OrderStatus.Canceled" />
|
|
</MudSelect>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</ToolBarContent>
|
|
<Columns>
|
|
<PropertyColumn Title="کد سفارش" Property="arg => arg.FactorCode" />
|
|
<PropertyColumn Title="نام خریدار" Property="arg => arg.CustomerFullName" />
|
|
<TemplateColumn T="OrderSDto" Title="تاریخ سفارش">
|
|
<CellTemplate>
|
|
<p>@context.Item.OrderAt.ToPersianDateTime().ToLongDateString()</p>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
|
|
<TemplateColumn T="OrderSDto" Title="تاریخ پرداخت">
|
|
<CellTemplate>
|
|
<p>@context.Item.PayedAt.ToPersianDateTime().ToLongDateString()</p>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
|
|
<TemplateColumn T="OrderSDto" Title="مبلغ سفارش ">
|
|
|
|
<CellTemplate>
|
|
<p>@context.Item.TotalPrice.ToString("N0") ریالــ</p>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
<TemplateColumn T="OrderSDto" Title="وضعیت سفارش">
|
|
|
|
<CellTemplate>
|
|
@switch (context.Item.OrderStatus)
|
|
{
|
|
case OrderStatus.OrderBag:
|
|
<MudChip Variant="Variant.Text" class="-my-4" Color="Color.Warning">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
case OrderStatus.Submitted:
|
|
<MudChip Variant="Variant.Text" class="-my-4" Color="Color.Warning">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
|
|
case OrderStatus.Paid:
|
|
<MudChip Variant="Variant.Filled" class="-my-4" Color="Color.Info">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
case OrderStatus.Processing:
|
|
<MudChip Variant="Variant.Filled" class="-my-4" Color="Color.Info">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
|
|
case OrderStatus.Delivered:
|
|
<MudChip Variant="Variant.Text" class="-my-4" Color="Color.Success">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
|
|
case OrderStatus.Done:
|
|
<MudChip Variant="Variant.Text" class="-my-4" Color="Color.Success">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
|
|
case OrderStatus.Canceled:
|
|
<MudChip Variant="Variant.Text" class="-my-4" Color="Color.Error">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
|
|
default:
|
|
<MudChip Variant="Variant.Text" class="-my-4" Color="Color.Warning">@context.Item.OrderStatus.ToDisplay()</MudChip>
|
|
break;
|
|
}
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
|
|
<TemplateColumn CellClass="d-flex justify-end">
|
|
<CellTemplate>
|
|
<MudStack Row="true">
|
|
<MudIconButton Icon="@Icons.Material.Filled.RemoveRedEye"
|
|
Size="@Size.Small"
|
|
Variant="@Variant.Outlined"
|
|
Color="@Color.Info"
|
|
OnClick="async () => await ViewModel.ShowClicked(context.Item)" />
|
|
</MudStack>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
</Columns>
|
|
<PagerContent>
|
|
<MudStack Row="true" class="w-full">
|
|
|
|
<MudPagination Rectangular="true" Variant="Variant.Filled" Count="@ViewModel.MainGridPageCount"
|
|
SelectedChanged="@ViewModel.ChangePageAsync" class="my-4 mx-auto" />
|
|
</MudStack>
|
|
|
|
</PagerContent>
|
|
</MudDataGrid>
|
|
</MudPaper>
|
|
</MudItem>
|
|
</MudGrid>
|
|
|
|
</MudStack>
|
|
|
|
|
|
@code
|
|
{
|
|
public OrdersPageViewModel ViewModel { get; set; }
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
ViewModel = new OrdersPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService);
|
|
await ViewModel.InitializeAsync();
|
|
await base.OnInitializedAsync();
|
|
}
|
|
} |