ProductLink.cs 2.9 KB

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