|
@@ -9,6 +9,7 @@ using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
|
|
+using System.Linq.Expressions;
|
|
using System.Windows;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media;
|
|
@@ -45,13 +46,15 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
|
|
|
|
|
|
protected override Brush? GetCellBackground(CoreRow row, DynamicColumnBase column)
|
|
protected override Brush? GetCellBackground(CoreRow row, DynamicColumnBase column)
|
|
{
|
|
{
|
|
|
|
+ if (!Grid.ShowColors) return null;
|
|
|
|
+
|
|
if (column is DynamicGridColumn col)
|
|
if (column is DynamicGridColumn col)
|
|
{
|
|
{
|
|
if (String.Equals(col.ColumnName,
|
|
if (String.Equals(col.ColumnName,
|
|
CoreUtils.GetFullPropertyName<JobRequisitionItem, DateTime>(x => x.Requisition.DueDate, ".")))
|
|
CoreUtils.GetFullPropertyName<JobRequisitionItem, DateTime>(x => x.Requisition.DueDate, ".")))
|
|
{
|
|
{
|
|
var due = row.Get<JobRequisitionItem, DateTime>(x => x.Requisition.DueDate);
|
|
var due = row.Get<JobRequisitionItem, DateTime>(x => x.Requisition.DueDate);
|
|
- if (Grid.ShowColors && !due.IsEmpty())
|
|
|
|
|
|
+ if (!due.IsEmpty())
|
|
{
|
|
{
|
|
var background = DateTime.Today > due.Date
|
|
var background = DateTime.Today > due.Date
|
|
? Colors.Salmon
|
|
? Colors.Salmon
|
|
@@ -64,18 +67,67 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return null;
|
|
|
|
|
|
+ else if(column is DynamicActionColumn dac)
|
|
|
|
+ {
|
|
|
|
+ if (dac == Grid.InStockColumn
|
|
|
|
+ || dac == Grid.OnOrderColumn)
|
|
|
|
+ {
|
|
|
|
+ return Colors.LightBlue.ToBrush(0.5);
|
|
|
|
+ }
|
|
|
|
+ else if (dac == Grid.TreatmentRequiredColumn
|
|
|
|
+ || dac == Grid.TreatmentOnOrderColumn)
|
|
|
|
+ {
|
|
|
|
+ return Colors.LightYellow.ToBrush(0.5);
|
|
|
|
+ }
|
|
|
|
+ else if (dac == Grid.AllocatedColumn
|
|
|
|
+ || dac == Grid.IssuedColumn)
|
|
|
|
+ {
|
|
|
|
+ return Colors.LightSeaGreen.ToBrush(0.5);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var qty = row.Get<JobRequisitionItem, double>(x => x.Qty);
|
|
|
|
+ if(row.Get<JobRequisitionItem, double>(x => x.Issued) >= qty)
|
|
|
|
+ {
|
|
|
|
+ return Colors.Silver.ToBrush(0.5);
|
|
|
|
+ }
|
|
|
|
+ else if(row.Get<JobRequisitionItem, double>(x => x.Allocated) >= qty)
|
|
|
|
+ {
|
|
|
|
+ return Colors.LightGreen.ToBrush(0.5);
|
|
|
|
+ }
|
|
|
|
+ else if(row.Get<JobRequisitionItem, double>(x => x.InStock) >= qty)
|
|
|
|
+ {
|
|
|
|
+ return Colors.Orange.ToBrush(0.5);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ return Colors.LightSalmon.ToBrush(0.5);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private DynamicActionColumn InStockColumn;
|
|
|
|
+ private DynamicActionColumn OnOrderColumn;
|
|
|
|
+ private DynamicActionColumn TreatmentRequiredColumn;
|
|
|
|
+ private DynamicActionColumn TreatmentOnOrderColumn;
|
|
|
|
+ private DynamicActionColumn AllocatedColumn;
|
|
|
|
+ private DynamicActionColumn IssuedColumn;
|
|
|
|
+
|
|
public ReservationManagementItemGrid()
|
|
public ReservationManagementItemGrid()
|
|
{
|
|
{
|
|
_userSettings = new UserConfiguration<ReservationManagementUserSettings>().Load();
|
|
_userSettings = new UserConfiguration<ReservationManagementUserSettings>().Load();
|
|
FilterComponent.SetSettings(_userSettings.Filters, false);
|
|
FilterComponent.SetSettings(_userSettings.Filters, false);
|
|
|
|
|
|
HiddenColumns.Add(x => x.ID);
|
|
HiddenColumns.Add(x => x.ID);
|
|
|
|
+
|
|
HiddenColumns.Add(x => x.Qty);
|
|
HiddenColumns.Add(x => x.Qty);
|
|
HiddenColumns.Add(x => x.InStock);
|
|
HiddenColumns.Add(x => x.InStock);
|
|
|
|
+ HiddenColumns.Add(x => x.OnOrder);
|
|
|
|
+ HiddenColumns.Add(x => x.TreatmentOnOrder);
|
|
|
|
+ HiddenColumns.Add(x => x.TreatmentRequired);
|
|
|
|
+ HiddenColumns.Add(x => x.Allocated);
|
|
|
|
+ HiddenColumns.Add(x => x.Issued);
|
|
|
|
+
|
|
HiddenColumns.Add(x => x.Product.ID);
|
|
HiddenColumns.Add(x => x.Product.ID);
|
|
HiddenColumns.Add(x => x.Product.Code);
|
|
HiddenColumns.Add(x => x.Product.Code);
|
|
HiddenColumns.Add(x => x.Product.Group.ID);
|
|
HiddenColumns.Add(x => x.Product.Group.ID);
|
|
@@ -112,6 +164,14 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
|
|
HiddenColumns.Add(x => x.Dimensions.Unit.Code);
|
|
HiddenColumns.Add(x => x.Dimensions.Unit.Code);
|
|
HiddenColumns.Add(x => x.Dimensions.Unit.Description);
|
|
HiddenColumns.Add(x => x.Dimensions.Unit.Description);
|
|
|
|
|
|
|
|
+ AddDoubleColumn(x => x.Qty, "Qty.");
|
|
|
|
+ InStockColumn = AddDoubleColumn(x => x.InStock, "Stk.");
|
|
|
|
+ OnOrderColumn = AddDoubleColumn(x => x.OnOrder, "Ord.");
|
|
|
|
+ TreatmentRequiredColumn = AddDoubleColumn(x => x.TreatmentRequired, "Req.");
|
|
|
|
+ TreatmentOnOrderColumn = AddDoubleColumn(x => x.TreatmentOnOrder, "Ord.");
|
|
|
|
+ AllocatedColumn = AddDoubleColumn(x => x.Allocated, "Stk.");
|
|
|
|
+ IssuedColumn = AddDoubleColumn(x => x.Issued, "Iss.");
|
|
|
|
+
|
|
if (Security.CanEdit<JobRequisitionItem>())
|
|
if (Security.CanEdit<JobRequisitionItem>())
|
|
ActionColumns.Add(new DynamicMenuColumn(BuildMenu));
|
|
ActionColumns.Add(new DynamicMenuColumn(BuildMenu));
|
|
|
|
|
|
@@ -123,6 +183,13 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
|
|
ArchiveButton.IsEnabled = false;
|
|
ArchiveButton.IsEnabled = false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private DynamicActionColumn AddDoubleColumn(Expression<Func<JobRequisitionItem, object>> property, string header)
|
|
|
|
+ {
|
|
|
|
+ var col = new DynamicTextColumn<JobRequisitionItem>(property) { Format = "F2", HeaderText = header, Width = 50 };
|
|
|
|
+ ActionColumns.Add(col);
|
|
|
|
+ return col;
|
|
|
|
+ }
|
|
|
|
+
|
|
protected override IDynamicGridUIComponent<JobRequisitionItem> CreateUIComponent()
|
|
protected override IDynamicGridUIComponent<JobRequisitionItem> CreateUIComponent()
|
|
{
|
|
{
|
|
return new UIComponent(this);
|
|
return new UIComponent(this);
|
|
@@ -156,18 +223,22 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
|
|
columns.Add<JobRequisitionItem, string>(x => x.Requisition.Job.JobNumber, 70, "Job", "", Alignment.MiddleCenter);
|
|
columns.Add<JobRequisitionItem, string>(x => x.Requisition.Job.JobNumber, 70, "Job", "", Alignment.MiddleCenter);
|
|
columns.Add<JobRequisitionItem, int>(x => x.Requisition.Number, 50, "Requi", "", Alignment.MiddleCenter);
|
|
columns.Add<JobRequisitionItem, int>(x => x.Requisition.Number, 50, "Requi", "", Alignment.MiddleCenter);
|
|
columns.Add<JobRequisitionItem, string>(x => x.Product.Code, 100, "Product Code", "", Alignment.MiddleLeft);
|
|
columns.Add<JobRequisitionItem, string>(x => x.Product.Code, 100, "Product Code", "", Alignment.MiddleLeft);
|
|
- columns.Add<JobRequisitionItem, string>(x => x.Product.Name, 200, "Product Name", "", Alignment.MiddleLeft);
|
|
|
|
- columns.Add<JobRequisitionItem, string>(x => x.Style.Description, 150, "Style", "", Alignment.MiddleLeft);
|
|
|
|
- columns.Add<JobRequisitionItem, double>(x => x.Qty, 50, "Qty", "", Alignment.MiddleCenter);
|
|
|
|
|
|
+ columns.Add<JobRequisitionItem, string>(x => x.Product.Name, 0, "Product Name", "", Alignment.MiddleLeft);
|
|
|
|
+ columns.Add<JobRequisitionItem, string>(x => x.Style.Code, 100, "Style", "", Alignment.MiddleLeft);
|
|
columns.Add<JobRequisitionItem, string>(x => x.Dimensions.UnitSize, 70, "Size", "", Alignment.MiddleLeft);
|
|
columns.Add<JobRequisitionItem, string>(x => x.Dimensions.UnitSize, 70, "Size", "", Alignment.MiddleLeft);
|
|
columns.Add<JobRequisitionItem, JobRequisitionItemStatus>(x => x.Status, 90, "Status", "", Alignment.MiddleCenter);
|
|
columns.Add<JobRequisitionItem, JobRequisitionItemStatus>(x => x.Status, 90, "Status", "", Alignment.MiddleCenter);
|
|
- columns.Add<JobRequisitionItem, double>(x => x.InStock, 50, "Stk.", "", Alignment.MiddleCenter);
|
|
|
|
- columns.Add<JobRequisitionItem, double>(x => x.OnOrder, 50, "Ord.", "", Alignment.MiddleCenter);
|
|
|
|
- columns.Add<JobRequisitionItem, string>(x => x.PurchaseOrderNumbers, 100, "Orders", "", Alignment.MiddleLeft);
|
|
|
|
- columns.Add<JobRequisitionItem, string>(x => x.Notes, 0, "Notes", "", Alignment.MiddleLeft);
|
|
|
|
|
|
+
|
|
return columns;
|
|
return columns;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ protected override void ConfigureColumnGroups()
|
|
|
|
+ {
|
|
|
|
+ GetColumnGrouping()
|
|
|
|
+ .AddGroup("Stock", InStockColumn, OnOrderColumn)
|
|
|
|
+ .AddGroup("Treatment", TreatmentRequiredColumn, TreatmentOnOrderColumn)
|
|
|
|
+ .AddGroup("Allocated", AllocatedColumn, IssuedColumn);
|
|
|
|
+ }
|
|
|
|
+
|
|
protected override void SelectItems(CoreRow[]? rows)
|
|
protected override void SelectItems(CoreRow[]? rows)
|
|
{
|
|
{
|
|
base.SelectItems(rows);
|
|
base.SelectItems(rows);
|