@page "/EdiCustomerOrders"
@inject EdiCustomerOrderService EdiCustomerOrderService
@inject NavigationManager NavigationManager
@using OrdersManagement.Dtos
@using SytelineSaAppEfDataModel.Dtos
@inherits LayoutComponentBase
Zamówienia Klienta EDI
@if (_isVisible)
{
}
@context.CustomerOrderNumber
@context.CustomerPoNumber
@context.CustomerNumber
@context.CustomerSequence
@context.CreateDate
@context.TranslatedStatus
@context.SlOrderNumber
@context.SentToSl
@if (_responses.Any(x => x.Status == 1))
{
foreach (ResponseDto response in _responses.Where(x => x.Status == 1))
{
Zamówienie EDI @response.Identifier zostało poprawnie zaksięgowane w Zamówieniach klienta pod numerem '@response.ExternalIdentifier'
}
}
@if (_responses.Any(x => x.Status == 0))
{
foreach (ResponseDto response in _responses.Where(x => x.Status == 0))
{
Błąd: Zamówienie EDI @response.Identifier nie zostało poprawnie zaksięgowane w Zamówieniach klienta.
Lista błędów:
@response.Message
}
}
@code {
Grid? _grid;
private List _ediCustomerOrders = new();
private List _selectedEdiCustomerOrders = new();
private List _responses = new();
private Modal _modal = null!;
private bool _isVisible;
private bool _filter;
private string _text = "Księguj bieżący";
private async Task> EdiCustomerOrdersDataProvider(GridDataProviderRequest request)
{
_ediCustomerOrders = (await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List()).ToList();
_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 Task SendOrderToSyteLine()
{
if (!_selectedEdiCustomerOrders.Any()) return false;
_responses = new List();
foreach (EdiCustomerOrderDto selectedEdiCustomerOrder in _selectedEdiCustomerOrders)
{
ResponseDto response = await EdiCustomerOrderService.SendOrderToSyteline(selectedEdiCustomerOrder.CustomerOrderNumber);
if (response.Status == 1)
{
response.ExternalIdentifier = selectedEdiCustomerOrder.EdiCustomerOrderTranslates.FirstOrDefault()?.CoCoNum;
}
_responses.Add(response);
}
await _modal.ShowAsync();
_grid?.RefreshDataAsync();
return true;
}
private void SelectedItemsChanged(HashSet obj)
{
_isVisible = false;
if (!obj.Any()) return;
_selectedEdiCustomerOrders = obj.ToList();
_isVisible = _selectedEdiCustomerOrders.Any(x => x.Posted == 0);
_text = obj.Count > 1 ? "Księguj zaznaczone" : "Księguj bieżący";
}
private async Task OnHideModalClick()
{
await _modal.HideAsync();
}
private void FilterChanged(bool obj)
{
_filter = obj;
_grid?.RefreshDataAsync();
}
}