ProductLink.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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<Entity>? 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. [NullEditor]
  50. public ImageDocumentLink Image { get; set; }
  51. [CheckBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  52. public bool UseDefaultSupplierPricing { get; set; }
  53. [CheckBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
  54. public ProductPricingStrategy PricingStrategy { get; set; }
  55. [NullEditor]
  56. public DigitalFormLink DigitalForm { get; set; }
  57. public override string ToString()
  58. {
  59. return string.Format("{0}: {1}", Code, Name);
  60. }
  61. protected override void Init()
  62. {
  63. base.Init();
  64. DefaultStyle = new ProductStyleLink(LinkedEntity);
  65. Units = new ProductUOMLink();
  66. DefaultLocation = new StockLocationLink(LinkedEntity);
  67. TaxCode = new TaxCodeLink(LinkedEntity);
  68. NonStock = true;
  69. Image = new ImageDocumentLink();
  70. DigitalForm = new DigitalFormLink();
  71. Group = new ProductGroupLink();
  72. Dimensions = new ProductDimensions(LinkedEntity);
  73. }
  74. }
  75. }