Bill.cs 3.0 KB

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