JobFinancialLookups.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using InABox.Core;
  2. namespace Comal.Classes
  3. {
  4. public class JobFinancialLookups : EntityLookup<JobFinancial>, ILookupDefinition<JobFinancial, InvoiceLine>
  5. {
  6. public Filter<JobFinancial> DefineFilter(InvoiceLine[] items)
  7. {
  8. if (items == null)
  9. return new Filter<JobFinancial>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  10. var jobid = CoreUtils.FullGuid;
  11. foreach (var item in items)
  12. {
  13. if (jobid == CoreUtils.FullGuid)
  14. jobid = item.InvoiceLink.JobLink.ID;
  15. if (item.InvoiceLink.JobLink.ID != jobid)
  16. return new Filter<JobFinancial>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  17. }
  18. return new Filter<JobFinancial>(x => x.Job.ID).IsEqualTo(jobid).And(x => x.Status.Approved).IsEqualTo(true);
  19. }
  20. public override Columns<JobFinancial> DefineColumns()
  21. {
  22. return new Columns<JobFinancial>().Default();
  23. }
  24. public override Filter<JobFinancial> DefineFilter()
  25. {
  26. return new Filter<JobFinancial>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  27. }
  28. public override SortOrder<JobFinancial> DefineSortOrder()
  29. {
  30. return new SortOrder<JobFinancial>(x => x.Number);
  31. }
  32. }
  33. }