@page "/EdiCustomerOrders"
@inject EdiCustomerOrderService EdiCustomerOrderService
@inject NavigationManager NavigationManager
@using SytelineSaAppEfDataModel.Dtos
@using FaKrosnoApi.Dtos
@using OrdersManagement.Dtos
@inherits LayoutComponentBase
Zamówienia Klienta EDI
@if (_isVisible)
{
}
@context.CustomerOrderNumber
@context.CustomerNumber
@context.CustomerSequence
@context.CreateDate
@context.Gate
@context.RecipientCode
@context.SellerCode
@context.SenderCode
@context.BuyerCode
@_modalDto.Body
@code {
Grid? _grid;
private IEnumerable? _ediCustomerOrders;
private EdiCustomerOrderDto? _selectedEdiCustomerOrder;
private Modal _modal = default!;
private ModalDto _modalDto = new(null, null);
private bool _isVisible;
private bool _filter;
private async Task> EdiCustomerOrdersDataProvider(GridDataProviderRequest request)
{
_ediCustomerOrders = await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List();
_ediCustomerOrders = _ediCustomerOrders.OrderByDescending(x => x.CreateDate).ToList();
if (_filter)
{
_ediCustomerOrders = _ediCustomerOrders.Where(x => x.Posted == 0).ToList();
}
StateHasChanged();
return await Task.FromResult(request.ApplyTo(_ediCustomerOrders));
}
private void OnRowDoubleClick(GridRowEventArgs obj)
{
string customerOrderId = obj.Item.CustomerOrderNumber;
NavigationManager.NavigateTo($"/EdiCustomerOrder/{customerOrderId}");
}
private async void SendOrderToSyteLine()
{
if (_selectedEdiCustomerOrder == null) return;
ResponseDto response = await EdiCustomerOrderService.SendOrderToSyteline(_selectedEdiCustomerOrder.CustomerOrderNumber);
if (response.Status == 1)
{
_modalDto = new ModalDto("Wysłano", $"Zamówienie EDI {_selectedEdiCustomerOrder.CustomerOrderNumber} zostało poprawnie zaksięgowane w Zamówieniach klienta pod numerem '{_selectedEdiCustomerOrder.EdiCustomerOrderTranslates.FirstOrDefault()?.CoCoNum}'");
await _modal.ShowAsync();
_grid?.RefreshDataAsync();
}
else
{
_modalDto = new ModalDto("Błąd", $"Zamówienie EDI {_selectedEdiCustomerOrder.CustomerOrderNumber} nie zostało poprawnie zaksięgowane w Zamówieniach klienta.{Environment.NewLine}Lista błędów:{Environment.NewLine}{response.Message}");
await _modal.ShowAsync();
}
}
private void SelectedItemsChanged(HashSet obj)
{
_selectedEdiCustomerOrder = obj.FirstOrDefault() ?? null;
_isVisible = _selectedEdiCustomerOrder?.Posted == 0;
}
private async Task OnHideModalClick()
{
await _modal.HideAsync();
}
private void FilterChanged(bool obj)
{
_filter = obj;
_grid?.RefreshDataAsync();
}
}