176 lines
6.0 KiB
Plaintext
176 lines
6.0 KiB
Plaintext
@page "/EdiCustomerOrders"
|
|
|
|
@inject EdiCustomerOrderService EdiCustomerOrderService
|
|
@inject NavigationManager NavigationManager
|
|
@using OrdersManagement.Dtos
|
|
@using SytelineSaAppEfDataModel.Dtos
|
|
@inherits LayoutComponentBase
|
|
|
|
<div class="row">
|
|
<h3>Zamówienia Klienta EDI</h3>
|
|
</div>
|
|
<br />
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<Switch ValueExpression="() => _filter" ValueChanged="FilterChanged" Label="Pokaż wszystkie" />
|
|
</div>
|
|
</div>
|
|
<br />
|
|
@if (_isVisible)
|
|
{
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<Button Color="ButtonColor.Primary" @onclick="SendOrderToSyteLine">@_text</Button>
|
|
</div>
|
|
</div>
|
|
}
|
|
<br />
|
|
<div class="row">
|
|
<Grid @ref="_grid"
|
|
TItem="EdiCustomerOrderDto"
|
|
Class="table table-hover table-bordered table-striped"
|
|
DataProvider="EdiCustomerOrdersDataProvider"
|
|
AllowFiltering="true"
|
|
Responsive="true"
|
|
AllowPaging="true"
|
|
PageSize="10"
|
|
AllowSelection="true"
|
|
AllowRowClick="true"
|
|
SelectionMode="GridSelectionMode.Multiple"
|
|
OnRowDoubleClick="OnRowDoubleClick"
|
|
SelectedItemsChanged="SelectedItemsChanged">
|
|
|
|
<GridColumns>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Numer Zamówienia" PropertyName="CustomerOrderNumber">
|
|
@context.CustomerOrderNumber
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Zamówienie Klienta" PropertyName="CustomerPoNumber">
|
|
@context.CustomerPoNumber
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Numer Klienta" PropertyName="CustomerNumber">
|
|
@context.CustomerNumber
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Klient" PropertyName="CustomerName">
|
|
@context.CustomerName
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Odbiorca" PropertyName="CustomerSequence">
|
|
@context.CustomerSequence
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Data Otrzymania" PropertyName="CreateDate">
|
|
@context.CreateDate
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Zamówienie SL" PropertyName="SlOrderNumber">
|
|
@context.SlOrderNumber
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Wysłane do SL" PropertyName="SentToSl">
|
|
@context.SentToSl
|
|
</GridColumn>
|
|
</GridColumns>
|
|
</Grid>
|
|
</div>
|
|
|
|
<Modal @ref="_modal" Title="@_text">
|
|
<BodyTemplate>
|
|
@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>
|
|
</FooterTemplate>
|
|
</Modal>
|
|
|
|
@code {
|
|
Grid<EdiCustomerOrderDto>? _grid;
|
|
private List<EdiCustomerOrderDto> _ediCustomerOrders = new();
|
|
private List<EdiCustomerOrderDto> _selectedEdiCustomerOrders = new();
|
|
|
|
private List<ResponseDto> _responses = new();
|
|
|
|
private Modal _modal = null!;
|
|
|
|
private bool _isVisible;
|
|
private bool _filter;
|
|
|
|
private string _text = "Księguj bieżący";
|
|
|
|
private async Task<GridDataProviderResult<EdiCustomerOrderDto>> EdiCustomerOrdersDataProvider(GridDataProviderRequest<EdiCustomerOrderDto> request)
|
|
{
|
|
_ediCustomerOrders = (await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>()).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<EdiCustomerOrderDto> obj)
|
|
{
|
|
Guid customerOrderId = obj.Item.RowPointer;
|
|
|
|
NavigationManager.NavigateTo($"/EdiCustomerOrder/{customerOrderId}");
|
|
}
|
|
|
|
private async Task<bool> SendOrderToSyteLine()
|
|
{
|
|
if (!_selectedEdiCustomerOrders.Any()) return false;
|
|
|
|
_responses = new List<ResponseDto>();
|
|
|
|
foreach (EdiCustomerOrderDto selectedEdiCustomerOrder in _selectedEdiCustomerOrders)
|
|
{
|
|
ResponseDto response = await EdiCustomerOrderService.SendOrderToSyteline(selectedEdiCustomerOrder.RowPointer, 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<EdiCustomerOrderDto> 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();
|
|
}
|
|
}
|