Пример #1
0
        public ActionResult EditStockInput(StockInputViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    // get current stock input
                    var stockInput = db.StockInputs.Where(r => r.Id == model.Id).FirstOrDefault();
                    if (stockInput != null)
                    {
                        // remove current stock input
                        db.StockInputs.Remove(stockInput);

                        // rollback stock input product quantity
                        var productInStock = db.ProductInStocks.Where(r => r.ProductId == stockInput.ProductId && r.StockId == stockInput.StockId).FirstOrDefault();
                        if (productInStock != null)
                        {
                            productInStock.Quantity -= stockInput.Quantity;
                        }
                        db.SaveChanges();

                        // add new stock input
                        var quantity   = int.Parse(model.Quantity.Replace(",", ""));
                        var importDate = DateTime.ParseExact(model.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None) +
                                         new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
                        var stockInput2 = new StockInput();
                        stockInput2.Date      = importDate;
                        stockInput2.ProductId = model.ProductId;
                        stockInput2.StockId   = model.StockId;
                        stockInput2.Quantity  = quantity;
                        stockInput2.Note      = model.Note;
                        stockInput2.UserName  = User.Identity.Name;
                        db.StockInputs.Add(stockInput2);

                        // update new stock input product quantity
                        var productInStock2 = db.ProductInStocks.Where(r => r.ProductId == model.ProductId && r.StockId == model.StockId).FirstOrDefault();
                        if (productInStock2 != null)
                        {
                            productInStock2.Quantity += quantity;
                        }
                        else
                        {
                            productInStock2           = new ProductInStock();
                            productInStock2.ProductId = model.ProductId;
                            productInStock2.StockId   = model.StockId;
                            productInStock2.Quantity  = quantity;
                            db.ProductInStocks.Add(productInStock2);
                        }
                        db.SaveChanges();

                        return(RedirectToAction("StockInputHistory"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Không tìm thấy thông tin nhập kho sản phẩm!!!");
                    }

                    // initialize viewbag
                    var product3   = db.Products.Where(r => r.ProductId == model.ProductId).FirstOrDefault();
                    var categoryId = product3 != null ? product3.CategoryId : 0;
                    var categories = db.Categories.OrderBy(r => r.CategoryName)
                                     .AsEnumerable()
                                     .Select(r => new SelectListItem
                    {
                        Text     = r.CategoryName,
                        Value    = r.CategoryId.ToString(),
                        Selected = r.CategoryId == categoryId
                    })
                                     .ToList();
                    ViewBag.Categories = categories;

                    int productId = product3 != null ? product3.ProductId : 0;
                    var products  = db.Products.Where(r => r.CategoryId == categoryId)
                                    .OrderBy(r => r.ProductName)
                                    .AsEnumerable()
                                    .Select(r => new SelectListItem
                    {
                        Text     = r.ProductName,
                        Value    = r.ProductId.ToString(),
                        Selected = r.ProductId == productId
                    })
                                    .ToList();
                    ViewBag.Products = products;

                    var stocks = db.Stocks.OrderBy(r => r.StockName)
                                 .AsEnumerable()
                                 .Select(r => new SelectListItem
                    {
                        Text     = r.StockName,
                        Value    = r.StockId.ToString(),
                        Selected = r.StockId == model.StockId
                    })
                                 .ToList();
                    ViewBag.Stocks = stocks;
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex);
            }
            if (ViewBag.Products == null)
            {
                ViewBag.Products = new List <SelectListItem>();
            }
            if (ViewBag.Categories == null)
            {
                ViewBag.Categories = new List <SelectListItem>();
            }
            if (ViewBag.Stocks == null)
            {
                ViewBag.Stocks = new List <SelectListItem>();
            }
            return(View(model));
        }
Пример #2
0
        public ActionResult AddStockInput(StockInputViewModel model)
        {
            try
            {
                var product = db.Products.Where(r => r.ProductId == model.ProductId).FirstOrDefault();
                var stock   = db.Stocks.Where(r => r.StockId == model.StockId).FirstOrDefault();

                if (ModelState.IsValid)
                {
                    // validate date product, stock
                    if (product != null && stock != null)
                    {
                        var quantity   = int.Parse(model.Quantity.Replace(",", ""));
                        var importDate = DateTime.ParseExact(model.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None) +
                                         new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);

                        // update quantity
                        var productInStock = db.ProductInStocks.Where(r => r.ProductId == model.ProductId && r.StockId == model.StockId).FirstOrDefault();
                        if (productInStock != null)
                        {
                            productInStock.Quantity += quantity;
                        }
                        else
                        {
                            productInStock           = new ProductInStock();
                            productInStock.ProductId = model.ProductId;
                            productInStock.StockId   = model.StockId;
                            productInStock.Quantity += quantity;
                            db.ProductInStocks.Add(productInStock);
                        }

                        // add product stock input
                        var stockInput = new StockInput();
                        stockInput.Date      = importDate;
                        stockInput.ProductId = model.ProductId;
                        stockInput.StockId   = model.StockId;
                        stockInput.Quantity  = quantity;
                        stockInput.Note      = model.Note;
                        stockInput.UserName  = User.Identity.Name;
                        db.StockInputs.Add(stockInput);

                        db.SaveChanges();

                        return(RedirectToAction("StockInputHistory"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Sản phẩm hoặc kho không tồn tại!!!");
                    }
                }

                // initialize viewbag
                var productId  = product != null ? product.ProductId : 0;
                var categoryId = product != null ? product.CategoryId : 0;
                var stockId    = stock != null ? stock.StockId : 0;

                var categories = db.Categories.OrderBy(r => r.CategoryName)
                                 .AsEnumerable()
                                 .Select(r => new SelectListItem
                {
                    Text     = r.CategoryName,
                    Value    = r.CategoryId.ToString(),
                    Selected = r.CategoryId == categoryId
                })
                                 .ToList();
                ViewBag.Categories = categories;

                var products = db.Products.Where(r => r.CategoryId == categoryId)
                               .OrderBy(r => r.ProductName)
                               .AsEnumerable()
                               .Select(r => new SelectListItem
                {
                    Text     = r.ProductName,
                    Value    = r.ProductId.ToString(),
                    Selected = r.ProductId == productId
                })
                               .ToList();
                ViewBag.Products = products;

                var stocks = db.Stocks.OrderBy(r => r.StockName)
                             .AsEnumerable()
                             .Select(r => new SelectListItem
                {
                    Text     = r.StockName,
                    Value    = r.StockId.ToString(),
                    Selected = r.StockId == stockId
                })
                             .ToList();
                ViewBag.Stocks = stocks;
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex);
            }
            if (ViewBag.Products == null)
            {
                ViewBag.Products = new List <SelectListItem>();
            }
            if (ViewBag.Categories == null)
            {
                ViewBag.Categories = new List <SelectListItem>();
            }
            if (ViewBag.Stocks == null)
            {
                ViewBag.Stocks = new List <SelectListItem>();
            }
            return(View(model));
        }
Пример #3
0
        public ActionResult EditStockInput(int id)
        {
            StockInputViewModel model = new StockInputViewModel();

            try
            {
                // get stock input
                var stockInput = db.StockInputs.Where(r => r.Id == id).FirstOrDefault();
                if (stockInput != null)
                {
                    model.Id        = stockInput.Id;
                    model.Date      = stockInput.Date.ToString("dd/MM/yyyy");
                    model.ProductId = stockInput.ProductId;
                    model.StockId   = stockInput.StockId;
                    model.Quantity  = stockInput.Quantity.ToString("#,###");
                    model.Note      = stockInput.Note;
                }
                else
                {
                    ModelState.AddModelError("", "Không tìm thấy thông tin nhập kho!!!");
                }

                // initalize viewbag
                int productId = stockInput != null ? stockInput.ProductId : 0;
                var product   = db.Products.Where(r => r.ProductId == productId).FirstOrDefault();

                var categoryId = product != null ? product.CategoryId : 0;
                var categories = db.Categories.OrderBy(r => r.CategoryName)
                                 .AsEnumerable()
                                 .Select(r => new SelectListItem
                {
                    Text     = r.CategoryName,
                    Value    = r.CategoryId.ToString(),
                    Selected = r.CategoryId == categoryId
                })
                                 .ToList();
                ViewBag.Categories = categories;

                var products = db.Products.Where(r => r.CategoryId == categoryId)
                               .OrderBy(r => r.ProductName)
                               .AsEnumerable()
                               .Select(r => new SelectListItem
                {
                    Text     = r.ProductName,
                    Value    = r.ProductId.ToString(),
                    Selected = r.ProductId == productId
                })
                               .ToList();
                ViewBag.Products = products;

                var stocks = db.Stocks.OrderBy(r => r.StockName)
                             .AsEnumerable()
                             .Select(r => new SelectListItem
                {
                    Text  = r.StockName,
                    Value = r.StockId.ToString()
                })
                             .ToList();
                ViewBag.Stocks = stocks;
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex);
            }
            if (ViewBag.Categories == null)
            {
                ViewBag.Categories = new List <SelectListItem>();
            }
            if (ViewBag.Products == null)
            {
                ViewBag.Products = new List <SelectListItem>();
            }
            if (ViewBag.Stocks == null)
            {
                ViewBag.Stocks = new List <SelectListItem>();
            }
            return(View(model));
        }
Пример #4
0
        public ActionResult AddStockInput(int productId = 0)
        {
            StockInputViewModel model = new StockInputViewModel();

            try
            {
                model.Date     = DateTime.Now.ToString("dd/MM/yyyy");
                model.Quantity = "100";

                var product    = db.Products.Where(r => r.ProductId == productId).FirstOrDefault();
                var categoryId = product != null ? product.CategoryId : 0;
                // initialize viewbag
                // categories
                var categories = db.Categories.OrderBy(r => r.CategoryName)
                                 .AsEnumerable()
                                 .Select(r => new SelectListItem
                {
                    Text     = r.CategoryName,
                    Value    = r.CategoryId.ToString(),
                    Selected = r.CategoryId == categoryId
                })
                                 .ToList();
                ViewBag.Categories = categories;
                // products
                var products = db.Products.Where(r => r.CategoryId == categoryId)
                               .OrderBy(r => r.ProductName)
                               .AsEnumerable()
                               .Select(r => new SelectListItem
                {
                    Text     = r.ProductName,
                    Value    = r.ProductId.ToString(),
                    Selected = r.ProductId == productId
                })
                               .ToList();
                ViewBag.Products = products;
                // stocks
                var stocks = db.Stocks.OrderBy(r => r.StockName).AsEnumerable()
                             .Select(r => new SelectListItem
                {
                    Text  = r.StockName,
                    Value = r.StockId.ToString()
                })
                             .ToList();
                ViewBag.Stocks = stocks;
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex);
            }

            if (ViewBag.Products == null)
            {
                ViewBag.Products = new List <SelectListItem>();
            }
            if (ViewBag.Categories == null)
            {
                ViewBag.Categories = new List <SelectListItem>();
            }
            if (ViewBag.Stocks == null)
            {
                ViewBag.Stocks = new List <SelectListItem>();
            }
            return(View(model));
        }