From a74b356e702496defd4ec95de7fb7e585fedbc1c Mon Sep 17 00:00:00 2001 From: Loretta Date: Thu, 9 Oct 2025 07:29:33 +0200 Subject: [PATCH] improvements, fixes, etc... --- .../Entities/ShippingItemPallet.cs | 50 +++++++-- .../IFruitBankDataControllerCommon.cs | 1 + .../Interfaces/IMeasuringValues.cs | 6 +- .../Interfaces/IMeasuringWeights.cs | 10 +- .../Interfaces/IShippingItemPallet.cs | 2 +- FruitBank.Common/SignalRs/SignalRTags.cs | 1 + .../FruitBankClientTests.cs | 99 +++++++++++++---- .../Pages/MeasuringIn.razor | 105 ++++++++++-------- .../Pages/MeasuringIn.razor.cs | 57 ++++++++-- .../SignalRs/FruitBankSignalRClient.cs | 4 + 10 files changed, 247 insertions(+), 88 deletions(-) diff --git a/FruitBank.Common/Entities/ShippingItemPallet.cs b/FruitBank.Common/Entities/ShippingItemPallet.cs index 03510e8..213b33d 100644 --- a/FruitBank.Common/Entities/ShippingItemPallet.cs +++ b/FruitBank.Common/Entities/ShippingItemPallet.cs @@ -10,25 +10,36 @@ namespace FruitBank.Common.Entities; [System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingItemPalletDbTableName)] public class ShippingItemPallet : MgEntityBase, IShippingItemPallet { + private double _palletWeight; + private double _grossWeight; + public int ShippingItemId { get; set; } [Column(DataType = DataType.DecFloat)] - public double PalletWeight { get; set; } + public double PalletWeight + { + get => _palletWeight; + set => _palletWeight = double.Round(value, 1); + } //[Nullable] //[Column(CanBeNull = true)] [Range(1, 100000, ErrorMessage = "The Quantity value should be a number between 1 and 100,000.")] public int Quantity { get; set; } - //[Nullable] - [Column(DataType = DataType.DecFloat, CanBeNull = false)] - [Range(1, 100000, ErrorMessage = "The NetWeight value should be a number between 1 and 100,000.")] - public double NetWeight { get; set; } + [NotColumn] + //[Column(DataType = DataType.DecFloat, CanBeNull = false)] + //[Range(1, 100000, ErrorMessage = "The NetWeight value should be a number between 1 and 100,000.")] + public double NetWeight => double.Round(GrossWeight - PalletWeight, 1); //[Nullable] [Column(DataType = DataType.DecFloat, CanBeNull = false)] [Range(1, 100000, ErrorMessage = "The GrossWeight value should be a number between 1 and 100,000.")] - public double GrossWeight { get; set; } + public double GrossWeight + { + get => _grossWeight; + set => _grossWeight = double.Round(value, 1); + } public bool IsMeasured { get; set; } @@ -43,8 +54,33 @@ public class ShippingItemPallet : MgEntityBase, IShippingItemPallet public DateTime Created { get; set; } public DateTime Modified { get; set; } + /// + /// Nem lehet nullánál kisebb "Weight" érték és a ShippingId, Quantity nagyobb mint nulla! Megengedőbb mint az IsValidMeasuringValues(bool isMeasurable)... + /// + /// + public bool IsValidSafeMeasuringValues() + { + return ShippingItemId > 0 && Quantity > 0 && PalletWeight >= 0 && NetWeight >= 0 && GrossWeight >= 0; + } + + /// + /// "Szigorúbb" mint az IsValidSafeMeasuringValues() + /// + /// + /// public bool IsValidMeasuringValues(bool isMeasurable) { - return ShippingItemId > 0 && PalletWeight >= 0 && Quantity > 0 && (!isMeasurable || (NetWeight > 0 && GrossWeight > 0)); + return ShippingItemId > 0 && Quantity > 0 && + ((!isMeasurable && NetWeight == 0 && GrossWeight == 0 && PalletWeight == 0) || (isMeasurable && NetWeight > 0 && GrossWeight > 0 && PalletWeight >= 0)); + } + + public bool IsMeasuredAndValid(bool isMeasurable) + { + return Id > 0 && IsMeasured && IsValidMeasuringValues(isMeasurable); + } + + public override string ToString() + { + return $"{base.ToString()} [ShippingItemId: {ShippingItemId}; IsMeasured: {IsMeasured}; PalletWeight: {PalletWeight}; Quantity: {Quantity}; NetWeight: {NetWeight}; GrossWeight: {GrossWeight}]"; } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs index 163ea3a..37d48d2 100644 --- a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs +++ b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs @@ -34,6 +34,7 @@ public interface IFruitBankDataControllerCommon #region ShippingItemPallet public Task AddShippingItemPallet(ShippingItemPallet shippingItemPallet); public Task UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet); + public Task AddOrUpdateMeasuredShippingItemPallets(List shippingItemPallets); #endregion ShippingItemPallet #region ShippingDocument diff --git a/FruitBank.Common/Interfaces/IMeasuringValues.cs b/FruitBank.Common/Interfaces/IMeasuringValues.cs index 5788d5a..c738860 100644 --- a/FruitBank.Common/Interfaces/IMeasuringValues.cs +++ b/FruitBank.Common/Interfaces/IMeasuringValues.cs @@ -1,6 +1,10 @@ namespace FruitBank.Common.Interfaces; -public interface IMeasuringValues : IMeasuringWeights +public interface IMeasuringValues : IMeasuringWeights, IMeasuringQuantity +{ +} + +public interface IMeasuringQuantity { int Quantity { get; set; } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IMeasuringWeights.cs b/FruitBank.Common/Interfaces/IMeasuringWeights.cs index c808efc..971cb04 100644 --- a/FruitBank.Common/Interfaces/IMeasuringWeights.cs +++ b/FruitBank.Common/Interfaces/IMeasuringWeights.cs @@ -1,7 +1,15 @@ namespace FruitBank.Common.Interfaces; -public interface IMeasuringWeights +public interface IMeasuringWeights : IMeasuringGrossWeight, IMeasuringNetWeight +{ +} + +public interface IMeasuringNetWeight { double NetWeight { get; set; } +} + +public interface IMeasuringGrossWeight +{ double GrossWeight { get; set; } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IShippingItemPallet.cs b/FruitBank.Common/Interfaces/IShippingItemPallet.cs index 39cf6b8..2baf0c9 100644 --- a/FruitBank.Common/Interfaces/IShippingItemPallet.cs +++ b/FruitBank.Common/Interfaces/IShippingItemPallet.cs @@ -4,7 +4,7 @@ using FruitBank.Common.Entities; namespace FruitBank.Common.Interfaces; -public interface IShippingItemPallet : IEntityInt, IMeasuringValues, ITimeStampInfo +public interface IShippingItemPallet : IEntityInt, IMeasuringGrossWeight, IMeasuringQuantity, ITimeStampInfo { int ShippingItemId { get; set; } diff --git a/FruitBank.Common/SignalRs/SignalRTags.cs b/FruitBank.Common/SignalRs/SignalRTags.cs index dcd2a39..92284a4 100644 --- a/FruitBank.Common/SignalRs/SignalRTags.cs +++ b/FruitBank.Common/SignalRs/SignalRTags.cs @@ -42,6 +42,7 @@ public class SignalRTags : AcSignalRTags public const int AddShippingItemPallet = 95; public const int UpdateShippingItemPallet = 96; + public const int AddOrUpdateMeasuredShippingItemPallets = 97; public const int AuthenticateUser = 160; public const int RefreshToken = 200; diff --git a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs index bded39f..fe692f0 100644 --- a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs +++ b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs @@ -9,6 +9,8 @@ using FruitBank.Common.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices.JavaScript; +using System.Security.Cryptography.X509Certificates; + // ReSharper disable CompareOfFloatsByEqualityOperator namespace FruitBankHybrid.Shared.Tests @@ -148,7 +150,25 @@ namespace FruitBankHybrid.Shared.Tests Assert.IsNotNull(shippingItems); Assert.IsTrue(shippingItems.Count != 0); - Assert.IsTrue(shippingItems.All(si=>si.Product?.Id == si.ProductId), "shippingItem.Product == null"); + Assert.IsTrue(shippingItems.All(si => si.Product?.Id == si.ProductId), "shippingItem.Product == null"); + + Assert.IsTrue(shippingItems.All(x => x.ShippingItemPallets!.Where(sp => sp.IsMeasured).Sum(sp => sp.GrossWeight) == x.MeasuredGrossWeight)); + Assert.IsTrue(shippingItems.All(x => x.ShippingItemPallets!.Where(sp => sp.IsMeasured).Sum(sp => sp.NetWeight) == x.MeasuredNetWeight)); + + foreach (var shippingItem in shippingItems.ToList()) + { + var measuringProductDto = await _signalRClient.GetMeasuringProductDtoById(shippingItem.ProductId!.Value); + + Assert.IsTrue(measuringProductDto!.Quantity == shippingItem.Product!.StockQuantity); + var shippingItemSumQnty = shippingItems.Where(x => x.IsMeasured && x.Id == shippingItem.Id).Sum(x => x.MeasuredQuantity); + Assert.IsTrue(shippingItemSumQnty == measuringProductDto.Quantity, $"{shippingItem}; shippingItemSum Quantity: {shippingItemSumQnty} == {measuringProductDto.Quantity}"); + + var shippingItemSumWeight = shippingItems.Where(x => x.IsMeasured && x.Id == shippingItem.Id).Sum(x => x.MeasuredNetWeight); + Assert.IsTrue(shippingItemSumWeight == measuringProductDto!.NetWeight, $"{shippingItem}; shippingItemSum NetWeight: {shippingItemSumWeight} == {measuringProductDto.NetWeight}"); + + shippingItemSumWeight = shippingItems.Where(x => x.IsMeasured && x.Id == shippingItem.Id).Sum(x => x.MeasuredGrossWeight); + Assert.IsTrue(shippingItemSumWeight == measuringProductDto.GrossWeight, $"{shippingItem}; shippingItemSum GrossWeight: {shippingItemSumWeight} == {measuringProductDto.GrossWeight}"); + } } [TestMethod] @@ -174,7 +194,8 @@ namespace FruitBankHybrid.Shared.Tests var shippingItem = await _signalRClient.GetShippingItemById(shippingItemId); Assert.IsNotNull(shippingItem, $"shippingItemId: {shippingItemId}"); - Assert.IsNotNull(shippingItem.Pallet, $"shippingItem.Pallet == null; shippingItem.PalletId: {shippingItem.PalletId}"); + + if (shippingItem.IsMeasurable) Assert.IsNotNull(shippingItem.Pallet, $"shippingItem.Pallet == null; shippingItem.PalletId: {shippingItem.PalletId}"); Assert.IsNotNull(shippingItem.Product, $"shippingItem.Product == null; shippingItem.ProductId: {shippingItem.ProductId}"); Assert.IsTrue(shippingItem.Id == shippingItemId); @@ -186,14 +207,17 @@ namespace FruitBankHybrid.Shared.Tests } [DataTestMethod] - [DataRow(1, -1, -2.137563300001, -3.75238200001)] + [DataRow(1, -1, -2.137563300001, -333.75238200001)] [DataRow(1, 1, 2.137563300001, 3.75238200001)] - [DataRow(2, -1, -2.137563300001, 3.75238200001)] - [DataRow(3, 1, 2.137563300001, -3.75238200001)] + [DataRow(1, 1, 20.137563300001, 3.75238200001)] + [DataRow(2, -1, -20.137563300001, 3.75238200001)] + [DataRow(2, -1, 20.137563300001, 3.75238200001)] + [DataRow(3, 1, 2.137563300001, 1.75238200001)] [DataRow(3, 1, 2.137563300001, 3.75238200001)] - [DataRow(4, -1, 2.137563300001, 3.75238200001)] + [DataRow(4, 13, 2.137563300001, 3.75238200001)] [DataRow(5, 1, 2.137563300001, 3.75238200001)] - public async Task UpdateShippingItemTest(int shippingItemId, int incQuantity, double incNetWeight, double incGrossWeight) + [DataRow(5, -1, 2.137563300001, 3.75238200001)] + public async Task UpdateShippingItemTest(int shippingItemId, int incQuantity, double incPalletWeight, double incGrossWeight) { var originalShippingItem = await GetShippingItemByIdAsync(shippingItemId); var originalMeasuringProductDto = await GetMeasuringProductDtoByIdAsync(originalShippingItem.ProductId!.Value, originalShippingItem.IsMeasurable); @@ -212,13 +236,24 @@ namespace FruitBankHybrid.Shared.Tests Assert.IsNotNull(shippingItemPallet); + var nullResultIsValid = shippingItem.IsMeasured && !shippingItem.IsValidMeasuringValues(); + nullResultIsValid = nullResultIsValid || shippingItem.ShippingItemPallets!.Any(x => !x.IsValidMeasuringValues(originalMeasuringProductDto.IsMeasurable)); + nullResultIsValid = nullResultIsValid || shippingItem.ShippingItemPallets!.Any(x => !x.IsValidSafeMeasuringValues()); + shippingItemPallet.Quantity += incQuantity; - shippingItemPallet.NetWeight += incNetWeight; shippingItemPallet.GrossWeight += incGrossWeight; + shippingItemPallet.PalletWeight += incPalletWeight; shippingItem = await _signalRClient.UpdateShippingItem(shippingItem); - if (!shippingItemPallet.IsValidMeasuringValues(originalMeasuringProductDto.IsMeasurable)) + //A szerver oldal 0-ra állítja a shippingItemPallet weight-eket, ha nem mérhető! - J. + if (!originalMeasuringProductDto.IsMeasurable) + { + shippingItemPallet.GrossWeight = 0; + shippingItemPallet.PalletWeight = 0; + } + + if (nullResultIsValid || !shippingItemPallet.IsValidSafeMeasuringValues()) { Assert.IsNull(shippingItem); return; @@ -226,26 +261,44 @@ namespace FruitBankHybrid.Shared.Tests Assert.IsNotNull(shippingItem); Assert.IsNotNull(shippingItem.Product); + Assert.IsNotNull(shippingItem.ShippingItemPallets); + Assert.IsTrue(shippingItem.IsMeasurable == originalMeasuringProductDto.IsMeasurable); - //incNetWeight = double.Round(incNetWeight, 1); - //incGrossWeight = double.Round(incGrossWeight, 1); + incGrossWeight = originalMeasuringProductDto.IsMeasurable ? double.Round(incGrossWeight, 1) : 0; + var incNetWeight = originalMeasuringProductDto.IsMeasurable ? double.Round(incGrossWeight - incPalletWeight, 1) : 0; - Assert.IsTrue(shippingItem.IsMeasured); + var isMeasuredPalletsCount = shippingItem.ShippingItemPallets!.Count(x => x.IsMeasured); + + Assert.IsTrue(shippingItem.IsMeasured == (shippingItem.ShippingItemPallets!.All(x => x.IsMeasured) && shippingItem.MeasuringCount == isMeasuredPalletsCount)); + + if (shippingItem.IsMeasured) + { + Assert.IsTrue(shippingItem.IsValidMeasuringValues()); + Assert.IsTrue(shippingItem.MeasuringCount == isMeasuredPalletsCount); + } + else + { + incQuantity = 0; + incNetWeight = 0; + incGrossWeight = 0; + + Assert.IsTrue(shippingItem.MeasuringCount > isMeasuredPalletsCount); + } + + Assert.IsTrue(shippingItem.MeasuredQuantity == originalShippingItem.MeasuredQuantity + incQuantity); Assert.IsTrue(shippingItem.Product.StockQuantity == originalShippingItem.Product!.StockQuantity + incQuantity); - Assert.IsTrue(shippingItem.IsMeasurable == originalMeasuringProductDto.IsMeasurable); - Assert.IsTrue(shippingItem.MeasuredQuantity == originalShippingItem.MeasuredQuantity + incQuantity); - - var measuringProductDto = await GetMeasuringProductDtoByIdAsync(originalShippingItem.ProductId!.Value, shippingItem.IsMeasurable); - Assert.IsTrue(measuringProductDto.StockQuantity == originalMeasuringProductDto.StockQuantity + incQuantity); - Assert.IsTrue(shippingItem.MeasuredNetWeight == double.Round(originalShippingItem.MeasuredNetWeight + (shippingItem.IsMeasurable ? incNetWeight : 0), 1)); - Assert.IsTrue(shippingItem.MeasuredGrossWeight == double.Round(originalShippingItem.MeasuredGrossWeight + (shippingItem.IsMeasurable ? incGrossWeight : 0), 1)); - Assert.IsTrue(measuringProductDto.NetWeight == double.Round(originalMeasuringProductDto.NetWeight + (shippingItem.IsMeasurable ? incNetWeight : 0), 1)); Assert.IsTrue(measuringProductDto.GrossWeight == double.Round(originalMeasuringProductDto.GrossWeight + (shippingItem.IsMeasurable ? incGrossWeight : 0), 1)); + + Assert.IsTrue(shippingItem.ShippingItemPallets!.All(x => x.IsValidSafeMeasuringValues())); + Assert.IsTrue(shippingItem.ShippingItemPallets!.All(x => x.IsValidMeasuringValues(shippingItem.IsMeasurable))); + + Assert.IsTrue(shippingItem.MeasuredNetWeight == double.Round(originalShippingItem.MeasuredNetWeight + (shippingItem.IsMeasurable ? incNetWeight : 0), 1)); + Assert.IsTrue(shippingItem.MeasuredGrossWeight == double.Round(originalShippingItem.MeasuredGrossWeight + (shippingItem.IsMeasurable ? incGrossWeight : 0), 1)); } #endregion ShippingItem @@ -301,7 +354,7 @@ namespace FruitBankHybrid.Shared.Tests shippingDocument = await GetShippingDocumentByIdAsync(shippingDocumentId); Assert.IsTrue(shippingDocument.Country == newCountry); - Assert.IsTrue(shippingDocument!.ShippingDocumentToFiles?.FirstOrDefault()?.ShippingDocumentFile?.Id == 1); + Assert.IsTrue(shippingDocument.ShippingDocumentToFiles?.FirstOrDefault()?.ShippingDocumentFile?.Id == 1); shippingDocument.Country = GetOriginalName(shippingDocument.Country); await _signalRClient.UpdateShippingDocument(shippingDocument); @@ -363,6 +416,8 @@ namespace FruitBankHybrid.Shared.Tests [DataRow(5, true)] [DataRow(6, false)] [DataRow(33, true)] + [DataRow(64, false)] + [DataRow(7, false)] public async Task GetMeasuringProductDtoByIdTest(int productId, bool isMeasurableExcepted) { await GetMeasuringProductDtoByIdAsync(productId, isMeasurableExcepted); @@ -378,7 +433,7 @@ namespace FruitBankHybrid.Shared.Tests else { Assert.IsTrue(measuringProductDto.Id > 0); - Assert.IsTrue(measuringProductDto.StockQuantity > 0); + Assert.IsTrue(measuringProductDto.StockQuantity >= 0); Assert.IsTrue(measuringProductDto.NetWeight == 0); Assert.IsTrue(measuringProductDto.GrossWeight == 0); diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor index 3c1493f..3e24c3a 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor @@ -21,10 +21,10 @@ InputId="deDisabledDates"> @{ - var cssClass = GetCssClassNames(ctxShippingDate); + var cssClass = GetShippingDateCssClassNames(ctxShippingDate); if (!cssClass.IsNullOrWhiteSpace()) { - @ctxShippingDate.Day.ToString() + @ctxShippingDate.Day.ToString() } else { @@ -94,15 +94,18 @@ -
+
@if (SelectedShippingItem != null) { +

+ @SelectedShippingItem.Name

+ @* *@ - + @* @@ -134,49 +137,60 @@ Field="@nameof(ShippingItem.MeasuredGrossWeight)" Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)" Caption="MeasuredGrossWeight:" ColSpanMd="3"> + *@ + + + @for (var index = 0; index < SelectedShippingItem.ShippingItemPallets!.Count; index++) + { + var localI = index + 1; + var currentShippingItemPallet = SelectedShippingItem.ShippingItemPallets![index]; + + + + @(localI). Raklap + + + + + + + + + + + + + @(currentShippingItemPallet.NetWeight) kg. + + + @* + + + *@ + + } -

-@* - - Raklap - - - - @(localI). Raklap - - - - - - - - - - - - - @* *@ - - + + + TOTAL: + + + @(SelectedShippingItem.MeasuredQuantity) db. + @(SelectedShippingItem.MeasuredGrossWeight) kg. + @(SelectedShippingItem.MeasuredNetWeight) kg. + - } + @@ -186,7 +200,7 @@ { } @@ -202,7 +216,6 @@ //_errorText = string.Empty; } -
} diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs index c792509..e965e7b 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs @@ -71,7 +71,7 @@ namespace FruitBankHybrid.Shared.Pages private void OnCustomDisabledDate(CalendarCustomDisabledDateEventArgs args) => args.IsDisabled = !_shippingDates.Exists(shippingDateModel => DaysEqual(shippingDateModel.DateTime, args.Date)); - private string GetCssClassNames(DateTime date) + private string GetShippingDateCssClassNames(DateTime date) { if (_shippingDates.Exists(shipping => !shipping.IsMeasured && shipping.DateTime.Date <= DateTime.Now.Date && DaysEqual(shipping.DateTime, date))) return "fw-bold text-danger"; @@ -88,6 +88,42 @@ namespace FruitBankHybrid.Shared.Pages private static bool DaysEqual(DateTime date1, DateTime date2) => (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear); + private string GetShippingPalletsCssClassNames(string fieldName, ShippingItemPallet shippingItemPallet) + { + //if (shippingItemPallet.NetWeight < 0) return "text-danger"; + + switch (fieldName) + { + case nameof(ShippingItemPallet.PalletWeight): + return IsShippingitemPalletMeasuredAndValid(shippingItemPallet) ? "text-success" : + (shippingItemPallet.PalletWeight < 0 || shippingItemPallet.NetWeight < 0 ? "text-danger" : ""); + break; + case nameof(ShippingItemPallet.Quantity): + return IsShippingitemPalletMeasuredAndValid(shippingItemPallet) ? "text-success" : + (shippingItemPallet.Quantity < 0 ? "text-danger" : ""); + break; + case nameof(ShippingItemPallet.GrossWeight): + return IsShippingitemPalletMeasuredAndValid(shippingItemPallet) ? "text-success" : + (shippingItemPallet.GrossWeight < 0 || shippingItemPallet.NetWeight < 0 ? "text-danger" : ""); + break; + case nameof(ShippingItemPallet.NetWeight): + return IsShippingitemPalletMeasuredAndValid(shippingItemPallet) ? "text-success" : + (shippingItemPallet.NetWeight < 0 ? "text-danger" : ""); + break; + } + + //if (_shippingDates.Exists(shipping => !shipping.IsMeasured && shipping.DateTime.Date <= DateTime.Now.Date && DaysEqual(shipping.DateTime, date))) + // return "fw-bold text-danger"; + + //if (_shippingDates.Exists(shipping => shipping.IsMeasured && DaysEqual(shipping.DateTime, date))) + // return "fw-bold text-success"; + + //if (_shippingDates.Exists(shipping => !shipping.IsMeasured && DaysEqual(shipping.DateTime, date))) + // return "fw-bold"; + + return string.Empty; + } + private void OnSelectedShippingChanged(SelectedDataItemChangedEventArgs eventArgs) { SelectedShippingDocument = eventArgs.DataItem?.ShippingDocuments?.FirstOrDefault(); @@ -157,8 +193,10 @@ namespace FruitBankHybrid.Shared.Pages if (shippingItem != null && shippingItem.IsValidMeasuringValues()) { BtnSaveEnabled = false; + shippingItem.ShippingItemPallets = shippingItem.ShippingItemPallets!.Where(x => x.IsValidMeasuringValues(shippingItem.IsMeasurable)).ToList(); var updatedShippingItem = await FruitBankSignalRClient.UpdateMeasuredShippingItem(shippingItem); + //var updatedShippingItem = await FruitBankSignalRClient.AddOrUpdateMeasuredShippingItemPallets(shippingItem.ShippingItemPallets!.Where(x => x.IsValidMeasuringValues(shippingItem.IsMeasurable)).ToList()); if (updatedShippingItem == null) { LogErrorAndDisplayText($"Sikertelen volt a shippingItem mentése! {shippingItem}"); @@ -189,12 +227,8 @@ namespace FruitBankHybrid.Shared.Pages } - private bool ShippingitemPalletMeasuredAndValid(ShippingItemPallet shippingItemPallet) - => ShippingitemPalletMeasuredAndValid(shippingItemPallet, SelectedShippingItem!.IsMeasurable); - private static bool ShippingitemPalletMeasuredAndValid(ShippingItemPallet shippingItemPallet, bool isMeasurable) - { - return shippingItemPallet.Id != 0 && shippingItemPallet.IsMeasured && shippingItemPallet.IsValidMeasuringValues(isMeasurable); - } + private bool IsShippingitemPalletMeasuredAndValid(ShippingItemPallet shippingItemPallet) + => shippingItemPallet.IsMeasuredAndValid(SelectedShippingItem!.IsMeasurable); private async Task HandleValidSubmit() { @@ -249,11 +283,14 @@ namespace FruitBankHybrid.Shared.Pages break; } - shippingItemPallet.NetWeight = shippingItemPallet.GrossWeight - shippingItemPallet.PalletWeight; - MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem); - BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable); + + + + //BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && + // shippingItemPallet.IsValidSafeMeasuringValues() && + // SelectedShippingItem.ShippingItemPallets!.Any(sip => sip.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable)); } private void LogErrorAndDisplayText(string errorText, Exception? ex = null) { diff --git a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs index bac5d41..30d62e0 100644 --- a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs +++ b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs @@ -76,6 +76,10 @@ namespace FruitBankHybrid.Shared.Services.SignalRs public Task UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet) => PostDataAsync(SignalRTags.UpdateShippingItemPallet, shippingItemPallet); + + public Task AddOrUpdateMeasuredShippingItemPallets(List shippingItemPallets) + => PostDataAsync, ShippingItem>(SignalRTags.UpdateShippingItemPallet, shippingItemPallets); + #endregion ShippingItemPallet #region ShippingDocument