public ActionResult EditExport(EditMaterialExportViewModel model) { try { // get import info var export = db.MaterialExports.Where(t => t.MaterialExportId == model.MaterialExportId).FirstOrDefault(); if (export == null) { throw new Exception("Không tìm thấy thông tin xuất nguyên liệu!"); } // get material info var material = db.Materials.Where(t => t.MaterialId == export.MaterialId).FirstOrDefault(); if (material == null) { throw new Exception("Không tìm thấy thông tin nguyên liệu!"); } // get quantity double quantity = 0; if (!double.TryParse(model.Quantity.Replace(",", ""), out quantity)) { throw new Exception("Số lượng nhập không hợp lệ!"); } // update material unit in stock var unitInStock = db.MaterialInStocks.Where(r => r.MaterialId == model.MaterialId && r.StockId == model.StockId).FirstOrDefault(); if (unitInStock != null) { unitInStock.Quantity = unitInStock.Quantity + export.Quantity - quantity; } else { var materialInStock = new MaterialInStock(); materialInStock.MaterialId = model.MaterialId; materialInStock.StockId = model.StockId; materialInStock.Quantity = 0; db.MaterialInStocks.Add(materialInStock); } // update import info export.MaterialExportDate = DateTime.ParseExact(model.MaterialExportDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None) + new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); export.MaterialId = model.MaterialId; export.Quantity = quantity; export.Notes = model.Notes; db.SaveChanges(); return(RedirectToAction("ListExports")); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } try { // initialize view bag values var materials = db.Materials.OrderBy(t => t.MaterialName) .AsEnumerable() .Select(t => new SelectListItem { Value = t.MaterialId.ToString(), Text = t.MaterialName }) .ToList(); var stocks = db.Stocks.OrderBy(r => r.StockName) .AsEnumerable() .Select(r => new SelectListItem { Value = r.StockId.ToString(), Text = r.StockName }) .ToList(); ViewBag.Materials = materials; ViewBag.Stocks = stocks; } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return(View(model)); }
public ActionResult AddMaterialInStock(AddMaterialInStockViewModel model) { try { if (ModelState.IsValid) { var checkMaterialInStock = db.MaterialInStocks.Where(r => r.MaterialId == model.MaterialId && r.StockId == model.StockId).FirstOrDefault(); if (checkMaterialInStock == null) { // validate material and stock existed var material = db.Materials.Where(r => r.MaterialId == model.MaterialId).FirstOrDefault(); var stock = db.Stocks.Where(r => r.StockId == model.StockId).FirstOrDefault(); if (material != null && stock != null) { var materialInStock = new MaterialInStock(); materialInStock.MaterialId = model.MaterialId; materialInStock.StockId = model.StockId; var quantity = 0; if (!int.TryParse(model.Quantity.Replace(",", ""), out quantity)) { throw new Exception("Số lượng tồn không hợp lệ!"); } materialInStock.Quantity = quantity; db.MaterialInStocks.Add(materialInStock); db.SaveChanges(); return(RedirectToAction("MaterialInstock", "Material")); } else { ModelState.AddModelError("", "Kho hoặc nguyên liệu không tồn tại!!!"); } } else { ModelState.AddModelError("", "Nguyên liệu đã có thông tin tồn kho!!!"); } } } catch (Exception ex) { ModelState.AddModelError("", ex); } try { // assign view bag values var materials = db.Materials.OrderBy(t => t.MaterialName) .AsEnumerable() .Select(t => new SelectListItem { Value = t.MaterialId.ToString(), Text = t.MaterialName }) .ToList(); var stocks = db.Stocks.OrderBy(r => r.StockName) .AsEnumerable() .Select(r => new SelectListItem { Value = r.StockId.ToString(), Text = r.StockName }) .ToList(); ViewBag.Materials = materials; ViewBag.Stocks = stocks; } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return(View()); }