// GET: Meat public ActionResult NewOrder() { var viewmodel = new MeatViewModel(); viewmodel.MeatKindList = _meatcontext.MeatKind.ToList(); viewmodel.InventoryList = _meatcontext.Inventories.ToList(); viewmodel.MeatRatesList = _meatcontext.MeatRates.ToList(); return(View("Index", viewmodel)); }
public ActionResult TotalCost(MeatViewModel meatviewmodel) { if (!ModelState.IsValid) { var suppliesViewModelObject = new MeatViewModel() { InventoryList = _meatcontext.Inventories.ToList(), MeatKindList = _meatcontext.MeatKind.ToList(), TotalCost = meatviewmodel.Meats.SubTotal, MeatRatesList = _meatcontext.MeatRates.ToList(), }; return(View("index", suppliesViewModelObject)); } var quantityinDB = _meatcontext.Inventories.Single(c => c.MeatKindId == meatviewmodel.MeatKinds.Id); if (quantityinDB.QuantityInStock < meatviewmodel.Meats.Quantity) { var viewmodelobjectofmeat = new MeatViewModel() { InventoryList = _meatcontext.Inventories.ToList(), MeatKindList = _meatcontext.MeatKind.ToList(), TotalCost = meatviewmodel.Meats.SubTotal, MeatRatesList = _meatcontext.MeatRates.ToList(), }; ModelState.AddModelError("Meats.Quantity", "Not enough Inventory!!! Only" + quantityinDB.QuantityInStock + "lbs are available"); return(View("index", viewmodelobjectofmeat)); } var ratesInDB = _meatcontext.MeatRates.Single(c => c.MeatKindId == meatviewmodel.MeatKinds.Id); if (meatviewmodel.Meats.IsBoneless == true) { meatviewmodel.Meats.SubTotal = meatviewmodel.Meats.Calculate(meatviewmodel.Meats.Quantity, ratesInDB.CostPerLbBoneless); } else { meatviewmodel.Meats.SubTotal = meatviewmodel.Meats.Calculate(meatviewmodel.Meats.Quantity, ratesInDB.CostPerLb); } var x = new Transaction(); x.QuantityPurchased = meatviewmodel.Meats.Quantity; x.MeatKindId = meatviewmodel.MeatKinds.Id; x.TotalPurchaseAmount = (int)meatviewmodel.Meats.SubTotal; x.TransactionDateTime = DateTime.Now; if (meatviewmodel.Meats.IsBoneless == true) { x.BonelessMeatQuantity = meatviewmodel.Meats.Quantity; x.BoneMeatQuantity = 0; } if (meatviewmodel.Meats.IsBoneless == false) { x.BoneMeatQuantity = meatviewmodel.Meats.Quantity; x.BonelessMeatQuantity = 0; } _meatcontext.Transactions.Add(x); _meatcontext.SaveChanges(); var meatkindlist = _meatcontext.MeatKind.ToList(); foreach (var eachname in meatkindlist) { if (meatviewmodel.MeatKinds.Id == eachname.Id) { var db = _meatcontext.Inventories.Single(c => c.MeatKindId == eachname.Id); db.QuantityInStock = db.QuantityInStock - meatviewmodel.Meats.Quantity; } } _meatcontext.SaveChanges(); var newmeatmodel = new MeatViewModel() { InventoryList = _meatcontext.Inventories.ToList(), MeatKindList = _meatcontext.MeatKind.ToList(), TotalCost = meatviewmodel.Meats.SubTotal, MeatRatesList = _meatcontext.MeatRates.ToList(), }; return(View("index", newmeatmodel)); }