123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- using System.Linq;
- using InABox.Core;
- namespace Comal.Classes
- {
- public class JobScopeLookups : EntityLookup<JobScope>, ILookupDefinition<JobScope, InvoiceLine>, ILookupDefinition<JobScope, Job>, ILookupDefinition<JobScope, StagingSetout>
- , ILookupDefinition<JobScope, Assignment>, ILookupDefinition<JobScope, RequisitionItem>, ILookupDefinition<JobScope, Requisition>
- {
-
- #region Invoice Lines
-
- public Filter<JobScope> DefineFilter(InvoiceLine[] items)
- {
- if (items == null)
- return new Filter<JobScope>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
- var jobid = CoreUtils.FullGuid;
- foreach (var item in items)
- {
- if (jobid == CoreUtils.FullGuid)
- jobid = item.InvoiceLink.JobLink.ID;
- if (item.InvoiceLink.JobLink.ID != jobid)
- return new Filter<JobScope>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
- }
- return new Filter<JobScope>(x => x.Job.ID).IsEqualTo(jobid).And(x => x.Status.Approved).IsEqualTo(true);
- }
-
- Columns<InvoiceLine> ILookupDefinition<JobScope, InvoiceLine>.DefineFilterColumns()
- => new Columns<InvoiceLine>(x => x.InvoiceLink.JobLink.ID);
- #endregion
-
- #region Assignments
- public Filter<JobScope> DefineFilter(Assignment[] items)
- {
- var item = items?.Length == 1 ? items[0] : null;
- if (item != null)
- return new Filter<JobScope>(x => x.Job.ID).IsEqualTo(item.JobLink.ID).And(x => x.Status.Approved).IsEqualTo(true);
- return new Filter<JobScope>(x => x.ID).None();
- }
-
- Columns<Assignment> ILookupDefinition<JobScope, Assignment>.DefineFilterColumns()
- => new Columns<Assignment>(x=>x.JobLink.ID);
- #endregion
-
- #region Jobs (Default Scope)
-
- public Filter<JobScope> DefineFilter(Job[] items)
- {
- var item = items?.Length == 1 ? items[0] : null;
- if (item != null)
- return new Filter<JobScope>(x => x.Job.ID).IsEqualTo(item.ID).And(x => x.Status.Approved).IsEqualTo(true);
- return new Filter<JobScope>(x => x.ID).None();
- }
-
- Columns<Job> ILookupDefinition<JobScope, Job>.DefineFilterColumns()
- => new Columns<Job>(x=>x.ID);
-
-
- #endregion
-
- #region StagingSetout
-
- public Filter<JobScope> DefineFilter(StagingSetout[] items)
- {
- var item = items?.Length == 1 ? items[0] : null;
- if (item != null)
- return new Filter<JobScope>(x => x.Job.ID).IsEqualTo(item.JobLink.ID).And(x => x.Status.Approved).IsEqualTo(true);
- return new Filter<JobScope>(x => x.ID).None();
- }
-
- Columns<StagingSetout> ILookupDefinition<JobScope, StagingSetout>.DefineFilterColumns()
- => new Columns<StagingSetout>(x=>x.JobLink.ID);
-
- #endregion
-
- #region RequisitionItem
-
- public Filter<JobScope> DefineFilter(RequisitionItem[] items)
- {
- var item = items?.Length == 1 ? items[0] : null;
- if (item != null)
- return new Filter<JobScope>(x => x.Job.ID).IsEqualTo(item.RequisitionLink.JobLink.ID).And(x => x.Status.Approved).IsEqualTo(true);
- return new Filter<JobScope>(x => x.ID).None();
- }
-
- Columns<RequisitionItem> ILookupDefinition<JobScope, RequisitionItem>.DefineFilterColumns()
- => new Columns<RequisitionItem>(x=>x.RequisitionLink.JobLink.ID);
-
- #endregion
-
- #region Requisition
-
- public Filter<JobScope> DefineFilter(Requisition[] items)
- {
- var item = items?.Length == 1 ? items[0] : null;
- if (item != null)
- return new Filter<JobScope>(x => x.Job.ID).IsEqualTo(item.JobLink.ID).And(x => x.Status.Approved).IsEqualTo(true);
- return new Filter<JobScope>(x => x.ID).None();
- }
-
- Columns<Requisition> ILookupDefinition<JobScope, Requisition>.DefineFilterColumns()
- => new Columns<Requisition>(x=>x.JobLink.ID);
-
- #endregion
-
- public override Columns<JobScope> DefineColumns()
- {
- return new Columns<JobScope>().Default();
- }
- public override Filter<JobScope> DefineFilter()
- {
- return new Filter<JobScope>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
- }
- public override SortOrder<JobScope> DefineSortOrder()
- {
- return new SortOrder<JobScope>(x => x.Number);
- }
- }
- }
|