167 lines
9.4 KiB
Plaintext
167 lines
9.4 KiB
Plaintext
@page "/ScheduleOrder/{ScheduleOrderId:int}"
|
||
|
||
@using System.Security.Claims
|
||
@using Microsoft.AspNetCore.Authorization
|
||
@using Syncfusion.Blazor.Grids
|
||
@using Syncfusion.Blazor.Lists
|
||
@using Syncfusion.Blazor.Cards
|
||
@inject ScheduleOrderService ScheduleOrderService
|
||
@inject NavigationManager NavigationManager
|
||
@inject CustomAuthenticationStateProvider CustomAuthenticationStateProvider
|
||
|
||
<div class="h-100 d-flex justify-content-center align-items-start">
|
||
<SfCard CssClass="shadow" style="width: 100%; max-width: 1200px;">
|
||
<CardHeader>
|
||
<h3 class="text-primary">Zamówienie DELFOR nr @(ScheduleOrderDto?.PONum ?? "Brak numeru") (ID: @ScheduleOrderDto?.ID)</h3>
|
||
</CardHeader>
|
||
<CardContent>
|
||
<SfListView Id="ScheduleOrderMiscs"
|
||
DataSource="@ScheduleOrderDto?.ScheduleOrderMiscs"
|
||
ShowHeader="false"
|
||
CssClass="e-list-template mb-4">
|
||
<ListViewFieldSettings TValue="ScheduleOrderMiscDto" Id="ScheduleOrderMiscListId" Text="Text"></ListViewFieldSettings>
|
||
<ListViewTemplates Context="item" TValue="ScheduleOrderMiscDto">
|
||
<Template>
|
||
<span class="e-list-content"><b>@item.Label:</b> @item.Value</span>
|
||
</Template>
|
||
</ListViewTemplates>
|
||
</SfListView>
|
||
|
||
<h5 class="text-primary mb-3">Indeksy</h5>
|
||
<SfGrid AllowFiltering="true"
|
||
AllowPaging="true"
|
||
AllowSorting="true"
|
||
AllowSelection="true"
|
||
TValue="ScheduleOrderDetailDto"
|
||
DataSource="@_scheduleOrderDetails"
|
||
EnableAdaptiveUI="true">
|
||
<GridTemplates>
|
||
<DetailTemplate>
|
||
@{
|
||
IList<ScheduleOrderDetailMiscDto>? scheduleOrderDetailMiscs = (@context as ScheduleOrderDetailDto)?.ScheduleOrderDetailMiscs;
|
||
IList<ScheduleOrderDetailDetailDto>? scheduleOrderDetailDetails = (@context as ScheduleOrderDetailDto)?.ScheduleOrderDetailDetails;
|
||
|
||
<SfListView Id="ScheduleOrderDetailMiscs"
|
||
DataSource="@scheduleOrderDetailMiscs"
|
||
ShowHeader="false"
|
||
CssClass="e-list-template mb-4">
|
||
<ListViewFieldSettings TValue="ScheduleOrderDetailMiscDto" Id="ScheduleOrderDetailMiscListId" Text="Text"></ListViewFieldSettings>
|
||
<ListViewTemplates Context="item" TValue="ScheduleOrderDetailMiscDto">
|
||
<Template>
|
||
<span class="e-list-content"><b>@item.Label:</b> @item.Value</span>
|
||
</Template>
|
||
</ListViewTemplates>
|
||
</SfListView>
|
||
|
||
<h5 class="text-primary mb-3">Harmonogramy</h5>
|
||
<SfGrid AllowFiltering="true"
|
||
AllowPaging="true"
|
||
AllowSorting="true"
|
||
AllowSelection="true"
|
||
TValue="ScheduleOrderDetailDetailDto"
|
||
DataSource="@scheduleOrderDetailDetails"
|
||
EnableAdaptiveUI="true"
|
||
AdaptiveUIMode="AdaptiveMode.Both">
|
||
<GridEvents TValue="ScheduleOrderDetailDetailDto" RowDataBound="OnRowDataBound"/>
|
||
<GridTemplates Context="detailDetail">
|
||
<DetailTemplate>
|
||
@{
|
||
IList<ScheduleOrderDetailDetailMiscDto>? scheduleOrderDetailDetailMiscs = (@detailDetail as ScheduleOrderDetailDetailDto)?.ScheduleOrderDetailDetailMiscs;
|
||
|
||
<SfListView Id="ScheduleOrderDetailDetailMiscs"
|
||
DataSource="@scheduleOrderDetailDetailMiscs"
|
||
ShowHeader="false"
|
||
CssClass="e-list-template mb-4">
|
||
<ListViewFieldSettings TValue="ScheduleOrderDetailDetailMiscDto" Id="ScheduleOrderDetailDetailMiscListId" Text="Text"></ListViewFieldSettings>
|
||
<ListViewTemplates Context="item" TValue="ScheduleOrderDetailDetailMiscDto">
|
||
<Template>
|
||
<span class="e-list-content"><b>@item.Label:</b> @item.Value</span>
|
||
</Template>
|
||
</ListViewTemplates>
|
||
</SfListView>
|
||
}
|
||
</DetailTemplate>
|
||
</GridTemplates>
|
||
<GridColumns>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.DateFrom) HeaderText="Data Od" Width="100"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.DateTo) HeaderText="Data Do" Width="100"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.Qty) TextAlign="TextAlign.Right" HeaderText="Ilość Sztuk" Width="50"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.QtyType) TextAlign="TextAlign.Right" HeaderText="Typ Qty" Width="50"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.QtyDesc) HeaderText="Opis Typu" Width="100"></GridColumn>
|
||
</GridColumns>
|
||
<GridFilterSettings Type="FilterType.Excel"/>
|
||
<GridPageSettings PageSize="10"/>
|
||
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
|
||
</SfGrid>
|
||
}
|
||
</DetailTemplate>
|
||
</GridTemplates>
|
||
<GridColumns>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDto.OrderNumber) HeaderText="Numer Zamówienia" Width="100"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDto.PurchaserName) HeaderText="Klient" Width="100"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDto.RecipientName) HeaderText="Odbiorca" Width="100"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDto.RecipientCode) HeaderText="Kod odbiorcy" Width="100" AllowFiltering="true"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sh_productCode) HeaderText="Pozycja" Width="100"></GridColumn>
|
||
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sc_productCode) HeaderText="Pozycja Klienta" Width="100"></GridColumn>
|
||
</GridColumns>
|
||
<GridFilterSettings Type="FilterType.Excel"/>
|
||
<GridPageSettings PageSize="10"/>
|
||
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
|
||
</SfGrid>
|
||
</CardContent>
|
||
<CardFooter>
|
||
<small class="text-muted">FA Krosno Manager © @(DateTime.Now.Year)</small>
|
||
</CardFooter>
|
||
</SfCard>
|
||
</div>
|
||
|
||
|
||
@code {
|
||
[Parameter] public int ScheduleOrderId { get; set; }
|
||
|
||
private IEnumerable<ScheduleOrderDetailDto>? _scheduleOrderDetails;
|
||
|
||
private ScheduleOrderDto? ScheduleOrderDto { get; set; }
|
||
|
||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||
{
|
||
if (firstRender)
|
||
{
|
||
// ClaimsPrincipal currentUser = CustomAuthenticationStateProvider.GetCurrentUser();
|
||
//
|
||
// if (currentUser.Identity?.IsAuthenticated == false)
|
||
// {
|
||
// NavigationManager.NavigateTo("/Unauthorized");
|
||
// }
|
||
// else
|
||
// {
|
||
ScheduleOrderDto = await ScheduleOrderService.GetScheduleOrderAsync(ScheduleOrderId);
|
||
|
||
_scheduleOrderDetails = ScheduleOrderDto?.ScheduleOrderDetails;
|
||
|
||
if (ScheduleOrderDto is not null && _scheduleOrderDetails is not null)
|
||
{
|
||
foreach (ScheduleOrderDetailDto scheduleOrderDetailDto in _scheduleOrderDetails)
|
||
{
|
||
scheduleOrderDetailDto.OrderNumber = ScheduleOrderDto?.PONum;
|
||
scheduleOrderDetailDto.RecipientCode = ScheduleOrderDto?.RecipientCode;
|
||
scheduleOrderDetailDto.RecipientName = ScheduleOrderDto?.RecipientName;
|
||
scheduleOrderDetailDto.PurchaserName = ScheduleOrderDto?.PurchaserCode;
|
||
}
|
||
// }
|
||
|
||
StateHasChanged();
|
||
}
|
||
}
|
||
}
|
||
|
||
private void OnRowDataBound(RowDataBoundEventArgs<ScheduleOrderDetailDetailDto> args)
|
||
{
|
||
if (args.Data.QtyType == "83" || args.Data.QtyType == "84")
|
||
{
|
||
args.Row.AddClass(["highlight-red"]);
|
||
}
|
||
}
|
||
|
||
}
|