72 lines
3.0 KiB
C#
72 lines
3.0 KiB
C#
using AyCode.Core.Interfaces;
|
|
using FruitBank.Common.Interfaces;
|
|
using LinqToDB;
|
|
using LinqToDB.Mapping;
|
|
using Mango.Nop.Core.Entities;
|
|
using Nop.Core.Domain.Customers;
|
|
using Nop.Core.Domain.Orders;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using Nop.Core.Domain.Catalog;
|
|
using DataType = LinqToDB.DataType;
|
|
|
|
namespace FruitBank.Common.Entities;
|
|
|
|
[Table(Name = FruitBankConstClient.ShippingItemDbTableName)]
|
|
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingItemDbTableName)]
|
|
public class ShippingItem : MgEntityBase, IShippingItem
|
|
{
|
|
public int ShippingDocumentId { get; set; }
|
|
public int? PalletId { get; set; }
|
|
public int? ProductId { get; set; }
|
|
|
|
public string Name { get; set; }
|
|
|
|
public int PalletsOnDocument { get; set; }
|
|
|
|
public int QuantityOnDocument { get; set; }
|
|
|
|
[Column(DataType = DataType.DecFloat)] public double NetWeightOnDocument { get; set; }
|
|
[Column(DataType = DataType.DecFloat)] public double GrossWeightOnDocument { get; set; }
|
|
|
|
/// <summary>
|
|
/// Általában megegyezik a PalletsOnDocument-el, de minimum 1! Ha nincs raklap, akkor is 1! Néha előfordulhat, hogy kevesebb raklap érkezik és olyankor kell tudni módosítani a mérések számát.
|
|
/// </summary>
|
|
[Range(1, 100000, ErrorMessage = "The MeasuringCount value should be a number between 1 and 100,000.")]
|
|
public int MeasuringCount { get; set; } = 1;
|
|
|
|
//[Nullable]
|
|
//[Column(CanBeNull = true)]
|
|
[Range(1, 100000, ErrorMessage = "The MeasuredQuantity value should be a number between 1 and 100,000.")]
|
|
public int MeasuredQuantity { get; set; }
|
|
|
|
//[Nullable]
|
|
[Column(DataType = DataType.DecFloat, CanBeNull = false)]
|
|
[Range(1, 100000, ErrorMessage = "The MeasuredNetWeight value should be a number between 1 and 100,000.")]
|
|
public double MeasuredNetWeight { get; set; }
|
|
|
|
//[Nullable]
|
|
//Precision = 1
|
|
[Column(DataType = DataType.DecFloat, CanBeNull = false)]
|
|
[Range(1, 100000, ErrorMessage = "The MeasuredGrossWeight value should be a number between 1 and 100,000.")]
|
|
public double MeasuredGrossWeight { get; set; }
|
|
|
|
public bool IsMeasurable { get; set; }
|
|
public bool IsMeasured { get; set; }
|
|
|
|
[LinqToDB.Mapping.Association(ThisKey = nameof(ProductId), OtherKey = nameof(Product.Id), CanBeNull = true)]
|
|
public Product? Product { get; set; }
|
|
|
|
[LinqToDB.Mapping.Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(ShippingDocument.Id), CanBeNull = true)]
|
|
public ShippingDocument? ShippingDocument { get; set; }
|
|
|
|
[LinqToDB.Mapping.Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingItemPallet.ShippingItemId), CanBeNull = true)]
|
|
public List<ShippingItemPallet>? ShippingItemPallets { get; set; }
|
|
|
|
[SkipValuesOnUpdate] public DateTime Created { get; set; }
|
|
public DateTime Modified { get; set; }
|
|
|
|
public bool IsValidMeasuringValues()
|
|
{
|
|
return /*ProductId > 0 && */MeasuringCount > 0 && MeasuredQuantity > 0 && (!IsMeasurable || (MeasuredNetWeight > 0 && MeasuredGrossWeight > 0));
|
|
}
|
|
} |