* 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

@@ -20,6 +20,6 @@ namespace FaKrosnoEfDataModel.Dtos
public DateTime? ShipDate { get; set; } public DateTime? ShipDate { get; set; }
public DateTime LastUpdateDate { get; set; } public DateTime LastUpdateDate { get; set; }
public IList<ScheduleOrderDetailDetailMiscDto> ScheduleOrderDetailDetailMiscs { get; set; } public IList<ScheduleOrderDetailDetailMiscDto>? ScheduleOrderDetailDetailMiscs { get; set; }
} }
} }

View File

@@ -13,5 +13,7 @@ namespace FaKrosnoEfDataModel.Dtos
public string Value { get; set; } public string Value { get; set; }
public string? Label { get; set; } public string? Label { get; set; }
public bool Display { get; set; } public bool Display { get; set; }
public string Text => $"{Label}:\t{Value}";
} }
} }

View File

@@ -14,6 +14,6 @@ namespace FaKrosnoEfDataModel.Dtos
public int? Price { get; set; } public int? Price { get; set; }
public IList<ScheduleOrderDetailDetailDto> ScheduleOrderDetailDetails { get; set; } public IList<ScheduleOrderDetailDetailDto> ScheduleOrderDetailDetails { get; set; }
public IList<ScheduleOrderDetailMiscDto> ScheduleOrderDetailMiscs { get; set; } public IList<ScheduleOrderDetailMiscDto>? ScheduleOrderDetailMiscs { get; set; }
} }
} }

View File

@@ -13,5 +13,7 @@ namespace FaKrosnoEfDataModel.Dtos
public string Value { get; set; } public string Value { get; set; }
public string? Label { get; set; } public string? Label { get; set; }
public bool Display { get; set; } public bool Display { get; set; }
public string Text => $"{Label}:\t{Value}";
} }
} }

View File

@@ -13,5 +13,7 @@ namespace FaKrosnoEfDataModel.Dtos
public string Value { get; set; } public string Value { get; set; }
public string? Label { get; set; } public string? Label { get; set; }
public bool Display { get; set; } public bool Display { get; set; }
public string Text => $"{Label}:\t{Value}";
} }
} }

View File

@@ -32,8 +32,6 @@
@code { @code {
private List<MenuItem> MenuItems { get; set; } = new(); private List<MenuItem> MenuItems { get; set; } = new();
Sidebar? _sidebar;
protected override void OnInitialized() protected override void OnInitialized()
{ {
MenuItems = new List<MenuItem> MenuItems = new List<MenuItem>

View File

@@ -5,44 +5,40 @@
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using OrdersManagement.Components.Pages.Shared @using OrdersManagement.Components.Pages.Shared
@using Syncfusion.Blazor.Grids @using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Cards
@inherits LayoutComponentBase @inherits LayoutComponentBase
<h3>Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum</h3> <h5>Zamówienie klienta nr @CustomerOrderDto?.CoNum</h5>
<br/> <SfCard>
<div class="row"> <CardContent>
<div class="col"> <div class="row">
<SortableList TItem="CustomerOrderDto" Data="CustomerOrders" Class="bg-light"> <div class="col">
<ItemTemplate> <u>Numer Zamówienia:</u> <b>@CustomerOrderDto?.CoNum</b><br/>
<u>Numer Zamówienia:</u> <b>@context.CoNum</b><br/> <u>Numer Zamówienia Klienta:</u> <b>@CustomerOrderDto?.CustPo</b><br/>
<u>Numer Zamówienia Klienta:</u> <b>@context.CustPo</b><br/> <u>Klient:</u> <b>@CustomerOrderDto?.CustNum</b><br/>
<u>Klient:</u> <b>@context.CustNum</b><br/> <u>Numer Odbiorcy:</u> <b>@CustomerOrderDto?.CustSeq</b><br/>
<u>Numer Odbiorcy:</u> <b>@context.CustSeq</b><br/> <u>Kontakt:</u> <b>@CustomerOrderDto?.Contact</b><br/>
<u>Kontakt:</u> <b>@context.Contact</b><br/> <u>Telefon:</u> <b>@CustomerOrderDto?.Phone</b><br/>
<u>Telefon:</u> <b>@context.Phone</b><br/> <u>Data Zamówienia:</u> <b>@CustomerOrderDto?.OrderDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br/>
<u>Data Zamówienia:</u> <b>@context.OrderDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br/> <u>Warunki:</u> <b>@CustomerOrderDto?.TermsCode</b><br/>
<u>Warunki:</u> <b>@context.TermsCode</b><br/> <u>Wartość Brutto:</u> <b>@(CustomerOrderDto?.Price?.ToString("F2") ?? "N/A")</b><br/>
<u>Wartość Brutto:</u> <b>@(context.Price?.ToString("F2") ?? "N/A")</b><br/> <u>Status:</u> <b>@CustomerOrderDto?.TranslatedStatus</b><br/>
<u>Status:</u> <b>@context.TranslatedStatus</b><br/> </div>
</ItemTemplate> <div class="col">
</SortableList> <u>Magazyn:</u> <b>@CustomerOrderDto?.Whse</b><br/>
</div> <u>VAT:</u> <b>@CustomerOrderDto?.FrtTaxCode1</b><br/>
<div class="col"> <u>Typ Odbiorcy:</u> <b>@CustomerOrderDto?.EndUserType</b><br/>
<SortableList TItem="CustomerOrderDto" Data="CustomerOrders" Class="bg-light"> <u>Kurs Wymiany:</u> <b>@(CustomerOrderDto?.ExchRate?.ToString("F4") ?? "N/A")</b><br/>
<ItemTemplate> <u>Gate:</u> <b>@CustomerOrderDto?.Uf_FKR_EDI_Gate</b><br/>
<u>Magazyn:</u> <b>@context.Whse</b><br/> <u>RecipientCode:</u> <b>@CustomerOrderDto?.Uf_FKR_EDI_RecipientCode</b><br/>
<u>VAT:</u> <b>@context.FrtTaxCode1</b><br/> <u>SelletCode:</u> <b>@CustomerOrderDto?.Uf_FKR_EDI_SellerCode</b><br/>
<u>Typ Odbiorcy:</u> <b>@context.EndUserType</b><br/> <u>SenderCode:</u> <b>@CustomerOrderDto?.Uf_FKR_EDI_SenderCode</b><br/>
<u>Kurs Wymiany:</u> <b>@(context.ExchRate?.ToString("F4") ?? "N/A")</b><br/> <u>BuyerCode:</u> <b>@CustomerOrderDto?.Uf_FKR_EDI_BuyerCode</b><br/>
<u>Gate:</u> <b>@context.Uf_FKR_EDI_Gate</b><br/> <u>Typ Dokumentu:</u> <b>@CustomerOrderDto?.Uf_DocType</b><br/>
<u>RecipientCode:</u> <b>@context.Uf_FKR_EDI_RecipientCode</b><br/> </div>
<u>SelletCode:</u> <b>@context.Uf_FKR_EDI_SellerCode</b><br/> </div>
<u>SenderCode:</u> <b>@context.Uf_FKR_EDI_SenderCode</b><br/> </CardContent>
<u>BuyerCode:</u> <b>@context.Uf_FKR_EDI_BuyerCode</b><br/> </SfCard>
<u>Typ Dokumentu:</u> <b>@context.Uf_DocType</b><br/>
</ItemTemplate>
</SortableList>
</div>
</div>
<br/> <br/>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@@ -53,7 +49,7 @@
@if (_isVisible) @if (_isVisible)
{ {
<div class="row"> <div class="row">
<h3>Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum</h3> <h5>Zamówienie DELFOR do zamówienia @CustomerOrderDto?.CoNum</h5>
</div> </div>
<br/> <br/>
<div class="row"> <div class="row">
@@ -61,221 +57,150 @@
</div> </div>
<br/> <br/>
} }
<div class="row"> <h5>Indeksy</h5>
<h3>Indeksy</h3> <SfGrid @ref="_customerOrderLinesGrid"
</div> AllowFiltering="true"
<div class="row"> AllowPaging="true"
@* <Grid @ref="_customerOrderLinesGrid" *@ AllowSorting="true"
@* TItem="CustomerOrderLineDto" *@ AllowSelection="true"
@* Class="table table-hover table-bordered table-striped" *@ TValue="CustomerOrderLineDto"
@* Data="_customerOrderLines" *@ DataSource="@_customerOrderLines"
@* AllowFiltering="true" *@ EnableAdaptiveUI="true">
@* Responsive="true" *@ <GridTemplates>
@* AllowPaging="true" *@ <DetailTemplate>
@* PageSize="10" *@ @{
@* AllowSelection="true" *@ var order = context as CustomerOrderLineDto;
@* AllowRowClick="true" *@ <SfCard>
@* SelectionMode="GridSelectionMode.Single" *@ <CardContent>
@* SelectedItemsChanged="SelectedCustomerOrderLineChanged"> *@ <div class="row">
@* <Syncfusion.Blazor.Grids.GridColumns> *@ <h6>Szczegóły</h6>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Linia" PropertyName="CoLine"> *@ <div class="col">
@* @context.CoLine *@ <u>Numer zamówienia:</u><b>@order?.CoNum</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Linia:</u><b>@order?.CoLine</b><br/>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Pozycja" PropertyName="Item"> *@ <u>Pozycja:</u><b>@order?.Item</b><br/>
@* @context.Item *@ <u>Pozycja Klienta:</u><b>@order?.CustItem</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Opis:</u><b>@order?.Description</b><br/>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Pozycja Klienta" PropertyName="CustItem"> *@ <u>Łączna Ilość:</u><b>@order?.BlanketQty.ToString("F2")</b><br/>
@* @context.CustItem *@ <u>Status:</u><b>@order?.TranslatedStatus</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ </div>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Opis" PropertyName="Description"> *@ <div class="col">
@* @context.Description *@ <u>Cena:</u><b>@(order?.ContPrice?.ToString("F2") ?? "N/A")</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Ważne Od:</u><b>@(order?.EffDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Ilość" TextAlignment="Alignment.End" *@ <u>J/M:</u><b>@order?.UM</b><br/>
@* PropertyName="BlanketQty"> *@ <u>BoxType:</u><b>@order?.Uf_FKR_EDI_BLN_BoxType</b><br/>
@* @context.BlanketQty *@ <u>Address:</u><b>@order?.Uf_FKR_EDI_BLN_Address</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>FinalDestination:</u><b>@order?.Uf_FKR_EDI_BLN_FinalDestination</b><br/>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="J/M" PropertyName="UM"> *@ <u>QtyPerBox:</u><b>@(order?.Uf_FKR_EDI_BLN_QtyPerBox?.ToString() ?? "N/A")</b>
@* @context.UM *@ </div>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ </div>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Cena" PropertyName="ContPrice"> *@ </CardContent>
@* @context.ContPrice *@ </SfCard>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ }
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Status" PropertyName="TranslatedStatus"> *@ </DetailTemplate>
@* @context.TranslatedStatus *@ </GridTemplates>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <GridColumns>
@* </Syncfusion.Blazor.Grids.GridColumns> *@ <GridColumn Field=@nameof(CustomerOrderLineDto.CoLine) HeaderText="Linia" Width="70"></GridColumn>
@* </Grid> *@ <GridColumn Field=@nameof(CustomerOrderLineDto.Item) HeaderText="Pozycja" Width="100"></GridColumn>
<SfGrid AllowFiltering="true" <GridColumn Field=@nameof(CustomerOrderLineDto.CustItem) HeaderText="Pozycja Klienta"
AllowPaging="true" Width="120"></GridColumn>
AllowSorting="true" <GridColumn Field=@nameof(CustomerOrderLineDto.Description) HeaderText="Opis" Width="200"></GridColumn>
AllowSelection="true" <GridColumn Field=@nameof(CustomerOrderLineDto.BlanketQty) HeaderText="Ilość" TextAlign="TextAlign.Right"
DataSource="@_customerOrderLines" Width="100"></GridColumn>
EnableAdaptiveUI="true"> <GridColumn Field=@nameof(CustomerOrderLineDto.UM) HeaderText="J/M" Width="50"></GridColumn>
<Syncfusion.Blazor.Grids.GridColumns> <GridColumn Field=@nameof(CustomerOrderLineDto.ContPrice) HeaderText="Cena" Width="100"></GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.CoLine) HeaderText="Linia" Width="70"></Syncfusion.Blazor.Grids.GridColumn> <GridColumn Field=@nameof(CustomerOrderLineDto.TranslatedStatus) HeaderText="Status"
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.Item) HeaderText="Pozycja" Width="100"></Syncfusion.Blazor.Grids.GridColumn> Width="100"></GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.CustItem) HeaderText="Pozycja Klienta" Width="120"></Syncfusion.Blazor.Grids.GridColumn> </GridColumns>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.Description) HeaderText="Opis" Width="200"></Syncfusion.Blazor.Grids.GridColumn> <GridFilterSettings Type="FilterType.Excel"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.BlanketQty) HeaderText="Ilość" TextAlign="TextAlign.Right" Width="100"></Syncfusion.Blazor.Grids.GridColumn> <GridPageSettings PageSize="10"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.UM) HeaderText="J/M" Width="50"></Syncfusion.Blazor.Grids.GridColumn> <GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.ContPrice) HeaderText="Cena" Width="100"></Syncfusion.Blazor.Grids.GridColumn> <GridEvents TValue="CustomerOrderLineDto" RowSelected="OnSelectedLineRow"></GridEvents>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.TranslatedStatus) HeaderText="Status" Width="100"></Syncfusion.Blazor.Grids.GridColumn> </SfGrid>
</Syncfusion.Blazor.Grids.GridColumns>
<GridFilterSettings Type="FilterType.Excel" />
<GridPageSettings PageSize="10" />
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single" />
<GridEvents TValue="CustomerOrderLineDto" RowSelected="OnSelectedLineRow"></GridEvents>
</SfGrid>
</div>
@if (_isVisibleCustomerOrderLine) @if (_isVisibleCustomerOrderLine)
{ {
<div class="row">
<h3>Szczegóły</h3>
</div>
@* <div class="row"> *@
@* <div class="col"> *@
@* <SortableList TItem="CustomerOrderLineDto" Data="_selectedCustomerOrderLine"> *@
@* <ItemTemplate> *@
@* <u>Numer zamówienia:</u>&emsp;<b>@context.CoNum</b><br/> *@
@* <u>Linia:</u>&emsp;<b>@context.CoLine</b><br/> *@
@* <u>Pozycja:</u>&emsp;<b>@context.Item</b><br/> *@
@* <u>Pozycja Klienta:</u>&emsp;<b>@context.CustItem</b><br/> *@
@* <u>Opis:</u>&emsp;<b>@context.Description</b><br/> *@
@* <u>Łączna Ilość:</u>&emsp;<b>@context.BlanketQty.ToString("F2")</b><br/> *@
@* <u>Status:</u>&emsp;<b>@context.TranslatedStatus</b><br/> *@
@* </ItemTemplate> *@
@* </SortableList> *@
@* </div> *@
@* <div class="col"> *@
@* <SortableList TItem="CustomerOrderLineDto" Data="_selectedCustomerOrderLine"> *@
@* <ItemTemplate> *@
@* <u>Cena:</u>&emsp;<b>@(context.ContPrice?.ToString("F2") ?? "N/A")</b><br/> *@
@* <u>Ważne Od:</u>&emsp;<b>@(context.EffDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/> *@
@* <u>J/M:</u>&emsp;<b>@context.UM</b><br/> *@
@* <u>BoxType:</u>&emsp;<b>@context.Uf_FKR_EDI_BLN_BoxType</b><br/> *@
@* <u>Address:</u>&emsp;<b>@context.Uf_FKR_EDI_BLN_Address</b><br/> *@
@* <u>FinalDestination:</u>&emsp;<b>@context.Uf_FKR_EDI_BLN_FinalDestination</b><br/> *@
@* <u>QtyPerBox:</u>&emsp;<b>@(context.Uf_FKR_EDI_BLN_QtyPerBox?.ToString() ?? "N/A")</b> *@
@* </ItemTemplate> *@
@* </SortableList> *@
@* </div> *@
@* </div> *@
<br/> <br/>
<h3>Harmonogramy</h3> <h5>Harmonogramy</h5>
<div class="row"> <SfGrid @ref="_customerOrderLineItemsGrid"
@* <Grid @ref="_customerOrderLineItemsGrid" *@ TValue="CustomerOrderLineItemDto"
@* TItem="CustomerOrderLineItemDto" *@ DataSource="@_customerOrderLineItems"
@* Class="table table-hover table-bordered table-striped" *@ AllowFiltering="true"
@* Data="_customerOrderLineItems" *@ AllowPaging="true"
@* AllowFiltering="true" *@ AllowSelection="true"
@* Responsive="true" *@ AllowSorting="true"
@* AllowPaging="true" *@ SelectionMode="Syncfusion.Blazor.Grids.SelectionMode.Single"
@* PageSize="10" *@ SelectedItemsChanged="SelectedCustomerOrderLineItemChanged">
@* AllowSelection="true" *@ <GridTemplates>
@* AllowRowClick="true" *@ <DetailTemplate>
@* SelectionMode="GridSelectionMode.Single" *@ @{
@* SelectedItemsChanged="SelectedCustomerOrderLineItemChanged"> *@ var detailLineItem = context as CustomerOrderLineItemDto;
@* <Syncfusion.Blazor.Grids.GridColumns> *@ <SfCard>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Linia" PropertyName="CustomerOrderLine"> *@ <CardContent>
@* @context.CoLine *@ <div class="row">
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <h6>Szczegóły</h6>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Zwolnienie" *@ <div class="col">
@* PropertyName="CustomerOrderRelease"> *@ <u>Numer Zamówienia:</u>&emsp;<b>@detailLineItem?.CoNum</b><br/>
@* @context.CoRelease *@ <u>Linia:</u>&emsp;<b>@detailLineItem?.CoLine</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Zwolnienie:</u>&emsp;<b>@detailLineItem?.CoRelease</b><br/>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="Item"> *@ <u>Pozycja:</u>&emsp;<b>@detailLineItem?.Item</b><br/>
@* @context.Item *@ <u>Pozycja Klienta:</u>&emsp;<b>@detailLineItem?.CustItem</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Łączna Ilość
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="CustomerItem"> *@ Sztuk:</u>&emsp;<b>@(detailLineItem?.QtyOrdered.ToString("F2") ?? "N/A")</b><br/>
@* @context.CustItem *@ <u>Cena:</u>&emsp;<b>@(detailLineItem?.Price.ToString("F2") ?? "N/A")</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Data
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Łączna Ilość" TextAlignment="Alignment.End" *@ Wykonania:</u>&emsp;<b>@(detailLineItem?.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
@* PropertyName="QtyOrdered"> *@ <u>Data
@* @context.QtyOrdered *@ Rejestracji:</u>&emsp;<b>@(detailLineItem?.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Magazyn:</u>&emsp;<b>@detailLineItem?.Whse</b><br/>
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Data Wykonania" PropertyName="DueDate"> *@ <u>Typ Documentu:</u>&emsp;<b>@detailLineItem?.Uf_FKR_EDI_ITEM_DocumentType</b><br/>
@* @context.DueDate?.ToString("dd.MM.yyyy") *@ </div>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <div class="col">
@* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Status" PropertyName="TranslatedStatus"> *@ <u>Kod VAT:</u>&emsp;<b>@detailLineItem?.TaxCode1</b><br/>
@* @context.TranslatedStatus *@ <u>J/M:</u>&emsp;<b>@detailLineItem?.UM</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumn> *@ <u>Numer Klienta:</u>&emsp;<b>@detailLineItem?.CoCustNum</b><br/>
@* </Syncfusion.Blazor.Grids.GridColumns> *@ <u>Opis:</u>&emsp;<b>@detailLineItem?.Description</b><br/>
@* </Grid> *@ <u>Status:</u>&emsp;<b>@detailLineItem?.TranslatedStatus</b><br/>
<u>RoutingCode:</u>&emsp;<b>@detailLineItem?.Uf_FKR_EDI_ITEM_RoutingCode</b><br/>
<SfGrid @ref="_customerOrderLineItemsGrid" <u>DeliveryCallNumber:</u>&emsp;<b>@detailLineItem?.Uf_FKR_EDI_ITEM_DeliveryCallNum</b><br/>
TValue="CustomerOrderLineItemDto" <u>UnloadingPoint:</u>&emsp;<b>@detailLineItem?.Uf_LOC_11_UnloadingPoint</b><br/>
DataSource="@_customerOrderLineItems" <u>DestinationPoint:</u>&emsp;<b>@detailLineItem?.Uf_LOC_159_DestinationPoint</b><br/>
AllowFiltering="true" <u>PalletCode:</u>&emsp;<b>@detailLineItem?.Uf_FKR_EDI_ITEM_PalletCode</b><br/>
AllowPaging="true" </div>
AllowSelection="true" </div>
AllowSorting="true" </CardContent>
SelectionMode="Syncfusion.Blazor.Grids.SelectionMode.Single" </SfCard>
SelectedItemsChanged="SelectedCustomerOrderLineItemChanged"> }
<Syncfusion.Blazor.Grids.GridColumns> </DetailTemplate>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CoLine) HeaderText="Linia" Width="70" /> </GridTemplates>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CoRelease) HeaderText="Zwolnienie" Width="70" /> <Syncfusion.Blazor.Grids.GridColumns>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.Item) HeaderText="Pozycja" Width="100"></Syncfusion.Blazor.Grids.GridColumn> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CoLine) HeaderText="Linia"
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CustItem) HeaderText="Pozycja" Width="100"></Syncfusion.Blazor.Grids.GridColumn> Width="70"/>
<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.CoRelease)
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.DueDate) HeaderText="Data Wykonania" Width="100" /> HeaderText="Zwolnienie" Width="70"/>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.TranslatedStatus) HeaderText="Status" Width="100"></Syncfusion.Blazor.Grids.GridColumn> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.Item) HeaderText="Pozycja"
</Syncfusion.Blazor.Grids.GridColumns> Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<GridFilterSettings Type="FilterType.Excel" /> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.CustItem)
<GridPageSettings PageSize="10" /> HeaderText="Pozycja"
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single" /> Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<GridEvents TValue="CustomerOrderLineItemDto" RowSelected="OnSelectedLineItemRow"></GridEvents> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.QtyOrdered)
</SfGrid> HeaderText="Łączna Ilość" TextAlign="TextAlign.Right"
Width="120"></Syncfusion.Blazor.Grids.GridColumn>
</div> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.DueDate)
@if (_isVisibleCustomerOrderLineItem) HeaderText="Data Wykonania" Width="100"/>
{ <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineItemDto.TranslatedStatus)
<div class="row"> HeaderText="Status"
<h3>Szczegóły</h3> Width="100"></Syncfusion.Blazor.Grids.GridColumn>
</div> </Syncfusion.Blazor.Grids.GridColumns>
@* <div class="row"> *@ <GridFilterSettings Type="FilterType.Excel"/>
@* <div class="col"> *@ <GridPageSettings PageSize="10"/>
@* <SortableList TItem="CustomerOrderLineItemDto" Data="_selectedCustomerOrderLineItem"> *@ <GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
@* <ItemTemplate> *@ <GridEvents TValue="CustomerOrderLineItemDto" RowSelected="OnSelectedLineItemRow"></GridEvents>
@* <u>Numer Zamówienia:</u>&emsp;<b>@context.CoNum</b><br/> *@ </SfGrid>
@* <u>Linia:</u>&emsp;<b>@context.CoLine</b><br/> *@
@* <u>Zwolnienie:</u>&emsp;<b>@context.CoRelease</b><br/> *@
@* <u>Pozycja:</u>&emsp;<b>@context.Item</b><br/> *@
@* <u>Pozycja Klienta:</u>&emsp;<b>@context.CustItem</b><br/> *@
@* <u>Łączna Ilość Sztuk:</u>&emsp;<b>@(context.QtyOrdered.ToString("F2") ?? "N/A")</b><br/> *@
@* <u>Cena:</u>&emsp;<b>@(context.Price.ToString("F2") ?? "N/A")</b><br/> *@
@* <u>Data Wykonania:</u>&emsp;<b>@(context.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/> *@
@* <u>Data *@
@* Rejestracji:</u>&emsp;<b>@(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/> *@
@* <u>Magazyn:</u>&emsp;<b>@context.Whse</b><br/> *@
@* <u>Typ Documentu:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_DocumentType</b><br/> *@
@* </ItemTemplate> *@
@* </SortableList> *@
@* </div> *@
@* <div class="col"> *@
@* <SortableList TItem="CustomerOrderLineItemDto" Data="_selectedCustomerOrderLineItem"> *@
@* <ItemTemplate> *@
@* <u>Kod VAT:</u>&emsp;<b>@context.TaxCode1</b><br/> *@
@* <u>J/M:</u>&emsp;<b>@context.UM</b><br/> *@
@* <u>Numer Klienta:</u>&emsp;<b>@context.CoCustNum</b><br/> *@
@* <u>Opis:</u>&emsp;<b>@context.Description</b><br/> *@
@* <u>Status:</u>&emsp;<b>@context.TranslatedStatus</b><br/> *@
@* <u>RoutingCode:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_RoutingCode</b><br/> *@
@* <u>DeliveryCallNumber:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_DeliveryCallNum</b><br/> *@
@* <u>UnloadingPoint:</u>&emsp;<b>@context.Uf_LOC_11_UnloadingPoint</b><br/> *@
@* <u>DestinationPoint:</u>&emsp;<b>@context.Uf_LOC_159_DestinationPoint</b><br/> *@
@* <u>PalletCode:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_PalletCode</b><br/> *@
@* </ItemTemplate> *@
@* </SortableList> *@
@* </div> *@
@* </div> *@
}
} }
@code { @code {
[Parameter] public Guid CustomerOrderId { get; set; } [Parameter] public Guid CustomerOrderId { get; set; }
private List<CustomerOrderDto> CustomerOrders { get; set; } = []; private CustomerOrderDto CustomerOrderDto { get; set; }
private List<CustomerOrderLineDto> _customerOrderLines = []; private List<CustomerOrderLineDto> _customerOrderLines = [];
private List<CustomerOrderLineItemDto> _customerOrderLineItems = []; private List<CustomerOrderLineItemDto> _customerOrderLineItems = [];
@@ -288,7 +213,6 @@
private SfGrid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid; private SfGrid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid;
private bool _isVisibleCustomerOrderLine; private bool _isVisibleCustomerOrderLine;
private bool _isVisibleCustomerOrderLineItem;
private SfGrid<ScheduleOrderDto> _gridRef = new(); private SfGrid<ScheduleOrderDto> _gridRef = new();
@@ -301,8 +225,8 @@
if (customerOrder != null) if (customerOrder != null)
{ {
CustomerOrders = [customerOrder]; CustomerOrderDto = customerOrder;
_customerOrderLines = customerOrder.CustomerOrderLines.ToList() ?? []; _customerOrderLines = CustomerOrderDto.CustomerOrderLines.ToList() ?? [];
} }
} }
@@ -342,8 +266,7 @@
private async Task<IEnumerable<ScheduleOrderDto>> FetchScheduleOrdersAsync() private async Task<IEnumerable<ScheduleOrderDto>> FetchScheduleOrdersAsync()
{ {
_scheduleOrders = []; _scheduleOrders = [];
IList<int> scheduleOrderDetails = CustomerOrderDto?.EdiCustomerOrderTranslates?.Select(x => x.ScheduleOrderId).Distinct().ToList() ?? [];
IList<int> scheduleOrderDetails = CustomerOrders?.FirstOrDefault()?.EdiCustomerOrderTranslates?.Select(x => x.ScheduleOrderId).Distinct().ToList() ?? [];
if (scheduleOrderDetails.Any()) if (scheduleOrderDetails.Any())
{ {
@@ -364,6 +287,5 @@
private void OnSelectedLineItemRow<TValue>(RowSelectEventArgs<TValue> obj) private void OnSelectedLineItemRow<TValue>(RowSelectEventArgs<TValue> obj)
{ {
_selectedCustomerOrderLineItem = obj.Data as CustomerOrderLineItemDto; _selectedCustomerOrderLineItem = obj.Data as CustomerOrderLineItemDto;
_isVisibleCustomerOrderLineItem = _selectedCustomerOrderLineItem != null;
} }
} }

View File

@@ -2,74 +2,88 @@
@inject CustomerOrderService CustomerOrderService @inject CustomerOrderService CustomerOrderService
@inject NavigationManager NavigationManager @inject NavigationManager NavigationManager
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Cards
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <h5>Zamówienia Klienta</h5>
<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">
<GridColumns>
<GridColumn TItem="CustomerOrderDto" HeaderText="Numer Zamówienia" PropertyName="CoNum"> <SfGrid @ref="_grid"
@context.CoNum AllowFiltering="true"
</GridColumn> AllowPaging="true"
<GridColumn TItem="CustomerOrderDto" HeaderText="Zamówienie Klienta" PropertyName="CustNum"> AllowSorting="true"
@context.CustPo AllowSelection="true"
</GridColumn> TValue="CustomerOrderDto"
<GridColumn TItem="CustomerOrderDto" HeaderText="Numer Klienta" PropertyName="CustNum"> DataSource="@_customerOrders"
@context.CustNum EnableAdaptiveUI="true">
</GridColumn> <GridTemplates>
<GridColumn TItem="CustomerOrderDto" HeaderText="Odbiorca" PropertyName="CustSeq"> <DetailTemplate>
@context.CustSeq @{
</GridColumn> var order = context as CustomerOrderDto;
<GridColumn TItem="CustomerOrderDto" HeaderText="Data zamówienia" PropertyName="CreateDate"> <SfCard>
@context.CreateDate <CardContent>
</GridColumn> <div class="row">
<GridColumn TItem="CustomerOrderDto" HeaderText="Status" PropertyName="Stat"> <div class="col">
@context.TranslatedStatus <u>Numer Zamówienia:</u> <b>@order?.CoNum</b><br/>
</GridColumn> <u>Numer Zamówienia Klienta:</u> <b>@order?.CustPo</b><br/>
</GridColumns> <u>Klient:</u> <b>@order?.CustNum</b><br/>
</Grid> <u>Numer Odbiorcy:</u> <b>@order?.CustSeq</b><br/>
</div> <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 { @code {
Grid<CustomerOrderDto>? _grid; SfGrid<CustomerOrderDto>? _grid;
private IEnumerable<CustomerOrderDto>? _customerOrders; private IEnumerable<CustomerOrderDto>? _customerOrders;
private CustomerOrderDto? _selectedCustomerOrder; protected override async Task OnInitializedAsync()
private async Task<GridDataProviderResult<CustomerOrderDto>> CustomerOrdersDataProvider(GridDataProviderRequest<CustomerOrderDto> request)
{ {
_customerOrders = await CustomerOrderService.GetCustomerOrdersAsync() ?? new List<CustomerOrderDto>(); _customerOrders = await CustomerOrderService.GetCustomerOrdersAsync() ?? new List<CustomerOrderDto>();
_customerOrders = _customerOrders.OrderByDescending(x => x.CreateDate).ToList(); _customerOrders = _customerOrders.OrderByDescending(x => x.CreateDate).ToList();
StateHasChanged(); 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}"); NavigationManager.NavigateTo($"/CustomerOrder/{customerOrderId}");
} }
private void SelectedItemsChanged(HashSet<CustomerOrderDto> obj)
{
_selectedCustomerOrder = obj.FirstOrDefault() ?? null;
}
} }

View File

@@ -2,6 +2,7 @@
@inject EdiCustomerOrderService EdiCustomerOrderService @inject EdiCustomerOrderService EdiCustomerOrderService
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using BlazorBootstrap
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <div class="row">

View File

@@ -4,6 +4,7 @@
@inject NavigationManager NavigationManager @inject NavigationManager NavigationManager
@using OrdersManagement.Dtos @using OrdersManagement.Dtos
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using BlazorBootstrap
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <div class="row">

View File

@@ -1,137 +1,125 @@
@page "/ScheduleOrder/{ScheduleOrderId:int}" @page "/ScheduleOrder/{ScheduleOrderId:int}"
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Lists
@inject ScheduleOrderDetailsService ScheduleOrderDetailsService @inject ScheduleOrderDetailsService ScheduleOrderDetailsService
<div class="row"> <h5>Indeksy</h5>
<h3>Indeksy</h3> <SfGrid AllowFiltering="true"
</div> AllowPaging="true"
<div class="row"> AllowSorting="true"
<Grid @ref="_grid" AllowSelection="true"
TItem="ScheduleOrderDetailDto" TValue="ScheduleOrderDetailDto"
Class="table table-hover table-bordered table-striped" DataSource="@_scheduleOrderDetails"
DataProvider="ScheduleOrderDetailsDataProvider" EnableAdaptiveUI="true">
AllowFiltering="true" <GridTemplates>
Responsive="true" <DetailTemplate>
AllowPaging="true" @{
PageSize="20" IList<ScheduleOrderDetailMiscDto>? scheduleOrderDetailMiscs = (@context as ScheduleOrderDetailDto)?.ScheduleOrderDetailMiscs;
AllowSelection="true"
AllowRowClick="true" <SfListView Id="List"
SelectionMode="GridSelectionMode.Single" DataSource="@scheduleOrderDetailMiscs"
SelectedItemsChanged="SelectedItemChanged"> ShowHeader="false"
<GridColumns> CssClass="e-list-template">
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="Pozycja" <ListViewFieldSettings TValue="ScheduleOrderDetailMiscDto" Id="Id"
PropertyName="SalesChannelProductCode"> Text="Text"></ListViewFieldSettings>
@context.Sc_productCode <ListViewTemplates Context="item" TValue="ScheduleOrderDetailMiscDto">
</GridColumn> <Template>
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="Pozycja Klienta" <span
PropertyName="ShipperProductCode"> class="e-list-content"><b>@item.Label</b>@item.Value
@context.Sh_productCode </span>
</GridColumn> </Template>
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="Cena" PropertyName="Price"> </ListViewTemplates>
@context.Price </SfListView>
</GridColumn> }
</GridColumns> </DetailTemplate>
</Grid> </GridTemplates>
</div> <GridColumns>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sc_productCode) HeaderText="Pozycja" Width="100"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sh_productCode) HeaderText="Pozycja Klienta"
Width="100"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Price) TextAlign="TextAlign.Right" HeaderText="Cena"
Width="50"></GridColumn>
</GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<GridEvents TValue="ScheduleOrderDetailDto" RowSelected="OnSelectedLineRow"></GridEvents>
</SfGrid>
@if (_isVisible) @if (_isVisible)
{ {
<div class="row">
<h2>Dodatkowe informacje</h2>
</div>
<div class="row">
<SortableList TItem="ScheduleOrderDetailMiscDto" Data="_scheduleOrderDetailMiscs">
<ItemTemplate>
<u>@context.Label:</u>&emsp;<b>@context.Value</b>
</ItemTemplate>
</SortableList>
</div>
<br/> <br/>
<div class="row"> <h5>Harmonogramy</h5>
<h3>Harmonogramy</h3> <SfGrid AllowFiltering="true"
</div> AllowPaging="true"
<div class="row"> AllowSorting="true"
<Grid @ref="_detailDetailsGrid" AllowSelection="true"
TItem="ScheduleOrderDetailDetailDto" TValue="ScheduleOrderDetailDetailDto"
Data="_scheduleOrderDetailsDetails" DataSource="@_scheduleOrderDetailsDetails"
Class="table table-hover table-bordered table-striped" EnableAdaptiveUI="true">
AllowFiltering="true" <GridTemplates>
Responsive="true" <DetailTemplate>
AllowPaging="true" @{
PageSize="20" IList<ScheduleOrderDetailDetailMiscDto>? scheduleOrderDetailDetailMiscs = (@context as ScheduleOrderDetailDetailDto)?.ScheduleOrderDetailDetailMiscs;
AllowSelection="true"
SelectionMode="GridSelectionMode.Single"
SelectedItemsChanged="SelectedDetailDetailChanged">
<GridColumns> <SfListView Id="List"
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Id" PropertyName="Id"> DataSource="@scheduleOrderDetailDetailMiscs"
@context.ID ShowHeader="false"
</GridColumn> CssClass="e-list-template">
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Data Od" PropertyName="DateFrom"> <ListViewFieldSettings TValue="ScheduleOrderDetailDetailMiscDto" Id="Id"
@context.DateFrom.ToString("dd.MM.yyyy") Text="Text"></ListViewFieldSettings>
</GridColumn> <ListViewTemplates Context="item" TValue="ScheduleOrderDetailDetailMiscDto">
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Data Do" PropertyName="DateTo"> <Template>
@context.DateTo.ToString("dd.MM.yyyy") <span
</GridColumn> class="e-list-content"><b>@item.Label</b>@item.Value
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Ilość Sztuk" PropertyName="Qty"> </span>
@context.Qty </Template>
</GridColumn> </ListViewTemplates>
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Typ Qty" PropertyName="QtyType"> </SfListView>
@context.QtyType }
</GridColumn> </DetailTemplate>
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Opis Typu" PropertyName="QtyDesc"> </GridTemplates>
@context.QtyDesc <GridColumns>
</GridColumn> <GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.DateFrom) HeaderText="Data Od"
</GridColumns> Width="100"></GridColumn>
</Grid> <GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.DateTo) HeaderText="Data Do"
</div> Width="100"></GridColumn>
} <GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.Qty) TextAlign="TextAlign.Right"
@if (_isVisibleDetailDetail) HeaderText="Ilość Sztuk" Width="50"></GridColumn>
{ <GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.QtyType) TextAlign="TextAlign.Right"
<div class="row"> HeaderText="Typ Qty" Width="50"></GridColumn>
<h2>Dodatkowe informacje</h2> <GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.QtyDesc) HeaderText="Opis Typu"
</div> Width="100"></GridColumn>
<div class="row"> </GridColumns>
<SortableList TItem="ScheduleOrderDetailDetailMiscDto" Data="_scheduleOrderDetailDetailMiscs"> <GridFilterSettings Type="FilterType.Excel"/>
<ItemTemplate> <GridPageSettings PageSize="10"/>
<u>@context.Label:</u>&emsp;<b>@context.Value</b> <GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
</ItemTemplate> </SfGrid>
</SortableList>
</div>
} }
@code { @code {
[Parameter] public int ScheduleOrderId { get; set; } [Parameter] public int ScheduleOrderId { get; set; }
private bool _isVisible;
private bool _isVisibleDetailDetail;
Grid<ScheduleOrderDetailDto>? _grid; private bool _isVisible;
Grid<ScheduleOrderDetailDetailDto>? _detailDetailsGrid;
private IEnumerable<ScheduleOrderDetailDto>? _scheduleOrderDetails; private IEnumerable<ScheduleOrderDetailDto>? _scheduleOrderDetails;
private IEnumerable<ScheduleOrderDetailDetailDto>? _scheduleOrderDetailsDetails; private IEnumerable<ScheduleOrderDetailDetailDto>? _scheduleOrderDetailsDetails;
private List<ScheduleOrderDetailMiscDto>? _scheduleOrderDetailMiscs; protected override async Task OnInitializedAsync()
private List<ScheduleOrderDetailDetailMiscDto>? _scheduleOrderDetailDetailMiscs;
private async Task<GridDataProviderResult<ScheduleOrderDetailDto>> ScheduleOrderDetailsDataProvider(GridDataProviderRequest<ScheduleOrderDetailDto> request)
{ {
_scheduleOrderDetails = await ScheduleOrderDetailsService.GetScheduleOrderDetails(ScheduleOrderId) ?? new List<ScheduleOrderDetailDto>(); _scheduleOrderDetails = await ScheduleOrderDetailsService.GetScheduleOrderDetails(ScheduleOrderId) ?? new List<ScheduleOrderDetailDto>();
StateHasChanged(); StateHasChanged();
return await Task.FromResult(request.ApplyTo(_scheduleOrderDetails));
} }
private void SelectedItemChanged(HashSet<ScheduleOrderDetailDto> obj) private void OnSelectedLineRow<TValue>(RowSelectEventArgs<TValue> obj)
{ {
_isVisible = obj.Any(); ScheduleOrderDetailDto? scheduleOrderDetail = obj.Data as ScheduleOrderDetailDto;
_scheduleOrderDetailMiscs = obj.FirstOrDefault()?.ScheduleOrderDetailMiscs.ToList();
_scheduleOrderDetailsDetails = obj.FirstOrDefault()?.ScheduleOrderDetailDetails.ToList();
}
private void SelectedDetailDetailChanged(HashSet<ScheduleOrderDetailDetailDto> obj) _isVisible = scheduleOrderDetail != null;
{
_isVisibleDetailDetail = obj.Any(); if (scheduleOrderDetail == null) return;
_scheduleOrderDetailDetailMiscs = obj.FirstOrDefault()?.ScheduleOrderDetailDetailMiscs.ToList();
_scheduleOrderDetailsDetails = scheduleOrderDetail.ScheduleOrderDetailDetails.ToList();
} }
} }

View File

@@ -63,5 +63,4 @@
int scheduleOrderId = obj.RowData.ID; int scheduleOrderId = obj.RowData.ID;
NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}"); NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}");
} }
} }

View File

@@ -6,6 +6,5 @@
@using static Microsoft.AspNetCore.Components.Web.RenderMode @using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization @using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop @using Microsoft.JSInterop
@using BlazorBootstrap;
@using FaKrosnoEfDataModel.Dtos @using FaKrosnoEfDataModel.Dtos
@using OrdersManagement.Services @using OrdersManagement.Services

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.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" />
<PackageReference Include="Syncfusion.Blazor.Navigations" Version="28.2.3" /> <PackageReference Include="Syncfusion.Blazor.Navigations" Version="28.2.3" />