InvoiceLine.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using InABox.Core;
  2. namespace Comal.Classes
  3. {
  4. [UserTracking(typeof(Invoice))]
  5. public class InvoiceLine : Entity, IPersistent, IRemotable, ISequenceable, IOneToMany<Invoice>, ITaxable, ILicense<AccountsReceivableLicense>
  6. {
  7. [NullEditor]
  8. [EntityRelationship(DeleteAction.Cascade)]
  9. public InvoiceLink InvoiceLink { get; set; }
  10. [MemoEditor]
  11. [EditorSequence(1)]
  12. public string Description { get; set; }
  13. [EditorSequence(2)]
  14. [DoubleEditor(Summary = Summary.Sum)]
  15. public double ExTax { get; set; }
  16. [EditorSequence(3)]
  17. public TaxCodeLink TaxCode { get; set; }
  18. [EditorSequence(4)]
  19. [DoubleEditor(Summary = Summary.Sum)]
  20. public double IncTax { get; set; }
  21. [EditorSequence(5)]
  22. public JobFinancialLink Financial { get; set; }
  23. [EditorSequence(6)]
  24. public CostCentreLink CostCentre { get; set; }
  25. [EditorSequence(7)]
  26. [CurrencyEditor(Editable = Editable.Hidden)]
  27. public double Amount { get; set; }
  28. [EditorSequence(8)]
  29. [DoubleEditor(Editable = Editable.Hidden)]
  30. public double TaxRate { get; set; }
  31. [EditorSequence(9)]
  32. [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
  33. public double Tax { get; set; }
  34. [NullEditor]
  35. public long Sequence { get; set; }
  36. protected override void Init()
  37. {
  38. base.Init();
  39. InvoiceLink = new InvoiceLink();
  40. TaxCode = new TaxCodeLink(() => this);
  41. Financial = new JobFinancialLink();
  42. CostCentre = new CostCentreLink();
  43. }
  44. static InvoiceLine()
  45. {
  46. LinkedProperties.Register<InvoiceLine, TaxCodeLink, double>(x => x.TaxCode, x => x.Rate, x => x.TaxRate);
  47. }
  48. }
  49. }