ProductLink.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. public class ProductLink : EntityLink<Product>
  6. {
  7. [Obsolete("You should always provide a Linked Entity", true)]
  8. public ProductLink() : this(null)
  9. {
  10. }
  11. public ProductLink(Func<BaseObject>? entity) : base(entity)
  12. {
  13. }
  14. [CodePopupEditor(typeof(Product))]
  15. public override Guid ID { get; set; }
  16. [CodeEditor(Visible = Visible.Default)]
  17. public string Code { get; set; }
  18. [TextBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  19. public string Name { get; set; }
  20. [NullEditor]
  21. [Obsolete("Replaced with Dimensions", true)]
  22. // [DoubleEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  23. public double UnitSize { get; set; }
  24. [NullEditor]
  25. [Obsolete("Replaced with Dimensions", true)]
  26. // [DoubleEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  27. public double Weight { get; set; }
  28. [NullEditor]
  29. [Obsolete("Replaced with Dimensions", false)]
  30. public ProductUOMLink Units { get; set; }
  31. [RequiredColumn]
  32. public ProductDimensions Dimensions { get; set; }
  33. public ProductGroupLink Group { get; set; }
  34. [NullEditor]
  35. [RequiredColumn]
  36. public ProductStyleLink DefaultStyle { get; set; }
  37. [NullEditor]
  38. [RequiredColumn]
  39. public StockLocationLink DefaultLocation { get; set; }
  40. [CurrencyEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  41. public double BaseCost { get; set; }
  42. [CurrencyEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  43. public double NettCost { get; set; }
  44. [NullEditor]
  45. [RequiredColumn]
  46. public TaxCodeLink TaxCode { get; set; }
  47. [NullEditor]
  48. public bool NonStock { get; set; }
  49. [IntegerEditor]
  50. public int MinimumStockLevel { get; set; }
  51. [NullEditor]
  52. public ImageDocumentLink Image { get; set; }
  53. [CheckBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  54. public bool UseDefaultSupplierPricing { get; set; }
  55. [CheckBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  56. public ProductPricingStrategy PricingStrategy { get; set; }
  57. [NullEditor]
  58. public CostCentreLink CostCentre { get; set; }
  59. [NullEditor]
  60. public ProductCharge Charge { get; set; }
  61. [NullEditor]
  62. public DigitalFormLink DigitalForm { get; set; }
  63. public override string ToString()
  64. {
  65. return string.Format("{0}: {1}", Code, Name);
  66. }
  67. protected override void Init()
  68. {
  69. base.Init();
  70. DefaultStyle = new ProductStyleLink(LinkedEntity);
  71. Units = new ProductUOMLink();
  72. DefaultLocation = new StockLocationLink(LinkedEntity);
  73. TaxCode = new TaxCodeLink(LinkedEntity);
  74. NonStock = true;
  75. Image = new ImageDocumentLink();
  76. DigitalForm = new DigitalFormLink();
  77. Group = new ProductGroupLink();
  78. Dimensions = new ProductDimensions(LinkedEntity);
  79. Charge = new ProductCharge();
  80. CostCentre = new CostCentreLink();
  81. }
  82. }
  83. }