improvements, fixes, etc...
This commit is contained in:
parent
f145dfcd70
commit
94cc71513c
|
|
@ -16,7 +16,6 @@ public class MeasuringProductDto : ProductDto, IMeasuringProductDto
|
|||
}
|
||||
|
||||
public double NetWeight { get; set; }
|
||||
public double GrossWeight { get; set; }
|
||||
public bool IsMeasurable { get; set; }
|
||||
|
||||
public MeasuringProductDto() :base()
|
||||
|
|
@ -34,7 +33,6 @@ public class MeasuringProductDto : ProductDto, IMeasuringProductDto
|
|||
|
||||
measuringAttributeValues.Id = Id;
|
||||
measuringAttributeValues.NetWeight = NetWeight;
|
||||
measuringAttributeValues.GrossWeight = GrossWeight;
|
||||
measuringAttributeValues.IsMeasurable = IsMeasurable;
|
||||
}
|
||||
|
||||
|
|
@ -48,9 +46,8 @@ public class MeasuringProductDto : ProductDto, IMeasuringProductDto
|
|||
if (measuringAttributeValues == null) return;
|
||||
|
||||
NetWeight = measuringAttributeValues.NetWeight;
|
||||
GrossWeight = measuringAttributeValues.GrossWeight;
|
||||
IsMeasurable = measuringAttributeValues.IsMeasurable;
|
||||
}
|
||||
|
||||
public bool HasMeasuringValues() => Id > 0 && NetWeight > 0 && GrossWeight > 0 && IsMeasurable;
|
||||
public bool HasMeasuringValues() => Id > 0 && NetWeight > 0 && IsMeasurable;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ using Nop.Core.Domain.Orders;
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq.Expressions;
|
||||
using Mango.Nop.Core.Extensions;
|
||||
|
||||
namespace FruitBank.Common.Dtos;
|
||||
|
||||
|
|
@ -47,17 +48,11 @@ public class OrderDto : MgOrderDto<OrderItemDto, ProductDto>, IOrderDto
|
|||
public DateTime DateOfReceiptOrCreated => DateOfReceipt ?? CreatedOnUtc;
|
||||
|
||||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public DateTime? DateOfReceipt
|
||||
{
|
||||
get
|
||||
{
|
||||
//return CommonHelper.To<DateTime?>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IOrderDto.DateOfReceipt))?.Value);
|
||||
|
||||
var dateOfReceipt = GenericAttributes.SingleOrDefault(x => x.Key == nameof(IOrderDto.DateOfReceipt))?.Value ?? string.Empty;
|
||||
return dateOfReceipt.IsNullOrWhiteSpace() ? null : CommonHelper.To<DateTime>(dateOfReceipt);
|
||||
}
|
||||
}
|
||||
public DateTime? DateOfReceipt => GenericAttributes.GetValueOrNull<DateTime>(nameof(IOrderDto.DateOfReceipt));
|
||||
|
||||
//if (GenericAttributes.TryGetValue<DateTime>(nameof(IOrderDto.DateOfReceipt), out var value)) return value;
|
||||
//var dateOfReceipt = GenericAttributes.SingleOrDefault(x => x.Key == nameof(IOrderDto.DateOfReceipt))?.Value ?? string.Empty;
|
||||
//return dateOfReceipt.IsNullOrWhiteSpace() ? null : CommonHelper.To<DateTime>(dateOfReceipt);
|
||||
public OrderDto() :base()
|
||||
{ }
|
||||
public OrderDto(int orderId) : base(orderId)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using FruitBank.Common.Interfaces;
|
||||
using LinqToDB.Mapping;
|
||||
using Mango.Nop.Core.Dtos;
|
||||
using Mango.Nop.Core.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
using Nop.Core;
|
||||
using Nop.Core.Domain.Catalog;
|
||||
|
|
@ -18,7 +19,7 @@ public class ProductDto : MgProductDto, IProductDto
|
|||
orderItemDto.Id == genericAttribute.EntityId && genericAttribute.KeyGroup == nameof(Product);
|
||||
|
||||
|
||||
[Association(ThisKey = nameof(Id), OtherKey = nameof(GenericAttribute.EntityId), ExpressionPredicate = nameof(RelationWithGenericAttribute), CanBeNull = true)]
|
||||
[Association(ThisKey = nameof(Id), OtherKey = nameof(GenericAttribute.EntityId), ExpressionPredicate = nameof(RelationWithGenericAttribute), CanBeNull = false)]
|
||||
public List<GenericAttribute> GenericAttributes { get; set; }
|
||||
|
||||
public ProductDto() :base()
|
||||
|
|
@ -31,7 +32,7 @@ public class ProductDto : MgProductDto, IProductDto
|
|||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public bool IsMeasurable
|
||||
{
|
||||
get => CommonHelper.To<bool>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasurable.IsMeasurable))?.Value ?? "false");
|
||||
get => GenericAttributes.GetValueOrDefault<bool>(nameof(IMeasurable.IsMeasurable));
|
||||
set
|
||||
{
|
||||
throw new Exception($"ProductDto.IsMeasurable not set");
|
||||
|
|
@ -45,21 +46,24 @@ public class ProductDto : MgProductDto, IProductDto
|
|||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public double Tare
|
||||
{
|
||||
get => CommonHelper.To<double>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(ITare.Tare))?.Value ?? "0");
|
||||
get => GenericAttributes.GetValueOrDefault<double>(nameof(ITare.Tare));
|
||||
//get => CommonHelper.To<double>(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<double>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringNetWeight.NetWeight))?.Value ?? "0");
|
||||
get => GenericAttributes.GetValueOrDefault<double>(nameof(IMeasuringNetWeight.NetWeight));
|
||||
//get => CommonHelper.To<double>(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<int>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IIncomingQuantity.IncomingQuantity))?.Value ?? "0");
|
||||
get => GenericAttributes.GetValueOrDefault<int>(nameof(IIncomingQuantity.IncomingQuantity));
|
||||
//get => CommonHelper.To<int>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IIncomingQuantity.IncomingQuantity))?.Value ?? "0");
|
||||
set => throw new Exception($"ProductDto.IncomingQuantity not set");
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace FruitBank.Common.Interfaces;
|
||||
|
||||
public interface IMeasuringAttributeValues : IEntityInt, IMeasuringWeights, IMeasurable
|
||||
public interface IMeasuringAttributeValues : IEntityInt, IMeasuringNetWeight, IMeasurable
|
||||
{
|
||||
bool HasMeasuringValues(); //=> Id > 0 && NetWeight != null && GrossWeight != null && IsMeasurable != null;
|
||||
}
|
||||
|
|
@ -8,30 +8,28 @@ public class MeasuringAttributeValues : IMeasuringAttributeValues
|
|||
public int Id { get; set; }
|
||||
|
||||
public double NetWeight { get; set; } = int.MinValue;
|
||||
public double GrossWeight { get; set; } = int.MinValue;
|
||||
public bool IsMeasurable { get; set; } = false;
|
||||
|
||||
public MeasuringAttributeValues()
|
||||
{
|
||||
}
|
||||
|
||||
public MeasuringAttributeValues(int entityId, double netWeight, double grossWeight, bool isMeasurable)
|
||||
public MeasuringAttributeValues(int entityId, double netWeight, bool isMeasurable)
|
||||
{
|
||||
Initialize(entityId, netWeight, grossWeight, isMeasurable);
|
||||
Initialize(entityId, netWeight, isMeasurable);
|
||||
}
|
||||
|
||||
public void Initialize(int entityId, double netWeight, double grossWeight, bool isMeasurable)
|
||||
public void Initialize(int entityId, double netWeight, bool isMeasurable)
|
||||
{
|
||||
Id = entityId;
|
||||
NetWeight = netWeight;
|
||||
GrossWeight = grossWeight;
|
||||
IsMeasurable = isMeasurable;
|
||||
}
|
||||
|
||||
public bool HasMeasuringValues() => Id > 0 && NetWeight > int.MinValue && GrossWeight > int.MinValue && IsMeasurable;
|
||||
public bool HasMeasuringValues() => Id > 0 && NetWeight > int.MinValue && IsMeasurable;
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"EntityId: {Id}; NetWeight: {NetWeight}; GrossWeight: {GrossWeight}; IsMeasurable: {IsMeasurable}";
|
||||
return $"EntityId: {Id}; NetWeight: {NetWeight}; IsMeasurable: {IsMeasurable}";
|
||||
}
|
||||
}
|
||||
|
|
@ -167,7 +167,6 @@ namespace FruitBankHybrid.Shared.Tests
|
|||
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}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -304,7 +303,6 @@ namespace FruitBankHybrid.Shared.Tests
|
|||
Assert.IsTrue(measuringProductDto.StockQuantity == originalMeasuringProductDto.StockQuantity + incQuantity);
|
||||
|
||||
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)));
|
||||
|
|
@ -441,13 +439,12 @@ namespace FruitBankHybrid.Shared.Tests
|
|||
|
||||
Assert.IsNotNull(measuringProductDto);
|
||||
|
||||
if (isMeasurableExcepted) Assert.IsTrue(measuringProductDto.HasMeasuringValues(), $"{measuringProductDto.IsMeasurable}, {measuringProductDto.NetWeight}, {measuringProductDto.GrossWeight}");
|
||||
if (isMeasurableExcepted) Assert.IsTrue(measuringProductDto.HasMeasuringValues(), $"{measuringProductDto.IsMeasurable}, {measuringProductDto.NetWeight}");
|
||||
else
|
||||
{
|
||||
Assert.IsTrue(measuringProductDto.Id > 0);
|
||||
Assert.IsTrue(measuringProductDto.StockQuantity >= 0);
|
||||
Assert.IsTrue(measuringProductDto.NetWeight == 0);
|
||||
Assert.IsTrue(measuringProductDto.GrossWeight == 0);
|
||||
|
||||
Assert.IsFalse(measuringProductDto.IsMeasurable);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue