49017027d0
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 2m20s
- Blog management pages (posts, categories) - Content management pages (site pages, sections) - Contract management pages - Discount shop improvements (order details, product form, categories) - Wallet management pages - Commission withdrawal details/reject dialogs - Orders hub, sales reports - System hub, global search, breadcrumb - Club features page, club hub - UI/UX improvements across all pages - AppBreadcrumb, GlobalSearch components - NavMenu updates and styling
268 lines
14 KiB
Plaintext
268 lines
14 KiB
Plaintext
@using BackOffice.Services.DiscountOrder
|
|
|
|
<MudDialog>
|
|
<TitleContent>
|
|
<MudText Typo="Typo.h6">
|
|
<MudIcon Icon="@Icons.Material.Filled.ShoppingCart" Class="ml-2" />
|
|
جزئیات سفارش #@Order.OrderNumber
|
|
</MudText>
|
|
</TitleContent>
|
|
<DialogContent>
|
|
<MudGrid>
|
|
<!-- اطلاعات کاربر -->
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.h6" GutterBottom="true">اطلاعات سفارش</MudText>
|
|
<MudGrid>
|
|
<MudItem xs="6">
|
|
<MudText Typo="Typo.body2" Color="Color.Secondary">شماره سفارش:</MudText>
|
|
<MudText Typo="Typo.body1"><strong>@Order.OrderNumber</strong></MudText>
|
|
</MudItem>
|
|
<MudItem xs="6">
|
|
<MudText Typo="Typo.body2" Color="Color.Secondary">شناسه کاربر:</MudText>
|
|
<MudText Typo="Typo.body1">@Order.UserId</MudText>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- Timeline وضعیت -->
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.subtitle2" GutterBottom="true">Timeline وضعیت</MudText>
|
|
<MudStack Row="true" Spacing="3" AlignItems="AlignItems.Center" Justify="Justify.Center">
|
|
@foreach (var step in _timelineSteps)
|
|
{
|
|
<MudStack Spacing="0" AlignItems="AlignItems.Center">
|
|
<MudAvatar Color="@GetStepColor(step.State)" Size="Size.Small">
|
|
@step.Icon
|
|
</MudAvatar>
|
|
<MudText Typo="Typo.caption">@step.Title</MudText>
|
|
</MudStack>
|
|
}
|
|
</MudStack>
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- وضعیت سفارش -->
|
|
<MudItem xs="12" sm="6">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.h6" GutterBottom="true">وضعیت سفارش</MudText>
|
|
<MudChip T="string" Color="@GetStatusColor(Order.Status)" Size="Size.Large">
|
|
@GetStatusText(Order.Status)
|
|
</MudChip>
|
|
@if (Order.Created.HasValue)
|
|
{
|
|
<MudText Typo="Typo.body2" Class="mt-2">
|
|
تاریخ ثبت: @Order.Created.Value.MiladiToJalaliWithTime()
|
|
</MudText>
|
|
}
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- وضعیت پرداخت -->
|
|
<MudItem xs="12" sm="6">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.h6" GutterBottom="true">وضعیت پرداخت</MudText>
|
|
@if (Order.PaymentCompleted)
|
|
{
|
|
<MudChip T="string" Color="Color.Success" Size="Size.Large" Icon="@Icons.Material.Filled.CheckCircle">
|
|
پرداخت شده
|
|
</MudChip>
|
|
@if (!string.IsNullOrEmpty(Order.TransactionId))
|
|
{
|
|
<MudText Typo="Typo.body2" Class="mt-2">
|
|
کد تراکنش: @Order.TransactionId
|
|
</MudText>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<MudChip T="string" Color="Color.Warning" Size="Size.Large" Icon="@Icons.Material.Filled.Schedule">
|
|
در انتظار پرداخت
|
|
</MudChip>
|
|
}
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- آدرس ارسال -->
|
|
@if (Order.Address != null)
|
|
{
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.h6" GutterBottom="true">
|
|
<MudIcon Icon="@Icons.Material.Filled.LocationOn" Size="Size.Small" />
|
|
آدرس ارسال
|
|
</MudText>
|
|
<MudText Typo="Typo.body1"><strong>@Order.Address.Title</strong></MudText>
|
|
<MudText Typo="Typo.body2">@Order.Address.Address</MudText>
|
|
<MudText Typo="Typo.body2">کد پستی: @Order.Address.PostalCode</MudText>
|
|
@if (!string.IsNullOrEmpty(Order.Address.Phone))
|
|
{
|
|
<MudText Typo="Typo.body2">تلفن: @Order.Address.Phone</MudText>
|
|
}
|
|
</MudPaper>
|
|
</MudItem>
|
|
}
|
|
|
|
<!-- آیتمهای سفارش -->
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.h6" GutterBottom="true">آیتمهای سفارش</MudText>
|
|
<MudTable Items="@Order.Items" Hover="true" Dense="true" Elevation="0">
|
|
<HeaderContent>
|
|
<MudTh>محصول</MudTh>
|
|
<MudTh>تعداد</MudTh>
|
|
<MudTh>قیمت واحد</MudTh>
|
|
<MudTh>تخفیف</MudTh>
|
|
<MudTh>قیمت نهایی</MudTh>
|
|
</HeaderContent>
|
|
<RowTemplate>
|
|
<MudTd>
|
|
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="2">
|
|
@if (!string.IsNullOrWhiteSpace(context.ThumbnailPath))
|
|
{
|
|
<MudImage Src="@context.ThumbnailPath" Width="40" Height="40"
|
|
ObjectFit="ObjectFit.Cover" Class="rounded" />
|
|
}
|
|
<MudText>@context.ProductTitle</MudText>
|
|
</MudStack>
|
|
</MudTd>
|
|
<MudTd>@context.Count</MudTd>
|
|
<MudTd>@context.UnitPrice.ToString("N0") ریال</MudTd>
|
|
<MudTd>
|
|
<MudChip T="string" Size="Size.Small" Color="Color.Success">@context.MaxDiscountPercent%</MudChip>
|
|
</MudTd>
|
|
<MudTd><strong>@context.FinalPrice.ToString("N0") ریال</strong></MudTd>
|
|
</RowTemplate>
|
|
</MudTable>
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- خلاصه مالی -->
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="2">
|
|
<MudText Typo="Typo.h6" GutterBottom="true">خلاصه مالی</MudText>
|
|
<MudGrid>
|
|
<MudItem xs="6">
|
|
<MudText Color="Color.Secondary">مبلغ کل:</MudText>
|
|
</MudItem>
|
|
<MudItem xs="6" Class="text-left">
|
|
<MudText>@Order.TotalPrice.ToString("N0") ریال</MudText>
|
|
</MudItem>
|
|
|
|
<MudItem xs="6">
|
|
<MudText Color="Color.Success">از کیف پول تخفیف:</MudText>
|
|
</MudItem>
|
|
<MudItem xs="6" Class="text-left">
|
|
<MudText Color="Color.Success">@Order.DiscountBalanceUsed.ToString("N0") ریال</MudText>
|
|
</MudItem>
|
|
|
|
<MudItem xs="12"><MudDivider /></MudItem>
|
|
|
|
<MudItem xs="6">
|
|
<MudText Typo="Typo.h6">مبلغ پرداختی از درگاه:</MudText>
|
|
</MudItem>
|
|
<MudItem xs="6" Class="text-left">
|
|
<MudText Typo="Typo.h6" Color="Color.Primary">
|
|
<strong>@Order.GatewayAmount.ToString("N0") ریال</strong>
|
|
</MudText>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- ویرایش وضعیت ارسال -->
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
<MudText Typo="Typo.subtitle2" GutterBottom="true">مدیریت وضعیت ارسال</MudText>
|
|
<MudDivider Class="mb-3" />
|
|
<MudGrid>
|
|
<MudItem xs="12" sm="6">
|
|
<MudSelect T="OrderStatus"
|
|
Label="وضعیت ارسال"
|
|
Dense="true"
|
|
Variant="Variant.Outlined"
|
|
@bind-Value="_newStatus">
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Pending">در انتظار پرداخت</MudSelectItem>
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Paid">پرداخت شده</MudSelectItem>
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Processing">در حال آمادهسازی</MudSelectItem>
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Shipped">ارسال شده</MudSelectItem>
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Delivered">تحویل داده شده</MudSelectItem>
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Cancelled">لغو شده</MudSelectItem>
|
|
<MudSelectItem T="OrderStatus" Value="@OrderStatus.Returned">مرجوع شده</MudSelectItem>
|
|
</MudSelect>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6">
|
|
<MudTextField T="string"
|
|
Label="کد رهگیری"
|
|
Variant="Variant.Outlined"
|
|
Dense="true"
|
|
@bind-Value="_trackingCode" />
|
|
</MudItem>
|
|
<MudItem xs="12">
|
|
<MudTextField T="string"
|
|
Label="یادداشت ادمین"
|
|
Variant="Variant.Outlined"
|
|
Dense="true"
|
|
Lines="3"
|
|
HelperText="دلیل تغییر وضعیت یا توضیحات اضافی"
|
|
@bind-Value="_adminNotes" />
|
|
</MudItem>
|
|
</MudGrid>
|
|
|
|
@if (_newStatus == OrderStatus.Cancelled || _newStatus == OrderStatus.Returned)
|
|
{
|
|
<MudAlert Severity="Severity.Warning" Class="mt-2">
|
|
توجه: در صورت لغو یا مرجوعی سفارش، موجودی محصولات به انبار بازگردانده میشود.
|
|
</MudAlert>
|
|
}
|
|
@if (_newStatus == OrderStatus.Shipped)
|
|
{
|
|
<MudAlert Severity="Severity.Info" Class="mt-2">
|
|
پس از تغییر وضعیت به "ارسال شده"، اطلاعرسانی به کاربر ارسال خواهد شد.
|
|
</MudAlert>
|
|
}
|
|
</MudPaper>
|
|
</MudItem>
|
|
|
|
<!-- یادداشتها -->
|
|
@if (!string.IsNullOrEmpty(Order.Notes) || !string.IsNullOrEmpty(Order.AdminNotes))
|
|
{
|
|
<MudItem xs="12">
|
|
<MudPaper Class="pa-4" Elevation="1">
|
|
@if (!string.IsNullOrEmpty(Order.Notes))
|
|
{
|
|
<MudText Typo="Typo.h6" GutterBottom="true">
|
|
<MudIcon Icon="@Icons.Material.Filled.Comment" Size="Size.Small" />
|
|
یادداشت کاربر
|
|
</MudText>
|
|
<MudText Typo="Typo.body1" Class="mb-4">@Order.Notes</MudText>
|
|
}
|
|
@if (!string.IsNullOrEmpty(Order.AdminNotes))
|
|
{
|
|
<MudText Typo="Typo.h6" GutterBottom="true">
|
|
<MudIcon Icon="@Icons.Material.Filled.Note" Size="Size.Small" />
|
|
یادداشت ادمین
|
|
</MudText>
|
|
<MudText Typo="Typo.body1">@Order.AdminNotes</MudText>
|
|
}
|
|
</MudPaper>
|
|
</MudItem>
|
|
}
|
|
</MudGrid>
|
|
</DialogContent>
|
|
<DialogActions>
|
|
<MudButton Variant="Variant.Outlined" Color="Color.Default" OnClick="Close">
|
|
بستن
|
|
</MudButton>
|
|
<MudButton Variant="Variant.Filled" Color="Color.Primary" OnClick="SaveAsync" Disabled="_isSaving">
|
|
@if (_isSaving)
|
|
{
|
|
<MudProgressCircular Size="Size.Small" Indeterminate="true" Class="ml-2" />
|
|
}
|
|
ثبت تغییرات
|
|
</MudButton>
|
|
</DialogActions>
|
|
</MudDialog>
|