+ @item.ProductName — @item.TrayQuantity/@item.Quantity rekesz
+
+ }
+ @{
+ var cardOrderNote = MeasurementService.GetOrderNote(context.OrderNotes);
+ }
+ @if (!string.IsNullOrWhiteSpace(cardOrderNote))
+ {
+
📝 Megjegyzés: @(orderNote)
diff --git a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs
index 23d5f0dd..96511bd7 100644
--- a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs
+++ b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs
@@ -410,30 +410,6 @@ namespace FruitBankHybrid.Shared.Pages
await DialogService.ShowMessageBoxAsync("Információ", "A mérés már folyamatban, válasszon másik rendelést!", MessageBoxRenderStyle.Info);
}
- private static string GetOrderStatusCssClass(MeasuringStatus status) => status switch
- {
- MeasuringStatus.Audited => "text-success",
- MeasuringStatus.Finnished => "text-primary",
- MeasuringStatus.Started => "text-warning",
- _ => "text-muted"
- };
-
- private static string GetOrderStatusBadgeCssClass(MeasuringStatus status) => status switch
- {
- MeasuringStatus.Audited => "bg-success",
- MeasuringStatus.Finnished => "bg-primary",
- MeasuringStatus.Started => "bg-warning text-dark",
- _ => "bg-secondary"
- };
-
- private static string GetOrderStatusText(MeasuringStatus status) => status switch
- {
- MeasuringStatus.Audited => "Lezárva",
- MeasuringStatus.Finnished => "Kész",
- MeasuringStatus.Started => "Folyamatban",
- _ => "Nem kezdett"
- };
-
public void Dispose()
{
FruitBankSignalRClient.OnMessageReceived -= SignalRClientOnMessageReceived;
diff --git a/FruitBankHybrid.Shared/Services/MeasurementService.cs b/FruitBankHybrid.Shared/Services/MeasurementService.cs
index 6db0a97a..38688f1b 100644
--- a/FruitBankHybrid.Shared/Services/MeasurementService.cs
+++ b/FruitBankHybrid.Shared/Services/MeasurementService.cs
@@ -2,12 +2,14 @@
using DevExpress.Blazor;
using FruitBank.Common.Dtos;
using FruitBank.Common.Entities;
+using FruitBank.Common.Enums;
using FruitBank.Common.Interfaces;
using FruitBank.Common.Services;
using FruitBankHybrid.Shared.Models;
using FruitBankHybrid.Shared.Services.Loggers;
using Mango.Nop.Core.Dtos;
using Mango.Nop.Core.Loggers;
+using Nop.Core.Domain.Orders;
namespace FruitBankHybrid.Shared.Services;
@@ -109,4 +111,66 @@ public class MeasurementService(IEnumerable
logWriters)
public static bool IsCustomItemPalletMeasuredAndValid(IMeasuringItemPalletBase customItemPallet, bool isMeasurable)
=> customItemPallet.IsMeasuredAndValid(isMeasurable);
+
+ ///
+ /// Returns the last order note starting with '*', or null if none exists.
+ ///
+ public static string? GetOrderNote(IEnumerable? orderNotes)
+ => orderNotes?.LastOrDefault(x => x.Note.StartsWith('*'))?.Note;
+
+ ///
+ /// Returns a Bootstrap badge CSS class for the given measuring status.
+ /// When is false, Finnished is treated as the final state (success/green).
+ ///
+ public static string GetMeasuringStatusBadgeCssClass(MeasuringStatus status, bool hasAuditedStage = true) => status switch
+ {
+ MeasuringStatus.Audited => "bg-success",
+ MeasuringStatus.Finnished => hasAuditedStage ? "bg-primary" : "bg-success",
+ MeasuringStatus.Started => "bg-warning text-dark",
+ _ => "bg-secondary"
+ };
+
+ ///
+ /// Returns a localized display text for the given measuring status.
+ ///
+ public static string GetMeasuringStatusText(MeasuringStatus status) => status switch
+ {
+ MeasuringStatus.Audited => "Lezárva",
+ MeasuringStatus.Finnished => "Kész",
+ MeasuringStatus.Started => "Folyamatban",
+ _ => "Nem kezdett"
+ };
+
+ ///
+ /// Returns a text color CSS class for the given measuring status.
+ /// When is false, Finnished is treated as the final state (success/green).
+ ///
+ public static string GetMeasuringStatusCssClass(MeasuringStatus status, bool hasAuditedStage = true) => status switch
+ {
+ MeasuringStatus.Audited => "text-success",
+ MeasuringStatus.Finnished => hasAuditedStage ? "text-primary" : "text-success",
+ MeasuringStatus.Started => "text-warning",
+ _ => "text-muted"
+ };
+
+ ///
+ /// Computes a shipping-level MeasuringStatus from its items.
+ ///
+ public static MeasuringStatus GetShippingMeasuringStatus(Shipping shipping)
+ {
+ var items = shipping.ShippingDocuments?
+ .Where(sd => sd.ShippingItems is not null)
+ .SelectMany(sd => sd.ShippingItems!);
+
+ if (items is null || !items.Any())
+ return MeasuringStatus.NotStarted;
+
+ if (items.All(si => si.IsMeasured))
+ return MeasuringStatus.Finnished;
+
+ if (items.Any(si => si.MeasuringStatus == MeasuringStatus.Started || si.IsMeasured))
+ return MeasuringStatus.Started;
+
+ return MeasuringStatus.NotStarted;
+ }
}
\ No newline at end of file