| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | using System;using InABox.Core;namespace Comal.Classes{    public class ProductLink : EntityLink<Product>    {        [Obsolete("You should always provide a Linked Entity", true)]        public ProductLink() : this(null)        {        }        public ProductLink(Func<BaseObject>? entity) : base(entity)        {        }        [CodePopupEditor(typeof(Product))]        public override Guid ID { get; set; }        [CodeEditor(Visible = Visible.Default)]        public string Code { get; set; }        [TextBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public string Name { get; set; }        [NullEditor]        [Obsolete("Replaced with Dimensions", true)]        // [DoubleEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public double UnitSize { get; set; }        [NullEditor]        [Obsolete("Replaced with Dimensions", true)]        // [DoubleEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public double Weight { get; set; }        [NullEditor]        [Obsolete("Replaced with Dimensions", false)]        public ProductUOMLink Units { get; set; }        [RequiredColumn]        public ProductDimensions Dimensions { get; set; }        public ProductGroupLink Group { get; set; }        [NullEditor]        [RequiredColumn]        public ProductStyleLink DefaultStyle { get; set; }        [NullEditor]        [RequiredColumn]        public StockLocationLink DefaultLocation { get; set; }        [CurrencyEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public double BaseCost { get; set; }        [CurrencyEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public double NettCost { get; set; }        [NullEditor]        [RequiredColumn]        public TaxCodeLink TaxCode { get; set; }        [NullEditor]        public bool NonStock { get; set; }        [IntegerEditor]        public int MinimumStockLevel { get; set; }        [NullEditor]        public ImageDocumentLink Image { get; set; }        [CheckBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public bool UseDefaultSupplierPricing { get; set; }        [CheckBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]        public ProductPricingStrategy PricingStrategy { get; set; }                [NullEditor]        public CostCentreLink CostCentre { get; set; }                [NullEditor]        public ProductCharge Charge { get; set; }        [NullEditor]        public DigitalFormLink DigitalForm { get; set; }                [DoubleEditor(Visible=Visible.Optional, Editable = Editable.Hidden, Summary=Summary.Sum)]        public double UnitQty { get; set; }        [DoubleEditor(Visible=Visible.Optional, Editable = Editable.Hidden, Summary=Summary.Sum)]        public double RemnantQty { get; set; }        [DoubleEditor(Visible=Visible.Optional, Editable = Editable.Hidden, Summary=Summary.Sum)]        public double OnOrder { get; set; }        [DoubleEditor(Visible=Visible.Optional, Editable = Editable.Hidden, Summary=Summary.Sum)]        public double TotalStock { get; set; }        [DoubleEditor(Visible=Visible.Optional, Editable = Editable.Hidden, Summary=Summary.Sum)]        public double ReservedStock { get; set; }        [DoubleEditor(Visible=Visible.Optional, Editable = Editable.Hidden, Summary=Summary.Sum)]        public double FreeStock { get; set; }                public override string ToString()        {            return string.Format("{0}: {1}", Code, Name);        }        protected override void Init()        {            base.Init();            DefaultStyle = new ProductStyleLink(LinkedEntity);            Units = new ProductUOMLink();            DefaultLocation = new StockLocationLink(LinkedEntity);            TaxCode = new TaxCodeLink(LinkedEntity);            NonStock = true;            Image = new ImageDocumentLink();            DigitalForm = new DigitalFormLink();            Group = new ProductGroupLink();            Dimensions = new ProductDimensions(LinkedEntity);            Charge = new ProductCharge();            CostCentre = new CostCentreLink();        }    }}
 |