12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using System.Linq;
- using System.Windows.Media.Imaging;
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- namespace PRSDesktop
- {
- internal class RequisitionItemHoldingGrid : DynamicGrid<RequisitionItem>
- {
- public RequisitionItemHoldingGrid()
- {
- Options.Clear();
- HiddenColumns.Add(x => x.ID);
- HiddenColumns.Add(x => x.Style.ID);
- HiddenColumns.Add(x => x.Dimensions.UnitSize);
- ActionColumns.Add(new DynamicImageColumn(HoldingImage, HoldingClick) { AllowHeaderClick = false });
- }
- private BitmapImage HoldingImage(CoreRow arg)
- {
- return PRSDesktop.Resources.rightarrow.AsBitmapImage();
- }
- private bool HoldingClick(CoreRow arg)
- {
- var dlg = new MultiSelectDialog<StockHolding>(
- new Filter<StockHolding>(x => x.Product.ID).IsEqualTo(arg.Get<RequisitionItem, Guid>(c => c.Product.ID))
- .And(x => x.Style.ID).IsEqualTo(arg.Get<RequisitionItem, Guid>(c => c.Style.ID))
- .And(x => x.Dimensions.UnitSize).IsEqualTo(arg.Get<RequisitionItem, String>(c => c.Dimensions.UnitSize)),
- new Columns<StockHolding>(x => x.Location.ID, x => x.Location.Code),
- false
- );
- if (dlg.ShowDialog())
- {
- var holding = dlg.Items().FirstOrDefault();
- UpdateRow<RequisitionItem, Guid>(arg, x => x.Location.ID, holding.Location.ID, false);
- UpdateRow<RequisitionItem, string>(arg, x => x.Location.Code, holding.Location.Code, false);
- return true;
- }
- return false;
- }
- protected override DynamicGridColumns LoadColumns()
- {
- var result = new DynamicGridColumns();
- result.Add<RequisitionItem, string>(x => x.Product.Code, 200, "Code", "", Alignment.MiddleLeft);
- result.Add<RequisitionItem, string>(x => x.Product.Name, 0, "Description", "", Alignment.MiddleLeft);
- result.Add<RequisitionItem, string>(x => x.Style.Description, 0, "Style", "", Alignment.MiddleLeft);
- result.Add<RequisitionItem, double>(x => x.Quantity, 100, "Quantity", "", Alignment.MiddleCenter);
- result.Add<RequisitionItem, string>(x => x.Location.Code, 0, "Location", "", Alignment.MiddleLeft);
- return result;
- }
- protected override RequisitionItem LoadItem(CoreRow row)
- {
- return row.ToObject<RequisitionItem>();
- }
- protected override void Reload(Filters<RequisitionItem> criteria, Columns<RequisitionItem> columns, ref SortOrder<RequisitionItem> sort,
- Action<CoreTable, Exception> action)
- {
- action?.Invoke(MasterData, null);
- }
- public override void SaveItem(RequisitionItem item)
- {
- }
- protected override void DeleteItems(params CoreRow[] rows)
- {
- //throw new NotImplementedException();
- }
- }
- }
|