1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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.Holding.ID);
- HiddenColumns.Add(x => x.Style.ID);
- ActionColumns.Add(new DynamicActionColumn(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.Location.Active)
- .IsEqualTo(true),
- new Columns<StockHolding>(x => x.ID, x => x.Location.Area.Warehouse.Code, x => x.Location.Area.Code, x => x.Location.Code,
- x => x.Location.Description, x => x.Units, x => x.Style.ID),
- false
- );
- if (dlg.ShowDialog())
- {
- var holding = dlg.Items().FirstOrDefault();
- UpdateRow<RequisitionItem, Guid>(arg, x => x.Holding.ID, holding.ID, false);
- UpdateRow<RequisitionItem, string>(arg, x => x.Holding.Location.Code, holding.Location.Code, false);
- UpdateRow<RequisitionItem, Guid>(arg, x => x.Holding.Style.ID, holding.Style.ID, false);
- UpdateRow<RequisitionItem, string>(arg, x => x.Holding.Style.Description, holding.Style.Description);
- return true;
- }
- return false;
- }
- public override void ConfigureColumns(DynamicGridColumns columns)
- {
- base.ConfigureColumns(columns);
- }
- protected override void DeleteItems(params CoreRow[] rows)
- {
- throw new NotImplementedException();
- }
- 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.Holding.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);
- }
- protected override void SaveItem(RequisitionItem item)
- {
- }
- }
- }
|