using System; using InABox.Core; namespace Comal.Classes { public class ProductLink : EntityLink { [Obsolete("You should always provide a Linked Entity", true)] public ProductLink() : this(null) { } public ProductLink(Func? 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(); } } }