156 lines
5.5 KiB
Plaintext
156 lines
5.5 KiB
Plaintext
@page "/EdiCustomerOrders"
|
|
|
|
@inject EdiCustomerOrderService EdiCustomerOrderService
|
|
@inject NavigationManager NavigationManager
|
|
@using SytelineSaAppEfDataModel.Dtos
|
|
@using FaKrosnoApi.Dtos
|
|
@using OrdersManagement.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ż tylko niezaksięgowane" />
|
|
</div>
|
|
</div>
|
|
<br />
|
|
@if (_isVisible)
|
|
{
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<Button Color="ButtonColor.Primary" @onclick="SendOrderToSyteLine">Księguj bieżący</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="20"
|
|
AllowSelection="true"
|
|
AllowRowClick="true"
|
|
OnRowDoubleClick="OnRowDoubleClick"
|
|
SelectedItemsChanged="SelectedItemsChanged">
|
|
|
|
<GridColumns>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="CO Number" PropertyName="CustomerOrderNumber">
|
|
@context.CustomerOrderNumber
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Customer Number" PropertyName="CustomerNumber">
|
|
@context.CustomerNumber
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Recipient" PropertyName="CustomerSequence">
|
|
@context.CustomerSequence
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Last Update Date" PropertyName="CreateDate">
|
|
@context.CreateDate
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Gate" PropertyName="Gate">
|
|
@context.Gate
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="RecipientCode" PropertyName="RecipientCode">
|
|
@context.RecipientCode
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="SellerCode" PropertyName="SellerCode">
|
|
@context.SellerCode
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="SenderCode" PropertyName="SenderCode">
|
|
@context.SenderCode
|
|
</GridColumn>
|
|
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="BuyerCode" PropertyName="BuyerCode">
|
|
@context.BuyerCode
|
|
</GridColumn>
|
|
</GridColumns>
|
|
</Grid>
|
|
</div>
|
|
|
|
<Modal @ref="_modal" Title="@_modalDto.Title">
|
|
<BodyTemplate>
|
|
@_modalDto.Body
|
|
</BodyTemplate>
|
|
<FooterTemplate>
|
|
<Button Color="ButtonColor.Primary" @onclick="OnHideModalClick">OK</Button>
|
|
</FooterTemplate>
|
|
</Modal>
|
|
|
|
@code {
|
|
Grid<EdiCustomerOrderDto>? _grid;
|
|
private IEnumerable<EdiCustomerOrderDto>? _ediCustomerOrders;
|
|
|
|
private EdiCustomerOrderDto? _selectedEdiCustomerOrder;
|
|
|
|
private Modal _modal = default!;
|
|
private ModalDto _modalDto = new(null, null);
|
|
|
|
private bool _isVisible;
|
|
private bool _filter;
|
|
|
|
private async Task<GridDataProviderResult<EdiCustomerOrderDto>> EdiCustomerOrdersDataProvider(GridDataProviderRequest<EdiCustomerOrderDto> request)
|
|
{
|
|
_ediCustomerOrders = await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>();
|
|
_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)
|
|
{
|
|
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<EdiCustomerOrderDto> 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();
|
|
}
|
|
|
|
}
|