* Changed ScheduleOrders and CustomerOrders from Blazor.Bootstrap to Syncfusion

This commit is contained in:
2025-02-06 20:36:17 +01:00
parent 695478fbd1
commit 9c4df2a2ed
14 changed files with 351 additions and 422 deletions

View File

@@ -2,74 +2,88 @@
@inject CustomerOrderService CustomerOrderService
@inject NavigationManager NavigationManager
@using SytelineSaAppEfDataModel.Dtos
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Cards
@inherits LayoutComponentBase
<div class="row">
<h3>Zamówienia Klienta</h3>
</div>
<br />
<div class="row">
<Grid @ref="_grid"
TItem="CustomerOrderDto"
Class="table table-hover table-bordered table-striped"
DataProvider="CustomerOrdersDataProvider"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
AllowRowClick="true"
OnRowDoubleClick="OnRowDoubleClick"
SelectedItemsChanged="SelectedItemsChanged">
<h5>Zamówienia Klienta</h5>
<GridColumns>
<GridColumn TItem="CustomerOrderDto" HeaderText="Numer Zamówienia" PropertyName="CoNum">
@context.CoNum
</GridColumn>
<GridColumn TItem="CustomerOrderDto" HeaderText="Zamówienie Klienta" PropertyName="CustNum">
@context.CustPo
</GridColumn>
<GridColumn TItem="CustomerOrderDto" HeaderText="Numer Klienta" PropertyName="CustNum">
@context.CustNum
</GridColumn>
<GridColumn TItem="CustomerOrderDto" HeaderText="Odbiorca" PropertyName="CustSeq">
@context.CustSeq
</GridColumn>
<GridColumn TItem="CustomerOrderDto" HeaderText="Data zamówienia" PropertyName="CreateDate">
@context.CreateDate
</GridColumn>
<GridColumn TItem="CustomerOrderDto" HeaderText="Status" PropertyName="Stat">
@context.TranslatedStatus
</GridColumn>
</GridColumns>
</Grid>
</div>
<SfGrid @ref="_grid"
AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
TValue="CustomerOrderDto"
DataSource="@_customerOrders"
EnableAdaptiveUI="true">
<GridTemplates>
<DetailTemplate>
@{
var order = context as CustomerOrderDto;
<SfCard>
<CardContent>
<div class="row">
<div class="col">
<u>Numer Zamówienia:</u> <b>@order?.CoNum</b><br/>
<u>Numer Zamówienia Klienta:</u> <b>@order?.CustPo</b><br/>
<u>Klient:</u> <b>@order?.CustNum</b><br/>
<u>Numer Odbiorcy:</u> <b>@order?.CustSeq</b><br/>
<u>Kontakt:</u> <b>@order?.Contact</b><br/>
<u>Telefon:</u> <b>@order?.Phone</b><br/>
<u>Data Zamówienia:</u> <b>@order?.OrderDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br/>
<u>Warunki:</u> <b>@order?.TermsCode</b><br/>
<u>Wartość Brutto:</u> <b>@(order?.Price?.ToString("F2") ?? "N/A")</b><br/>
<u>Status:</u> <b>@order?.TranslatedStatus</b><br/>
</div>
<div class="col">
<u>Magazyn:</u> <b>@order?.Whse</b><br/>
<u>VAT:</u> <b>@order?.FrtTaxCode1</b><br/>
<u>Typ Odbiorcy:</u> <b>@order?.EndUserType</b><br/>
<u>Kurs Wymiany:</u> <b>@(order?.ExchRate?.ToString("F4") ?? "N/A")</b><br/>
<u>Gate:</u> <b>@order?.Uf_FKR_EDI_Gate</b><br/>
<u>RecipientCode:</u> <b>@order?.Uf_FKR_EDI_RecipientCode</b><br/>
<u>SelletCode:</u> <b>@order?.Uf_FKR_EDI_SellerCode</b><br/>
<u>SenderCode:</u> <b>@order?.Uf_FKR_EDI_SenderCode</b><br/>
<u>BuyerCode:</u> <b>@order?.Uf_FKR_EDI_BuyerCode</b><br/>
<u>Typ Dokumentu:</u> <b>@order?.Uf_DocType</b><br/>
</div>
</div>
</CardContent>
</SfCard>
}
</DetailTemplate>
</GridTemplates>
<GridColumns>
<GridColumn Field=@nameof(CustomerOrderDto.CoNum) HeaderText="Numer Zamówienia" Width="110"></GridColumn>
<GridColumn Field=@nameof(CustomerOrderDto.CustPo) HeaderText="Zamówienie Klienta" Width="100"></GridColumn>
<GridColumn Field=@nameof(CustomerOrderDto.CustNum) HeaderText="Numer Klienta"Width="90"></GridColumn>
<GridColumn Field=@nameof(CustomerOrderDto.CustSeq) HeaderText="Odbiorca" Width="80"></GridColumn>
<GridColumn Field=@nameof(CustomerOrderDto.CreateDate) HeaderText="Data zamówienia" TextAlign="TextAlign.Right"Width="110"></GridColumn>
<GridColumn Field=@nameof(CustomerOrderDto.TranslatedStatus) HeaderText="Status" Width="100"></GridColumn>
</GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<GridEvents TValue="CustomerOrderDto" OnRecordDoubleClick="OnRowDoubleClick" />
</SfGrid>
@code {
Grid<CustomerOrderDto>? _grid;
SfGrid<CustomerOrderDto>? _grid;
private IEnumerable<CustomerOrderDto>? _customerOrders;
private CustomerOrderDto? _selectedCustomerOrder;
private async Task<GridDataProviderResult<CustomerOrderDto>> CustomerOrdersDataProvider(GridDataProviderRequest<CustomerOrderDto> request)
protected override async Task OnInitializedAsync()
{
_customerOrders = await CustomerOrderService.GetCustomerOrdersAsync() ?? new List<CustomerOrderDto>();
_customerOrders = _customerOrders.OrderByDescending(x => x.CreateDate).ToList();
StateHasChanged();
return await Task.FromResult(request.ApplyTo(_customerOrders));
}
private void OnRowDoubleClick(GridRowEventArgs<CustomerOrderDto> obj)
private void OnRowDoubleClick(RecordDoubleClickEventArgs<CustomerOrderDto> obj)
{
Guid customerOrderId = obj.Item.RowPointer;
Guid customerOrderId = obj.RowData.RowPointer;
NavigationManager.NavigateTo($"/CustomerOrder/{customerOrderId}");
}
private void SelectedItemsChanged(HashSet<CustomerOrderDto> obj)
{
_selectedCustomerOrder = obj.FirstOrDefault() ?? null;
}
}