Exemple #1
0
        public IActionResult EditarRapido(ProductFastEditViewModel product)
        {
            if (!ModelState.IsValid)
            {
                return(View(product));
            }

            var result = _productService.EditFast(product);

            TempData.Put("Notification", result);
            if (!result.Status)
            {
                return(View(product));
            }
            return(RedirectToAction("Principal"));
        }
        public NotificationViewModel EditFast(ProductFastEditViewModel product)
        {
            var existingProduct = _unitOfWork.Product.Get(p => p.Id == product.Id).FirstOrDefault();

            if (product.Weight != null)
            {
                existingProduct.Weight = Convert.ToDecimal(product.WeightValue, CultureInfo.InvariantCulture);
            }

            if (existingProduct.Supply == 0 && product.Supply != null)
            {
                existingProduct.Supply = product.Supply.Value;
            }

            if (product.SupplyChange != null)
            {
                existingProduct.Supply += product.SupplyChange.Value;
            }

            if (existingProduct.Supply < 0)
            {
                return(new NotificationViewModel()
                {
                    Status = false,
                    Title = "Erro!",
                    Message = "O estoque não pode ser negativo.",
                    Focus = "#search"
                });
            }

            _unitOfWork.Product.Edit(existingProduct);
            _unitOfWork.Commit();

            _fileService.UploadFiles(product.Files, existingProduct.Id, "Product");
            return(new NotificationViewModel()
            {
                Status = true,
                Title = "Sucesso!",
                Message = "Produto editado com sucesso.",
                Focus = "#search"
            });
        }