Files
FA_WEB/OrdersManagement/Components/Pages/EdiCustomerOrder.razor

229 lines
14 KiB
Plaintext

@page "/Admin/PK/EdiCustomerOrder/{CustomerOrderId:guid}"
@inject EdiCustomerOrderService EdiCustomerOrderService
@inject NavigationManager NavigationManager
@inject CustomAuthenticationStateProvider CustomAuthenticationStateProvider
@using System.Security.Claims
@using Microsoft.AspNetCore.Authorization
@using SytelineSaAppEfDataModel.Dtos
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Cards
@inherits LayoutComponentBase
<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 klienta EDI nr @(EdiCustomerOrderDto?.CustomerOrderNumber ?? "Brak numeru")</h3>
</CardHeader>
<CardContent>
<SfCard CssClass="mb-4">
<CardContent>
<div class="row">
<div class="col">
<u>Numer zamówienia EDI:</u> <b>@EdiCustomerOrderDto?.CustomerOrderNumber</b><br/>
<u>Numer zamówienia Klienta:</u> <b>@EdiCustomerOrderDto?.CustomerPoNumber</b><br/>
<u>Numer klienta:</u> <b>@EdiCustomerOrderDto?.CustomerNumber</b><br/>
<u>Klient:</u> <b>@EdiCustomerOrderDto?.CustomerName</b><br/>
<u>Numer odbiorcy:</u> <b>@(EdiCustomerOrderDto?.CustomerSequence?.ToString() ?? "N/A")</b><br/>
<u>Data otrzymania:</u> <b>@(EdiCustomerOrderDto?.RecivedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Wysłano do Syteline?:</u> <b>@((EdiCustomerOrderDto?.Posted?.ToString() ?? "0") == "0" ? "NIE" : "TAK")</b><br/>
<u>Data wysyłki do Syteline:</u> <b>@(EdiCustomerOrderDto?.PostedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Data zamówienia:</u> <b>@(EdiCustomerOrderDto?.OrderDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
</div>
<div class="col">
<u>Cena:</u> <b>@(EdiCustomerOrderDto?.Price?.ToString("F2") ?? "N/A")</b><br/>
<u>Waga:</u> <b>@(EdiCustomerOrderDto?.Weight?.ToString("F2") ?? "N/A")</b><br/>
<u>Magazyn:</u> <b>@EdiCustomerOrderDto?.Warehouse</b><br/>
<u>Gate:</u> <b>@EdiCustomerOrderDto?.Gate</b><br/>
<u>Kod odbiorcy:</u> <b>@EdiCustomerOrderDto?.RecipientCode</b><br/>
<u>Kod wysyłającego:</u> <b>@EdiCustomerOrderDto?.SenderCode</b><br/>
<u>Kod sprzedawcy:</u> <b>@EdiCustomerOrderDto?.SellerCode</b><br/>
<u>Kod kupującego:</u> <b>@EdiCustomerOrderDto?.BuyerCode</b><br/>
<u>Typ dokumentu:</u> <b>@EdiCustomerOrderDto?.DocType</b><br/>
</div>
</div>
</CardContent>
</SfCard>
<h5 class="text-primary mb-3">Indeksy</h5>
<SfGrid @ref="_ediCustomerOrderLinesGrid"
AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
TValue="EdiCustomerOrderLineDto"
DataSource="@_ediCustomerOrderLines"
EnableAdaptiveUI="true">
<GridTemplates>
<DetailTemplate>
@{
var order = context as EdiCustomerOrderLineDto;
<SfCard CssClass="mb-4">
<CardContent>
<div class="row">
<h6>Szczegóły</h6>
<div class="col">
<u>Numer zamówienia EDI:</u> <b>@order?.CustomerOrderNumber</b><br/>
<u>Linia:</u> <b>@order?.CustomerOrderLine</b><br/>
<u>Pozycja:</u> <b>@order?.Item</b><br/>
<u>Pozycja Klienta:</u> <b>@order?.CustomerItemNumber</b><br/>
<u>Opis:</u> <b>@order?.Description</b><br/>
<u>Łączna Ilość:</u> <b>@(order?.BlanketQty?.ToString("F2") ?? "N/A")</b><br/>
<u>Status:</u> <b>@order?.TranslatedStatus</b><br/>
</div>
<div class="col">
<u>Cena:</u> <b>@(order?.ContPrice?.ToString("F2") ?? "N/A")</b><br/>
<u>Ważne Od:</u> <b>@(order?.EffectiveDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>J/M:</u> <b>@order?.Uom</b><br/>
<u>BoxType:</u> <b>@order?.BoxType</b><br/>
<u>Address:</u> <b>@order?.Address</b><br/>
<u>FinalDestination:</u> <b>@order?.FinalDestination</b><br/>
<u>QtyPerBox:</u> <b>@(order?.QtyPerBox?.ToString() ?? "N/A")</b>
</div>
</div>
</CardContent>
</SfCard>
}
</DetailTemplate>
</GridTemplates>
<GridColumns>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.CustomerOrderLine) HeaderText="Linia" Width="70"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.Item) HeaderText="Pozycja" Width="100"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.CustomerItemNumber) HeaderText="Pozycja Klienta" Width="120"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.Description) HeaderText="Opis" Width="200"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.BlanketQty) HeaderText="Ilość" TextAlign="TextAlign.Right" Width="100"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.Uom) HeaderText="J/M" Width="50"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.ContPrice) HeaderText="Cena" Width="100"></GridColumn>
<GridColumn Field=@nameof(EdiCustomerOrderLineDto.TranslatedStatus) HeaderText="Status" Width="100"></GridColumn>
</GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<GridEvents TValue="EdiCustomerOrderLineDto" RowSelected="OnSelectedLineRow"></GridEvents>
</SfGrid>
@if (_isVisibleEdiCustomerOrderLine)
{
<h5 class="text-primary mb-3 mt-4">Harmonogramy</h5>
<SfGrid @ref="_ediCustomerOrderLineItemsGrid"
TValue="EdiCustomerOrderLineItemDto"
DataSource="@_ediCustomerOrderLineItems"
AllowFiltering="true"
AllowPaging="true"
AllowSelection="true"
AllowSorting="true"
SelectionMode="Syncfusion.Blazor.Grids.SelectionMode.Single"
SelectedItemsChanged="SelectedCustomerOrderLineItemChanged">
<GridTemplates>
<DetailTemplate>
@{
var detailLineItem = context as EdiCustomerOrderLineItemDto;
<SfCard CssClass="mb-4">
<CardContent>
<div class="row">
<h6>Szczegóły</h6>
<div class="col">
<u>Numer Zamówienia:</u> <b>@detailLineItem?.CustomerOrderNumber</b><br/>
<u>Linia:</u> <b>@detailLineItem?.CustomerOrderLine</b><br/>
<u>Zwolnienie:</u> <b>@detailLineItem?.CustomerOrderRelease</b><br/>
<u>Pozycja:</u> <b>@detailLineItem?.Item</b><br/>
<u>Pozycja Klienta:</u> <b>@detailLineItem?.CustomerItem</b><br/>
<u>Łączna Ilość Sztuk:</u> <b>@(detailLineItem?.QtyOrdered?.ToString("F2") ?? "N/A")</b><br/>
<u>Cena:</u> <b>@(detailLineItem?.Price?.ToString("F2") ?? "N/A")</b><br/>
<u>Data Wykonania:</u> <b>@(detailLineItem?.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Data Rejestracji:</u> <b>@(detailLineItem?.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Magazyn:</u> <b>@detailLineItem?.Warehouse</b><br/>
<u>Typ Dokumentu:</u> <b>@detailLineItem?.DocumentType</b><br/>
</div>
<div class="col">
<u>Kod VAT:</u> <b>@detailLineItem?.TaxCodeOne</b><br/>
<u>J/M:</u> <b>@detailLineItem?.Uom</b><br/>
<u>Numer Klienta:</u> <b>@detailLineItem?.CustomerOrderCustomerNumber</b><br/>
<u>Opis:</u> <b>@detailLineItem?.Description</b><br/>
<u>Status:</u> <b>@detailLineItem?.TranslatedStatus</b><br/>
<u>RoutingCode:</u> <b>@detailLineItem?.RoutingCode</b><br/>
<u>DeliveryCallNumber:</u> <b>@detailLineItem?.DeliveryCallNumber</b><br/>
<u>UnloadingPoint:</u> <b>@detailLineItem?.UnloadingPoint</b><br/>
<u>DestinationPoint:</u> <b>@detailLineItem?.DestinationPoint</b><br/>
<u>PalletCode:</u> <b>@detailLineItem?.PalletCode</b><br/>
<u>PalletNumber:</u> <b>@detailLineItem?.PalletNumber</b>
</div>
</div>
</CardContent>
</SfCard>
}
</DetailTemplate>
</GridTemplates>
<Syncfusion.Blazor.Grids.GridColumns>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.CustomerOrderLine) HeaderText="Linia" Width="70"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.CustomerOrderRelease) HeaderText="Zwolnienie" Width="70"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.Item) HeaderText="Pozycja" Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.CustomerItem) HeaderText="Pozycja Klienta" Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.QtyOrdered) HeaderText="Łączna Ilość" TextAlign="TextAlign.Right" Width="120"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.DueDate) HeaderText="Data Wykonania" Width="100"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(EdiCustomerOrderLineItemDto.TranslatedStatus) HeaderText="Status" Width="100"></Syncfusion.Blazor.Grids.GridColumn>
</Syncfusion.Blazor.Grids.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 Guid CustomerOrderId { get; set; }
private EdiCustomerOrderDto? EdiCustomerOrderDto { get; set; }
private List<EdiCustomerOrderLineDto> _ediCustomerOrderLines = [];
private List<EdiCustomerOrderLineItemDto> _ediCustomerOrderLineItems = [];
EdiCustomerOrderLineDto? _selectedEdiCustomerOrderLine;
SfGrid<EdiCustomerOrderLineDto>? _ediCustomerOrderLinesGrid;
SfGrid<EdiCustomerOrderLineItemDto>? _ediCustomerOrderLineItemsGrid;
private bool _isVisibleEdiCustomerOrderLine;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
// ClaimsPrincipal currentUser = CustomAuthenticationStateProvider.GetCurrentUser();
//
// if (currentUser.Identity?.IsAuthenticated == false)
// {
// NavigationManager.NavigateTo("/Unauthorized");
// }
// else
// {
EdiCustomerOrderDto? ediCustomerOrder = await EdiCustomerOrderService.GetEdiCustomerOrderAsync(CustomerOrderId);
EdiCustomerOrderDto = ediCustomerOrder;
_ediCustomerOrderLines = ediCustomerOrder?.EdiCustomerOrderLines.ToList() ?? [];
StateHasChanged();
// }
}
}
private void OnSelectedLineRow<TValue>(RowSelectEventArgs<TValue> obj)
{
_isVisibleEdiCustomerOrderLine = obj.Data is not null;
_selectedEdiCustomerOrderLine = obj.Data as EdiCustomerOrderLineDto;
_ediCustomerOrderLineItems = _selectedEdiCustomerOrderLine?.EdiCustomerOrderLineItems.ToList() ?? [];
}
}