@page "/CustomerOrder/{CustomerOrderId:guid}"
@inject CustomerOrderService CustomerOrderService
@inject ScheduleOrderService ScheduleOrderService
@using SytelineSaAppEfDataModel.Dtos
@using OrdersManagement.Components.Pages.Shared
@inherits LayoutComponentBase
Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum
Numer Zamówienia: @context.CoNum
Numer Zamówienia Klienta: @context.CustPo
Klient: @context.CustNum
Numer Odbiorcy: @context.CustSeq
Kontakt: @context.Contact
Telefon: @context.Phone
Data Zamówienia: @context.OrderDate.ToString("yyyy-MM-dd HH:mm:ss")
Warunki: @context.TermsCode
Wartość Brutto: @(context.Price?.ToString("F2") ?? "N/A")
Status: @context.TranslatedStatus
Magazyn: @context.Whse
VAT: @context.FrtTaxCode1
Typ Odbiorcy: @context.EndUserType
Kurs Wymiany: @(context.ExchRate?.ToString("F4") ?? "N/A")
Gate: @context.Uf_FKR_EDI_Gate
RecipientCode: @context.Uf_FKR_EDI_RecipientCode
SelletCode: @context.Uf_FKR_EDI_SellerCode
SenderCode: @context.Uf_FKR_EDI_SenderCode
BuyerCode: @context.Uf_FKR_EDI_BuyerCode
Typ Dokumentu: @context.Uf_DocType
@if (_isVisible)
{
Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum
}
Indeksy
@context.CoLine
@context.Item
@context.CustItem
@context.Description
@context.BlanketQty
@context.UM
@context.ContPrice
@context.TranslatedStatus
@if (_isVisibleCustomerOrderLine)
{
Szczegóły
Numer zamówienia: @context.CoNum
Linia: @context.CoLine
Pozycja: @context.Item
Pozycja Klienta: @context.CustItem
Opis: @context.Description
Łączna Ilość: @context.BlanketQty.ToString("F2")
Status: @context.TranslatedStatus
Cena: @(context.ContPrice?.ToString("F2") ?? "N/A")
Ważne Od: @(context.EffDate?.ToString("dd.MM.yyyy") ?? "N/A")
J/M: @context.UM
BoxType: @context.Uf_FKR_EDI_BLN_BoxType
Address: @context.Uf_FKR_EDI_BLN_Address
FinalDestination: @context.Uf_FKR_EDI_BLN_FinalDestination
QtyPerBox: @(context.Uf_FKR_EDI_BLN_QtyPerBox?.ToString() ?? "N/A")
Harmonogramy
@context.CoLine
@context.CoRelease
@context.Item
@context.CustItem
@context.QtyOrdered
@context.DueDate?.ToString("dd.MM.yyyy")
@context.TranslatedStatus
@if (_isVisibleCustomerOrderLineItem)
{
Szczegóły
Numer Zamówienia: @context.CoNum
Linia: @context.CoLine
Zwolnienie: @context.CoRelease
Pozycja: @context.Item
Pozycja Klienta: @context.CustItem
Łączna Ilość Sztuk: @(context.QtyOrdered.ToString("F2") ?? "N/A")
Cena: @(context.Price.ToString("F2") ?? "N/A")
Data Wykonania: @(context.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")
Data
Rejestracji: @(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")
Magazyn: @context.Whse
Typ Documentu: @context.Uf_FKR_EDI_ITEM_DocumentType
Kod VAT: @context.TaxCode1
J/M: @context.UM
Numer Klienta: @context.CoCustNum
Opis: @context.Description
Status: @context.TranslatedStatus
RoutingCode: @context.Uf_FKR_EDI_ITEM_RoutingCode
DeliveryCallNumber: @context.Uf_FKR_EDI_ITEM_DeliveryCallNum
UnloadingPoint: @context.Uf_LOC_11_UnloadingPoint
DestinationPoint: @context.Uf_LOC_159_DestinationPoint
PalletCode: @context.Uf_FKR_EDI_ITEM_PalletCode
}
}
@code {
[Parameter] public Guid CustomerOrderId { get; set; }
private List CustomerOrders { get; set; } = [];
private List _customerOrderLines = [];
private List _customerOrderLineItems = [];
private IEnumerable? _scheduleOrders;
private List _selectedCustomerOrderLine = [];
private List _selectedCustomerOrderLineItem = [];
private Grid? _customerOrderLinesGrid;
private Grid? _customerOrderLineItemsGrid;
private bool _isVisibleCustomerOrderLine;
private bool _isVisibleCustomerOrderLineItem;
private Grid _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);
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 obj)
{
_isVisibleCustomerOrderLine = obj.Any();
_selectedCustomerOrderLine = [obj.FirstOrDefault()];
_customerOrderLineItems = obj.FirstOrDefault()?.CustomerOrderLineItems.ToList() ?? [];
}
private void SelectedCustomerOrderLineItemChanged(HashSet obj)
{
_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 grid)
{
_gridRef = grid;
}
private async Task> ScheduleOrdersDataProvider(GridDataProviderRequest request)
{
_scheduleOrders = [];
IList scheduleOrderDetails = CustomerOrders?.FirstOrDefault()?.EdiCustomerOrderTranslates?.Select(x => x.ScheduleOrderId).Distinct().ToList() ?? [];
if (scheduleOrderDetails.Any())
{
_scheduleOrders = await ScheduleOrderService.GetScheduleOrdersAsync() ?? new List();
_scheduleOrders = _scheduleOrders.Where(x => scheduleOrderDetails.Contains(x.ID)).OrderByDescending(x => x.LastUpdateDate).ToList();
}
return await Task.FromResult(request.ApplyTo(_scheduleOrders));
}
}