public async Task <IActionResult> AddProduct(PurchaseDetailTmpViewModel view)
        {
            var user = await _dataContext.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefaultAsync();

            if (ModelState.IsValid)
            {
                var purchaseDetailTmp = _dataContext.PurchaseDetailTmps.Where(sdt => sdt.Username == User.Identity.Name && sdt.Product.Id == view.ProductId).FirstOrDefault();
                if (purchaseDetailTmp == null)
                {
                    var product = await _dataContext.Products.FindAsync(view.ProductId);

                    purchaseDetailTmp = new PurchaseDetailTmp
                    {
                        Id       = view.Id,
                        Name     = product.Name,
                        Price    = view.Price,
                        Quantity = view.Quantity,
                        Username = User.Identity.Name,
                        Product  = await _dataContext.Products.FindAsync(view.ProductId)
                    };
                    _dataContext.PurchaseDetailTmps.Add(purchaseDetailTmp);
                }
                else
                {
                    purchaseDetailTmp.Quantity += view.Quantity;
                    _dataContext.Entry(purchaseDetailTmp).State = EntityState.Modified;
                }
                await _dataContext.SaveChangesAsync();

                return(RedirectToAction("Create"));
            }

            view.Products = _combosHelper.GetComboProducts();
            return(View(view));
        }
Esempio n. 2
0
        public ActionResult AddProduct(AddProductViewForPurchase view)
        {
            var user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

            if (ModelState.IsValid)
            {
                var PurchaseDetailTmp = db.PurchaseDetailTmps.Where(pdt => pdt.UserName == User.Identity.Name && pdt.ProductId == view.ProductId).FirstOrDefault();
                if (PurchaseDetailTmp == null)
                {
                    var product = db.Products.Find(view.ProductId);
                    PurchaseDetailTmp = new PurchaseDetailTmp
                    {
                        Description = product.Description,
                        Price       = view.Price,
                        ProductId   = product.ProductId,
                        Quantity    = view.Quantity,
                        TaxRate     = product.Tax.Rate,
                        UserName    = User.Identity.Name,
                    };
                    db.PurchaseDetailTmps.Add(PurchaseDetailTmp);
                }
                else
                {
                    PurchaseDetailTmp.Quantity       += view.Quantity;
                    db.Entry(PurchaseDetailTmp).State = EntityState.Modified;
                }
                try
                {
                    db.SaveChanges();
                    return(RedirectToAction("Create"));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, ex.Message);
                }
            }

            ViewBag.ProductId = new SelectList(CombosHelper.GetProducts(user.CompanyId, true), "ProductId", "Description");
            return(PartialView());
        }
Esempio n. 3
0
        public ActionResult AddProduct(AddProductView view)
        {
            var user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

            if (ModelState.IsValid)
            {
                var purchaseDetailTmps = db.PurchaseDetailTmps.Where(odt => odt.UserName == User.Identity.Name && odt.ProductId == view.ProductId).FirstOrDefault();
                if (purchaseDetailTmps == null)
                {
                    var product = db.Products.Find(view.ProductId);
                    purchaseDetailTmps = new PurchaseDetailTmp
                    {
                        Description = product.Description,
                        Price       = product.Price,
                        ProductId   = product.ProductId,
                        Quantity    = view.Quantity,
                        TaxRate     = product.Tax.Rate,
                        UserName    = User.Identity.Name,
                    };

                    db.PurchaseDetailTmps.Add(purchaseDetailTmps);


                    var products    = db.Products.Find(view.ProductId);
                    var inventories = new Inventory
                    {
                        ProductId   = product.ProductId,
                        WareHouseId = view.WareHouseId,
                        Stock       = 0
                    };

                    db.Inventories.Add(inventories);
                    db.SaveChanges();
                }
                else
                {
                    purchaseDetailTmps.Quantity       += view.Quantity;
                    db.Entry(purchaseDetailTmps).State = EntityState.Modified;
                }



                var quantity  = view.Quantity;
                var inventory = db.Inventories.Where(i => i.ProductId == view.ProductId).FirstOrDefault();
                inventory.Stock += quantity;

                if (purchaseDetailTmps.Product.Stock <= 50)
                {
                    db.SaveChanges();
                    return(RedirectToAction("Create"));
                }
                else
                {
                    return(RedirectToAction("InventoryValidate"));
                }
            }

            ViewBag.ProductId   = new SelectList(CombosHelper.GetProducts(user.CompanyId), "ProductId", "Description");
            ViewBag.WareHouseId = new SelectList(CombosHelper.GetWareHouse(user.CompanyId, true), "WareHouseId", "Name");
            return(PartialView());
        }