Files
FA_WEB/OrdersManagement/Components/Pages/ScheduleOrder.razor

140 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@page "/ScheduleOrder/{ScheduleOrderId:int}"
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Lists
@inject ScheduleOrderDetailsService ScheduleOrderDetailsService
<div class="h-100 d-flex flex-column">
<h5>Indeksy</h5>
<SfGrid AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
TValue="ScheduleOrderDetailDto"
DataSource="@_scheduleOrderDetails"
EnableAdaptiveUI="true">
<GridTemplates>
<DetailTemplate>
@{
IList<ScheduleOrderDetailMiscDto>? scheduleOrderDetailMiscs = (@context as ScheduleOrderDetailDto)?.ScheduleOrderDetailMiscs;
<SfListView Id="List"
DataSource="@scheduleOrderDetailMiscs"
ShowHeader="false"
CssClass="e-list-template">
<ListViewFieldSettings TValue="ScheduleOrderDetailMiscDto" Id="Id"
Text="Text"></ListViewFieldSettings>
<ListViewTemplates Context="item" TValue="ScheduleOrderDetailMiscDto">
<Template>
<span
class="e-list-content"><b>@item.Label</b>@item.Value
</span>
</Template>
</ListViewTemplates>
</SfListView>
}
</DetailTemplate>
</GridTemplates>
<GridColumns>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sc_productCode) HeaderText="Pozycja"
Width="100"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sh_productCode) HeaderText="Pozycja Klienta"
Width="100"></GridColumn>
</GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
<GridEvents TValue="ScheduleOrderDetailDto" RowSelected="OnSelectedLineRow"
DetailsExpanding="OnDetailsExpanding"></GridEvents>
</SfGrid>
@if (_isVisible)
{
<br/>
<h5>Harmonogramy</h5>
<SfGrid AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
TValue="ScheduleOrderDetailDetailDto"
DataSource="@_scheduleOrderDetailsDetails"
EnableAdaptiveUI="true">
<GridTemplates>
<DetailTemplate>
@{
IList<ScheduleOrderDetailDetailMiscDto>? scheduleOrderDetailDetailMiscs = (@context as ScheduleOrderDetailDetailDto)?.ScheduleOrderDetailDetailMiscs;
<SfListView Id="List"
DataSource="@scheduleOrderDetailDetailMiscs"
ShowHeader="false"
CssClass="e-list-template">
<ListViewFieldSettings TValue="ScheduleOrderDetailDetailMiscDto" Id="Id"
Text="Text"></ListViewFieldSettings>
<ListViewTemplates Context="item" TValue="ScheduleOrderDetailDetailMiscDto">
<Template>
<span
class="e-list-content"><b>@item.Label</b>@item.Value
</span>
</Template>
</ListViewTemplates>
</SfListView>
}
</DetailTemplate>
</GridTemplates>
<GridColumns>
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.DateFrom) HeaderText="Data Od"
Width="100"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.DateTo) HeaderText="Data Do"
Width="100"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.Qty) TextAlign="TextAlign.Right"
HeaderText="Ilość Sztuk" Width="50"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.QtyType) TextAlign="TextAlign.Right"
HeaderText="Typ Qty" Width="50"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDetailDto.QtyDesc) HeaderText="Opis Typu"
Width="100"></GridColumn>
</GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
</SfGrid>
}
</div>
@code {
[Parameter] public int ScheduleOrderId { get; set; }
private bool _isVisible;
private IEnumerable<ScheduleOrderDetailDto>? _scheduleOrderDetails;
private IEnumerable<ScheduleOrderDetailDetailDto>? _scheduleOrderDetailsDetails;
protected override async Task OnInitializedAsync()
{
_scheduleOrderDetails = await ScheduleOrderDetailsService.GetScheduleOrderDetails(ScheduleOrderId) ?? new List<ScheduleOrderDetailDto>();
StateHasChanged();
}
private void OnSelectedLineRow(RowSelectEventArgs<ScheduleOrderDetailDto> obj)
{
ScheduleOrderDetailDto? scheduleOrderDetail = obj.Data;
SelectOrderDetail(scheduleOrderDetail);
}
private void SelectOrderDetail(ScheduleOrderDetailDto? scheduleOrderDetail)
{
_isVisible = scheduleOrderDetail != null;
if (scheduleOrderDetail == null) return;
_scheduleOrderDetailsDetails = scheduleOrderDetail.ScheduleOrderDetailDetails.ToList();
}
private void OnDetailsExpanding(DetailsExpandingEventArgs<ScheduleOrderDetailDto> obj)
{
ScheduleOrderDetailDto? scheduleOrderDetail = obj.Data;
SelectOrderDetail(scheduleOrderDetail);
}
}