diff --git a/FruitBank.Common/Dtos/ProductDto.cs b/FruitBank.Common/Dtos/ProductDto.cs index 920232e..130db3f 100644 --- a/FruitBank.Common/Dtos/ProductDto.cs +++ b/FruitBank.Common/Dtos/ProductDto.cs @@ -34,10 +34,32 @@ public class ProductDto : MgProductDto, IProductDto get => CommonHelper.To(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasurable.IsMeasurable))?.Value ?? "false"); set { + throw new Exception($"ProductDto.IsMeasurable not set"); + //Direkt legyen exception! - J. var ga = GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasurable.IsMeasurable))!; ga.Value = value.ToString(); } + } + [NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore] + public double Tare + { + get => CommonHelper.To(GenericAttributes.SingleOrDefault(x => x.Key == nameof(ITare.Tare))?.Value ?? "0"); + set => throw new Exception($"ProductDto.Tare not set"); + } + + [NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore] + public double NetWeight + { + get => CommonHelper.To(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringNetWeight.NetWeight))?.Value ?? "0"); + set => throw new Exception($"ProductDto.NetWeight not set"); + } + + [NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore] + public int IncomingQuantity + { + get => CommonHelper.To(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IIncomingQuantity.IncomingQuantity))?.Value ?? "0"); + set => throw new Exception($"ProductDto.IncomingQuantity not set"); } } \ No newline at end of file diff --git a/FruitBank.Common/Entities/ShippingItem.cs b/FruitBank.Common/Entities/ShippingItem.cs index 504b559..c16a0a8 100644 --- a/FruitBank.Common/Entities/ShippingItem.cs +++ b/FruitBank.Common/Entities/ShippingItem.cs @@ -8,6 +8,7 @@ using Nop.Core.Domain.Orders; using System.ComponentModel.DataAnnotations; using Nop.Core.Domain.Catalog; using DataType = LinqToDB.DataType; +using FruitBank.Common.Dtos; namespace FruitBank.Common.Entities; @@ -56,8 +57,8 @@ public class ShippingItem : MgEntityBase, IShippingItem [LinqToDB.Mapping.Association(ThisKey = nameof(PalletId), OtherKey = nameof(Pallet.Id), CanBeNull = true)] public Pallet? Pallet { get; set; } - [LinqToDB.Mapping.Association(ThisKey = nameof(ProductId), OtherKey = nameof(Product.Id), CanBeNull = true)] - public Product? Product { get; set; } + [LinqToDB.Mapping.Association(ThisKey = nameof(ProductId), OtherKey = nameof(ProductDto.Id), CanBeNull = true)] + public ProductDto? ProductDto { get; set; } [LinqToDB.Mapping.Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(ShippingDocument.Id), CanBeNull = true)] public ShippingDocument? ShippingDocument { get; set; } diff --git a/FruitBank.Common/Interfaces/IIncomingQuantity.cs b/FruitBank.Common/Interfaces/IIncomingQuantity.cs new file mode 100644 index 0000000..33352fc --- /dev/null +++ b/FruitBank.Common/Interfaces/IIncomingQuantity.cs @@ -0,0 +1,6 @@ +namespace FruitBank.Common.Interfaces; + +public interface IIncomingQuantity +{ + int IncomingQuantity { get; set; } +} \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IProductDto.cs b/FruitBank.Common/Interfaces/IProductDto.cs index 6e44132..5d1467c 100644 --- a/FruitBank.Common/Interfaces/IProductDto.cs +++ b/FruitBank.Common/Interfaces/IProductDto.cs @@ -2,7 +2,6 @@ namespace FruitBank.Common.Interfaces; -public interface IProductDto : IMgProductDto, IMeasurable +public interface IProductDto : IMgProductDto, IMeasurable, ITare, IIncomingQuantity, IMeasuringNetWeight { - } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IShippingItem.cs b/FruitBank.Common/Interfaces/IShippingItem.cs index c1a633e..2c4e29a 100644 --- a/FruitBank.Common/Interfaces/IShippingItem.cs +++ b/FruitBank.Common/Interfaces/IShippingItem.cs @@ -1,5 +1,6 @@ using AyCode.Interfaces.Entities; using AyCode.Interfaces.TimeStampInfo; +using FruitBank.Common.Dtos; using FruitBank.Common.Entities; using Nop.Core.Domain.Catalog; @@ -24,7 +25,7 @@ public interface IShippingItem : IEntityInt, ITimeStampInfo, IMeasurable, IMeasu double MeasuredNetWeight { get; set; } double MeasuredGrossWeight { get; set; } - public Product? Product { get; set; } + public ProductDto? ProductDto { get; set; } public ShippingDocument? ShippingDocument { get; set; } public List? ShippingItemPallets { get; set; } diff --git a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs index b873974..1a63b73 100644 --- a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs +++ b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs @@ -150,7 +150,7 @@ 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.ProductDto?.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)); @@ -159,7 +159,7 @@ namespace FruitBankHybrid.Shared.Tests { var measuringProductDto = await _signalRClient.GetMeasuringProductDtoById(shippingItem.ProductId!.Value); - Assert.IsTrue(measuringProductDto!.Quantity == shippingItem.Product!.StockQuantity); + Assert.IsTrue(measuringProductDto!.Quantity == shippingItem.ProductDto!.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}"); @@ -196,7 +196,7 @@ namespace FruitBankHybrid.Shared.Tests Assert.IsNotNull(shippingItem, $"shippingItemId: {shippingItemId}"); 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.IsNotNull(shippingItem.ProductDto, $"shippingItem.Product == null; shippingItem.ProductId: {shippingItem.ProductId}"); Assert.IsTrue(shippingItem.Id == shippingItemId); Assert.IsTrue(shippingItem.QuantityOnDocument > 0, "QuantityOnDocument == 0"); @@ -272,7 +272,7 @@ namespace FruitBankHybrid.Shared.Tests shippingItem = await _signalRClient.GetShippingItemById(shippingItemPallet.ShippingItemId); Assert.IsNotNull(shippingItem); - Assert.IsNotNull(shippingItem.Product); + Assert.IsNotNull(shippingItem.ProductDto); Assert.IsNotNull(shippingItem.ShippingItemPallets); Assert.IsTrue(shippingItem.IsMeasurable == originalMeasuringProductDto.IsMeasurable); @@ -298,7 +298,7 @@ namespace FruitBankHybrid.Shared.Tests } Assert.IsTrue(shippingItem.MeasuredQuantity == originalShippingItem.MeasuredQuantity + incQuantity); - Assert.IsTrue(shippingItem.Product.StockQuantity == originalShippingItem.Product!.StockQuantity + incQuantity); + Assert.IsTrue(shippingItem.ProductDto.StockQuantity == originalShippingItem.ProductDto!.StockQuantity + incQuantity); var measuringProductDto = await GetMeasuringProductDtoByIdAsync(originalShippingItem.ProductId!.Value, shippingItem.IsMeasurable); Assert.IsTrue(measuringProductDto.StockQuantity == originalMeasuringProductDto.StockQuantity + incQuantity); diff --git a/FruitBankHybrid.Shared.Tests/OrderClientTests.cs b/FruitBankHybrid.Shared.Tests/OrderClientTests.cs index 78715db..9d2b4f9 100644 --- a/FruitBankHybrid.Shared.Tests/OrderClientTests.cs +++ b/FruitBankHybrid.Shared.Tests/OrderClientTests.cs @@ -62,7 +62,7 @@ public sealed class OrderClientTests [TestMethod] [DataRow(new[] {1,2,4,7})] - public async Task GetOrderDtoById(int[] orderIds) + public async Task GetOrderDtoByIds(int[] orderIds) { var orderDtoList = await _signalRClient.GetAllOrderDtoByIds(orderIds); diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor index 993ae2f..13cea8d 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor @@ -107,11 +107,11 @@ - - @for (var index = 0; index < SelectedShippingItem.ShippingItemPallets!.Count; index++) + + @for (var index = 0; index < (SelectedShippingItem?.ShippingItemPallets?.Count ?? 0); index++) { var localI = index + 1; - var currentShippingItemPallet = SelectedShippingItem.ShippingItemPallets![index]; + var currentShippingItemPallet = SelectedShippingItem!.ShippingItemPallets![index]; (shippingItem.PalletsOnDocument); - if (shippingItem.ShippingItemPallets.Count >= shippingItem.PalletsOnDocument) return; + //if (shippingItem.ShippingItemPallets.Count >= shippingItem.PalletsOnDocument) return; for (var i = shippingItem.ShippingItemPallets.Count; i < shippingItem.PalletsOnDocument; i++) shippingItem.ShippingItemPallets.Add(new ShippingItemPallet { ShippingItemId = shippingItem.Id, PalletWeight = shippingItem.Pallet?.Weight ?? 0, + TareWeight = shippingItem.ProductDto?.Tare?? 0, CreatorId = LoggedInModel.CustomerDto?.Id, ModifierId = LoggedInModel.CustomerDto?.Id diff --git a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor index eaf0a3d..a20530b 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor +++ b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor @@ -104,12 +104,12 @@ //text = ((OrderItemPallet)(context.DataItem)).OrderItemId.ToString() + " dfgdfsg"; //var selectedOrderItemDto = SelectedOrder!.OrderItemDtos.First(x => x.Id == orderItemPallet.OrderItemId); var selectedOrderItemDto = (OrderItemDto)(context.DataItem); - + - @for (var index = 0; index < selectedOrderItemDto.OrderItemPallets!.Count; index++) + @for (var index = 0; index < (selectedOrderItemDto?.OrderItemPallets?.Count ?? 0); index++) { var localI = index + 1; - var currentOrderItemPallet = selectedOrderItemDto.OrderItemPallets![index]; + var currentOrderItemPallet = selectedOrderItemDto!.OrderItemPallets![index];