@@ -94,7 +95,7 @@
{
private readonly string[] _pdfFiles =
[
- "1_Albaran_AH25007715.pdf",
+ "1_Albaran_AH25007715.pdf",
"2_BANK FRA.pdf",
"3_BP-30M35_20251113_163816.pdf"
];
@@ -110,16 +111,26 @@
private async Task OnDataItemChangedAsync(object? dataItem)
{
- @if (dataItem is not ShippingDocument && dataItem is not ShippingItem) return;
+ if (dataItem is not ShippingDocument && dataItem is not ShippingItem) return;
- // Store the PDF to render
- _randomPdf = _pdfFiles[Random.Shared.Next(_pdfFiles.Length)];
- _currentPdfToRender = $"_content/FruitBankHybrid.Shared/uploads/{_randomPdf}";
+ ShippingDocument? shippingDocument = null;
- // If MgLazyLoadContent is already visible, render the PDF immediately
- if (_lazyContentRef is { IsVisible: true })
+ if (dataItem is ShippingItem shippingItem) shippingDocument = shippingItem.ShippingDocument;
+ else shippingDocument = dataItem as ShippingDocument;
+
+ if (shippingDocument == null) return;
+
+ if (_lazyContentRef != null && shippingDocument.ShippingDocumentToFiles?.Count > 0)
{
- await _lazyContentRef.TriggerContentVisibleAsync();
+ // Store the PDF to render
+ _randomPdf = _pdfFiles[Random.Shared.Next(_pdfFiles.Length)];
+ _currentPdfToRender = $"_content/FruitBankHybrid.Shared/uploads/{_randomPdf}";
+
+ // If MgLazyLoadContent is already visible, render the PDF immediately
+ if (_lazyContentRef is { IsVisible: true })
+ {
+ await _lazyContentRef.TriggerContentVisibleAsync();
+ }
}
}
diff --git a/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor b/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor
index 6142714a..03564592 100644
--- a/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor
+++ b/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor
@@ -23,12 +23,13 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/FruitBankHybrid.Shared/Components/Grids/StockTakingItems/GridStockTakingItem.razor b/FruitBankHybrid.Shared/Components/Grids/StockTakingItems/GridStockTakingItem.razor
index 951bae92..868288d5 100644
--- a/FruitBankHybrid.Shared/Components/Grids/StockTakingItems/GridStockTakingItem.razor
+++ b/FruitBankHybrid.Shared/Components/Grids/StockTakingItems/GridStockTakingItem.razor
@@ -48,7 +48,7 @@
@if (IsMasterGrid)
{
-
+
}
diff --git a/FruitBankHybrid.Shared/Components/PalletItemComponent.razor b/FruitBankHybrid.Shared/Components/PalletItemComponent.razor
index 9b534e9a..8da64c72 100644
--- a/FruitBankHybrid.Shared/Components/PalletItemComponent.razor
+++ b/FruitBankHybrid.Shared/Components/PalletItemComponent.razor
@@ -12,7 +12,7 @@
@typeparam TPalletItem where TPalletItem : class, IMeasuringItemPalletBase
+ ItemUpdating="@((pair) => OnItemUpdating(pair.Key, pair.Value, PalletItem))" Enabled="Editable">
@(MeasuringIndex). MÉRÉS
@@ -21,24 +21,24 @@
@* *@
@@ -48,19 +48,19 @@
-
+
@if (HasAuditButton)
{
-
}
-@code {
+ @code {
[Inject] public required IEnumerable LogWriters { get; set; }
[Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; }
[Inject] public required LoggedInModel LoggedInModel { get; set; }
@@ -73,15 +73,19 @@
[Parameter] public int? AddOrUpdateSignalRTag { get; set; } = null;
[Parameter] public int? MaxTrayQuantity { get; set; } = null;
- [Parameter] public bool IsEditable { get; set; } = true;
+ [Parameter] public bool Editable { get; set; } = true;
- //[Parameter] public EventCallback OnPalletItemSaveClick { get; set; }
[Parameter] public Func? OnPalletItemSaved { get; set; }
[Parameter] public Func? OnPalletItemValueChanged { get; set; }
- [Parameter] public Func? OnPalletItemAuditedClick { get; set; }
+ [Parameter] public Func? OnPalletItemAudited { get; set; }
+
+ ///
+ /// Before Save or Audit
+ ///
+ [Parameter] public Func? OnPalletItemSaveOrAuditClick { get; set; }
//public bool LoadingPanelVisible { get; set; } = false;
- //public bool IsEditable => !HasAuditButton || (OrderItemPallet.IsAudited);
+ //public bool Editable => !HasAuditButton || (OrderItemPallet.IsAudited);
public bool BtnSaveEnabled { get; set; }
@@ -93,7 +97,7 @@
private bool GetBtnSaveEnabled()
{
- return IsEditable && PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured && IsMaxTrayQuantityValid;
+ return Editable && PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured && IsMaxTrayQuantityValid;
}
private bool IsMaxTrayQuantityValid => (!MaxTrayQuantity.HasValue || PalletItem.TrayQuantity <= MaxTrayQuantity.Value);
@@ -119,6 +123,8 @@
PalletItem.ModifierId = LoggedInModel.CustomerDto?.Id;
+ if (OnPalletItemSaveOrAuditClick != null) await OnPalletItemSaveOrAuditClick.Invoke(PalletItem);
+
var responseShippingItemPallet = await FruitBankSignalRClient.PostDataAsync(AddOrUpdateSignalRTag!.Value, PalletItem);
if (responseShippingItemPallet != null) PalletItem.Id = responseShippingItemPallet.Id; //Az UpdateCollection miatt kell, hogy megtalálja mit kell kicserélni! - J.
//else _logger.Error($"Sikertelen volt a raklap adatainak mentése!");
@@ -126,7 +132,7 @@
if (OnPalletItemSaved != null) await OnPalletItemSaved.Invoke(responseShippingItemPallet);
//LoadingPanelVisible = false;
- StateHasChanged();
+ await InvokeAsync(StateHasChanged);
}
protected async Task OnItemUpdating(string fieldName, object newValue, TPalletItem palletItem)
@@ -172,15 +178,17 @@
private async Task PalletItemAuditedClick()
{
- if (OnPalletItemAuditedClick != null)
+ if (OnPalletItemAudited != null)
{
if (OrderItemPallet == null) throw new Exception($"PalletItemComponent->PalletItemAuditedClick(); OrderItemPallet == null");
if (await DialogService.ShowConfirmBoxAsync("Megerősítés", "Biztoan jóváhagyja a mérést? Jóváhagyás után a mérés nem módosítható!", MessageBoxRenderStyle.Info))
{
+ if (OnPalletItemSaveOrAuditClick != null) await OnPalletItemSaveOrAuditClick.Invoke(PalletItem);
+
OrderItemPallet.RevisorId = LoggedInModel.CustomerDto!.Id;
- StateHasChanged(); //Az Audit button miatt kell a StateHasChanged(), most már van RevisorId és emiatt disabled lesz...
+ await InvokeAsync(StateHasChanged); //Az Audit button miatt kell a StateHasChanged(), most már van RevisorId és emiatt disabled lesz...
PalletItem.SetParentPropToNull();
@@ -191,7 +199,7 @@
await DialogService.ShowMessageBoxAsync("Hiba", "Adatok mentése sikertelen volt, ellenőrizze a mérés adatait!", MessageBoxRenderStyle.Danger);
}
- if (OnPalletItemAuditedClick != null) await OnPalletItemAuditedClick.Invoke(responseShippingItemPallet);
+ await OnPalletItemAudited.Invoke(responseShippingItemPallet);
}
}
}
diff --git a/FruitBankHybrid.Shared/Components/StockTakings/StockTakingTemplate.razor b/FruitBankHybrid.Shared/Components/StockTakings/StockTakingTemplate.razor
index ebf7d5f7..d4b7f485 100644
--- a/FruitBankHybrid.Shared/Components/StockTakings/StockTakingTemplate.razor
+++ b/FruitBankHybrid.Shared/Components/StockTakings/StockTakingTemplate.razor
@@ -12,17 +12,26 @@
@using FruitBankHybrid.Shared.Services.SignalRs
@using Mango.Nop.Core.Entities
+
+
@* CaptionCssClass="@(SelectedProductDto?.IsMeasured == true ? "text-success" : "")"> *@
-
+ ValueChanged="@(async (StockTaking stockTaking) => await StockTakingComboValueChanged(stockTaking, null))">
@@ -32,18 +41,24 @@
CssClass="cw-480"
DropDownBodyCssClass="dd-body-class"
Context="ctxProduct2"
- InputId="cbProduct2">
+ InputId="cbProduct2"
+ SearchMode="ListSearchMode.AutoSearch"
+ SearchFilterCondition="ListSearchFilterCondition.Contains"
+ SearchTextParseMode="ListSearchTextParseMode.Default"
+ ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto"
+ DropDownTriggerMode="DropDownTriggerMode.Click"
+ @ref="cbStockTakingItems">
@* TextFieldName="StockTakingItem.Product.Name" *@
-
+
-
-
+@*
+
-
-
+ *@
+
@@ -58,10 +73,17 @@
@{
var a = $"Várható rekesz: {SelectedStockTakingItem.TotalOriginalQuantity} ({SelectedStockTakingItem.OriginalStockQuantity} + {SelectedStockTakingItem.InProcessOrdersQuantity}), Várható net.súly: {SelectedStockTakingItem.OriginalNetWeight} kg.";
-
@a
+
@a
}
+
+ @if (SelectedStockTakingItem.IsInvalid)
+ {
+
A várható mennyiség nem lehet negatív! A hibás adatok javítása után nyomja meg a "Frissítés" gombot.
+
+ }
+
-
+
@for (var index = 0; index < (SelectedStockTakingItem?.StockTakingItemPallets?.Count ?? 0); index++)
{
@@ -70,6 +92,7 @@
}
+
@code
{
@@ -102,6 +126,12 @@
[Inject] public required IDialogService DialogService { get; set; } = null!;
[Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; }
+ bool _btnDisabled = false;
+ bool LoadingPanelVisible = false;
+
+ DxComboBox