JobFinancialLookups.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. Columns<InvoiceLine> ILookupDefinition<JobFinancial, InvoiceLine>.DefineFilterColumns()
  21. => new Columns<InvoiceLine>(x => x.InvoiceLink.JobLink.ID);
  22. public override Columns<JobFinancial> DefineColumns()
  23. {
  24. return new Columns<JobFinancial>().Default();
  25. }
  26. public override Filter<JobFinancial> DefineFilter()
  27. {
  28. return new Filter<JobFinancial>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  29. }
  30. public override SortOrder<JobFinancial> DefineSortOrder()
  31. {
  32. return new SortOrder<JobFinancial>(x => x.Number);
  33. }
  34. }
  35. }