| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Media;
- namespace PRSDesktop.Panels.Invoices;
- internal class ProgressClaimMaterialsGrid : DynamicDataGrid<StockMovement>, ISpecificGrid
- {
- public ProgressClaim Claim { get; set; }
- public Invoice? Invoice { get; set; }
- public ProgressClaimMaterialsGrid(ProgressClaim claim, Invoice? invoice)
- {
- Claim = claim;
- Invoice = invoice;
- }
- protected override void Init()
- {
- base.Init();
- HiddenColumns.Add(x => x.Invoice.ID);
- ColumnsTag = $"{nameof(ProgressClaim)}.Materials";
- }
- protected override IDynamicGridUIComponent<StockMovement> CreateUIComponent()
- {
- return new UIComponent(this);
- }
- private class UIComponent : DynamicGridGridUIComponent<StockMovement>
- {
- private ProgressClaimMaterialsGrid Grid;
- public UIComponent(ProgressClaimMaterialsGrid grid)
- {
- Parent = grid;
- Grid = grid;
- }
- protected override Brush? GetCellBackground(CoreRow row, DynamicColumnBase column)
- {
- var invoiceID = row.Get<StockMovement, Guid>(x => x.Invoice.ID);
- if(invoiceID == (Grid.Invoice?.ID ?? Guid.Empty))
- {
- return Colors.LightGreen.ToBrush(0.5);
- }
- else
- {
- return Colors.Silver.ToBrush(0.5);
- }
- }
- }
- protected override void DoReconfigure(DynamicGridOptions options)
- {
- base.DoReconfigure(options);
- options.FilterRows = true;
- options.SelectColumns = true;
- }
- public override DynamicGridColumns GenerateColumns()
- {
- return StockMovementGrid.StandardColumns();
- }
- protected override void Reload(Filters<StockMovement> criteria, Columns<StockMovement> columns, ref SortOrder<StockMovement>? sort, CancellationToken token, Action<CoreTable?, Exception?> action)
- {
- criteria.Add(new Filter<StockMovement>(x => x.Type).IsEqualTo(StockMovementType.Issue));
- criteria.Add(new Filter<StockMovement>(x => x.JobScope.ID).IsEqualTo(Claim.JobScope.ID));
- base.Reload(criteria, columns, ref sort, token, action);
- }
- }
|