internal static int GetToShoppingListQuantity(int articleId, int?minQuantity = null, int?prefQuantity = null) { if ((minQuantity == null) || (prefQuantity == null)) { ArticleData article = Database.GetArticleData(articleId); // Artikle ist noch (gar) nicht angelegt? // (Laut Absturzbericht ist so ein Fall vorhanden, konnte aber nicht reproduziert werden.) if (article == null) { return(-1); } minQuantity = article.MinQuantity.HasValue ? article.MinQuantity.Value : 0; prefQuantity = article.PrefQuantity.HasValue ? article.PrefQuantity.Value : 0; } int isQuantityInStorage = (int)Database.GetArticleQuantityInStorage(articleId); int toBuyQuantity = ShoppingListHelper.GetToBuyQuantity(minQuantity.Value, prefQuantity.Value, isQuantityInStorage); int shoppingListQuantiy = (int)Database.GetShoppingListQuantiy(articleId); toBuyQuantity = toBuyQuantity - shoppingListQuantiy; if (toBuyQuantity < 0) // Mehr auf der Einkaufsliste als berechnet? { return(0); } return(toBuyQuantity); }
internal static int GetToShoppingListQuantity(int articleId, int minQuantity, int prefQuantity) { int isQuantity = (int)Database.GetArticleQuantityInStorage(articleId); int toBuyQuantity = ShoppingListHelper.GetToBuyQuantity(minQuantity, prefQuantity, isQuantity); int shoppingListQuantiy = (int)Database.GetShoppingListQuantiy(articleId); toBuyQuantity = toBuyQuantity - shoppingListQuantiy; if (toBuyQuantity < 0) // Mehr auf der Einkaufsliste als berechnet? { return(0); } return(toBuyQuantity); }
public static void UnitTest() { // MinQuantity PrefQuantity IsQuantity ToBuy Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 4) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 3) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 2) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 1) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 0) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 6) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 5) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 4) == 1); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 3) == 2); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 2) == 3); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 1) == 4); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 0) == 5); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 9) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 8) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 7) == 1); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 6) == 2); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 5) == 3); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 4) == 4); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 3) == 5); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 2) == 6); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 1) == 7); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 0) == 8); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 9) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 8) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 7) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 6) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 5) == 0); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 4) == 4); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 3) == 5); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 2) == 6); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 1) == 7); Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 0) == 8); }