From 1842fd6146cb77d95f4d57917a4f87c4b371757c Mon Sep 17 00:00:00 2001 From: Piotr Kus Date: Mon, 4 Aug 2025 20:13:54 +0200 Subject: [PATCH] * Added validation to not generate more than one PackingList to the same WZ * Added filtering when found more than one item after scanning --- .../Components/Pages/Warehouse.razor | 23 ++++++++++++++++++- .../Components/Pages/WarehousePackList.razor | 20 +++++++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/OrdersManagement/Components/Pages/Warehouse.razor b/OrdersManagement/Components/Pages/Warehouse.razor index 9ed444e..eac9d5e 100644 --- a/OrdersManagement/Components/Pages/Warehouse.razor +++ b/OrdersManagement/Components/Pages/Warehouse.razor @@ -94,6 +94,17 @@ + + + + +

Błąd: Dla zaznaczonego rekordu istnieje już PackingList!

+
+
+ + + +
FA Krosno Manager © @(DateTime.Now.Year) @@ -115,6 +126,7 @@ private bool _isVisible; private bool Visibility { get; set; } + private bool VisibilityError { get; set; } protected override async Task OnAfterRenderAsync(bool firstRender) { @@ -178,12 +190,20 @@ return; } + string wzNumbers = string.Join(", ",selectedRecords.Select(x => x.MTGroupNum).Distinct()); + + if (_wzHeaders.Any(x => x.WzNumbers == wzNumbers)) + { + VisibilityError = true; + return; + } + WzHeaderDto wzHeader = new WzHeaderDto { ID = Guid.NewGuid(), FK_Client = _selectedClient?.ID, CreatedDate = DateTime.Now, - WzNumbers = string.Join(", ",selectedRecords.Select(x => x.MTGroupNum).Distinct()) + WzNumbers = wzNumbers }; await WarehouseService.CreateWzHeaderAsync(wzHeader); @@ -223,5 +243,6 @@ private void HideModal() { Visibility = false; + VisibilityError = false; } } \ No newline at end of file diff --git a/OrdersManagement/Components/Pages/WarehousePackList.razor b/OrdersManagement/Components/Pages/WarehousePackList.razor index 9f6d14c..8e11b74 100644 --- a/OrdersManagement/Components/Pages/WarehousePackList.razor +++ b/OrdersManagement/Components/Pages/WarehousePackList.razor @@ -1,13 +1,16 @@ @page "/Warehouse/PackList/{WzHeader:guid}" @using System.Diagnostics @using OrdersManagement.Models +@using Syncfusion.Blazor @using Syncfusion.Blazor.Cards +@using Syncfusion.Blazor.Data @using Syncfusion.Blazor.Grids @using SytelineSaAppEfDataModel.Dtos @using Syncfusion.Blazor.Navigations @using Syncfusion.Blazor.Popups @using Syncfusion.Blazor.Inputs @using Action = System.Action +@using FilterType = Syncfusion.Blazor.Grids.FilterType @inject WarehouseService WarehouseService @@ -65,7 +68,7 @@ - @@ -299,6 +302,9 @@ return; } + _grid.Query = null; + _grid.ClearFilteringAsync(); + if (materialTransactionByPartNumber != null) { SelectedRows.Clear(); @@ -386,10 +392,10 @@ ChangedRecords.Add(record); int index = WzRowsMeyle.IndexOf(record); + if (index >= 0) { selectedIndices.Add(index); - Console.WriteLine($"Dodano indeks: {index}"); // Debugowanie } } } @@ -397,6 +403,10 @@ SelectedRows.Clear(); SelectedRows.AddRange(ChangedRecords); + SelectedRow = SelectedRows.FirstOrDefault(); + + await ApplyFilter(ChangedRecords); + break; } default: @@ -540,5 +550,9 @@ Backtrack(0, 0); return result; } - + + private async Task ApplyFilter(IList selectedRecords) + { + await _grid.FilterByColumnAsync(nameof(WzRowMeyleDto.FaIndex), "equal", selectedRecords.First().FaIndex); + } } \ No newline at end of file