BillLine.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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>
  12. {
  13. [EntityRelationship(DeleteAction.Cascade)]
  14. [NullEditor]
  15. public BillLink BillLink { get; set; }
  16. [EntityRelationship(DeleteAction.SetNull)]
  17. [NullEditor]
  18. public PurchaseOrderItemLink OrderItem { get; set; }
  19. [MemoEditor]
  20. public string Description { get; set; }
  21. [RequiredColumn]
  22. public TaxCodeLink TaxCode { get; set; }
  23. [DoubleEditor(Summary = Summary.Sum)]
  24. public double ExTax { get; set; }
  25. [DoubleEditor(Editable = Editable.Hidden)]
  26. public double TaxRate { get; set; }
  27. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  28. public double Tax { get; set; }
  29. [DoubleEditor(Summary = Summary.Sum)]
  30. public double IncTax { get; set; }
  31. protected override void Init()
  32. {
  33. base.Init();
  34. BillLink = new BillLink();
  35. TaxCode = new TaxCodeLink(() => this);
  36. OrderItem = new PurchaseOrderItemLink();
  37. }
  38. static BillLine()
  39. {
  40. LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.TaxCode, x => x.Rate, x => x.TaxRate);
  41. }
  42. }
  43. }