* Changed theme to material.css

* Changed Grid to SyncFusion in CO details and SO details
* Changed Main template to Syncfusion
This commit is contained in:
2025-02-04 20:39:53 +01:00
parent 8146ee189e
commit 695478fbd1
7 changed files with 63637 additions and 318 deletions

View File

@@ -11,7 +11,7 @@
<link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" /> <link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" />
<link rel="stylesheet" href="app.css" /> <link rel="stylesheet" href="app.css" />
<link rel="stylesheet" href="OrdersManagement.styles.css" /> <link rel="stylesheet" href="OrdersManagement.styles.css" />
<link href="_content/Syncfusion.Blazor.Themes/fabric.css" rel="stylesheet" /> <link href="material.css" rel="stylesheet"/>
<HeadOutlet @rendermode="@InteractiveServer" /> <HeadOutlet @rendermode="@InteractiveServer" />
</head> </head>

View File

@@ -6,26 +6,17 @@
<div class="page"> <div class="page">
<Sidebar @ref="_sidebar" <SfSidebar Width="240px" IsOpen="true" Type="SidebarType.Push" Position="SidebarPosition.Left">
IconName="IconName.App" <ChildContent>
Title="FA Krosno Manager"> <div class="top-row">
<SfMenu Items="@MenuItems" Orientation="Orientation.Vertical"> <h5 class="sidebar-title">FA Krosno Manager</h5>
<MenuEvents TValue="MenuItem" ItemSelected="OnMenuItemSelected"></MenuEvents> </div>
<MenuFieldSettings Text="Text" Children="Children"></MenuFieldSettings> <SfMenu Items="@MenuItems" Orientation="Orientation.Vertical">
</SfMenu> <MenuEvents TValue="MenuItem" ItemSelected="OnMenuItemSelected"></MenuEvents>
</Sidebar> <MenuFieldSettings Text="Text" Children="Children" ></MenuFieldSettings>
</SfMenu>
@* <SfSidebar Width="300px" IsOpen="true" Type="SidebarType.Push" Position="SidebarPosition.Left"> *@ </ChildContent>
@* <ChildContent> *@ </SfSidebar>
@* <div class="top-row"> *@
@* <h3 class="sidebar-title">FA Krosno Manager</h3> *@
@* </div> *@
@* <SfMenu Items="@MenuItems" Orientation="Orientation.Vertical"> *@
@* <MenuEvents TValue="MenuItem" ItemSelected="OnMenuItemSelected"></MenuEvents> *@
@* <MenuFieldSettings Text="Text" Children="Children"></MenuFieldSettings> *@
@* </SfMenu> *@
@* </ChildContent> *@
@* </SfSidebar> *@
<main> <main>
<div class="bb-top-row px-4 d-flex justify-content-end"> <div class="bb-top-row px-4 d-flex justify-content-end">
@@ -47,7 +38,7 @@
{ {
MenuItems = new List<MenuItem> MenuItems = new List<MenuItem>
{ {
new() { Text = "Zamówienia DELFOR", Url = "/", IconCss = "fas fa-home" }, new() { Text = "Zamówienia DELFOR", Url = "/", IconCss = "fas fa-home", HtmlAttributes = new Dictionary<string, object> { { "style", "width: 240px;" }}},
new() { Text = "Zamówienia klienta EDI", Url = "/EdiCustomerOrders", IconCss = "fas fa-database" }, new() { Text = "Zamówienia klienta EDI", Url = "/EdiCustomerOrders", IconCss = "fas fa-database" },
new() { Text = "Zamówienia klienta", Url = "/CustomerOrders", IconCss = "fas fa-database" } new() { Text = "Zamówienia klienta", Url = "/CustomerOrders", IconCss = "fas fa-database" }
}; };

View File

@@ -4,7 +4,7 @@
@inject ScheduleOrderService ScheduleOrderService @inject ScheduleOrderService ScheduleOrderService
@using SytelineSaAppEfDataModel.Dtos @using SytelineSaAppEfDataModel.Dtos
@using OrdersManagement.Components.Pages.Shared @using OrdersManagement.Components.Pages.Shared
@using GridColumns = BlazorBootstrap.GridColumns @using Syncfusion.Blazor.Grids
@inherits LayoutComponentBase @inherits LayoutComponentBase
<h3>Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum</h3> <h3>Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum</h3>
@@ -50,178 +50,225 @@
</div> </div>
</div> </div>
<br/> <br/>
@* @if (_isVisible) *@ @if (_isVisible)
@* { *@ {
@* <div class="row"> *@ <div class="row">
@* <h3>Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum</h3> *@ <h3>Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum</h3>
@* </div> *@ </div>
@* <br/> *@ <br/>
@* <div class="row"> *@ <div class="row">
@* <ScheduleOrdersGrid PageSize="5" PassGridRef="SetGridRef" DataProvider="ScheduleOrdersDataProvider"></ScheduleOrdersGrid> *@ <ScheduleOrdersGrid PageSize="5" PassGridRef="SetGridRef" GridData="_scheduleOrders"></ScheduleOrdersGrid>
@* </div> *@ </div>
@* <br/> *@ <br/>
@* } *@ }
<div class="row"> <div class="row">
<h3>Indeksy</h3> <h3>Indeksy</h3>
</div> </div>
<div class="row"> <div class="row">
<Grid @ref="_customerOrderLinesGrid" @* <Grid @ref="_customerOrderLinesGrid" *@
TItem="CustomerOrderLineDto" @* TItem="CustomerOrderLineDto" *@
Class="table table-hover table-bordered table-striped" @* Class="table table-hover table-bordered table-striped" *@
Data="_customerOrderLines" @* Data="_customerOrderLines" *@
AllowFiltering="true" @* AllowFiltering="true" *@
Responsive="true" @* Responsive="true" *@
AllowPaging="true" @* AllowPaging="true" *@
PageSize="10" @* PageSize="10" *@
AllowSelection="true" @* AllowSelection="true" *@
AllowRowClick="true" @* AllowRowClick="true" *@
SelectionMode="GridSelectionMode.Single" @* SelectionMode="GridSelectionMode.Single" *@
SelectedItemsChanged="SelectedCustomerOrderLineChanged"> @* SelectedItemsChanged="SelectedCustomerOrderLineChanged"> *@
<GridColumns> @* <Syncfusion.Blazor.Grids.GridColumns> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Linia" PropertyName="CoLine"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Linia" PropertyName="CoLine"> *@
@context.CoLine @* @context.CoLine *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Pozycja" PropertyName="Item"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Pozycja" PropertyName="Item"> *@
@context.Item @* @context.Item *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Pozycja Klienta" PropertyName="CustItem"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Pozycja Klienta" PropertyName="CustItem"> *@
@context.CustItem @* @context.CustItem *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Opis" PropertyName="Description"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Opis" PropertyName="Description"> *@
@context.Description @* @context.Description *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Ilość" TextAlignment="Alignment.End" @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Ilość" TextAlignment="Alignment.End" *@
PropertyName="BlanketQty"> @* PropertyName="BlanketQty"> *@
@context.BlanketQty @* @context.BlanketQty *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="J/M" PropertyName="UM"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="J/M" PropertyName="UM"> *@
@context.UM @* @context.UM *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Cena" PropertyName="ContPrice"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Cena" PropertyName="ContPrice"> *@
@context.ContPrice @* @context.ContPrice *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineDto" HeaderText="Status" PropertyName="TranslatedStatus"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineDto" HeaderText="Status" PropertyName="TranslatedStatus"> *@
@context.TranslatedStatus @* @context.TranslatedStatus *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
</GridColumns> @* </Syncfusion.Blazor.Grids.GridColumns> *@
</Grid> @* </Grid> *@
<SfGrid AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
DataSource="@_customerOrderLines"
EnableAdaptiveUI="true">
<Syncfusion.Blazor.Grids.GridColumns>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.CoLine) HeaderText="Linia" Width="70"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.Item) HeaderText="Pozycja" Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.CustItem) HeaderText="Pozycja Klienta" Width="120"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.Description) HeaderText="Opis" Width="200"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.BlanketQty) HeaderText="Ilość" TextAlign="TextAlign.Right" Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.UM) HeaderText="J/M" Width="50"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.ContPrice) HeaderText="Cena" Width="100"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(CustomerOrderLineDto.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" />
<GridEvents TValue="CustomerOrderLineDto" RowSelected="OnSelectedLineRow"></GridEvents>
</SfGrid>
</div> </div>
@if (_isVisibleCustomerOrderLine) @if (_isVisibleCustomerOrderLine)
{ {
<div class="row"> <div class="row">
<h3>Szczegóły</h3> <h3>Szczegóły</h3>
</div> </div>
<div class="row"> @* <div class="row"> *@
<div class="col"> @* <div class="col"> *@
<SortableList TItem="CustomerOrderLineDto" Data="_selectedCustomerOrderLine"> @* <SortableList TItem="CustomerOrderLineDto" Data="_selectedCustomerOrderLine"> *@
<ItemTemplate> @* <ItemTemplate> *@
<u>Numer zamówienia:</u>&emsp;<b>@context.CoNum</b><br/> @* <u>Numer zamówienia:</u>&emsp;<b>@context.CoNum</b><br/> *@
<u>Linia:</u>&emsp;<b>@context.CoLine</b><br/> @* <u>Linia:</u>&emsp;<b>@context.CoLine</b><br/> *@
<u>Pozycja:</u>&emsp;<b>@context.Item</b><br/> @* <u>Pozycja:</u>&emsp;<b>@context.Item</b><br/> *@
<u>Pozycja Klienta:</u>&emsp;<b>@context.CustItem</b><br/> @* <u>Pozycja Klienta:</u>&emsp;<b>@context.CustItem</b><br/> *@
<u>Opis:</u>&emsp;<b>@context.Description</b><br/> @* <u>Opis:</u>&emsp;<b>@context.Description</b><br/> *@
<u>Łączna Ilość:</u>&emsp;<b>@context.BlanketQty.ToString("F2")</b><br/> @* <u>Łączna Ilość:</u>&emsp;<b>@context.BlanketQty.ToString("F2")</b><br/> *@
<u>Status:</u>&emsp;<b>@context.TranslatedStatus</b><br/> @* <u>Status:</u>&emsp;<b>@context.TranslatedStatus</b><br/> *@
</ItemTemplate> @* </ItemTemplate> *@
</SortableList> @* </SortableList> *@
</div> @* </div> *@
<div class="col"> @* <div class="col"> *@
<SortableList TItem="CustomerOrderLineDto" Data="_selectedCustomerOrderLine"> @* <SortableList TItem="CustomerOrderLineDto" Data="_selectedCustomerOrderLine"> *@
<ItemTemplate> @* <ItemTemplate> *@
<u>Cena:</u>&emsp;<b>@(context.ContPrice?.ToString("F2") ?? "N/A")</b><br/> @* <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>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>J/M:</u>&emsp;<b>@context.UM</b><br/> *@
<u>BoxType:</u>&emsp;<b>@context.Uf_FKR_EDI_BLN_BoxType</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>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>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> @* <u>QtyPerBox:</u>&emsp;<b>@(context.Uf_FKR_EDI_BLN_QtyPerBox?.ToString() ?? "N/A")</b> *@
</ItemTemplate> @* </ItemTemplate> *@
</SortableList> @* </SortableList> *@
</div> @* </div> *@
</div> @* </div> *@
<br/> <br/>
<h3>Harmonogramy</h3> <h3>Harmonogramy</h3>
<div class="row"> <div class="row">
<Grid @ref="_customerOrderLineItemsGrid" @* <Grid @ref="_customerOrderLineItemsGrid" *@
TItem="CustomerOrderLineItemDto" @* TItem="CustomerOrderLineItemDto" *@
Class="table table-hover table-bordered table-striped" @* Class="table table-hover table-bordered table-striped" *@
Data="_customerOrderLineItems" @* Data="_customerOrderLineItems" *@
AllowFiltering="true" @* AllowFiltering="true" *@
Responsive="true" @* Responsive="true" *@
AllowPaging="true" @* AllowPaging="true" *@
PageSize="10" @* PageSize="10" *@
AllowSelection="true" @* AllowSelection="true" *@
AllowRowClick="true" @* AllowRowClick="true" *@
SelectionMode="GridSelectionMode.Single" @* SelectionMode="GridSelectionMode.Single" *@
SelectedItemsChanged="SelectedCustomerOrderLineItemChanged"> @* SelectedItemsChanged="SelectedCustomerOrderLineItemChanged"> *@
<GridColumns> @* <Syncfusion.Blazor.Grids.GridColumns> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Linia" PropertyName="CustomerOrderLine"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Linia" PropertyName="CustomerOrderLine"> *@
@context.CoLine @* @context.CoLine *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Zwolnienie" @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Zwolnienie" *@
PropertyName="CustomerOrderRelease"> @* PropertyName="CustomerOrderRelease"> *@
@context.CoRelease @* @context.CoRelease *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="Item"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="Item"> *@
@context.Item @* @context.Item *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="CustomerItem"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Pozycja" PropertyName="CustomerItem"> *@
@context.CustItem @* @context.CustItem *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Łączna Ilość" TextAlignment="Alignment.End" @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Łączna Ilość" TextAlignment="Alignment.End" *@
PropertyName="QtyOrdered"> @* PropertyName="QtyOrdered"> *@
@context.QtyOrdered @* @context.QtyOrdered *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Data Wykonania" PropertyName="DueDate"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Data Wykonania" PropertyName="DueDate"> *@
@context.DueDate?.ToString("dd.MM.yyyy") @* @context.DueDate?.ToString("dd.MM.yyyy") *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
<GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Status" PropertyName="TranslatedStatus"> @* <Syncfusion.Blazor.Grids.GridColumn TItem="CustomerOrderLineItemDto" HeaderText="Status" PropertyName="TranslatedStatus"> *@
@context.TranslatedStatus @* @context.TranslatedStatus *@
</GridColumn> @* </Syncfusion.Blazor.Grids.GridColumn> *@
</GridColumns> @* </Syncfusion.Blazor.Grids.GridColumns> *@
</Grid> @* </Grid> *@
<SfGrid @ref="_customerOrderLineItemsGrid"
TValue="CustomerOrderLineItemDto"
DataSource="@_customerOrderLineItems"
AllowFiltering="true"
AllowPaging="true"
AllowSelection="true"
AllowSorting="true"
SelectionMode="Syncfusion.Blazor.Grids.SelectionMode.Single"
SelectedItemsChanged="SelectedCustomerOrderLineItemChanged">
<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" />
<GridEvents TValue="CustomerOrderLineItemDto" RowSelected="OnSelectedLineItemRow"></GridEvents>
</SfGrid>
</div> </div>
@if (_isVisibleCustomerOrderLineItem) @if (_isVisibleCustomerOrderLineItem)
{ {
<div class="row"> <div class="row">
<h3>Szczegóły</h3> <h3>Szczegóły</h3>
</div> </div>
<div class="row"> @* <div class="row"> *@
<div class="col"> @* <div class="col"> *@
<SortableList TItem="CustomerOrderLineItemDto" Data="_selectedCustomerOrderLineItem"> @* <SortableList TItem="CustomerOrderLineItemDto" Data="_selectedCustomerOrderLineItem"> *@
<ItemTemplate> @* <ItemTemplate> *@
<u>Numer Zamówienia:</u>&emsp;<b>@context.CoNum</b><br/> @* <u>Numer Zamówienia:</u>&emsp;<b>@context.CoNum</b><br/> *@
<u>Linia:</u>&emsp;<b>@context.CoLine</b><br/> @* <u>Linia:</u>&emsp;<b>@context.CoLine</b><br/> *@
<u>Zwolnienie:</u>&emsp;<b>@context.CoRelease</b><br/> @* <u>Zwolnienie:</u>&emsp;<b>@context.CoRelease</b><br/> *@
<u>Pozycja:</u>&emsp;<b>@context.Item</b><br/> @* <u>Pozycja:</u>&emsp;<b>@context.Item</b><br/> *@
<u>Pozycja Klienta:</u>&emsp;<b>@context.CustItem</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>Łą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>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 Wykonania:</u>&emsp;<b>@(context.DueDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/> *@
<u>Data @* <u>Data *@
Rejestracji:</u>&emsp;<b>@(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/> @* Rejestracji:</u>&emsp;<b>@(context.ReleaseDate?.ToString("dd.MM.yyyy") ?? "N/A")</b><br/> *@
<u>Magazyn:</u>&emsp;<b>@context.Whse</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/> @* <u>Typ Documentu:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_DocumentType</b><br/> *@
</ItemTemplate> @* </ItemTemplate> *@
</SortableList> @* </SortableList> *@
</div> @* </div> *@
<div class="col"> @* <div class="col"> *@
<SortableList TItem="CustomerOrderLineItemDto" Data="_selectedCustomerOrderLineItem"> @* <SortableList TItem="CustomerOrderLineItemDto" Data="_selectedCustomerOrderLineItem"> *@
<ItemTemplate> @* <ItemTemplate> *@
<u>Kod VAT:</u>&emsp;<b>@context.TaxCode1</b><br/> @* <u>Kod VAT:</u>&emsp;<b>@context.TaxCode1</b><br/> *@
<u>J/M:</u>&emsp;<b>@context.UM</b><br/> @* <u>J/M:</u>&emsp;<b>@context.UM</b><br/> *@
<u>Numer Klienta:</u>&emsp;<b>@context.CoCustNum</b><br/> @* <u>Numer Klienta:</u>&emsp;<b>@context.CoCustNum</b><br/> *@
<u>Opis:</u>&emsp;<b>@context.Description</b><br/> @* <u>Opis:</u>&emsp;<b>@context.Description</b><br/> *@
<u>Status:</u>&emsp;<b>@context.TranslatedStatus</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>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>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>UnloadingPoint:</u>&emsp;<b>@context.Uf_LOC_11_UnloadingPoint</b><br/> *@
<u>DestinationPoint:</u>&emsp;<b>@context.Uf_LOC_159_DestinationPoint</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/> @* <u>PalletCode:</u>&emsp;<b>@context.Uf_FKR_EDI_ITEM_PalletCode</b><br/> *@
</ItemTemplate> @* </ItemTemplate> *@
</SortableList> @* </SortableList> *@
</div> @* </div> *@
</div> @* </div> *@
} }
} }
@@ -234,16 +281,16 @@
private IEnumerable<ScheduleOrderDto>? _scheduleOrders; private IEnumerable<ScheduleOrderDto>? _scheduleOrders;
private List<CustomerOrderLineDto?> _selectedCustomerOrderLine = []; CustomerOrderLineDto? _selectedCustomerOrderLine;
private List<CustomerOrderLineItemDto?> _selectedCustomerOrderLineItem = []; CustomerOrderLineItemDto? _selectedCustomerOrderLineItem;
private Grid<CustomerOrderLineDto>? _customerOrderLinesGrid; private SfGrid<CustomerOrderLineDto>? _customerOrderLinesGrid;
private Grid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid; private SfGrid<CustomerOrderLineItemDto>? _customerOrderLineItemsGrid;
private bool _isVisibleCustomerOrderLine; private bool _isVisibleCustomerOrderLine;
private bool _isVisibleCustomerOrderLineItem; private bool _isVisibleCustomerOrderLineItem;
// private SfGrid<ScheduleOrderDto> _gridRef = new(); private SfGrid<ScheduleOrderDto> _gridRef = new();
private bool _isVisible = true; private bool _isVisible = true;
private string _text = "Pokaż powiązane zamówienia DELFOR"; private string _text = "Pokaż powiązane zamówienia DELFOR";
@@ -263,25 +310,12 @@
{ {
if (firstRender) if (firstRender)
{ {
// await SetGridRef(_gridRef); await SetGridRef(_gridRef);
StateHasChanged(); StateHasChanged();
_isVisible = false; _isVisible = false;
} }
} }
private void SelectedCustomerOrderLineChanged(HashSet<CustomerOrderLineDto> obj)
{
_isVisibleCustomerOrderLine = obj.Any();
_selectedCustomerOrderLine = [obj.FirstOrDefault()];
_customerOrderLineItems = obj.FirstOrDefault()?.CustomerOrderLineItems.ToList() ?? [];
}
private void SelectedCustomerOrderLineItemChanged(HashSet<CustomerOrderLineItemDto> obj)
{
_isVisibleCustomerOrderLineItem = obj.Any();
_selectedCustomerOrderLineItem = [obj.FirstOrDefault()];
}
private async Task ShowLastDelfors() private async Task ShowLastDelfors()
{ {
if (_isVisible) if (_isVisible)
@@ -292,19 +326,20 @@
} }
else else
{ {
// await _gridRef.Refresh(); _scheduleOrders = await FetchScheduleOrdersAsync();
await _gridRef.Refresh();
StateHasChanged(); StateHasChanged();
_isVisible = true; _isVisible = true;
_text = "Ukryj"; _text = "Ukryj";
} }
} }
// private async Task SetGridRef(SfGrid<ScheduleOrderDto> grid) private async Task SetGridRef(SfGrid<ScheduleOrderDto> grid)
// { {
// _gridRef = grid; _gridRef = grid;
// } }
private async Task<GridDataProviderResult<ScheduleOrderDto>> ScheduleOrdersDataProvider(GridDataProviderRequest<ScheduleOrderDto> request) private async Task<IEnumerable<ScheduleOrderDto>> FetchScheduleOrdersAsync()
{ {
_scheduleOrders = []; _scheduleOrders = [];
@@ -316,6 +351,19 @@
_scheduleOrders = _scheduleOrders.Where(x => scheduleOrderDetails.Contains(x.ID)).OrderByDescending(x => x.LastUpdateDate).ToList(); _scheduleOrders = _scheduleOrders.Where(x => scheduleOrderDetails.Contains(x.ID)).OrderByDescending(x => x.LastUpdateDate).ToList();
} }
return await Task.FromResult(request.ApplyTo(_scheduleOrders)); return _scheduleOrders;
}
private void OnSelectedLineRow<TValue>(RowSelectEventArgs<TValue> obj)
{
_selectedCustomerOrderLine = obj.Data as CustomerOrderLineDto;
_isVisibleCustomerOrderLine = _selectedCustomerOrderLine != null;
_customerOrderLineItems = _selectedCustomerOrderLine?.CustomerOrderLineItems.ToList() ?? [];
}
private void OnSelectedLineItemRow<TValue>(RowSelectEventArgs<TValue> obj)
{
_selectedCustomerOrderLineItem = obj.Data as CustomerOrderLineItemDto;
_isVisibleCustomerOrderLineItem = _selectedCustomerOrderLineItem != null;
} }
} }

View File

@@ -5,11 +5,12 @@
@inject ScheduleOrderService ScheduleOrderService @inject ScheduleOrderService ScheduleOrderService
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <div>
<h3>Zamówienia DELFOR </h3> <h5>Zamówienia DELFOR </h5>
</div>
<div>
<ScheduleOrdersGrid PageSize="20" PassGridRef="SetGridRef" GridData="_scheduleOrders"></ScheduleOrdersGrid>
</div> </div>
<br />
<ScheduleOrdersGrid PageSize="20" PassGridRef="SetGridRef" GridData="_scheduleOrders"></ScheduleOrdersGrid>
@code { @code {
private IEnumerable<ScheduleOrderDto> _scheduleOrders = []; private IEnumerable<ScheduleOrderDto> _scheduleOrders = [];
@@ -28,11 +29,11 @@
return _scheduleOrders; return _scheduleOrders;
} }
private SfGrid<ScheduleOrderDto> _gridRef; private SfGrid<ScheduleOrderDto> _gridRef;
private async Task SetGridRef(SfGrid<ScheduleOrderDto> grid) private async Task SetGridRef(SfGrid<ScheduleOrderDto> grid)
{ {
_gridRef = grid; _gridRef = grid;
} }
} }

View File

@@ -2,43 +2,44 @@
@using Syncfusion.Blazor.Grids @using Syncfusion.Blazor.Grids
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="row"> <SfGrid @ref="_grid"
<SfGrid @ref="_grid" TValue="ScheduleOrderDto"
TValue="ScheduleOrderDto" AllowFiltering="true"
AllowFiltering="true" AllowPaging="true"
AllowPaging="true" AllowSorting="true"
PageSettings="@(new GridPageSettings { PageSize = PageSize })" AllowSelection="true"
AllowSorting="true" DataSource="@_dataSource"
AllowSelection="true" EnableAdaptiveUI="true"
DataSource="@_dataSource" AllowRowClick="true"
AllowRowClick="true" SelectionMode="GridSelectionMode.Single"
SelectionMode="GridSelectionMode.Single" QueryCellInfo="OnQueryCellInfo"
QueryCellInfo="OnQueryCellInfo" RowSelected="OnRowSelected">
RowSelected="OnRowSelected"> <Syncfusion.Blazor.Grids.GridColumns>
<Syncfusion.Blazor.Grids.GridColumns> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.OrderID) HeaderText="Zamówienie" Width="120"
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.OrderID) HeaderText="Zamówienie" Width="120" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn> AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.PONum) HeaderText="Zamówienie Klienta" Width="150" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.PONum) HeaderText="Zamówienie Klienta"
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.RecipientCode) HeaderText="Odbiorca" Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn> Width="150" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.PurchaserCode) HeaderText="Klient" Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.RecipientCode) HeaderText="Odbiorca"
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.LastUpdateDate) HeaderText="Data Utworzenia" Format="d" Type="ColumnType.Date" Width="130" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn> Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.DocType) HeaderText="Typ Dokumentu" Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.PurchaserCode) HeaderText="Klient"
</Syncfusion.Blazor.Grids.GridColumns> Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<GridEvents TValue="ScheduleOrderDto" OnRecordDoubleClick="OnRowDoubleClick"></GridEvents> <Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.LastUpdateDate) HeaderText="Data Utworzenia"
<GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.Excel"> Format="d" Type="ColumnType.Date" Width="130"
</GridFilterSettings> AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.DocType) HeaderText="Typ Dokumentu"
</SfGrid> Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
</div> </Syncfusion.Blazor.Grids.GridColumns>
<GridEvents TValue="ScheduleOrderDto" OnRecordDoubleClick="OnRowDoubleClick" />
<GridFilterSettings Type="FilterType.Excel" />
<GridPageSettings PageSize="PageSize" />
</SfGrid>
@code { @code {
[Parameter] [Parameter] public required IEnumerable<ScheduleOrderDto> GridData { get; set; }
public required IEnumerable<ScheduleOrderDto> GridData { get; set; }
[Parameter] [Parameter] public required Func<SfGrid<ScheduleOrderDto>, Task> PassGridRef { get; set; }
public required Func<SfGrid<ScheduleOrderDto>, Task> PassGridRef { get; set; }
[Parameter] [Parameter] public required int PageSize { get; set; }
public required int PageSize { get; set; }
private SfGrid<ScheduleOrderDto> _grid { get; set; } private SfGrid<ScheduleOrderDto> _grid { get; set; }
@@ -62,4 +63,5 @@
int scheduleOrderId = obj.RowData.ID; int scheduleOrderId = obj.RowData.ID;
NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}"); NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}");
} }
} }

View File

@@ -1,74 +1,3 @@
html, body { html, body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
} }
a, .btn-link {
color: #006bb7;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}
.content {
padding-top: 1.1rem;
}
h1:focus {
outline: none;
}
.valid.modified:not([type=checkbox]) {
outline: 1px solid #26b050;
}
.invalid {
outline: 1px solid #e50000;
}
.validation-message {
color: #e50000;
}
.blazor-error-boundary {
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
padding: 1rem 1rem 1rem 3.7rem;
color: white;
}
.blazor-error-boundary::after {
content: "An error has occurred."
}
.darker-border-checkbox.form-check-input {
border-color: #929292;
}
.e-grid .e-gridheader {
background-color: #0078d4; /* Kolor tła nagłówka */
}
.e-grid .e-headercell {
color: #000000; /* Czarne litery */
font-weight: bold; /* Pogrubienie */
}
.e-grid .e-rowcell {
background-color: #f3f2f1; /* Kolor tła wierszy */
}
.e-grid .e-row:hover .e-rowcell {
background-color: #edebe9; /* Kolor tła wierszy przy najechaniu myszką */
}
.e-grid .e-rowcell {
color: #333333; /* Kolor tekstu w komórkach wierszy */
}
.e-grid .e-selectionbackground {
background-color: #0078d4; /* Kolor tła dla zaznaczonych wierszy */
color: white; /* Kolor tekstu w zaznaczonych wierszach */
}

File diff suppressed because one or more lines are too long