|
@@ -3,13 +3,16 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Linq.Expressions;
|
|
|
using System.Reflection;
|
|
|
+using System.Windows;
|
|
|
using System.Windows.Media;
|
|
|
+using System.Windows.Media.Imaging;
|
|
|
using Comal.Classes;
|
|
|
using InABox.Clients;
|
|
|
using InABox.Configuration;
|
|
|
using InABox.Core;
|
|
|
using InABox.DynamicGrid;
|
|
|
using InABox.Wpf;
|
|
|
+using InABox.WPF;
|
|
|
using PRSDesktop.Utils;
|
|
|
using Syncfusion.Data.Extensions;
|
|
|
using Xceed.Wpf.Toolkit;
|
|
@@ -25,6 +28,7 @@ public enum StockSummaryMinimumStockBehaviour
|
|
|
|
|
|
public class StockSummaryGrid : DynamicDataGrid<StockSummary>, IDataModelSource
|
|
|
{
|
|
|
+ private static readonly BitmapImage _warning = InABox.Wpf.Resources.warning.AsBitmapImage();
|
|
|
|
|
|
public Guid[] GroupIDs { get; set; }
|
|
|
public Guid[] JobIDs { get; set; }
|
|
@@ -43,6 +47,7 @@ public class StockSummaryGrid : DynamicDataGrid<StockSummary>, IDataModelSource
|
|
|
|
|
|
HiddenColumns.Add(x => x.Product.ID);
|
|
|
HiddenColumns.Add(x => x.Product.Issues);
|
|
|
+ HiddenColumns.Add(x => x.Issues);
|
|
|
HiddenColumns.Add(x => x.Style.ID);
|
|
|
HiddenColumns.Add(x => x.Job.ID);
|
|
|
HiddenColumns.Add(x => x.Dimensions.UnitSize);
|
|
@@ -57,7 +62,11 @@ public class StockSummaryGrid : DynamicDataGrid<StockSummary>, IDataModelSource
|
|
|
|
|
|
HiddenColumns.Add(x => x.Product.Image.ID);
|
|
|
HiddenColumns.Add(x => x.Product.Image.FileName);
|
|
|
- ActionColumns.Add(new DynamicIssuesColumn<Product>(this, CoreUtils.GetFullPropertyName<StockSummary, string>(x => x.Product.Issues, "."), LoadProducts));
|
|
|
+ //ActionColumns.Add(new DynamicIssuesColumn<Product>(this, CoreUtils.GetFullPropertyName<StockSummary, string>(x => x.Product.Issues, "."), LoadProducts));
|
|
|
+ ActionColumns.Add(new DynamicImageColumn(Issues_Image, null)
|
|
|
+ {
|
|
|
+ ToolTip = Issues_Tooltip
|
|
|
+ });
|
|
|
ActionColumns.Add(new DynamicImagePreviewColumn<StockSummary>(x => x.Product.Image)
|
|
|
{ Position = DynamicActionColumnPosition.Start });
|
|
|
|
|
@@ -66,6 +75,20 @@ public class StockSummaryGrid : DynamicDataGrid<StockSummary>, IDataModelSource
|
|
|
MinStockBehaviour = new GlobalConfiguration<StockSummaryPanelSettings>().Load().MinimumStockBehaviour;
|
|
|
}
|
|
|
|
|
|
+ private BitmapImage? Issues_Image(CoreRow? row)
|
|
|
+ {
|
|
|
+ if (row is null) return _warning;
|
|
|
+
|
|
|
+ return row.Get<StockSummary, string>(x => x.Issues).IsNullOrWhiteSpace() ? null : _warning;
|
|
|
+ }
|
|
|
+
|
|
|
+ private FrameworkElement? Issues_Tooltip(DynamicActionColumn column, CoreRow? row)
|
|
|
+ {
|
|
|
+ if (row is null) return null;
|
|
|
+
|
|
|
+ return column.TextToolTip(row.Get<StockSummary, string>(x => x.Issues));
|
|
|
+ }
|
|
|
+
|
|
|
private class UIComponent : DynamicGridGridUIComponent<StockSummary>
|
|
|
{
|
|
|
private StockSummaryGrid Grid;
|
|
@@ -145,7 +168,7 @@ public class StockSummaryGrid : DynamicDataGrid<StockSummary>, IDataModelSource
|
|
|
var grid = (Activator.CreateInstance(typeof(DynamicDataGrid<>).MakeGenericType(typeof(TEntity))) as IDynamicDataGrid);
|
|
|
if (grid == null)
|
|
|
{
|
|
|
- MessageBox.Show($"Cannot create Grid for [{typeof(TEntity).Name}]");
|
|
|
+ MessageWindow.ShowError($"Cannot create Grid for [{typeof(TEntity).Name}]", "", shouldLog: false);
|
|
|
return;
|
|
|
}
|
|
|
grid.ColumnsTag = $"{ColumnsTag}.{columnname}";
|
|
@@ -489,6 +512,19 @@ public class StockSummaryGrid : DynamicDataGrid<StockSummary>, IDataModelSource
|
|
|
};
|
|
|
|
|
|
newrow.Set<StockSummary, double>(x => x.BalanceAvailable, balance);
|
|
|
+
|
|
|
+ var productIssues = rows.First().Get<StockSummary, string>(x => x.Product.Issues);
|
|
|
+ var issues = new List<string>();
|
|
|
+ if(balance < 0)
|
|
|
+ {
|
|
|
+ issues.Add("Not enough stock available.");
|
|
|
+ }
|
|
|
+ if (!productIssues.IsNullOrWhiteSpace())
|
|
|
+ {
|
|
|
+ issues.Add(productIssues);
|
|
|
+ }
|
|
|
+ newrow.Set<StockSummary, string>(x => x.Issues, string.Join('\n', issues));
|
|
|
+
|
|
|
table.Rows.Add(newrow);
|
|
|
}
|
|
|
|