Added Sending to CustomerOrders more than one order (selected ones)
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<Button Color="ButtonColor.Primary" @onclick="SendOrderToSyteLine">Księguj bieżący</Button>
|
||||
<Button Color="ButtonColor.Primary" @onclick="SendOrderToSyteLine">@_text</Button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -37,6 +37,7 @@
|
||||
PageSize="20"
|
||||
AllowSelection="true"
|
||||
AllowRowClick="true"
|
||||
SelectionMode="GridSelectionMode.Multiple"
|
||||
OnRowDoubleClick="OnRowDoubleClick"
|
||||
SelectedItemsChanged="SelectedItemsChanged">
|
||||
|
||||
@@ -72,9 +73,22 @@
|
||||
</Grid>
|
||||
</div>
|
||||
|
||||
<Modal @ref="_modal" Title="@_modalDto.Title">
|
||||
<Modal @ref="_modal" Title="@_text">
|
||||
<BodyTemplate>
|
||||
@_modalDto.Body
|
||||
@if (_responses.Any(x => x.Status == 1))
|
||||
{
|
||||
foreach (ResponseDto response in _responses.Where(x => x.Status == 1))
|
||||
{
|
||||
<p>Zamówienie EDI @response.Identifier zostało poprawnie zaksięgowane w Zamówieniach klienta pod numerem '@response.ExternalIdentifier'</p>
|
||||
}
|
||||
}
|
||||
@if (_responses.Any(x => x.Status == 0))
|
||||
{
|
||||
foreach (ResponseDto response in _responses.Where(x => x.Status == 0))
|
||||
{
|
||||
<p>Błąd: Zamówienie EDI @response.Identifier nie zostało poprawnie zaksięgowane w Zamówieniach klienta.<br/>Lista błędów:<br/>@response.Message</p>
|
||||
}
|
||||
}
|
||||
</BodyTemplate>
|
||||
<FooterTemplate>
|
||||
<Button Color="ButtonColor.Primary" @onclick="OnHideModalClick">OK</Button>
|
||||
@@ -83,19 +97,22 @@
|
||||
|
||||
@code {
|
||||
Grid<EdiCustomerOrderDto>? _grid;
|
||||
private IEnumerable<EdiCustomerOrderDto>? _ediCustomerOrders;
|
||||
|
||||
private EdiCustomerOrderDto? _selectedEdiCustomerOrder;
|
||||
private List<EdiCustomerOrderDto> _ediCustomerOrders = new();
|
||||
private List<EdiCustomerOrderDto> _selectedEdiCustomerOrders = new();
|
||||
|
||||
private List<ResponseDto> _responses = new();
|
||||
|
||||
private Modal _modal = default!;
|
||||
private ModalDto _modalDto = new(null, null);
|
||||
|
||||
private bool _isVisible;
|
||||
private bool _filter;
|
||||
private bool _filter = true;
|
||||
|
||||
private string _text = "Księguj bieżący";
|
||||
|
||||
private async Task<GridDataProviderResult<EdiCustomerOrderDto>> EdiCustomerOrdersDataProvider(GridDataProviderRequest<EdiCustomerOrderDto> request)
|
||||
{
|
||||
_ediCustomerOrders = await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>();
|
||||
_ediCustomerOrders = (await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>()).ToList();
|
||||
_ediCustomerOrders = _ediCustomerOrders.OrderByDescending(x => x.CreateDate).ToList();
|
||||
|
||||
if (_filter)
|
||||
@@ -103,6 +120,8 @@
|
||||
_ediCustomerOrders = _ediCustomerOrders.Where(x => x.Posted == 0).ToList();
|
||||
}
|
||||
|
||||
_filter = true;
|
||||
|
||||
StateHasChanged();
|
||||
|
||||
return await Task.FromResult(request.ApplyTo(_ediCustomerOrders));
|
||||
@@ -115,30 +134,39 @@
|
||||
NavigationManager.NavigateTo($"/EdiCustomerOrder/{customerOrderId}");
|
||||
}
|
||||
|
||||
private async void SendOrderToSyteLine()
|
||||
private async Task<bool> SendOrderToSyteLine()
|
||||
{
|
||||
if (_selectedEdiCustomerOrder == null) return;
|
||||
if (!_selectedEdiCustomerOrders.Any()) return false;
|
||||
|
||||
ResponseDto response = await EdiCustomerOrderService.SendOrderToSyteline(_selectedEdiCustomerOrder.CustomerOrderNumber);
|
||||
_responses = new List<ResponseDto>();
|
||||
|
||||
if (response.Status == 1)
|
||||
foreach (EdiCustomerOrderDto selectedEdiCustomerOrder in _selectedEdiCustomerOrders)
|
||||
{
|
||||
_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();
|
||||
ResponseDto response = await EdiCustomerOrderService.SendOrderToSyteline(selectedEdiCustomerOrder.CustomerOrderNumber);
|
||||
|
||||
if (response.Status == 1)
|
||||
{
|
||||
response.ExternalIdentifier = selectedEdiCustomerOrder.EdiCustomerOrderTranslates.FirstOrDefault()?.CoCoNum;
|
||||
}
|
||||
|
||||
_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();
|
||||
_responses.Add(response);
|
||||
}
|
||||
|
||||
await _modal.ShowAsync();
|
||||
_grid?.RefreshDataAsync();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void SelectedItemsChanged(HashSet<EdiCustomerOrderDto> obj)
|
||||
{
|
||||
_selectedEdiCustomerOrder = obj.FirstOrDefault() ?? null;
|
||||
_isVisible = _selectedEdiCustomerOrder?.Posted == 0;
|
||||
_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()
|
||||
|
||||
Reference in New Issue
Block a user