* Added DocType to Edi and CO

* Moved SOGrid to Shared and reuse in CO view
* Added retrieving of COTranslates to CO
This commit is contained in:
2025-02-03 19:41:35 +01:00
parent 96775b0c15
commit 177fce1fdf
11 changed files with 192 additions and 58 deletions

View File

@@ -1,13 +1,16 @@
@page "/CustomerOrder/{CustomerOrderId:guid}"
@inject CustomerOrderService CustomerOrderService
@inject ScheduleOrderService ScheduleOrderService
@using SytelineSaAppEfDataModel.Dtos
@using OrdersManagement.Components.Pages.Shared
@inherits LayoutComponentBase
<h3>Zamówienie klienta nr @_customerOrder?.FirstOrDefault()?.CoNum</h3>
<h3>Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum</h3>
<br/>
<div class="row">
<div class="col">
<SortableList TItem="CustomerOrderDto" Data="_customerOrder" Class="bg-light">
<SortableList TItem="CustomerOrderDto" Data="CustomerOrders" Class="bg-light">
<ItemTemplate>
<u>Numer Zamówienia:</u> <b>@context.CoNum</b><br/>
<u>Numer Zamówienia Klienta:</u> <b>@context.CustPo</b><br/>
@@ -23,7 +26,7 @@
</SortableList>
</div>
<div class="col">
<SortableList TItem="CustomerOrderDto" Data="_customerOrder" Class="bg-light">
<SortableList TItem="CustomerOrderDto" Data="CustomerOrders" Class="bg-light">
<ItemTemplate>
<u>Magazyn:</u> <b>@context.Whse</b><br/>
<u>VAT:</u> <b>@context.FrtTaxCode1</b><br/>
@@ -40,6 +43,23 @@
</div>
</div>
<br/>
<div class="row">
<div class="col-md-12">
<Button Color="ButtonColor.Primary" @onclick="ShowLastDelfors">@_text</Button>
</div>
</div>
<br/>
@if (_isVisible)
{
<div class="row">
<h3>Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum</h3>
</div>
<br/>
<div class="row">
<ScheduleOrdersGrid PageSize="5" PassGridRef="SetGridRef" DataProvider="ScheduleOrdersDataProvider"></ScheduleOrdersGrid>
</div>
<br/>
}
<div class="row">
<h3>Indeksy</h3>
</div>
@@ -137,7 +157,8 @@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Linia" PropertyName="CustomerOrderLine">
@context.CoLine
</GridColumn>
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Zwolnienie" PropertyName="CustomerOrderRelease">
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Zwolnienie"
PropertyName="CustomerOrderRelease">
@context.CoRelease
</GridColumn>
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="Item">
@@ -146,7 +167,8 @@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="CustomerItem">
@context.CustItem
</GridColumn>
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Łączna Ilość" TextAlignment="Alignment.End" PropertyName="QtyOrdered">
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Łączna Ilość" TextAlignment="Alignment.End"
PropertyName="QtyOrdered">
@context.QtyOrdered
</GridColumn>
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Data Wykonania" PropertyName="DueDate">
@@ -175,8 +197,10 @@
<u>Łączna Ilość Sztuk:</u>&emsp;<b>@(context.QtyOrdered.ToString("F2") ?? "N/A")</b><br/>
<u>Cena:</u>&emsp;<b>@(context.Price.ToString("F2") ?? "N/A")</b><br/>
<u>Data Wykonania:</u>&emsp;<b>@(context.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Data Rejestracji:</u>&emsp;<b>@(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Data
Rejestracji:</u>&emsp;<b>@(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Magazyn:</u>&emsp;<b>@context.Whse</b><br/>
<u>Typ Documentu:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_DocumentType</b><br/>
</ItemTemplate>
</SortableList>
</div>
@@ -203,25 +227,45 @@
@code {
[Parameter] public Guid CustomerOrderId { get; set; }
List<CustomerOrderDto?>? _customerOrder { get; set; }
List<CustomerOrderLineDto> _customerOrderLines = [];
List<CustomerOrderLineItemDto> _customerOrderLineItems = [];
private List<CustomerOrderDto> CustomerOrders { get; set; } = [];
private List<CustomerOrderLineDto> _customerOrderLines = [];
private List<CustomerOrderLineItemDto> _customerOrderLineItems = [];
List<CustomerOrderLineDto?> _selectedCustomerOrderLine = [];
List<CustomerOrderLineItemDto?> _selectedCustomerOrderLineItem = [];
private IEnumerable<ScheduleOrderDto>? _scheduleOrders;
Grid<CustomerOrderLineDto>? _customerOrderLinesGrid;
Grid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid;
private List<CustomerOrderLineDto?> _selectedCustomerOrderLine = [];
private List<CustomerOrderLineItemDto?> _selectedCustomerOrderLineItem = [];
private Grid<CustomerOrderLineDto>? _customerOrderLinesGrid;
private Grid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid;
private bool _isVisibleCustomerOrderLine;
private bool _isVisibleCustomerOrderLineItem;
private Grid<ScheduleOrderDto> _gridRef = new();
private bool _isVisible = true;
private string _text = "Pokaż powiązane zamówienia DELFOR";
protected override async Task OnInitializedAsync()
{
CustomerOrderDto? customerOrder = await CustomerOrderService.GetCustomerOrderAsync(CustomerOrderId);
_customerOrder = [customerOrder];
_customerOrderLines = customerOrder?.CustomerOrderLines.ToList() ?? [];
if (customerOrder != null)
{
CustomerOrders = [customerOrder];
_customerOrderLines = customerOrder.CustomerOrderLines.ToList() ?? [];
}
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await SetGridRef(_gridRef);
StateHasChanged();
_isVisible = false;
}
}
private void SelectedCustomerOrderLineChanged(HashSet<CustomerOrderLineDto> obj)
@@ -236,4 +280,41 @@
_isVisibleCustomerOrderLineItem = obj.Any();
_selectedCustomerOrderLineItem = [obj.FirstOrDefault()];
}
private async Task ShowLastDelfors()
{
if (_isVisible)
{
_isVisible = false;
_text = "Pokaż powiązane zamówienia DELFOR";
_scheduleOrders = [];
}
else
{
await _gridRef.RefreshDataAsync();
StateHasChanged();
_isVisible = true;
_text = "Ukryj";
}
}
private async Task SetGridRef(Grid<ScheduleOrderDto> grid)
{
_gridRef = grid;
}
private async Task<GridDataProviderResult<ScheduleOrderDto>> ScheduleOrdersDataProvider(GridDataProviderRequest<ScheduleOrderDto> request)
{
_scheduleOrders = [];
IList<int> scheduleOrderDetails = CustomerOrders?.FirstOrDefault()?.EdiCustomerOrderTranslates?.Select(x => x.ScheduleOrderId).Distinct().ToList() ?? [];
if (scheduleOrderDetails.Any())
{
_scheduleOrders = await ScheduleOrderService.GetScheduleOrdersAsync() ?? new List<ScheduleOrderDto>();
_scheduleOrders = _scheduleOrders.Where(x => scheduleOrderDetails.Contains(x.ID)).OrderByDescending(x => x.LastUpdateDate).ToList();
}
return await Task.FromResult(request.ApplyTo(_scheduleOrders));
}
}