* Migrated EdiCo and Co views to Syncfusion

This commit is contained in:
2025-02-07 07:28:07 +01:00
parent 9c4df2a2ed
commit 6800781fdb
5 changed files with 333 additions and 332 deletions

View File

@@ -193,7 +193,6 @@
<GridFilterSettings Type="FilterType.Excel"/> <GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/> <GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/> <GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<GridEvents TValue="CustomerOrderLineItemDto" RowSelected="OnSelectedLineItemRow"></GridEvents>
</SfGrid> </SfGrid>
} }
@@ -207,7 +206,6 @@
private IEnumerable<ScheduleOrderDto>? _scheduleOrders; private IEnumerable<ScheduleOrderDto>? _scheduleOrders;
CustomerOrderLineDto? _selectedCustomerOrderLine; CustomerOrderLineDto? _selectedCustomerOrderLine;
CustomerOrderLineItemDto? _selectedCustomerOrderLineItem;
private SfGrid<CustomerOrderLineDto>? _customerOrderLinesGrid; private SfGrid<CustomerOrderLineDto>? _customerOrderLinesGrid;
private SfGrid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid; private SfGrid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid;
@@ -283,9 +281,4 @@
_isVisibleCustomerOrderLine = _selectedCustomerOrderLine != null; _isVisibleCustomerOrderLine = _selectedCustomerOrderLine != null;
_customerOrderLineItems = _selectedCustomerOrderLine?.CustomerOrderLineItems.ToList() ?? []; _customerOrderLineItems = _selectedCustomerOrderLine?.CustomerOrderLineItems.ToList() ?? [];
} }
private void OnSelectedLineItemRow<TValue>(RowSelectEventArgs<TValue> obj)
{
_selectedCustomerOrderLineItem = obj.Data as CustomerOrderLineItemDto;
}
} }

View File

@@ -7,10 +7,7 @@
@inherits LayoutComponentBase @inherits LayoutComponentBase
<h5>Zamówienia Klienta</h5> <h5>Zamówienia Klienta</h5>
<SfGrid AllowFiltering="true"
<SfGrid @ref="_grid"
AllowFiltering="true"
AllowPaging="true" AllowPaging="true"
AllowSorting="true" AllowSorting="true"
AllowSelection="true" AllowSelection="true"
@@ -69,7 +66,6 @@
</SfGrid> </SfGrid>
@code { @code {
SfGrid<CustomerOrderDto>? _grid;
private IEnumerable<CustomerOrderDto>? _customerOrders; private IEnumerable<CustomerOrderDto>? _customerOrders;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()

View File

@@ -2,240 +2,209 @@
@inject EdiCustomerOrderService EdiCustomerOrderService @inject EdiCustomerOrderService EdiCustomerOrderService
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using BlazorBootstrap @using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Cards
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <h5>Zamówienie klienta nr @EdiCustomerOrderDto?.CustomerOrderNumber</h5>
<h3>Zamówienie Klienta EDI</h3> <SfCard>
</div> <CardContent>
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<SortableList TItem="EdiCustomerOrderDto" Data="_ediCustomerOrder"> <u>Numer zamówienia EDI:</u>&emsp;<b>@EdiCustomerOrderDto?.CustomerOrderNumber</b><br />
<ItemTemplate> <u>Numer zamówienia Klienta:</u>&emsp;<b>@EdiCustomerOrderDto?.CustomerPoNumber</b><br />
<u>Numer zamówienia EDI:</u>&emsp;<b>@context.CustomerOrderNumber</b><br /> <u>Numer klienta:</u>&emsp;<b>@EdiCustomerOrderDto?.CustomerNumber</b><br />
<u>Numer zamówienia Klienta:</u>&emsp;<b>@context.CustomerPoNumber</b><br /> <u>Klient:</u>&emsp;<b>@EdiCustomerOrderDto?.CustomerName</b><br />
<u>Numer klienta:</u>&emsp;<b>@context.CustomerNumber</b><br /> <u>Numer odbiorcy:</u>&emsp;<b>@(EdiCustomerOrderDto?.CustomerSequence?.ToString() ?? "N/A")</b><br />
<u>Klient:</u>&emsp;<b>@context.CustomerName</b><br /> <u>Data otrzymania:</u>&emsp;<b>@(EdiCustomerOrderDto?.RecivedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>Numer odbiorcy:</u>&emsp;<b>@(context.CustomerSequence?.ToString() ?? "N/A")</b><br /> <u>Wysłano do Syteline?:</u>&emsp;<b>@((EdiCustomerOrderDto?.Posted?.ToString() ?? "0") == "0" ? "NIE" : "TAK")</b><br />
<u>Data otrzymania:</u>&emsp;<b>@(context.RecivedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br /> <u>Data wysyłki do Syteline:</u>&emsp;<b>@(EdiCustomerOrderDto?.PostedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>Wysłano do Syteline?:</u>&emsp;<b>@((context.Posted?.ToString() ?? "0") == "0" ? "NIE" : "TAK")</b><br /> <u>Data zamówienia:</u>&emsp;<b>@(EdiCustomerOrderDto?.OrderDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>Data wysyłki do Syteline:</u>&emsp;<b>@(context.PostedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>Data zamówienia:</u>&emsp;<b>@(context.OrderDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
</ItemTemplate>
</SortableList>
</div> </div>
<div class="col"> <div class="col">
<SortableList TItem="EdiCustomerOrderDto" Data="_ediCustomerOrder" Class="bg-light"> <u>Cena:</u>&emsp;<b>@(EdiCustomerOrderDto?.Price?.ToString("F2") ?? "N/A")</b><br />
<ItemTemplate> <u>Waga:</u>&emsp;<b>@(EdiCustomerOrderDto?.Weight?.ToString("F2") ?? "N/A")</b><br />
<u>Cena:</u>&emsp;<b>@(context.Price?.ToString("F2") ?? "N/A")</b><br /> <u>Magazyn:</u>&emsp;<b>@EdiCustomerOrderDto?.Warehouse</b><br />
<u>Waga:</u>&emsp;<b>@(context.Weight?.ToString("F2") ?? "N/A")</b><br /> <u>Gate:</u>&emsp;<b>@EdiCustomerOrderDto?.Gate</b><br />
<u>Magazyn:</u>&emsp;<b>@context.Warehouse</b><br /> <u>Kod odbiorcy:</u>&emsp;<b>@EdiCustomerOrderDto?.RecipientCode</b><br />
<u>Gate:</u>&emsp;<b>@context.Gate</b><br /> <u>Kod wysyłającego:</u>&emsp;<b>@EdiCustomerOrderDto?.SenderCode</b><br />
<u>Kod odbiorcy:</u>&emsp;<b>@context.RecipientCode</b><br /> <u>Kod sprzedawcy:</u>&emsp;<b>@EdiCustomerOrderDto?.SellerCode</b><br />
<u>Kod wysyłającego:</u>&emsp;<b>@context.SenderCode</b><br /> <u>Kod kupującego:</u>&emsp;<b>@EdiCustomerOrderDto?.BuyerCode</b><br />
<u>Kod sprzedawcy:</u>&emsp;<b>@context.SellerCode</b><br /> <u>Typ dokumentu:</u>&emsp;<b>@EdiCustomerOrderDto?.DocType</b><br />
<u>Kod kupującego:</u>&emsp;<b>@context.BuyerCode</b><br />
<u>Typ dokumentu:</u>&emsp;<b>@context.DocType</b><br />
</ItemTemplate>
</SortableList>
</div> </div>
</div> </div>
</CardContent>
</SfCard>
<br/> <br/>
<div class="row"> <h5>Indeksy</h5>
<h3>Indeksy</h3> <SfGrid @ref="_ediCustomerOrderLinesGrid"
</div>
<div class="row">
<Grid @ref="_ediCustomerOrderLinesGrid"
TItem="EdiCustomerOrderLineDto"
Class="table table-hover table-bordered table-striped"
Data="_ediCustomerOrderLines"
AllowFiltering="true" AllowFiltering="true"
Responsive="true"
AllowPaging="true" AllowPaging="true"
PageSize="10" AllowSorting="true"
AllowSelection="true" AllowSelection="true"
AllowRowClick="true" TValue="EdiCustomerOrderLineDto"
SelectionMode="GridSelectionMode.Single" DataSource="@_ediCustomerOrderLines"
SelectedItemsChanged="SelectedEdiCustomerOrderLineChanged"> EnableAdaptiveUI="true">
<GridTemplates>
<DetailTemplate>
@{
var order = context as EdiCustomerOrderLineDto;
<SfCard>
<CardContent>
<div class="row">
<h6>Szczegóły</h6>
<div class="col">
<u>Numer zamówienia EDI:</u>&emsp;<b>@order?.CustomerOrderNumber</b><br />
<u>Linia:</u>&emsp;<b>@order?.CustomerOrderLine</b><br />
<u>Pozycja:</u>&emsp;<b>@order?.Item</b><br />
<u>Pozycja Klienta:</u>&emsp;<b>@order?.CustomerItemNumber</b><br />
<u>Opis:</u>&emsp;<b>@order?.Description</b><br />
<u>Łączna Ilość:</u>&emsp;<b>@(order?.BlanketQty?.ToString("F2") ?? "N/A")</b><br />
<u>Status:</u>&emsp;<b>@order?.TranslatedStatus</b><br />
</div>
<div class="col">
<u>Cena:</u>&emsp;<b>@(order?.ContPrice?.ToString("F2") ?? "N/A")</b><br />
<u>Ważne Od:</u>&emsp;<b>@(order?.EffectiveDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>J/M:</u>&emsp;<b>@order?.Uom</b><br />
<u>BoxType:</u>&emsp;<b>@order?.BoxType</b><br/>
<u>Address:</u>&emsp;<b>@order?.Address</b><br/>
<u>FinalDestination:</u>&emsp;<b>@order?.FinalDestination</b><br/>
<u>QtyPerBox:</u>&emsp;<b>@(order?.QtyPerBox?.ToString() ?? "N/A")</b>
</div>
</div>
</CardContent>
</SfCard>
}
</DetailTemplate>
</GridTemplates>
<GridColumns> <GridColumns>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Linia" PropertyName="CustomerOrderLine"> <GridColumn Field=@nameof(EdiCustomerOrderLineDto.CustomerOrderLine) HeaderText="Linia" Width="70"></GridColumn>
@context.CustomerOrderLine <GridColumn Field=@nameof(EdiCustomerOrderLineDto.Item) HeaderText="Pozycja" Width="100"></GridColumn>
</GridColumn> <GridColumn Field=@nameof(EdiCustomerOrderLineDto.CustomerItemNumber) HeaderText="Pozycja Klienta"
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Pozycja" PropertyName="Item"> Width="120"></GridColumn>
@context.Item <GridColumn Field=@nameof(EdiCustomerOrderLineDto.Description) HeaderText="Opis" Width="200"></GridColumn>
</GridColumn> <GridColumn Field=@nameof(EdiCustomerOrderLineDto.BlanketQty) HeaderText="Ilość" TextAlign="TextAlign.Right"
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Pozycja Klienta" PropertyName="CustomerItemNumber"> Width="100"></GridColumn>
@context.CustomerItemNumber <GridColumn Field=@nameof(EdiCustomerOrderLineDto.Uom) HeaderText="J/M" Width="50"></GridColumn>
</GridColumn> <GridColumn Field=@nameof(EdiCustomerOrderLineDto.ContPrice) HeaderText="Cena" Width="100"></GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Opis" PropertyName="Description"> <GridColumn Field=@nameof(EdiCustomerOrderLineDto.TranslatedStatus) HeaderText="Status"
@context.Description Width="100"></GridColumn>
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Ilość" TextAlignment="Alignment.End" PropertyName="BlanketQty">
@context.BlanketQty
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="J/M" PropertyName="Uom">
@context.Uom
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Cena" PropertyName="ContPrice">
@context.ContPrice
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Status" PropertyName="TranslatedStatus">
@context.TranslatedStatus
</GridColumn>
</GridColumns> </GridColumns>
</Grid> <GridFilterSettings Type="FilterType.Excel"/>
</div> <GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<GridEvents TValue="EdiCustomerOrderLineDto" RowSelected="OnSelectedLineRow"></GridEvents>
</SfGrid>
@if (_isVisibleEdiCustomerOrderLine) @if (_isVisibleEdiCustomerOrderLine)
{ {
<div class="row"> <br/>
<h3>Szczegóły</h3> <h5>Harmonogramy</h5>
</div> <SfGrid @ref="_ediCustomerOrderLineItemsGrid"
<div class="row"> TValue="EdiCustomerOrderLineItemDto"
<div class="col"> DataSource="@_ediCustomerOrderLineItems"
<SortableList TItem="EdiCustomerOrderLineDto" Data="_selectedEdiCustomerOrderLine">
<ItemTemplate>
<u>Numer zamówienia EDI:</u>&emsp;<b>@context.CustomerOrderNumber</b><br />
<u>Linia:</u>&emsp;<b>@context.CustomerOrderLine</b><br />
<u>Pozycja:</u>&emsp;<b>@context.Item</b><br />
<u>Pozycja Klienta:</u>&emsp;<b>@context.CustomerItemNumber</b><br />
<u>Opis:</u>&emsp;<b>@context.Description</b><br />
<u>Łączna Ilość:</u>&emsp;<b>@(context.BlanketQty?.ToString("F2") ?? "N/A")</b><br />
<u>Status:</u>&emsp;<b>@context.TranslatedStatus</b><br />
</ItemTemplate>
</SortableList>
</div>
<div class="col">
<SortableList TItem="EdiCustomerOrderLineDto" Data="_selectedEdiCustomerOrderLine">
<ItemTemplate>
<u>Cena:</u>&emsp;<b>@(context.ContPrice?.ToString("F2") ?? "N/A")</b><br />
<u>Ważne Od:</u>&emsp;<b>@(context.EffectiveDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>J/M:</u>&emsp;<b>@context.Uom</b><br />
<u>BoxType:</u>&emsp;<b>@context.BoxType</b><br/>
<u>Address:</u>&emsp;<b>@context.Address</b><br/>
<u>FinalDestination:</u>&emsp;<b>@context.FinalDestination</b><br/>
<u>QtyPerBox:</u>&emsp;<b>@(context.QtyPerBox?.ToString() ?? "N/A")</b>
</ItemTemplate>
</SortableList>
</div>
</div>
<br />
<h3>Harmonogramy</h3>
<div class="row">
<Grid @ref="_ediCustomerOrderLineItemsGrid"
TItem="EdiCustomerOrderLineItemDto"
Class="table table-hover table-bordered table-striped"
Data="_ediCustomerOrderLineItems"
AllowFiltering="true" AllowFiltering="true"
Responsive="true"
AllowPaging="true" AllowPaging="true"
PageSize="10"
AllowSelection="true" AllowSelection="true"
AllowRowClick="true" AllowSorting="true"
SelectionMode="GridSelectionMode.Single" SelectionMode="Syncfusion.Blazor.Grids.SelectionMode.Single"
SelectedItemsChanged="SelectedEdiCustomerOrderLineItemChanged"> SelectedItemsChanged="SelectedCustomerOrderLineItemChanged">
<GridColumns> <GridTemplates>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Linia" PropertyName="CustomerOrderLine"> <DetailTemplate>
@context.CustomerOrderLine @{
</GridColumn> var detailLineItem = context as EdiCustomerOrderLineItemDto;
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Zwolnienie" PropertyName="CustomerOrderRelease"> <SfCard>
@context.CustomerOrderRelease <CardContent>
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="Item">
@context.Item
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="CustomerItem">
@context.CustomerItem
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Łączna Ilość" TextAlignment="Alignment.End" PropertyName="QtyOrdered">
@context.QtyOrdered
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Data Wykonania" PropertyName="DueDate">
@context.DueDate?.ToString("dd.MM.yyyy")
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Status" PropertyName="TranslatedStatus">
@context.TranslatedStatus
</GridColumn>
</GridColumns>
</Grid>
</div>
}@if (_isVisibleEdiCustomerOrderLineItem)
{
<div class="row">
<h3>Szczegóły</h3>
</div>
<div class="row"> <div class="row">
<h6>Szczegóły</h6>
<div class="col"> <div class="col">
<SortableList TItem="EdiCustomerOrderLineItemDto" Data="_selectedEdiCustomerOrderLineItem"> <u>Numer Zamówienia:</u>&emsp;<b>@detailLineItem?.CustomerOrderNumber</b><br />
<ItemTemplate> <u>Linia:</u>&emsp;<b>@detailLineItem?.CustomerOrderLine</b><br />
<u>Numer Zamówienia:</u>&emsp;<b>@context.CustomerOrderNumber</b><br /> <u>Zwolnienie:</u>&emsp;<b>@detailLineItem?.CustomerOrderRelease</b><br />
<u>Linia:</u>&emsp;<b>@context.CustomerOrderLine</b><br /> <u>Pozycja:</u>&emsp;<b>@detailLineItem?.Item</b><br />
<u>Zwolnienie:</u>&emsp;<b>@context.CustomerOrderRelease</b><br /> <u>Pozycja Klienta:</u>&emsp;<b>@detailLineItem?.CustomerItem</b><br />
<u>Pozycja:</u>&emsp;<b>@context.Item</b><br /> <u>Łączna Ilość Sztuk:</u>&emsp;<b>@(detailLineItem?.QtyOrdered?.ToString("F2") ?? "N/A")</b><br />
<u>Pozycja Klienta:</u>&emsp;<b>@context.CustomerItem</b><br /> <u>Cena:</u>&emsp;<b>@(detailLineItem?.Price?.ToString("F2") ?? "N/A")</b><br />
<u>Łączna Ilość Sztuk:</u>&emsp;<b>@(context.QtyOrdered?.ToString("F2") ?? "N/A")</b><br /> <u>Data Wykonania:</u>&emsp;<b>@(detailLineItem?.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>Cena:</u>&emsp;<b>@(context.Price?.ToString("F2") ?? "N/A")</b><br /> <u>Data Rejestracji:</u>&emsp;<b>@(detailLineItem?.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br />
<u>Data Wykonania:</u>&emsp;<b>@(context.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br /> <u>Magazyn:</u>&emsp;<b>@detailLineItem?.Warehouse</b><br />
<u>Data Rejestracji:</u>&emsp;<b>@(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br /> <u>Typ Documentu:</u>&emsp;<b>@detailLineItem?.DocumentType</b><br />
<u>Magazyn:</u>&emsp;<b>@context.Warehouse</b><br />
<u>Typ Documentu:</u>&emsp;<b>@context.DocumentType</b><br />
</ItemTemplate>
</SortableList>
</div> </div>
<div class="col"> <div class="col">
<SortableList TItem="EdiCustomerOrderLineItemDto" Data="_selectedEdiCustomerOrderLineItem"> <u>Kod VAT:</u>&emsp;<b>@detailLineItem?.TaxCodeOne</b><br />
<ItemTemplate> <u>J/M:</u>&emsp;<b>@detailLineItem?.Uom</b><br />
<u>Kod VAT:</u>&emsp;<b>@context.TaxCodeOne</b><br /> <u>Numer Klienta:</u>&emsp;<b>@detailLineItem?.CustomerOrderCustomerNumber</b><br />
<u>J/M:</u>&emsp;<b>@context.Uom</b><br /> <u>Opis:</u>&emsp;<b>@detailLineItem?.Description</b><br />
<u>Numer Klienta:</u>&emsp;<b>@context.CustomerOrderCustomerNumber</b><br /> <u>Status:</u>&emsp;<b>@detailLineItem?.TranslatedStatus</b><br />
<u>Opis:</u>&emsp;<b>@context.Description</b><br /> <u>RoutingCode:</u>&emsp;<b>@detailLineItem?.RoutingCode</b><br />
<u>Status:</u>&emsp;<b>@context.TranslatedStatus</b><br /> <u>DeliveryCallNumber:</u>&emsp;<b>@detailLineItem?.DeliveryCallNumber</b><br />
<u>RoutingCode:</u>&emsp;<b>@context.RoutingCode</b><br /> <u>UnloadingPoint:</u>&emsp;<b>@detailLineItem?.UnloadingPoint</b><br />
<u>DeliveryCallNumber:</u>&emsp;<b>@context.DeliveryCallNumber</b><br /> <u>DestinationPoint:</u>&emsp;<b>@detailLineItem?.DestinationPoint</b><br />
<u>UnloadingPoint:</u>&emsp;<b>@context.UnloadingPoint</b><br /> <u>PalletCode:</u>&emsp;<b>@detailLineItem?.PalletCode</b><br />
<u>DestinationPoint:</u>&emsp;<b>@context.DestinationPoint</b><br /> <u>PalletNumber:</u>&emsp;<b>@detailLineItem?.PalletNumber</b>
<u>PalletCode:</u>&emsp;<b>@context.PalletCode</b><br />
<u>PalletNumber:</u>&emsp;<b>@context.PalletNumber</b>
</ItemTemplate>
</SortableList>
</div> </div>
</div> </div>
</CardContent>
</SfCard>
}
</DetailTemplate>
</GridTemplates>
<Syncfusion.Blazor.Grids.GridColumns>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CoLine) HeaderText="Linia"
Width="70"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CoRelease)
HeaderText="Zwolnienie" Width="70"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.Item) HeaderText="Pozycja"
Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CustItem)
HeaderText="Pozycja"
Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.QtyOrdered)
HeaderText="Łączna Ilość" TextAlign="TextAlign.Right"
Width="120"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.DueDate)
HeaderText="Data Wykonania" Width="100"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.TranslatedStatus)
HeaderText="Status"
Width="100"></Syncfusion.Blazor.Grids.GridColumn>
</Syncfusion.Blazor.Grids.GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
</SfGrid>
} }
@code { @code {
[Parameter] public Guid CustomerOrderId { get; set; }
[Parameter] private EdiCustomerOrderDto? EdiCustomerOrderDto { get; set; }
public Guid CustomerOrderId { get; set; } private List<EdiCustomerOrderLineDto> _ediCustomerOrderLines = [];
private List<EdiCustomerOrderLineItemDto> _ediCustomerOrderLineItems = [];
List<EdiCustomerOrderDto?>? _ediCustomerOrder; EdiCustomerOrderLineDto? _selectedEdiCustomerOrderLine;
List<EdiCustomerOrderLineDto> _ediCustomerOrderLines = [];
List<EdiCustomerOrderLineItemDto> _ediCustomerOrderLineItems = [];
List<EdiCustomerOrderLineDto?> _selectedEdiCustomerOrderLine = []; SfGrid<EdiCustomerOrderLineDto>? _ediCustomerOrderLinesGrid;
List<EdiCustomerOrderLineItemDto?> _selectedEdiCustomerOrderLineItem = []; SfGrid<EdiCustomerOrderLineItemDto>? _ediCustomerOrderLineItemsGrid;
Grid<EdiCustomerOrderLineDto>? _ediCustomerOrderLinesGrid;
Grid<EdiCustomerOrderLineItemDto>? _ediCustomerOrderLineItemsGrid;
private bool _isVisibleEdiCustomerOrderLine; private bool _isVisibleEdiCustomerOrderLine;
private bool _isVisibleEdiCustomerOrderLineItem;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
EdiCustomerOrderDto? ediCustomerOrder = await EdiCustomerOrderService.GetEdiCustomerOrderAsync(CustomerOrderId); EdiCustomerOrderDto? ediCustomerOrder = await EdiCustomerOrderService.GetEdiCustomerOrderAsync(CustomerOrderId);
_ediCustomerOrder = [ediCustomerOrder]; EdiCustomerOrderDto = ediCustomerOrder;
_ediCustomerOrderLines = ediCustomerOrder?.EdiCustomerOrderLines.ToList() ?? []; _ediCustomerOrderLines = ediCustomerOrder?.EdiCustomerOrderLines.ToList() ?? [];
} }
private void SelectedEdiCustomerOrderLineChanged(HashSet<EdiCustomerOrderLineDto> obj) private void OnSelectedLineRow<TValue>(RowSelectEventArgs<TValue> obj)
{ {
_isVisibleEdiCustomerOrderLine = obj.Any(); _isVisibleEdiCustomerOrderLine = obj.Data is not null;
_selectedEdiCustomerOrderLine = [obj.FirstOrDefault()]; _selectedEdiCustomerOrderLine = obj.Data as EdiCustomerOrderLineDto;
_ediCustomerOrderLineItems = obj.FirstOrDefault()?.EdiCustomerOrderLineItems.ToList() ?? []; _ediCustomerOrderLineItems = _selectedEdiCustomerOrderLine?.EdiCustomerOrderLineItems.ToList() ?? [];
}
private void SelectedEdiCustomerOrderLineItemChanged(HashSet<EdiCustomerOrderLineItemDto> obj)
{
_isVisibleEdiCustomerOrderLineItem = obj.Any();
_selectedEdiCustomerOrderLineItem = [obj.FirstOrDefault()];
} }
} }

View File

@@ -4,126 +4,146 @@
@inject NavigationManager NavigationManager @inject NavigationManager NavigationManager
@using OrdersManagement.Dtos @using OrdersManagement.Dtos
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using BlazorBootstrap @using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Cards
@using Syncfusion.Blazor.Popups
@using Syncfusion.Blazor.Buttons
@using SelectionType = Syncfusion.Blazor.Grids.SelectionType
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <h5>Zamówienia Klienta EDI</h5>
<h3>Zamówienia Klienta EDI</h3>
</div>
<br />
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<Switch ValueExpression="() => _filter" ValueChanged="FilterChanged" Label="Pokaż wszystkie" /> <label for="checked" style="padding: 10px 10px 10px 0">Pokaż wszystkie</label>
<SfSwitch @bind-Checked="_filter" ValueChange="FilterChanged" TChecked="bool?" OnLabel="Pokaż tylko Wysłanr do SL" OffLabel="Pokaż wszystkie" />
</div> </div>
</div> </div>
<br /> <br/>
@if (_isVisible) @if (_isVisible)
{ {
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<Button Color="ButtonColor.Primary" @onclick="SendOrderToSyteLine">@_text</Button> <SfButton @onclick="SendOrderToSyteLine">@_text</SfButton>
</div> </div>
</div> </div>
<br/>
} }
<br /> <SfGrid @ref="_grid"
<div class="row">
<Grid @ref="_grid"
TItem="EdiCustomerOrderDto"
Class="table table-hover table-bordered table-striped"
DataProvider="EdiCustomerOrdersDataProvider"
AllowFiltering="true" AllowFiltering="true"
Responsive="true"
AllowPaging="true" AllowPaging="true"
PageSize="10" AllowSorting="true"
AllowSelection="true" AllowSelection="true"
AllowRowClick="true" TValue="EdiCustomerOrderDto"
SelectionMode="GridSelectionMode.Multiple" DataSource="@_ediCustomerOrders"
OnRowDoubleClick="OnRowDoubleClick" EnableAdaptiveUI="true">
SelectedItemsChanged="SelectedItemsChanged"> <GridTemplates>
<DetailTemplate>
@{
var order = context as EdiCustomerOrderDto;
<SfCard>
<CardContent>
<div class="row">
<div class="col">
<u>Numer zamówienia EDI:</u>&emsp;<b>@order?.CustomerOrderNumber</b><br/>
<u>Numer zamówienia Klienta:</u>&emsp;<b>@order?.CustomerPoNumber</b><br/>
<u>Numer klienta:</u>&emsp;<b>@order?.CustomerNumber</b><br/>
<u>Klient:</u>&emsp;<b>@order?.CustomerName</b><br/>
<u>Numer odbiorcy:</u>&emsp;<b>@(order?.CustomerSequence?.ToString() ?? "N/A")</b><br/>
<u>Data
otrzymania:</u>&emsp;<b>@(order?.RecivedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Wysłano do
Syteline?:</u>&emsp;<b>@((order?.Posted?.ToString() ?? "0") == "0" ? "NIE" : "TAK")</b><br/>
<u>Data wysyłki do
Syteline:</u>&emsp;<b>@(order?.PostedDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
<u>Data zamówienia:</u>&emsp;<b>@(order?.OrderDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
</div>
<div class="col">
<u>Cena:</u>&emsp;<b>@(order?.Price?.ToString("F2") ?? "N/A")</b><br/>
<u>Waga:</u>&emsp;<b>@(order?.Weight?.ToString("F2") ?? "N/A")</b><br/>
<u>Magazyn:</u>&emsp;<b>@order?.Warehouse</b><br/>
<u>Gate:</u>&emsp;<b>@order?.Gate</b><br/>
<u>Kod odbiorcy:</u>&emsp;<b>@order?.RecipientCode</b><br/>
<u>Kod wysyłającego:</u>&emsp;<b>@order?.SenderCode</b><br/>
<u>Kod sprzedawcy:</u>&emsp;<b>@order?.SellerCode</b><br/>
<u>Kod kupującego:</u>&emsp;<b>@order?.BuyerCode</b><br/>
<u>Typ dokumentu:</u>&emsp;<b>@order?.DocType</b><br/>
</div>
</div>
</CardContent>
</SfCard>
}
</DetailTemplate>
</GridTemplates>
<GridColumns> <GridColumns>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Numer Zamówienia" PropertyName="CustomerOrderNumber"> <GridColumn Field=@nameof(EdiCustomerOrderDto.CustomerOrderNumber) HeaderText="Numer Zamówienia"
@context.CustomerOrderNumber Width="110"></GridColumn>
</GridColumn> <GridColumn Field=@nameof(EdiCustomerOrderDto.CustomerPoNumber) HeaderText="Zamówienie Klienta"
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Zamówienie Klienta" PropertyName="CustomerPoNumber"> Width="100"></GridColumn>
@context.CustomerPoNumber <GridColumn Field=@nameof(EdiCustomerOrderDto.CustomerNumber) HeaderText="Numer Klienta"
</GridColumn> Width="90"></GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Numer Klienta" PropertyName="CustomerNumber"> <GridColumn Field=@nameof(EdiCustomerOrderDto.CustomerSequence) HeaderText="Odbiorca" Width="80"></GridColumn>
@context.CustomerNumber <GridColumn Field=@nameof(EdiCustomerOrderDto.CreateDate) HeaderText="Data Otrzymania"
</GridColumn> TextAlign="TextAlign.Center" Width="110"></GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Klient" PropertyName="CustomerName"> <GridColumn Field=@nameof(EdiCustomerOrderDto.SlOrderNumber) HeaderText="Zamówienie SL"
@context.CustomerName Width="100"></GridColumn>
</GridColumn> <GridColumn Field=@nameof(EdiCustomerOrderDto.SentToSl) HeaderText="Wysłane do SL"
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Odbiorca" PropertyName="CustomerSequence"> TextAlign="TextAlign.Center" Width="80"></GridColumn>
@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> </GridColumns>
</Grid> <GridFilterSettings Type="FilterType.Excel"/>
</div> <GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Multiple"/>
<GridEvents TValue="EdiCustomerOrderDto" OnRecordDoubleClick="OnRowDoubleClick" RowSelected="RowSelected" />
</SfGrid>
<Modal @ref="_modal" Title="@_text"> <SfDialog Width="500px" Title="@_text" IsModal="true" @bind-Visible="Visibility" AllowPrerender="true">
<BodyTemplate> <DialogTemplates>
<Content>
@if (_responses.Any(x => x.Status == 1)) @if (_responses.Any(x => x.Status == 1))
{ {
foreach (ResponseDto response in _responses.Where(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> <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)) @if (_responses.Any(x => x.Status == 0))
{ {
foreach (ResponseDto response in _responses.Where(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> <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> </Content>
<FooterTemplate> </DialogTemplates>
<Button Color="ButtonColor.Primary" @onclick="OnHideModalClick">OK</Button> <DialogButtons>
</FooterTemplate> <DialogButton Content="OK" IsPrimary="true" OnClick="@HideModal" />
</Modal> </DialogButtons>
</SfDialog>
@code { @code {
Grid<EdiCustomerOrderDto>? _grid; private bool Visibility { get; set; }
private List<EdiCustomerOrderDto> _ediCustomerOrders = new();
private SfGrid<EdiCustomerOrderDto>? _grid;
private IEnumerable<EdiCustomerOrderDto> _ediCustomerOrders = [];
private List<EdiCustomerOrderDto> _selectedEdiCustomerOrders = new(); private List<EdiCustomerOrderDto> _selectedEdiCustomerOrders = new();
private List<ResponseDto> _responses = new(); private List<ResponseDto> _responses = new();
private Modal _modal = null!;
private bool _isVisible; private bool _isVisible;
private bool _filter; private bool? _filter = false;
private string _text = "Księguj bieżący"; private string _text = "Księguj bieżący";
private async Task<GridDataProviderResult<EdiCustomerOrderDto>> EdiCustomerOrdersDataProvider(GridDataProviderRequest<EdiCustomerOrderDto> request) protected override async Task OnInitializedAsync()
{ {
_ediCustomerOrders = (await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>()).ToList(); await LoadData();
_ediCustomerOrders = _ediCustomerOrders.OrderByDescending(x => x.CreateDate).ToList();
if (!_filter)
{
_ediCustomerOrders = _ediCustomerOrders.Where(x => x.Posted == 0).ToList();
} }
StateHasChanged(); private void OnRowDoubleClick(RecordDoubleClickEventArgs<EdiCustomerOrderDto> obj)
return await Task.FromResult(request.ApplyTo(_ediCustomerOrders));
}
private void OnRowDoubleClick(GridRowEventArgs<EdiCustomerOrderDto> obj)
{ {
Guid customerOrderId = obj.Item.RowPointer; Guid customerOrderId = obj.RowData.RowPointer;
NavigationManager.NavigateTo($"/EdiCustomerOrder/{customerOrderId}"); NavigationManager.NavigateTo($"/EdiCustomerOrder/{customerOrderId}");
} }
@@ -146,31 +166,53 @@
_responses.Add(response); _responses.Add(response);
} }
await _modal.ShowAsync(); Visibility = true;
_grid?.RefreshDataAsync();
await LoadData();
_grid?.Refresh();
_isVisible = false;
return true; return true;
} }
private void SelectedItemsChanged(HashSet<EdiCustomerOrderDto> obj) private void HideModal()
{ {
Visibility = false;
}
private async Task RowSelected(RowSelectEventArgs<EdiCustomerOrderDto> obj)
{
List<EdiCustomerOrderDto> selectedRecords = await _grid.GetSelectedRecordsAsync();
_isVisible = false; _isVisible = false;
if (!obj.Any()) return; if (!selectedRecords.Any()) return;
_selectedEdiCustomerOrders = obj.ToList(); _selectedEdiCustomerOrders = selectedRecords;
_isVisible = _selectedEdiCustomerOrders.Any(x => x.Posted == 0); _isVisible = _selectedEdiCustomerOrders.Any(x => x.Posted == 0);
_text = obj.Count > 1 ? "Księguj zaznaczone" : "Księguj bieżący"; _text = selectedRecords.Count > 1 ? "Księguj zaznaczone" : "Księguj bieżący";
} }
private async Task OnHideModalClick() private async Task FilterChanged(ChangeEventArgs<bool?> obj)
{ {
await _modal.HideAsync(); _filter = obj.Checked;
await LoadData();
_grid?.Refresh();
} }
private void FilterChanged(bool obj) private async Task LoadData()
{ {
_filter = obj; _ediCustomerOrders = await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>();
_grid?.RefreshDataAsync();
if (_filter == false)
{
_ediCustomerOrders = _ediCustomerOrders.Where(x => x.Posted == 0).ToList();
}
_ediCustomerOrders = _ediCustomerOrders.OrderByDescending(x => x.CreateDate).ToList();
StateHasChanged();
} }
} }

View File

@@ -8,6 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazor.Bootstrap" Version="3.2.0" /> <PackageReference Include="Blazor.Bootstrap" Version="3.2.0" />
<PackageReference Include="Syncfusion.Blazor.Buttons" Version="28.2.3" />
<PackageReference Include="Syncfusion.Blazor.Cards" Version="28.2.3" /> <PackageReference Include="Syncfusion.Blazor.Cards" Version="28.2.3" />
<PackageReference Include="Syncfusion.Blazor.Core" Version="28.2.3" /> <PackageReference Include="Syncfusion.Blazor.Core" Version="28.2.3" />
<PackageReference Include="Syncfusion.Blazor.Grid" Version="28.2.3" /> <PackageReference Include="Syncfusion.Blazor.Grid" Version="28.2.3" />