* Added validation to not generate more than one PackingList to the same WZ

* Added filtering when found more than one item after scanning
This commit is contained in:
2025-08-04 20:13:54 +02:00
parent e69b10398f
commit 1842fd6146
2 changed files with 39 additions and 4 deletions

View File

@@ -94,6 +94,17 @@
<DialogButton Content="OK" IsPrimary="true" OnClick="@HideModal"/>
</DialogButtons>
</SfDialog>
<SfDialog Width="500px" Title="Błąd" IsModal="true" @bind-Visible="VisibilityError" AllowPrerender="true">
<DialogTemplates>
<Content>
<p>Błąd: Dla zaznaczonego rekordu istnieje już PackingList!</p>
</Content>
</DialogTemplates>
<DialogButtons>
<DialogButton Content="OK" IsPrimary="true" OnClick="@HideModal"/>
</DialogButtons>
</SfDialog>
<CardFooter>
<small class="text-muted">FA Krosno Manager © @(DateTime.Now.Year)</small>
@@ -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;
}
}

View File

@@ -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 @@
<GridColumn Field=@nameof(WzRowMeyleDto.OrderNumber) AllowEditing="false"
TextAlign="TextAlign.Center" HeaderText="Numer Zamówienia Meyle"
Width="70"></GridColumn>
<GridColumn Field=@nameof(WzRowMeyleDto.FaIndex) AllowEditing="false"
<GridColumn Field=@nameof(WzRowMeyleDto.FaIndex) AllowEditing="false" AllowFiltering="true"
TextAlign="TextAlign.Center" HeaderText="Numer Indeksu FA" Width="100"></GridColumn>
<GridColumn Field=@nameof(WzRowMeyleDto.ItemNumber) AllowEditing="false"
TextAlign="TextAlign.Center" HeaderText="Numer Indeksu Meyle" Width="100"></GridColumn>
@@ -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<WzRowMeyleDto> selectedRecords)
{
await _grid.FilterByColumnAsync(nameof(WzRowMeyleDto.FaIndex), "equal", selectedRecords.First().FaIndex);
}
}