|
@@ -1,5 +1,6 @@
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
using InABox.Core;
|
|
|
|
|
|
namespace Comal.Classes
|
|
@@ -33,11 +34,28 @@ namespace Comal.Classes
|
|
|
// Filters for Manufacturing Treament Codes
|
|
|
public Filter<Product> DefineFilter(StagingManufacturingPacketTreatment[] items)
|
|
|
{
|
|
|
- return DefineFilter().And(x => x.IsManufacturingTreatment).IsEqualTo(true);
|
|
|
+ var jobs = items.Select(x => x.Packet.Job.ID).Distinct().ToArray();
|
|
|
+
|
|
|
+ if(jobs.Length == 0)
|
|
|
+ {
|
|
|
+ return DefineFilter().And(x => x.IsManufacturingTreatment).IsEqualTo(true);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var jobStyleFilters = new Filters<JobStyle>();
|
|
|
+ foreach(var job in jobs)
|
|
|
+ {
|
|
|
+ jobStyleFilters.Add(new Filter<JobStyle>(x => x.Job.ID).IsEqualTo(job));
|
|
|
+ }
|
|
|
+ return DefineFilter().And(x => x.IsManufacturingTreatment).IsEqualTo(true)
|
|
|
+ .And(x => x.ID).InQuery(
|
|
|
+ new Filter<ProductStyle>(x => x.ID).InQuery(jobStyleFilters.Combine(), x => x.Style.ID),
|
|
|
+ x => x.ManufacturingTreatmentProduct.ID);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Columns<StagingManufacturingPacketTreatment> ILookupDefinition<Product, StagingManufacturingPacketTreatment>.DefineFilterColumns()
|
|
|
- => new Columns<StagingManufacturingPacketTreatment>();
|
|
|
+ => new Columns<StagingManufacturingPacketTreatment>(x => x.Packet.Job.ID);
|
|
|
|
|
|
// Filters for Manufacturing Treament Codes
|
|
|
public Filter<Product> DefineFilter(ManufacturingTreatment[] items)
|