|
@@ -1,17 +1,23 @@
|
|
|
-using comal.timesheets.StoreRequis;
|
|
|
-using Comal.Classes;
|
|
|
-using InABox.Clients;
|
|
|
-using InABox.Core;
|
|
|
-using System;
|
|
|
+using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
-using System.Threading;
|
|
|
+using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using Xamarin.Essentials;
|
|
|
using Xamarin.Forms;
|
|
|
+using ZXing;
|
|
|
+using ZXing;
|
|
|
+using Xamarin.Forms;
|
|
|
using Xamarin.Forms.Xaml;
|
|
|
-using XF.Material.Forms.UI.Dialogs;
|
|
|
+using comal.timesheets.CustomControls;
|
|
|
+using Comal.Classes;
|
|
|
+using InABox.Core;
|
|
|
+using InABox.Clients;
|
|
|
+using System.Threading;
|
|
|
using static comal.timesheets.RequiItems;
|
|
|
+using XF.Material.Forms.UI.Dialogs;
|
|
|
+using Plugin.SimpleAudioPlayer;
|
|
|
+using comal.timesheets.StoreRequis;
|
|
|
|
|
|
namespace comal.timesheets
|
|
|
{
|
|
@@ -19,7 +25,7 @@ namespace comal.timesheets
|
|
|
public partial class StoreRequiScannerPage : ContentPage
|
|
|
{
|
|
|
#region Fields / Constructor
|
|
|
- public delegate bool OnScanEvent(object sender, string barcode);
|
|
|
+ public delegate bool OnScanEvent(object sender, String barcode);
|
|
|
public event OnScanEvent OnScan;
|
|
|
List<StoreRequiItemShell> shells = new List<StoreRequiItemShell>();
|
|
|
List<StoreRequiItemShell> oldShells = new List<StoreRequiItemShell>();
|
|
@@ -110,19 +116,15 @@ namespace comal.timesheets
|
|
|
requisition = new Client<Requisition>().Query(
|
|
|
new Filter<Requisition>(x => x.ID).IsEqualTo(requisition.ID)
|
|
|
).Rows.FirstOrDefault().ToObject<Requisition>();
|
|
|
-
|
|
|
- string notes = CheckNotes(requisition.Notes);
|
|
|
-
|
|
|
- if (!string.IsNullOrWhiteSpace(requisition.Request) || !string.IsNullOrWhiteSpace(notes))
|
|
|
+ if (!string.IsNullOrWhiteSpace(requisition.Request))
|
|
|
{
|
|
|
StoreRequiItemShell shell1 = new StoreRequiItemShell()
|
|
|
{
|
|
|
IsNotes = true,
|
|
|
IsNotNotes = false,
|
|
|
+ Summary = requisition.Request,
|
|
|
BorderColor = Color.FromHex("#9f4576")
|
|
|
};
|
|
|
- shell1.Summary = !string.IsNullOrWhiteSpace(requisition.Request) ? "REQUEST: " + requisition.Request + System.Environment.NewLine : "";
|
|
|
- shell1.Summary = shell1.Summary + notes;
|
|
|
shells.Insert(0, shell1);
|
|
|
containsNotes = true;
|
|
|
}
|
|
@@ -134,31 +136,38 @@ namespace comal.timesheets
|
|
|
(
|
|
|
new Filter<RequisitionItem>(x => x.RequisitionLink.ID).IsEqualTo(requisition.ID),
|
|
|
new Columns<RequisitionItem>(
|
|
|
- x => x.ID,
|
|
|
- x => x.Product.ID,
|
|
|
- x => x.Product.Name,
|
|
|
- x => x.Product.Code,
|
|
|
- x => x.Quantity,
|
|
|
- x => x.Location.ID,
|
|
|
- x => x.Location.Description,
|
|
|
- x => x.Picked
|
|
|
+ x => x.ID, //0
|
|
|
+ x => x.Product.ID, //1
|
|
|
+ x => x.Product.Name, //2
|
|
|
+ x => x.Product.Code, //3
|
|
|
+ x => x.Quantity, //4
|
|
|
+ x => x.Location.ID, //5
|
|
|
+ x => x.Location.Description //6
|
|
|
)
|
|
|
);
|
|
|
if (table.Rows.Any())
|
|
|
{
|
|
|
- Device.BeginInvokeOnMainThread(() => { saveBtn.IsVisible = true; });
|
|
|
- foreach (CoreRow row in table.Rows)
|
|
|
+ Device.BeginInvokeOnMainThread(() =>{ saveBtn.IsVisible = true; });
|
|
|
+ foreach (CoreRow row in table.Rows)
|
|
|
{
|
|
|
+ List<object> list = row.Values;
|
|
|
+ if (list[0] == null) { list[0] = Guid.Empty; }
|
|
|
+ if (list[1] == null) { list[1] = Guid.Empty; }
|
|
|
+ if (list[2] == null) { list[2] = ""; }
|
|
|
+ if (list[3] == null) { list[3] = ""; }
|
|
|
+ if (list[4] == null) { list[4] = 0.0; }
|
|
|
+ if (list[5] == null) { list[5] = Guid.Empty; }
|
|
|
+ if (list[6] == null) { list[6] = ""; }
|
|
|
+
|
|
|
StoreRequiItemShell shell = new StoreRequiItemShell()
|
|
|
{
|
|
|
- ID = row.Get<RequisitionItem, Guid>(x => x.ID),
|
|
|
- ProductID = row.Get<RequisitionItem, Guid>(x => x.Product.ID),
|
|
|
- ProductName = row.Get<RequisitionItem, string>(x => x.Product.Name),
|
|
|
- ProductCode = row.Get<RequisitionItem, string>(x => x.Product.Code),
|
|
|
- Quantity = row.Get<RequisitionItem, double>(x => x.Quantity),
|
|
|
- LocationID = row.Get<RequisitionItem, Guid>(x => x.Location.ID),
|
|
|
- LocationName = row.Get<RequisitionItem, string>(x => x.Location.Description),
|
|
|
- Picked = row.Get<RequisitionItem, DateTime>(x => x.Picked),
|
|
|
+ ID = Guid.Parse(list[0].ToString()),
|
|
|
+ ProductID = Guid.Parse(list[1].ToString()),
|
|
|
+ ProductName = list[2].ToString(),
|
|
|
+ ProductCode = list[3].ToString(),
|
|
|
+ Quantity = double.Parse(list[4].ToString()),
|
|
|
+ HoldingID = Guid.Parse(list[5].ToString()),
|
|
|
+ LocationName = list[6].ToString(),
|
|
|
};
|
|
|
shells.Add(shell);
|
|
|
oldShells.Add(shell);
|
|
@@ -179,19 +188,6 @@ namespace comal.timesheets
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private string CheckNotes(string[] notes)
|
|
|
- {
|
|
|
- string combinednotes = "----------" + System.Environment.NewLine + "NOTES: " + System.Environment.NewLine;
|
|
|
- if (notes.Count() > 0)
|
|
|
- {
|
|
|
- foreach (var note in notes)
|
|
|
- {
|
|
|
- combinednotes = combinednotes + note + System.Environment.NewLine;
|
|
|
- }
|
|
|
- }
|
|
|
- return combinednotes;
|
|
|
- }
|
|
|
-
|
|
|
void ConfigDisplay()
|
|
|
{
|
|
|
loadingLbl.IsVisible = false;
|
|
@@ -296,28 +292,55 @@ namespace comal.timesheets
|
|
|
return tuple;
|
|
|
}
|
|
|
|
|
|
- private void LoadProduct(Tuple<string, double> processedResultQtyTuple, string rawResult)
|
|
|
+ private async void LoadProduct(Tuple<string, double> processedResultQtyTuple, string rawResult)
|
|
|
{
|
|
|
Device.BeginInvokeOnMainThread(async () =>
|
|
|
{
|
|
|
//lookup product in productshells cache
|
|
|
ProductShell product = GlobalVariables.ProductShells.Find(x => x.Code.Equals(processedResultQtyTuple.Item1));
|
|
|
|
|
|
+ string itemLocation = "";
|
|
|
+ Guid holdingID = Guid.Empty;
|
|
|
+
|
|
|
//lookup holding for product in holdings cache
|
|
|
try
|
|
|
{
|
|
|
- var list = CreateHoldingsList(product.ID);
|
|
|
-
|
|
|
- if (list.Count == 1) //one stockholding - auto choose holding
|
|
|
- AddStoreRequiItemShell(list.First(), product, rawResult, processedResultQtyTuple);
|
|
|
-
|
|
|
- else if (list.Count > 1) //more than one stockholding - user choose shelf
|
|
|
- UserSelectFromList(list, product, rawResult, processedResultQtyTuple);
|
|
|
-
|
|
|
+ List<HoldingsCacheShell> list = holdingsCache.Where(x => x.ProductID.Equals(product.ID)).ToList();
|
|
|
+ if (list.Count == 1) //one stockholding - auto choose shelf
|
|
|
+ {
|
|
|
+ HoldingsCacheShell holding = list.First();
|
|
|
+ itemLocation = holding.LocationName;
|
|
|
+ holdingID = holding.ID;
|
|
|
+ }
|
|
|
+ else if (list.Count > 1) //more than one stockholding - choose shelf
|
|
|
+ {
|
|
|
+ loading = true;
|
|
|
+ Dictionary<string, Guid> holdingIDLocations = new Dictionary<string, Guid>();
|
|
|
+ foreach (HoldingsCacheShell holding in list)
|
|
|
+ {
|
|
|
+ if (!holdingIDLocations.ContainsKey(holding.LocationName + " (Units: " + holding.Units + ")"))
|
|
|
+ {
|
|
|
+ holdingIDLocations.Add(holding.LocationName + " (Units: " + holding.Units + ")" +
|
|
|
+ Environment.NewLine + "Style: " + holding.StyleDescription
|
|
|
+ + Environment.NewLine + "Job: " + holding.JobNumber
|
|
|
+ + Environment.NewLine + "Size: " + holding.DimensionsUnitSize, holding.ID);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<string> options = holdingIDLocations.Keys.ToList();
|
|
|
+ ListSelectionPage page = new ListSelectionPage(options);
|
|
|
+ page.OnSimpleListTapped += (s) =>
|
|
|
+ {
|
|
|
+ itemLocation = s;
|
|
|
+ holdingID = holdingIDLocations[s];
|
|
|
+ };
|
|
|
+ Navigation.PushAsync(page);
|
|
|
+ }
|
|
|
else if (list.Count == 0)
|
|
|
+ {
|
|
|
DisplayAlert("No Holdings Found for Product", "", "OK");
|
|
|
-
|
|
|
- loading = false;
|
|
|
+ loading = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -325,170 +348,38 @@ namespace comal.timesheets
|
|
|
loading = false;
|
|
|
return;
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- private void UserSelectFromList(List<StoreRequiIHoldingShell> list, ProductShell product, string rawResult, Tuple<string, double> processedResultQtyTuple)
|
|
|
- {
|
|
|
- Dictionary<string, Guid> holdingLocationIDs = new Dictionary<string, Guid>();
|
|
|
- foreach (StoreRequiIHoldingShell holding in list)
|
|
|
- {
|
|
|
- if (!holdingLocationIDs.ContainsKey(holding.LocationName))
|
|
|
- holdingLocationIDs.Add(holding.LocationName, holding.LocationID);
|
|
|
- }
|
|
|
- List<string> options = holdingLocationIDs.Keys.ToList();
|
|
|
- ListSelectionPage page = new ListSelectionPage(options);
|
|
|
- page.OnSimpleListTapped += (locationName) =>
|
|
|
- {
|
|
|
- AddStoreRequiItemShell(list.Find(x => x.LocationName == locationName), product, rawResult, processedResultQtyTuple);
|
|
|
- };
|
|
|
- Navigation.PushAsync(page);
|
|
|
- }
|
|
|
-
|
|
|
- private List<StoreRequiIHoldingShell> CreateHoldingsList(Guid productID)
|
|
|
- {
|
|
|
- List<StoreRequiIHoldingShell> list = new List<StoreRequiIHoldingShell>();
|
|
|
-
|
|
|
- CoreTable table = DoHoldingsQuery(productID);
|
|
|
-
|
|
|
- foreach (CoreRow row in table.Rows)
|
|
|
- {
|
|
|
- if (row.Get<StockHolding, double>(x => x.Units) == 0.0)
|
|
|
- continue;
|
|
|
-
|
|
|
- list.Add(CreateHoldingShell(row));
|
|
|
- }
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
- private CoreTable DoHoldingsQuery(Guid productID)
|
|
|
- {
|
|
|
- return new Client<StockHolding>().Query(
|
|
|
- new Filter<StockHolding>(x => x.Product.ID).IsEqualTo(productID),
|
|
|
- new Columns<StockHolding>(
|
|
|
- x => x.ID,
|
|
|
- x => x.Product.ID,
|
|
|
- x => x.Location.ID,
|
|
|
- x => x.Location.Description,
|
|
|
- x => x.Units,
|
|
|
- x => x.Job.ID,
|
|
|
- x => x.Job.JobNumber,
|
|
|
- x => x.Job.Name,
|
|
|
- x => x.Style.ID,
|
|
|
- x => x.Style.Code,
|
|
|
- x => x.Style.Description,
|
|
|
- x => x.Dimensions.Unit.ID,
|
|
|
- x => x.Dimensions.Unit.HasQuantity,
|
|
|
- x => x.Dimensions.Unit.HasLength,
|
|
|
- x => x.Dimensions.Unit.HasHeight,
|
|
|
- x => x.Dimensions.Unit.HasWeight,
|
|
|
- x => x.Dimensions.Unit.HasWidth,
|
|
|
- x => x.Dimensions.Quantity,
|
|
|
- x => x.Dimensions.Length,
|
|
|
- x => x.Dimensions.Height,
|
|
|
- x => x.Dimensions.Weight,
|
|
|
- x => x.Dimensions.Width,
|
|
|
- x => x.Dimensions.Unit.Format,
|
|
|
- x => x.Dimensions.Unit.Formula,
|
|
|
- x => x.Dimensions.UnitSize
|
|
|
- )
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- private StoreRequiIHoldingShell CreateHoldingShell(CoreRow row)
|
|
|
- {
|
|
|
- StoreRequiIHoldingShell holding = new StoreRequiIHoldingShell()
|
|
|
- {
|
|
|
- ProductID = row.Get<StockHolding, Guid>(x => x.Product.ID),
|
|
|
- LocationID = row.Get<StockHolding, Guid>(x => x.Location.ID),
|
|
|
- LocationName = row.Get<StockHolding, string>(x => x.Location.Description),
|
|
|
- Units = row.Get<StockHolding, double>(x => x.Units).ToString(),
|
|
|
- JobID = row.Get<StockHolding, Guid>(x => x.Job.ID),
|
|
|
- JobNumber = row.Get<StockHolding, string>(x => x.Job.JobNumber),
|
|
|
- JobName = row.Get<StockHolding, string>(x => x.Job.Name),
|
|
|
- StyleID = row.Get<StockHolding, Guid>(x => x.Style.ID),
|
|
|
- StyleCode = row.Get<StockHolding, string>(x => x.Style.Code),
|
|
|
- StyleDescription = row.Get<StockHolding, string>(x => x.Style.Description)
|
|
|
- };
|
|
|
-
|
|
|
- holding.Dimensions.Unit.ID = row.Get<StockHolding, Guid>(x => x.Dimensions.Unit.ID);
|
|
|
- holding.Dimensions.Unit.HasQuantity = row.Get<StockHolding, bool>(x => x.Dimensions.Unit.HasQuantity);
|
|
|
- holding.Dimensions.Unit.HasLength = row.Get<StockHolding, bool>(x => x.Dimensions.Unit.HasLength);
|
|
|
- holding.Dimensions.Unit.HasHeight = row.Get<StockHolding, bool>(x => x.Dimensions.Unit.HasHeight);
|
|
|
- holding.Dimensions.Unit.HasWeight = row.Get<StockHolding, bool>(x => x.Dimensions.Unit.HasWeight);
|
|
|
- holding.Dimensions.Unit.HasWidth = row.Get<StockHolding, bool>(x => x.Dimensions.Unit.HasWidth);
|
|
|
-
|
|
|
- holding.Dimensions.Quantity = row.Get<StockHolding, double>(x => x.Dimensions.Quantity);
|
|
|
- holding.Dimensions.Length = row.Get<StockHolding, double>(x => x.Dimensions.Length);
|
|
|
- holding.Dimensions.Height = row.Get<StockHolding, double>(x => x.Dimensions.Height);
|
|
|
- holding.Dimensions.Weight = row.Get<StockHolding, double>(x => x.Dimensions.Weight);
|
|
|
- holding.Dimensions.Width = row.Get<StockHolding, double>(x => x.Dimensions.Width);
|
|
|
-
|
|
|
- holding.Dimensions.Unit.Format = row.Get<StockHolding, string>(x => x.Dimensions.Unit.Format);
|
|
|
- holding.Dimensions.Unit.Formula = row.Get<StockHolding, string>(x => x.Dimensions.Unit.Formula);
|
|
|
-
|
|
|
- holding.Dimensions.UnitSize = row.Get<StockHolding, string>(x => x.Dimensions.UnitSize);
|
|
|
-
|
|
|
- holding.LocationName = holding.LocationName + " (Units: " + holding.Units + ")" +
|
|
|
- Environment.NewLine + "Style: " + holding.StyleDescription
|
|
|
- + Environment.NewLine + "Job: " + holding.JobNumber
|
|
|
- + Environment.NewLine + "Size: " + holding.Dimensions.UnitSize;
|
|
|
-
|
|
|
- return holding;
|
|
|
- }
|
|
|
|
|
|
- private void AddStoreRequiItemShell(StoreRequiIHoldingShell holding, ProductShell product, string rawResult, Tuple<string, double> processedResultQtyTuple)
|
|
|
- {
|
|
|
- StoreRequiItemShell shell = new StoreRequiItemShell
|
|
|
- {
|
|
|
- ProductID = product.ID,
|
|
|
- ProductName = product.Name,
|
|
|
- ProductCode = product.Code,
|
|
|
- Quantity = 1,
|
|
|
- LocationID = holding.LocationID,
|
|
|
- LocationName = holding.LocationName,
|
|
|
- StyleID = holding.StyleID,
|
|
|
- JobID = holding.StyleID
|
|
|
- };
|
|
|
- shell.Dimensions.Unit.ID = holding.Dimensions.Unit.ID;
|
|
|
- shell.Dimensions.Unit.HasQuantity = holding.Dimensions.Unit.HasQuantity;
|
|
|
- shell.Dimensions.Unit.HasLength = holding.Dimensions.Unit.HasLength;
|
|
|
- shell.Dimensions.Unit.HasHeight = holding.Dimensions.Unit.HasHeight;
|
|
|
- shell.Dimensions.Unit.HasWeight = holding.Dimensions.Unit.HasWeight;
|
|
|
- shell.Dimensions.Unit.HasWidth = holding.Dimensions.Unit.HasWidth;
|
|
|
-
|
|
|
- shell.Dimensions.Quantity = holding.Dimensions.Quantity;
|
|
|
- shell.Dimensions.Length = holding.Dimensions.Length;
|
|
|
- shell.Dimensions.Height = holding.Dimensions.Height;
|
|
|
- shell.Dimensions.Weight = holding.Dimensions.Weight;
|
|
|
- shell.Dimensions.Width = holding.Dimensions.Width;
|
|
|
-
|
|
|
- shell.Dimensions.Unit.Format = holding.Dimensions.Unit.Format;
|
|
|
- shell.Dimensions.Unit.Formula = holding.Dimensions.Unit.Formula;
|
|
|
-
|
|
|
- shell.Dimensions.UnitSize = holding.Dimensions.UnitSize;
|
|
|
-
|
|
|
- shells.Add(shell);
|
|
|
+ StoreRequiItemShell shell = new StoreRequiItemShell
|
|
|
+ {
|
|
|
+ ProductID = product.ID,
|
|
|
+ ProductName = product.Name,
|
|
|
+ ProductCode = product.Code,
|
|
|
+ Quantity = 1,
|
|
|
+ HoldingID = holdingID,
|
|
|
+ LocationName = itemLocation,
|
|
|
+ };
|
|
|
+ shells.Add(shell);
|
|
|
|
|
|
- itemRowScannerRawResultPairs.Add(shell, rawResult);
|
|
|
- itemRowScannerProcessedResultPairs.Add(shell, processedResultQtyTuple.Item1);
|
|
|
+ itemRowScannerRawResultPairs.Add(shell, rawResult);
|
|
|
+ itemRowScannerProcessedResultPairs.Add(shell, processedResultQtyTuple.Item1);
|
|
|
|
|
|
- requiItemListView.ItemsSource = null;
|
|
|
- requiItemListView.ItemsSource = shells;
|
|
|
+ requiItemListView.ItemsSource = null;
|
|
|
+ requiItemListView.ItemsSource = shells;
|
|
|
|
|
|
- countLbl.IsVisible = true;
|
|
|
+ countLbl.IsVisible = true;
|
|
|
|
|
|
- if (containsNotes)
|
|
|
- {
|
|
|
- countLbl.Text = "Number of items: " + (shells.Count - 1);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- countLbl.Text = "Number of items: " + shells.Count;
|
|
|
- }
|
|
|
+ if (containsNotes)
|
|
|
+ {
|
|
|
+ countLbl.Text = "Number of items: " + (shells.Count - 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ countLbl.Text = "Number of items: " + shells.Count;
|
|
|
+ }
|
|
|
|
|
|
- saveBtn.IsVisible = true;
|
|
|
- loading = false;
|
|
|
+ saveBtn.IsVisible = true;
|
|
|
+ loading = false;
|
|
|
+ });
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
@@ -532,7 +423,7 @@ namespace comal.timesheets
|
|
|
default:
|
|
|
return;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
Navigation.PopAsync();
|
|
@@ -546,32 +437,6 @@ namespace comal.timesheets
|
|
|
Navigation.PushAsync(page);
|
|
|
}
|
|
|
|
|
|
- private async void RequiItem_Tapped(object sender, EventArgs e)
|
|
|
- {
|
|
|
- var shell = requiItemListView.SelectedItem as StoreRequiItemShell;
|
|
|
- if (shell == null) return;
|
|
|
-
|
|
|
- await RequiItemTappedAsync(shell);
|
|
|
- }
|
|
|
-
|
|
|
- private async Task RequiItemTappedAsync(StoreRequiItemShell shell)
|
|
|
- {
|
|
|
- string pickstatus = shell.Picked == DateTime.MinValue ? "not picked" : "picked (" + shell.Picked.ToString("dd MMM yy") + ")";
|
|
|
- string options = shell.Picked == DateTime.MinValue ? ". Mark as Picked?" : ". Remove Picked status?";
|
|
|
-
|
|
|
- string chosenOption = await DisplayActionSheet("Line is " + pickstatus + options, "Cancel", null, "Yes", "No");
|
|
|
-
|
|
|
- if (chosenOption != "Yes")
|
|
|
- return;
|
|
|
-
|
|
|
- shell.Picked = shell.Picked == DateTime.MinValue ? DateTime.Today : DateTime.MinValue;
|
|
|
- shell.Colour = shell.Picked == DateTime.MinValue ? Color.Default : Color.FromHex("#8fbc8f");
|
|
|
-
|
|
|
- requiItemListView.ItemsSource = null;
|
|
|
- requiItemListView.ItemsSource = shells;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
void ReduceQtyBtn_Clicked(object sender, EventArgs e)
|
|
|
{
|
|
|
var shell = ((TappedEventArgs)e).Parameter as StoreRequiItemShell;
|
|
@@ -610,8 +475,7 @@ namespace comal.timesheets
|
|
|
void IncreaseQtyBtn_Clicked(object sender, EventArgs e)
|
|
|
{
|
|
|
var shell = ((TappedEventArgs)e).Parameter as StoreRequiItemShell;
|
|
|
- if (shell == null)
|
|
|
- return;
|
|
|
+ if (shell == null) return;
|
|
|
|
|
|
shell.Quantity++;
|
|
|
requiItemListView.ItemsSource = null;
|
|
@@ -643,24 +507,19 @@ namespace comal.timesheets
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
- [DoNotPersist]
|
|
|
- public class StoreRequiItemShell : Entity
|
|
|
+ public class StoreRequiItemShell
|
|
|
{
|
|
|
+ public Guid ID { get; set; }
|
|
|
public Guid ProductID { get; set; }
|
|
|
public string ProductCode { get; set; }
|
|
|
public string ProductName { get; set; }
|
|
|
public string LocationName { get; set; }
|
|
|
public double Quantity { get; set; }
|
|
|
- public Guid LocationID { get; set; }
|
|
|
+ public Guid HoldingID { get; set; }
|
|
|
public Color BorderColor { get; set; }
|
|
|
public bool IsNotes { get; set; }
|
|
|
public bool IsNotNotes { get; set; }
|
|
|
public string Summary { get; set; }
|
|
|
- public DateTime Picked { get; set; }
|
|
|
- public Color Colour { get; set; }
|
|
|
- public Guid JobID { get; set; }
|
|
|
- public Guid StyleID { get; set; }
|
|
|
- public StockDimensions Dimensions { get; set; }
|
|
|
public StoreRequiItemShell()
|
|
|
{
|
|
|
ProductID = Guid.Empty;
|
|
@@ -669,15 +528,10 @@ namespace comal.timesheets
|
|
|
LocationName = "";
|
|
|
Quantity = 0;
|
|
|
ID = Guid.Empty;
|
|
|
- LocationID = Guid.Empty;
|
|
|
+ HoldingID = Guid.Empty;
|
|
|
BorderColor = Color.FromHex("#15C7C1");
|
|
|
IsNotes = false;
|
|
|
IsNotNotes = true;
|
|
|
- Picked = DateTime.MinValue;
|
|
|
- Colour = Color.Default;
|
|
|
- JobID = Guid.Empty;
|
|
|
- StyleID = Guid.Empty;
|
|
|
- Dimensions = new StockDimensions(() => this);
|
|
|
}
|
|
|
}
|
|
|
}
|