Bill.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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>, IDataEntryInstance, IPostable, IExportable
  7. {
  8. [RequiredColumn]
  9. [EditorSequence(1)]
  10. [EntityRelationship(DeleteAction.Cascade)]
  11. public SupplierLink SupplierLink { get; set; }
  12. [EditorSequence(2)]
  13. [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  14. public string Number { get; set; }
  15. [EditorSequence(3)]
  16. [MemoEditor]
  17. public string Description { get; set; }
  18. [EditorSequence(4)]
  19. [DateEditor]
  20. public DateTime BillDate { get; set; }
  21. [EditorSequence(5)]
  22. [DateEditor]
  23. public DateTime PaymentDate { get; set; }
  24. [EditorSequence(6)]
  25. [DateEditor]
  26. public DateTime AccountingDate { get; set; }
  27. [EditorSequence("Additional",1)]
  28. [TimestampEditor]
  29. public DateTime DataEntered { get; set; }
  30. [EditorSequence("Additional",2)]
  31. [TimestampEditor]
  32. [Security(typeof(CanCheckBills), Editable = Editable.Disabled)]
  33. public DateTime Checked { get; set; }
  34. [EditorSequence("Additional",3)]
  35. [TimestampEditor]
  36. [Security(typeof(CanApproveBills), Editable = Editable.Disabled)]
  37. public DateTime Approved { get; set; }
  38. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  39. [Aggregate(typeof(BillExTax))]
  40. public double ExTax { get; set; }
  41. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  42. [Aggregate(typeof(BillTax))]
  43. public double Tax { get; set; }
  44. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  45. [Aggregate(typeof(BillIncTax))]
  46. public double IncTax { get; set; }
  47. [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  48. [Aggregate(typeof(BillAmountPaid))]
  49. public double AmountPaid { get; set; }
  50. [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  51. [Formula(typeof(BillBalance))]
  52. public double Balance { get; set; }
  53. [Aggregate(typeof(BillDocumentCount))]
  54. [IntegerEditor(Editable = Editable.Hidden)]
  55. public int Documents { get; set; }
  56. [NullEditor]
  57. [LoggableProperty]
  58. public DateTime Posted { get; set; }
  59. [NullEditor]
  60. [LoggableProperty]
  61. [RequiredColumn]
  62. public PostedStatus PostedStatus { get; set; }
  63. [NullEditor]
  64. public string PostedNote { get; set; }
  65. [NullEditor]
  66. public string PostedReference { get; set; }
  67. protected override void DoPropertyChanged(string name, object? before, object? after)
  68. {
  69. base.DoPropertyChanged(name, before, after);
  70. if (name.Equals("AmountPaid") || name.Equals("IncTax"))
  71. Balance = IncTax - AmountPaid;
  72. }
  73. }
  74. }