BillApproval.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using InABox.Core;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. namespace Comal.Classes
  6. {
  7. public class BillApproval : Entity, ISequenceable, IRemotable, IPersistent, ILicense<AccountsPayableLicense>
  8. {
  9. private class EmployeeLookup : LookupDefinitionGenerator<Employee, BillApproval>
  10. {
  11. public override Filter<Employee>? DefineFilter(BillApproval[] items)
  12. {
  13. return new Filter<Employee>(x => x.ID).NotInList(items.ToArray(x => x.Employee.ID));
  14. }
  15. public override Columns<BillApproval> DefineFilterColumns()
  16. {
  17. return base.DefineFilterColumns().Add(x => x.Employee.ID);
  18. }
  19. }
  20. [EditorSequence(1)]
  21. [EntityRelationship(DeleteAction.Cascade)]
  22. [LookupDefinition(typeof(EmployeeLookup))]
  23. public EmployeeLink Employee { get; set; }
  24. [NullEditor]
  25. [EntityRelationship(DeleteAction.Cascade)]
  26. public BillLink Bill { get; set; }
  27. [EditorSequence(2)]
  28. public DateTime Approved { get; set; }
  29. [NullEditor]
  30. public bool IsCustom { get; set; }
  31. [NullEditor]
  32. public long Sequence { get; set; }
  33. static BillApproval()
  34. {
  35. DefaultColumns.Add<BillApproval>(x => x.Bill.Number);
  36. DefaultColumns.Add<BillApproval>(x => x.Employee.Code);
  37. DefaultColumns.Add<BillApproval>(x => x.Employee.Name);
  38. DefaultColumns.Add<BillApproval>(x => x.Approved);
  39. }
  40. }
  41. }