BillLine.cs 1.5 KB

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