using System; using InABox.Core; namespace Comal.Classes { public class StockDimensions : Dimensions { [Obsolete("You should always provide a Linked Entity", true)] public StockDimensions() { } public StockDimensions(Func entity) : base(entity) { } [NullEditor] [RequiredColumn] public override ProductDimensionUnitLink Unit { get; set; } [DoubleEditor(Visible = Visible.Hidden)] [EditorSequence(2)] [Caption("Pack Qty", IncludePath = false)] [RequiredColumn] public override double Quantity { get; set; } [DoubleEditor(Visible = Visible.Hidden)] [EditorSequence(3)] [Caption("Length", IncludePath = false)] [RequiredColumn] public override double Length { get; set; } [DoubleEditor(Visible = Visible.Hidden)] [EditorSequence(4)] [Caption("Width", IncludePath = false)] [RequiredColumn] public override double Width { get; set; } [DoubleEditor(Visible = Visible.Hidden)] [EditorSequence(5)] [Caption("Height", IncludePath = false)] [RequiredColumn] public override double Height { get; set; } [DoubleEditor(Visible = Visible.Hidden)] [EditorSequence(6)] [Caption("Weight", IncludePath = false)] [RequiredColumn] public override double Weight { get; set; } [DoubleEditor(Visible = Visible.Optional, Editable = Editable.Hidden, Summary = Summary.Sum)] [Caption("Value", IncludePath = false)] [EditorSequence(7)] [RequiredColumn] public override double Value { get; set; } [TextBoxEditor(Visible = Visible.Default, Editable=Editable.Hidden)] [EditorSequence(8)] [Caption("Size", IncludePath = false)] [RequiredColumn] public override String UnitSize { get; set; } } public abstract class StockEntity : DimensionedEntity { public abstract ProductLink Product { get; set; } protected override void Init() { base.Init(); Product = new ProductLink(() => this); } public static void LinkStockDimensions() where TStock : StockEntity { LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.ID, x => x.Dimensions.Unit.ID); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.Code, x => x.Dimensions.Unit.Code); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.Description, x => x.Dimensions.Unit.Description); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.HasLength, x => x.Dimensions.Unit.HasLength); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.HasHeight, x => x.Dimensions.Unit.HasHeight); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.HasQuantity, x => x.Dimensions.Unit.HasQuantity); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.HasWeight, x => x.Dimensions.Unit.HasWeight); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.HasWidth, x => x.Dimensions.Unit.HasWidth); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.Formula, x => x.Dimensions.Unit.Formula); LinkedProperties.Register(x => x.Product.Dimensions.Unit, x => x.Format, x => x.Dimensions.Unit.Format); LinkedProperties.Register(x => x.Product.Dimensions, x => x.Height, x => x.Dimensions.Height); LinkedProperties.Register(x => x.Product.Dimensions, x => x.Length, x => x.Dimensions.Length); LinkedProperties.Register(x => x.Product.Dimensions, x => x.Quantity, x => x.Dimensions.Quantity); LinkedProperties.Register(x => x.Product.Dimensions, x => x.Weight, x => x.Dimensions.Weight); LinkedProperties.Register(x => x.Product.Dimensions, x => x.Width, x => x.Dimensions.Width); LinkedProperties.Register(x => x.Product.Dimensions, x => x.Value, x => x.Dimensions.Value); LinkedProperties.Register(x => x.Product.Dimensions, x => x.UnitSize, x => x.Dimensions.UnitSize); } } }