BillLine.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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>, IPostableFragment<Bill>
  12. {
  13. [EntityRelationship(DeleteAction.Cascade)]
  14. [NullEditor]
  15. public BillLink BillLink { get; set; }
  16. [EntityRelationship(DeleteAction.SetNull)]
  17. [EditorSequence(1)]
  18. public PurchaseOrderItemLink OrderItem { get; set; }
  19. [MemoEditor]
  20. [EditorSequence(2)]
  21. public string Description { get; set; }
  22. [EditorSequence(3)]
  23. public PurchaseGLCodeLink PurchaseGL { get; set; }
  24. [EditorSequence(4)]
  25. public CostCentreLink CostCentre { get; set; }
  26. [CurrencyEditor(Summary = Summary.Sum)]
  27. [EditorSequence(5)]
  28. public double ExTax { get; set; }
  29. [RequiredColumn]
  30. [EditorSequence(6)]
  31. public TaxCodeLink TaxCode { get; set; }
  32. [DoubleEditor(Editable = Editable.Hidden)]
  33. public double TaxRate { get; set; }
  34. [CurrencyEditor(Summary = Summary.Sum)]
  35. public double Tax { get; set; }
  36. [CurrencyEditor(Summary = Summary.Sum)]
  37. [EditorSequence(7)]
  38. public double IncTax { get; set; }
  39. [NullEditor]
  40. public string PostedReference { get; set; }
  41. static BillLine()
  42. {
  43. LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.ExTax,
  44. x => x.ExTax);
  45. LinkedProperties.Register<BillLine, PurchaseGLCodeLink, Guid>(x => x.OrderItem.PurchaseGL, x => x.ID,
  46. x => x.PurchaseGL.ID);
  47. LinkedProperties.Register<BillLine, CostCentreLink, Guid>(x => x.OrderItem.CostCentre, x => x.ID,
  48. x => x.CostCentre.ID);
  49. LinkedProperties.Register<BillLine, TaxCodeLink, Guid>(x => x.OrderItem.TaxCode, x => x.ID,
  50. x => x.TaxCode.ID);
  51. LinkedProperties.Register<BillLine, TaxCodeLink, String>(x => x.OrderItem.TaxCode, x => x.Code,
  52. x => x.TaxCode.Code);
  53. LinkedProperties.Register<BillLine, TaxCodeLink, String>(x => x.OrderItem.TaxCode, x => x.Description,
  54. x => x.TaxCode.Description);
  55. LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.OrderItem.TaxCode, x => x.Rate,
  56. x => x.TaxCode.Rate);
  57. LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.Tax,
  58. x => x.Tax);
  59. LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.IncTax,
  60. x => x.IncTax);
  61. LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.TaxCode, x => x.Rate, x => x.TaxRate);
  62. }
  63. }
  64. }