diff --git a/FaKrosnoEfDataModel/Dtos/ScheduleOrderDetailDto.cs b/FaKrosnoEfDataModel/Dtos/ScheduleOrderDetailDto.cs index b021576..a0c2291 100644 --- a/FaKrosnoEfDataModel/Dtos/ScheduleOrderDetailDto.cs +++ b/FaKrosnoEfDataModel/Dtos/ScheduleOrderDetailDto.cs @@ -13,6 +13,10 @@ namespace FaKrosnoEfDataModel.Dtos public string Sh_productCode { get; set; } public int? Price { get; set; } + public string? OrderNumber {get; set;} + public string? RecipientName {get; set;} + public string? RecipientCode {get; set;} + public string? PurchaserName {get; set;} public IList ScheduleOrderDetailDetails { get; set; } public IList? ScheduleOrderDetailMiscs { get; set; } } diff --git a/OrdersManagement/Components/Pages/ScheduleOrder.razor b/OrdersManagement/Components/Pages/ScheduleOrder.razor index 0eda881..27bb5fa 100644 --- a/OrdersManagement/Components/Pages/ScheduleOrder.razor +++ b/OrdersManagement/Components/Pages/ScheduleOrder.razor @@ -3,8 +3,25 @@ @using Syncfusion.Blazor.Grids @using Syncfusion.Blazor.Lists @inject ScheduleOrderDetailsService ScheduleOrderDetailsService +@inject ScheduleOrderService ScheduleOrderService
+
Zamówienie DELFOR nr @ScheduleOrderDto?.PONum
+ + + + + + +
Indeksy
@{ IList? scheduleOrderDetailMiscs = (@context as ScheduleOrderDetailDto)?.ScheduleOrderDetailMiscs; + IList? scheduleOrderDetailDetails = (@context as ScheduleOrderDetailDto)?.ScheduleOrderDetailDetails; - - +
+
Harmonogramy
+ + + + + @{ + IList? scheduleOrderDetailDetailMiscs = (@detailDetail as ScheduleOrderDetailDetailDto)?.ScheduleOrderDetailDetailMiscs; + + + + + + + + } + + + + + + + + + + + + + } - - + + + + -
- @if (_isVisible) - { -
-
Harmonogramy
- - - - - @{ - IList? scheduleOrderDetailDetailMiscs = (@context as ScheduleOrderDetailDetailDto)?.ScheduleOrderDetailDetailMiscs; - - - - - - - - } - - - - - - - - - - - - - - }
@code { [Parameter] public int ScheduleOrderId { get; set; } - private bool _isVisible; - private IEnumerable? _scheduleOrderDetails; - private IEnumerable? _scheduleOrderDetailsDetails; + + private ScheduleOrderDto? ScheduleOrderDto { get; set; } protected override async Task OnInitializedAsync() { - _scheduleOrderDetails = await ScheduleOrderDetailsService.GetScheduleOrderDetails(ScheduleOrderId) ?? new List(); + ScheduleOrderDto = await ScheduleOrderService.GetScheduleOrderAsync(ScheduleOrderId); + + _scheduleOrderDetails = ScheduleOrderDto?.ScheduleOrderDetails; + + if (ScheduleOrderDto is not null && _scheduleOrderDetails is not null) + { + foreach (ScheduleOrderDetailDto scheduleOrderDetailDto in _scheduleOrderDetails) + { + scheduleOrderDetailDto.OrderNumber = ScheduleOrderDto?.PONum; + scheduleOrderDetailDto.RecipientCode = ScheduleOrderDto?.RecipientCode; + scheduleOrderDetailDto.RecipientName = ScheduleOrderDto?.RecipientName; + scheduleOrderDetailDto.PurchaserName = ScheduleOrderDto?.PurchaserCode; + } + } + StateHasChanged(); } - private void OnSelectedLineRow(RowSelectEventArgs 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 obj) - { - ScheduleOrderDetailDto? scheduleOrderDetail = obj.Data; - - SelectOrderDetail(scheduleOrderDetail); - } - private void OnRowDataBound(RowDataBoundEventArgs args) { if (args.Data.QtyType == "83" || args.Data.QtyType == "84") @@ -145,4 +157,5 @@ args.Row.AddClass(["highlight-red"]); } } + } diff --git a/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor b/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor index 375b1c2..2a9509e 100644 --- a/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor +++ b/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor @@ -2,8 +2,10 @@ @using Syncfusion.Blazor.Grids @inherits LayoutComponentBase +@inject ScheduleOrderService ScheduleOrderService +
- - - - - - + + + + + + @@ -38,19 +47,69 @@ EnableAdaptiveUI="true" AdaptiveUIMode="AdaptiveMode.Both"> - - + + + + + + + + + @{ + IList? scheduleOrderDetailsDetails = (@detail as ScheduleOrderDetailDto)?.ScheduleOrderDetailDetails; + + + + + + + + + + + + + + } + + + } - - - + + +
@@ -61,7 +120,9 @@ [Parameter] public required int PageSize { get; set; } - private SfGrid _grid { get; set; } + private ScheduleOrderDto? ScheduleOrderDto { get; set; } + + private SfGrid? Grid { get; set; } private IEnumerable _dataSource = []; @@ -72,16 +133,63 @@ protected override async Task OnAfterRenderAsync(bool firstRender) { - if (firstRender) + if (firstRender && Grid != null) { - await PassGridRef(_grid); + await PassGridRef(Grid); } } - private void OnRowDoubleClick(RecordDoubleClickEventArgs obj) + private void OnScheduleOrderRowDoubleClick(RecordDoubleClickEventArgs obj) { int scheduleOrderId = obj.RowData.ID; NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}"); } + + private void OnScheduleOrderDetailRowDoubleClick(RecordDoubleClickEventArgs obj) + { + int? scheduleOrderId = ScheduleOrderDto?.ID; + + if (scheduleOrderId is not null) + { + NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}"); + } + } + + private void OnScheduleOrderDetailDetailRowDoubleClick(RecordDoubleClickEventArgs obj) + { + int? scheduleOrderId = ScheduleOrderDto?.ID; + + if (scheduleOrderId is not null) + { + NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}"); + } + } + + private async Task OnDetailsExpanding(DetailsExpandingEventArgs obj) + { + ScheduleOrderDto = obj.Data; + + if (ScheduleOrderDto != null) + { + ScheduleOrderDto? scheduleOrder = await ScheduleOrderService.GetScheduleOrderAsync(ScheduleOrderDto.ID); + ScheduleOrderDto.ScheduleOrderDetails = scheduleOrder?.ScheduleOrderDetails ?? []; + + foreach (ScheduleOrderDetailDto scheduleOrderDetailDto in ScheduleOrderDto.ScheduleOrderDetails) + { + scheduleOrderDetailDto.OrderNumber = scheduleOrder?.PONum; + scheduleOrderDetailDto.RecipientCode = scheduleOrder?.RecipientCode; + scheduleOrderDetailDto.RecipientName = scheduleOrder?.RecipientName; + scheduleOrderDetailDto.PurchaserName = scheduleOrder?.PurchaserCode; + } + } + } + + private void OnRowDataBound(RowDataBoundEventArgs args) + { + if (args.Data.QtyType == "83" || args.Data.QtyType == "84") + { + args.Row.AddClass(["highlight-red"]); + } + } } \ No newline at end of file diff --git a/OrdersManagement/Services/ScheduleOrderService.cs b/OrdersManagement/Services/ScheduleOrderService.cs index 8b1b041..a3bc588 100644 --- a/OrdersManagement/Services/ScheduleOrderService.cs +++ b/OrdersManagement/Services/ScheduleOrderService.cs @@ -8,5 +8,11 @@ namespace OrdersManagement.Services { return await httpClient.GetFromJsonAsync>("api/ScheduleOrders"); } + + public async Task GetScheduleOrderAsync(int scheduleOrderId) + { + return await httpClient.GetFromJsonAsync( + $"api/ScheduleOrders/{scheduleOrderId}"); + } } }