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] 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; } [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 DigitalFormLink DigitalForm { 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(); TaxCode = new TaxCodeLink(LinkedEntity); NonStock = true; Image = new ImageDocumentLink(); DigitalForm = new DigitalFormLink(); Group = new ProductGroupLink(); Dimensions = new ProductDimensions(LinkedEntity); } } }