|
@@ -49,12 +49,39 @@ namespace Comal.Classes
|
|
|
{
|
|
|
public override Columns<PurchaseOrderItemAllocation> DefineFilterColumns()
|
|
|
{
|
|
|
- return base.DefineFilterColumns().Add(x => x.Job.ID);
|
|
|
+ return base.DefineFilterColumns().Add(x => x.Job.ID).Add(x => x.Item.Product.ID);
|
|
|
}
|
|
|
|
|
|
public override Filter<JobRequisitionItem>? DefineFilter(PurchaseOrderItemAllocation[] items)
|
|
|
{
|
|
|
- return new Filter<JobRequisitionItem>(x => x.Job.ID).InList(items.ToArray(x => x.Job.ID));
|
|
|
+ var jobIDs = items.Select(x => x.Job.ID).Distinct().ToArray();
|
|
|
+ if(jobIDs.Length > 1)
|
|
|
+ {
|
|
|
+ return new Filter<JobRequisitionItem>().None();
|
|
|
+ }
|
|
|
+ var jobID = jobIDs.FirstOrDefault();
|
|
|
+
|
|
|
+ var productID = items.Select(x => x.Item.Product.ID).FirstOrDefault();
|
|
|
+ if(productID == Guid.Empty)
|
|
|
+ {
|
|
|
+ return new Filter<JobRequisitionItem>().None();
|
|
|
+ }
|
|
|
+
|
|
|
+ return new Filter<JobRequisitionItem>(x => x.Job.ID).IsEqualTo(jobID)
|
|
|
+ .And(x => x.Product.ID).IsEqualTo(productID);
|
|
|
+ }
|
|
|
+
|
|
|
+ public override Columns<JobRequisitionItem> DefineColumns()
|
|
|
+ {
|
|
|
+ return Columns.None<JobRequisitionItem>().Add(x => x.Job.JobNumber).Add(x => x.Requisition.Number).Add(x => x.Requisition.Description);
|
|
|
+ }
|
|
|
+
|
|
|
+ public override string FormatDisplay(CoreRow row)
|
|
|
+ {
|
|
|
+ var jobNumber = row.Get<JobRequisitionItem, string>(x => x.Job.JobNumber);
|
|
|
+ var requiNumber = row.Get<JobRequisitionItem, int>(x => x.Requisition.Number);
|
|
|
+ var requiDesc = row.Get<JobRequisitionItem, string>(x => x.Requisition.Description);
|
|
|
+ return $"{jobNumber}: #{requiNumber} ({requiDesc})";
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|