123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using System;
- using System.Threading;
- using System.Windows.Controls;
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- namespace PRSDesktop;
- public class ReservationManagementSubstitutionGrid : DynamicDataGrid<StockHolding>
- {
- private bool initialized;
- private JobRequisitionItem? jri;
- private bool freeStockOnly;
- public JobRequisitionItem? JRI
- {
- get => jri;
- set
- {
- jri = value;
- Refresh(!initialized,true);
- }
- }
- public bool FreeStockOnly
- {
- get => freeStockOnly;
- set
- {
- freeStockOnly = value;
- Refresh(!initialized, true);
- }
- }
- public bool UpdateStyle { get; set; }
-
- private bool SubstituteProduct(CoreRow? row)
- {
- return true;
- }
-
- protected override void DoReconfigure(DynamicGridOptions options)
- {
- options.Clear();
- }
- protected override DynamicGridColumns LoadColumns()
- {
- var result = new DynamicGridColumns();
- result.Add<StockHolding,string>(x => x.Dimensions.UnitSize, 100, "Substitutes", "", Alignment.MiddleCenter);
- result.Add<StockHolding,string>(x => x.Style.Description, 0, "Style", "", Alignment.MiddleCenter);
- result.Add<StockHolding,string>(x => x.Location.Code, 100, "Location", "", Alignment.MiddleCenter);
- result.Add<StockHolding,string>(x => x.Job.JobNumber, 70, "Job", "", Alignment.MiddleCenter);
- result.Add<StockHolding,double>(x => x.Available, 60, "Avail.", "F2", Alignment.MiddleCenter);
- return result;
- }
- protected override void Init()
- {
- base.Init();
- HiddenColumns.Add(x=>x.Job.ID);
- HiddenColumns.Add(x=>x.Job.JobNumber);
- HiddenColumns.Add(x=>x.Job.Name);
- HiddenColumns.Add(x=>x.Style.ID);
- HiddenColumns.Add(x=>x.Style.Code);
- HiddenColumns.Add(x=>x.Style.Description);
- HiddenColumns.Add(x => x.Dimensions.UnitSize);
- HiddenColumns.Add(x => x.Dimensions.Length);
- HiddenColumns.Add(x => x.Dimensions.Width);
- HiddenColumns.Add(x => x.Dimensions.Height);
- HiddenColumns.Add(x => x.Dimensions.Weight);
- HiddenColumns.Add(x => x.Dimensions.Quantity);
- HiddenColumns.Add(x => x.Dimensions.Value);
- HiddenColumns.Add(x => x.Dimensions.Unit.ID);
- HiddenColumns.Add(x => x.Dimensions.Unit.HasLength);
- HiddenColumns.Add(x => x.Dimensions.Unit.HasHeight);
- HiddenColumns.Add(x => x.Dimensions.Unit.HasWidth);
- HiddenColumns.Add(x => x.Dimensions.Unit.HasWeight);
- HiddenColumns.Add(x => x.Dimensions.Unit.HasQuantity);
- HiddenColumns.Add(x => x.Dimensions.Unit.Formula);
- HiddenColumns.Add(x => x.Dimensions.Unit.Format);
- HiddenColumns.Add(x => x.Dimensions.Unit.Code);
- HiddenColumns.Add(x => x.Dimensions.Unit.Description);
- HiddenColumns.Add(x => x.Available);
- }
- protected override void Reload(Filters<StockHolding> criteria, Columns<StockHolding> columns, ref SortOrder<StockHolding>? sort, CancellationToken token, Action<CoreTable?, Exception?> action)
- {
- initialized = true;
- if (jri != null)
- {
- criteria.Add(new Filter<StockHolding>(x => x.Product.ID).IsEqualTo(jri.Product.ID)
- .And(
- new Filter<StockHolding>(x => x.Style.ID).IsNotEqualTo(jri.Style.ID)
- .Or(x => x.Dimensions.Unit.ID).IsNotEqualTo(jri.Dimensions.Unit.ID)
- .Or(x => x.Dimensions.Height).IsNotEqualTo(jri.Dimensions.Height)
- .Or(x => x.Dimensions.Width).IsNotEqualTo(jri.Dimensions.Width)
- .Or(x => x.Dimensions.Length).IsNotEqualTo(jri.Dimensions.Length)
- .Or(x => x.Dimensions.Quantity).IsNotEqualTo(jri.Dimensions.Quantity)
- .Or(x => x.Dimensions.Weight).IsNotEqualTo(jri.Dimensions.Weight)
- )
- );
- if (FreeStockOnly)
- criteria.Add(new Filter<StockHolding>(x => x.Job.ID).IsEqualTo(Guid.Empty));
- }
- else
- criteria.Add(new Filter<StockHolding>().None());
- base.Reload(criteria, columns, ref sort, token, action);
- }
-
- }
|