|
@@ -209,6 +209,7 @@ internal class JobSummaryGrid : DynamicDataGrid<JobMaterial>, IMasterDetailContr
|
|
|
HiddenColumns.Add(x => x.Product.ID);
|
|
|
HiddenColumns.Add(x => x.Style.ID);
|
|
|
HiddenColumns.Add(x => x.Dimensions.UnitSize);
|
|
|
+ HiddenColumns.Add(x => x.Dimensions.Value);
|
|
|
|
|
|
HiddenColumns.Add(x => x.BillOfMaterials);
|
|
|
HiddenColumns.Add(x => x.Requisitions);
|
|
@@ -260,6 +261,25 @@ internal class JobSummaryGrid : DynamicDataGrid<JobMaterial>, IMasterDetailContr
|
|
|
return VisibleColumns.Any(x => x.ColumnName.StartsWith(dimColumn));
|
|
|
}
|
|
|
|
|
|
+ private bool? _hasUnitSize;
|
|
|
+ private bool UnitSizeColumnVisible()
|
|
|
+ {
|
|
|
+ if (_hasUnitSize.HasValue)
|
|
|
+ {
|
|
|
+ return _hasUnitSize.Value;
|
|
|
+ }
|
|
|
+ var dimColumn = CoreUtils.GetFullPropertyName<JobMaterial, string>(x => x.Dimensions.UnitSize, ".");
|
|
|
+
|
|
|
+ _hasUnitSize = VisibleColumns.Any(x => x.ColumnName.Equals(dimColumn));
|
|
|
+ return _hasUnitSize.Value;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override DynamicGridColumns LoadColumns()
|
|
|
+ {
|
|
|
+ _hasUnitSize = null;
|
|
|
+ return base.LoadColumns();
|
|
|
+ }
|
|
|
+
|
|
|
public override DynamicGridColumns GenerateColumns()
|
|
|
{
|
|
|
var columns = new DynamicGridColumns();
|
|
@@ -751,14 +771,33 @@ internal class JobSummaryGrid : DynamicDataGrid<JobMaterial>, IMasterDetailContr
|
|
|
|
|
|
var hasStyle = StyleColumnVisible();
|
|
|
var hasDimensions = DimensionsColumnVisible();
|
|
|
+ var hasUnitSize = UnitSizeColumnVisible();
|
|
|
var keys = GetKeys(data.Rows, columns, hasStyle, hasDimensions);
|
|
|
|
|
|
foreach (var key in keys)
|
|
|
{
|
|
|
|
|
|
var rows = GetRows(data.Rows, columns, key.JobID, key);
|
|
|
- if (rows.Any())
|
|
|
+ if (rows.Length != 0)
|
|
|
{
|
|
|
+ if (!hasUnitSize)
|
|
|
+ {
|
|
|
+ foreach(var row in rows)
|
|
|
+ {
|
|
|
+ var multFactor = row.Get<JobMaterial, double>(x => x.Dimensions.Value);
|
|
|
+ row.Update<JobMaterial, double>(x => x.BillOfMaterials, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.Requisitions, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.PickingLists, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.Issued, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.ReservedStock, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.OnOrder, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.JobShortage, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.FreeOnHand, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.FreeOnOrder, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.FreeStockTotal, x => x * multFactor);
|
|
|
+ row.Update<JobMaterial, double>(x => x.FreeStockShortage, x => x * multFactor);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
CoreRow newrow = table.NewRow();
|
|
|
newrow.LoadValues(rows.First().Values);
|