|
@@ -20,8 +20,6 @@ namespace PRSDesktop
|
|
|
Guid empID = Guid.Empty;
|
|
|
string empName = "";
|
|
|
|
|
|
- private bool _stylecolumnVisible;
|
|
|
-
|
|
|
public bool IncludeReserves { get; set; }
|
|
|
|
|
|
public Job Job { get; set; }
|
|
@@ -30,7 +28,6 @@ namespace PRSDesktop
|
|
|
|
|
|
public JobSummaryGrid() : base()
|
|
|
{
|
|
|
-
|
|
|
ColumnsTag = nameof(JobSummaryGrid);
|
|
|
|
|
|
OnCellDoubleClick += JobSummaryGrid_OnCellDoubleClick;
|
|
@@ -80,6 +77,12 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ private bool StyleColumnVisible()
|
|
|
+ {
|
|
|
+ var styleColumn = CoreUtils.GetFullPropertyName<JobMaterial, ProductStyleLink>(x => x.Style, ".");
|
|
|
+
|
|
|
+ return VisibleColumns.Any(x => x.ColumnName.StartsWith(styleColumn));
|
|
|
+ }
|
|
|
|
|
|
protected override void GenerateColumns(DynamicGridColumns columns)
|
|
|
{
|
|
@@ -143,11 +146,11 @@ namespace PRSDesktop
|
|
|
|
|
|
private void JobSummaryGrid_OnCellDoubleClick(object sender, DynamicGridCellClickEventArgs args)
|
|
|
{
|
|
|
- Guid productid = args.Row.Get<StockSummary, Guid>(c => c.Product.ID);
|
|
|
- Guid? styleid = _stylecolumnVisible ? args.Row.Get<StockSummary, Guid>(c => c.Style.ID) : null;
|
|
|
- String unitsize = args.Row.Get<StockSummary, String>(c => c.Dimensions.UnitSize);
|
|
|
+ var productid = args.Row.Get<StockSummary, Guid>(c => c.Product.ID);
|
|
|
+ Guid? styleid = StyleColumnVisible() ? args.Row.Get<StockSummary, Guid>(c => c.Style.ID) : null;
|
|
|
+ var unitsize = args.Row.Get<StockSummary, String>(c => c.Dimensions.UnitSize);
|
|
|
|
|
|
- if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.BillOfMaterials, ".")))
|
|
|
+ if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.BillOfMaterials, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<JobBillOfMaterialsItem>(
|
|
|
args.Column.ColumnName,
|
|
@@ -163,7 +166,7 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Requisitions, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Requisitions, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<JobRequisitionItem>(
|
|
|
args.Column.ColumnName,
|
|
@@ -179,7 +182,7 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.PickingLists, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.PickingLists, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<RequisitionItem>(
|
|
|
args.Column.ColumnName,
|
|
@@ -195,7 +198,7 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Issued, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Issued, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<StockMovement>(
|
|
|
args.Column.ColumnName,
|
|
@@ -211,7 +214,7 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.ReservedStock, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.ReservedStock, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<StockHolding>(
|
|
|
args.Column.ColumnName,
|
|
@@ -227,7 +230,7 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.OnOrder, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.OnOrder, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<PurchaseOrderItem>(
|
|
|
args.Column.ColumnName,
|
|
@@ -243,7 +246,7 @@ namespace PRSDesktop
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnHand, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnHand, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<StockHolding>(
|
|
|
args.Column.ColumnName,
|
|
@@ -263,7 +266,7 @@ namespace PRSDesktop
|
|
|
null
|
|
|
);
|
|
|
}
|
|
|
- else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnOrder, ".")))
|
|
|
+ else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnOrder, ".")))
|
|
|
{
|
|
|
ShowDetailGrid<PurchaseOrderItem>(
|
|
|
args.Column.ColumnName,
|
|
@@ -406,8 +409,9 @@ namespace PRSDesktop
|
|
|
|
|
|
var freeorders = query.Get<PurchaseOrderItem>();
|
|
|
Columns<PurchaseOrderItem> freeordercolumns = new Columns<PurchaseOrderItem>(freeorders.Columns.Select(x => x.ColumnName));
|
|
|
-
|
|
|
- var keys = GetKeys(data.Rows, columns, _stylecolumnVisible);
|
|
|
+
|
|
|
+ var hasStyle = StyleColumnVisible();
|
|
|
+ var keys = GetKeys(data.Rows, columns, hasStyle);
|
|
|
|
|
|
foreach (var key in keys)
|
|
|
{
|
|
@@ -419,29 +423,29 @@ namespace PRSDesktop
|
|
|
CoreRow newrow = table.NewRow();
|
|
|
newrow.LoadValues(rows.First().Values);
|
|
|
|
|
|
- var bom = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.BillOfMaterials, newrow,
|
|
|
+ var bom = Aggregate(rows, columns, hasStyle, true, x => x.BillOfMaterials, newrow,
|
|
|
x => x.BillOfMaterials);
|
|
|
- var requi = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.Requisitions, newrow, x => x.Requisitions);
|
|
|
- var picklist = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.PickingLists, newrow,
|
|
|
+ var requi = Aggregate(rows, columns, hasStyle, true, x => x.Requisitions, newrow, x => x.Requisitions);
|
|
|
+ var picklist = Aggregate(rows, columns, hasStyle, true, x => x.PickingLists, newrow,
|
|
|
x => x.PickingLists);
|
|
|
- var issued = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.Issued, newrow, x => x.Issued);
|
|
|
+ var issued = Aggregate(rows, columns, hasStyle, true, x => x.Issued, newrow, x => x.Issued);
|
|
|
|
|
|
- var reserved = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.ReservedStock, newrow,
|
|
|
+ var reserved = Aggregate(rows, columns, hasStyle, true, x => x.ReservedStock, newrow,
|
|
|
x => x.ReservedStock);
|
|
|
- var ordered = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.OnOrder, newrow, x => x.OnOrder);
|
|
|
+ var ordered = Aggregate(rows, columns, hasStyle, true, x => x.OnOrder, newrow, x => x.OnOrder);
|
|
|
|
|
|
var shortage = Math.Max(0, Math.Max(0, (requi - issued)) - (reserved + ordered));
|
|
|
newrow.Set<JobMaterial, double>(x => x.JobShortage, shortage);
|
|
|
|
|
|
var freestockrows = GetRows(freestock.Rows, freestockcolumns, null, key.Item2, key.Item3, key.Item4,
|
|
|
IncludeReserves ? null : (r) => !r.Get<StockHolding,bool>(x=>x.Job.JobStatus.Active));
|
|
|
- var freeonhand = Aggregate(freestockrows, freestockcolumns, _stylecolumnVisible, false, x => x.Units, newrow,
|
|
|
+ var freeonhand = Aggregate(freestockrows, freestockcolumns, hasStyle, false, x => x.Units, newrow,
|
|
|
x => x.FreeOnHand);
|
|
|
newrow.Set<JobMaterial, double>(x => x.FreeOnHand, freeonhand);
|
|
|
|
|
|
var freeorderrows = GetRows(freeorders.Rows, freeordercolumns, null, key.Item2, key.Item3, key.Item4,
|
|
|
IncludeReserves ? null : (r) => !r.Get<PurchaseOrderItem,bool>(x=>x.Job.JobStatus.Active));
|
|
|
- var freeonorder = Aggregate(freeorderrows, freeordercolumns, _stylecolumnVisible, false, x => x.Qty, newrow,
|
|
|
+ var freeonorder = Aggregate(freeorderrows, freeordercolumns, hasStyle, false, x => x.Qty, newrow,
|
|
|
x => x.FreeOnOrder);
|
|
|
newrow.Set<JobMaterial, double>(x => x.FreeOnOrder, freeonorder);
|
|
|
|