@page "/CustomerOrder/{CustomerOrderId:guid}"
@inject CustomerOrderService CustomerOrderService
@inject ScheduleOrderService ScheduleOrderService
@using SytelineSaAppEfDataModel.Dtos
@using OrdersManagement.Components.Pages.Shared
@using Syncfusion.Blazor.Grids
@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;
CustomerOrderLineDto? _selectedCustomerOrderLine;
CustomerOrderLineItemDto? _selectedCustomerOrderLineItem;
private SfGrid? _customerOrderLinesGrid;
private SfGrid? _customerOrderLineItemsGrid;
private bool _isVisibleCustomerOrderLine;
private bool _isVisibleCustomerOrderLineItem;
private SfGrid _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 async Task ShowLastDelfors()
{
if (_isVisible)
{
_isVisible = false;
_text = "Pokaż powiązane zamówienia DELFOR";
_scheduleOrders = [];
}
else
{
_scheduleOrders = await FetchScheduleOrdersAsync();
await _gridRef.Refresh();
StateHasChanged();
_isVisible = true;
_text = "Ukryj";
}
}
private async Task SetGridRef(SfGrid grid)
{
_gridRef = grid;
}
private async Task> FetchScheduleOrdersAsync()
{
_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 _scheduleOrders;
}
private void OnSelectedLineRow(RowSelectEventArgs obj)
{
_selectedCustomerOrderLine = obj.Data as CustomerOrderLineDto;
_isVisibleCustomerOrderLine = _selectedCustomerOrderLine != null;
_customerOrderLineItems = _selectedCustomerOrderLine?.CustomerOrderLineItems.ToList() ?? [];
}
private void OnSelectedLineItemRow(RowSelectEventArgs obj)
{
_selectedCustomerOrderLineItem = obj.Data as CustomerOrderLineItemDto;
_isVisibleCustomerOrderLineItem = _selectedCustomerOrderLineItem != null;
}
}