| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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 ProgressClaimLabourGrid : DynamicDataGrid<Assignment>, ISpecificGrid
- {
- public ProgressClaim Claim { get; set; }
- public Invoice? Invoice { get; set; }
- public Job Job { get; set; }
- public ProgressClaimLabourGrid(ProgressClaim claim, Invoice? invoice, Job job)
- {
- Claim = claim;
- Invoice = invoice;
- Job = job;
- }
- protected override void Init()
- {
- base.Init();
- HiddenColumns.Add(x => x.Invoice.ID);
- ColumnsTag = $"{nameof(ProgressClaim)}.Labour";
- }
- protected override IDynamicGridUIComponent<Assignment> CreateUIComponent()
- {
- return new UIComponent(this);
- }
- private class UIComponent : DynamicGridGridUIComponent<Assignment>
- {
- private ProgressClaimLabourGrid Grid;
- public UIComponent(ProgressClaimLabourGrid grid)
- {
- Parent = grid;
- Grid = grid;
- }
- protected override Brush? GetCellBackground(CoreRow row, DynamicColumnBase column)
- {
- var invoiceID = row.Get<Assignment, 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 base.GenerateColumns();
- }
- protected override void Reload(Filters<Assignment> criteria, Columns<Assignment> columns, ref SortOrder<Assignment>? sort, CancellationToken token, Action<CoreTable?, Exception?> action)
- {
- criteria.Add(new Filter<Assignment>(x => x.JobScope.ID).IsEqualTo(Claim.JobScope.ID));
- criteria.Add(new Filter<Assignment>(x => x.JobLink.ID).IsEqualTo(Job.ID));
- base.Reload(criteria, columns, ref sort, token, action);
- }
- }
|