BillLine.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. public class BillLineLink : EntityLink<BillLine>
  6. {
  7. [NullEditor]
  8. public override Guid ID { get; set; }
  9. }
  10. [UserTracking(typeof(Bill))]
  11. public class BillLine : Entity, IPersistent, IRemotable, IOneToMany<Bill>, ITaxable, ILicense<AccountsPayableLicense>, IPostableFragment<Bill>
  12. {
  13. [EntityRelationship(DeleteAction.Cascade)]
  14. [NullEditor]
  15. public BillLink BillLink { get; set; }
  16. [EntityRelationship(DeleteAction.SetNull)]
  17. [EditorSequence(1)]
  18. public PurchaseOrderItemLink OrderItem { get; set; }
  19. [MemoEditor]
  20. [EditorSequence(2)]
  21. public string Description { get; set; }
  22. [EditorSequence(3)]
  23. public PurchaseGLCodeLink PurchaseGL { get; set; }
  24. [EditorSequence(4)]
  25. public CostCentreLink CostCentre { get; set; }
  26. [CurrencyEditor(Summary = Summary.Sum)]
  27. [EditorSequence(5)]
  28. public double ExTax { get; set; }
  29. [RequiredColumn]
  30. [EditorSequence(6)]
  31. public TaxCodeLink TaxCode { get; set; }
  32. [DoubleEditor(Editable = Editable.Hidden)]
  33. public double TaxRate { get; set; }
  34. [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  35. public double Tax { get; set; }
  36. [CurrencyEditor(Summary = Summary.Sum)]
  37. [EditorSequence(7)]
  38. public double IncTax { get; set; }
  39. [NullEditor]
  40. public string PostedReference { get; set; }
  41. protected override void Init()
  42. {
  43. base.Init();
  44. BillLink = new BillLink();
  45. TaxCode = new TaxCodeLink(() => this);
  46. OrderItem = new PurchaseOrderItemLink(() => this);
  47. CostCentre = new CostCentreLink(() => this);
  48. PurchaseGL = new PurchaseGLCodeLink(() => this);
  49. }
  50. static BillLine()
  51. {
  52. LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.ExTax,
  53. x => x.ExTax);
  54. LinkedProperties.Register<BillLine, PurchaseGLCodeLink, Guid>(x => x.OrderItem.PurchaseGL, x => x.ID,
  55. x => x.PurchaseGL.ID);
  56. LinkedProperties.Register<BillLine, CostCentreLink, Guid>(x => x.OrderItem.CostCentre, x => x.ID,
  57. x => x.CostCentre.ID);
  58. LinkedProperties.Register<BillLine, TaxCodeLink, Guid>(x => x.OrderItem.TaxCode, x => x.ID,
  59. x => x.TaxCode.ID);
  60. LinkedProperties.Register<BillLine, TaxCodeLink, String>(x => x.OrderItem.TaxCode, x => x.Code,
  61. x => x.TaxCode.Code);
  62. LinkedProperties.Register<BillLine, TaxCodeLink, String>(x => x.OrderItem.TaxCode, x => x.Description,
  63. x => x.TaxCode.Description);
  64. LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.OrderItem.TaxCode, x => x.Rate,
  65. x => x.TaxCode.Rate);
  66. LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.Tax,
  67. x => x.Tax);
  68. LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.IncTax,
  69. x => x.IncTax);
  70. LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.TaxCode, x => x.Rate, x => x.TaxRate);
  71. }
  72. }
  73. }