Exemple #1
0
        public ActionResult EditImport(int id)
        {
            var model = new EditMaterialImportViewModel();

            try
            {
                // get import info
                var import = db.MaterialImports.Where(t => t.MaterialImportId == id).FirstOrDefault();
                if (import == null)
                {
                    throw new Exception("Không tìm thấy thông tin nhập nguyên liệu!");
                }

                model.MaterialImportId   = import.MaterialImportId;
                model.MaterialImportDate = import.MaterialImportDate.ToString("dd/MM/yyyy");
                model.MaterialId         = import.MaterialId;
                model.StockId            = import.StockId ?? 0;
                model.Quantity           = import.Quantity.ToString("#,###");
                model.Price = import.Price.ToString("#,###");
                model.Notes = import.Notes;
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            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(model));
        }
Exemple #2
0
        public ActionResult EditImport(EditMaterialImportViewModel model)
        {
            try
            {
                // get import info
                var import = db.MaterialImports.Where(t => t.MaterialImportId == model.MaterialImportId).FirstOrDefault();
                if (import == null)
                {
                    throw new Exception("Không tìm thấy thông tin nhập nguyên liệu!");
                }

                // get material info
                var material = db.Materials.Where(t => t.MaterialId == import.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ệ!");
                }

                // get price
                decimal price = 0;
                if (!decimal.TryParse(model.Price.Replace(",", ""), out price))
                {
                    throw new Exception("Giá nhập không hợp lệ!");
                }

                // update material in stock
                var unitInstock = db.MaterialInStocks.Where(r => r.MaterialId == import.MaterialId && r.StockId == import.StockId).FirstOrDefault();
                if (unitInstock != null)
                {
                    unitInstock.Quantity = unitInstock.Quantity - import.Quantity + quantity;
                }
                else
                {
                    var materialInStock = new MaterialInStock();
                    materialInStock.MaterialId = import.MaterialId;
                    materialInStock.StockId    = import.StockId ?? 0;
                    materialInStock.Quantity   = 0;
                    db.MaterialInStocks.Add(materialInStock);
                }

                // update import info
                import.MaterialImportDate = DateTime.ParseExact(model.MaterialImportDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None) +
                                            new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
                import.MaterialId = model.MaterialId;
                import.StockId    = model.StockId;
                import.Quantity   = quantity;
                import.Price      = (decimal)price;
                import.Notes      = model.Notes;

                db.SaveChanges();

                return(RedirectToAction("ListImports"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            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(model));
        }