Bill.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. [UserTracking("Accounts Payable")]
  6. public class Bill : Entity, IPersistent, IRemotable, ILicense<AccountsPayableLicense>, IScannable
  7. {
  8. [EntityRelationship(DeleteAction.Cascade)]
  9. public SupplierLink SupplierLink { get; set; }
  10. [DateEditor]
  11. public DateTime Date { get; set; }
  12. [TextBoxEditor]
  13. public string Number { get; set; }
  14. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  15. [Aggregate(typeof(BillExTax))]
  16. public double ExTax { get; set; }
  17. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  18. [Aggregate(typeof(BillTax))]
  19. public double Tax { get; set; }
  20. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  21. [Aggregate(typeof(BillIncTax))]
  22. public double IncTax { get; set; }
  23. [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  24. [Aggregate(typeof(BillAmountPaid))]
  25. public double AmountPaid { get; set; }
  26. [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  27. [Formula(typeof(BillBalance))]
  28. public double Balance { get; set; }
  29. [TimestampEditor]
  30. public DateTime Checked { get; set; }
  31. [TimestampEditor]
  32. public DateTime Approved { get; set; }
  33. [Aggregate(typeof(BillDocumentCount))]
  34. [IntegerEditor(Editable = Editable.Hidden)]
  35. public int Documents { get; set; }
  36. protected override void Init()
  37. {
  38. base.Init();
  39. SupplierLink = new SupplierLink(() => this);
  40. }
  41. protected override void DoPropertyChanged(string name, object before, object after)
  42. {
  43. base.DoPropertyChanged(name, before, after);
  44. if (name.Equals("AmountPaid") || name.Equals("IncTax"))
  45. Balance = IncTax - AmountPaid;
  46. }
  47. }
  48. }