|
@@ -2,72 +2,65 @@
|
|
|
using System.Linq;
|
|
|
using System.Threading;
|
|
|
using Comal.Classes;
|
|
|
+using InABox.Clients;
|
|
|
using InABox.Core;
|
|
|
using InABox.DynamicGrid;
|
|
|
using InABox.Wpf;
|
|
|
|
|
|
-namespace PRSDesktop
|
|
|
+namespace PRSDesktop;
|
|
|
+
|
|
|
+public class JobOrderGrid : DynamicDataGrid<ConsolidatedPurchaseOrderItem>, IMasterDetailControl<Job, ConsolidatedPurchaseOrderItem>, IDataModelSource
|
|
|
{
|
|
|
- public class JobOrderGrid : DynamicDataGrid<PurchaseOrderItem>, IMasterDetailControl<Job,PurchaseOrderItem>, IDataModelSource
|
|
|
+ public Job? Master { get; set; }
|
|
|
+
|
|
|
+ public Filter<ConsolidatedPurchaseOrderItem> MasterDetailFilter => Master is not null && Master.ID != Guid.Empty
|
|
|
+ ? new Filter<ConsolidatedPurchaseOrderItem>(x => x.Job.ID).IsEqualTo(Master.ID)
|
|
|
+ : new Filter<ConsolidatedPurchaseOrderItem>().None();
|
|
|
+
|
|
|
+ public JobOrderGrid()
|
|
|
{
|
|
|
-
|
|
|
- public Job? Master { get; set; }
|
|
|
+ ColumnsTag = "JobOrders";
|
|
|
|
|
|
- public Filter<PurchaseOrderItem> MasterDetailFilter => (Master?.ID ?? Guid.Empty) != Guid.Empty
|
|
|
- ? new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(Master.ID)
|
|
|
- : new Filter<PurchaseOrderItem>().None();
|
|
|
-
|
|
|
- public JobOrderGrid()
|
|
|
- {
|
|
|
- ColumnsTag = "JobOrders";
|
|
|
- HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.ID);
|
|
|
- HiddenColumns.Add(x => x.PurchaseOrderLink.Category.ID);
|
|
|
- HiddenColumns.Add(x => x.ID);
|
|
|
- HiddenColumns.Add(x => x.Product.ID);
|
|
|
- HiddenColumns.Add(x => x.Product.Code);
|
|
|
- HiddenColumns.Add(x => x.Product.Name);
|
|
|
- HiddenColumns.Add(x => x.Description);
|
|
|
- HiddenColumns.Add(x => x.TaxCode.ID);
|
|
|
- HiddenColumns.Add(x => x.TaxCode.Code);
|
|
|
- HiddenColumns.Add(x => x.TaxCode.Description);
|
|
|
- HiddenColumns.Add(x => x.TaxCode.Rate);
|
|
|
- HiddenColumns.Add(x => x.TaxRate);
|
|
|
- HiddenColumns.Add(x => x.ExTax);
|
|
|
- HiddenColumns.Add(x => x.Tax);
|
|
|
- HiddenColumns.Add(x => x.IncTax);
|
|
|
- HiddenColumns.Add(x => x.BillLine.ID);
|
|
|
- HiddenColumns.Add(x => x.Consignment.ID);
|
|
|
- HiddenColumns.Add(x => x.Product.DigitalForm.ID);
|
|
|
- HiddenColumns.Add(x => x.Product.DigitalForm.Description);
|
|
|
- HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.Code);
|
|
|
- HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.Name);
|
|
|
- }
|
|
|
- protected override void DoReconfigure(DynamicGridOptions options)
|
|
|
- {
|
|
|
- base.DoReconfigure(options);
|
|
|
- options.RecordCount = true;
|
|
|
- options.SelectColumns = true;
|
|
|
- options.FilterRows = true;
|
|
|
- options.MultiSelect = true;
|
|
|
- options.ExportData = true;
|
|
|
- }
|
|
|
+ HiddenColumns.Add(x => x.OrderItem.ID);
|
|
|
+ }
|
|
|
|
|
|
- public event DataModelUpdateEvent? OnUpdateDataModel;
|
|
|
+ protected override void DoReconfigure(DynamicGridOptions options)
|
|
|
+ {
|
|
|
+ base.DoReconfigure(options);
|
|
|
+ options.RecordCount = true;
|
|
|
+ options.SelectColumns = true;
|
|
|
+ options.FilterRows = true;
|
|
|
+ options.ExportData = true;
|
|
|
|
|
|
- public string SectionName => "Job Orders";
|
|
|
+ options.EditRows = true;
|
|
|
+ }
|
|
|
|
|
|
- public DataModel DataModel(Selection selection)
|
|
|
- {
|
|
|
- var ids = ExtractValues(x => x.ID, selection).ToArray();
|
|
|
- return new BaseDataModel<PurchaseOrderItem>(new Filter<PurchaseOrderItem>(x => x.ID).InList(ids));
|
|
|
- }
|
|
|
-
|
|
|
- protected override void Reload(
|
|
|
- Filters<PurchaseOrderItem> criteria, Columns<PurchaseOrderItem> columns, ref SortOrder<PurchaseOrderItem>? sort,
|
|
|
- CancellationToken token, Action<CoreTable?, Exception?> action)
|
|
|
+ protected override void DoEdit()
|
|
|
+ {
|
|
|
+ if (SelectedRows.Length == 0) return;
|
|
|
+
|
|
|
+ var row = SelectedRows[0];
|
|
|
+ if(DynamicGridUtils.EditEntity<PurchaseOrderItem>(row.Get<ConsolidatedPurchaseOrderItem, Guid>(x => x.OrderItem.ID)))
|
|
|
{
|
|
|
- criteria.Add(MasterDetailFilter);
|
|
|
- base.Reload(criteria, columns, ref sort, token, action);
|
|
|
+ Refresh(false, true);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public event DataModelUpdateEvent? OnUpdateDataModel;
|
|
|
+
|
|
|
+ public string SectionName => "Job Orders";
|
|
|
+
|
|
|
+ public DataModel DataModel(Selection selection)
|
|
|
+ {
|
|
|
+ var ids = ExtractValues(x => x.OrderItem.ID, selection).ToArray();
|
|
|
+ return new BaseDataModel<ConsolidatedPurchaseOrderItem>(new Filter<ConsolidatedPurchaseOrderItem>(x => x.ID).InList(ids));
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override void Reload(
|
|
|
+ Filters<ConsolidatedPurchaseOrderItem> criteria, Columns<ConsolidatedPurchaseOrderItem> columns, ref SortOrder<ConsolidatedPurchaseOrderItem>? sort,
|
|
|
+ CancellationToken token, Action<CoreTable?, Exception?> action)
|
|
|
+ {
|
|
|
+ criteria.Add(MasterDetailFilter);
|
|
|
+ base.Reload(criteria, columns, ref sort, token, action);
|
|
|
+ }
|
|
|
}
|