public JsonResult Edit(Produto Produto) { var Retorno = new RetornoJson(); if (Produto.Nome == null) { Retorno.Mensagem += "<span> Inserir o Produto</span>"; } if (Produto.Preco <= 0) { Retorno.Mensagem += "<span> Inserir um Preço valido</span>"; } if (Produto.Quantidade <= 0) { Retorno.Mensagem += "<span> Inserir Quantidade</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } var bdProduto = new ProdutoRepositorioEF(contexto); bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); Retorno.Mensagem += "<span> Editado com sucesso</span>"; Retorno.Sucesso = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/Produto/Index"; return(Json(Retorno, JsonRequestBehavior.AllowGet)); }
public JsonResult EditarEstoque(Produto produto) { var Retorno = new RetornoJson(); if (produto.Quantidade <= 0) { Retorno.Mensagem += "<span>Inserir uma Quantidade Maior que ZERO</span>"; } if (produto.StatusId.Equals(2)) { Retorno.Mensagem += "<span>O Produto deve está ativo para continuar</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } var bdProduto = new ProdutoRepositorioEF(contexto); var ProdutoAtualizar = contexto.Produto.Where(x => x.ProdutoId == produto.ProdutoId).FirstOrDefault(); ProdutoAtualizar.Quantidade = ProdutoAtualizar.Quantidade + produto.Quantidade; bdProduto.Atualizar(ProdutoAtualizar); bdProduto.SalvarTodos(); Retorno.Sucesso = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/Produto/Index"; return(Json(Retorno, JsonRequestBehavior.AllowGet)); }
public ActionResult MudarStatus(int id) { using (var bdProduto = new ProdutoRepositorioEF(contexto)) { var produto = contexto.Produto.FirstOrDefault(x => x.ProdutoId == id); produto.StatusId = produto.StatusId == 1 ? 2 : 1; bdProduto.Atualizar(produto); bdProduto.SalvarTodos(); } return(RedirectToAction("Index")); }
public JsonResult Create(Produto Produto) { var Retorno = new RetornoJson(); if (Produto.Nome == null) { Retorno.Mensagem += "<span> Inserir o Produto</span>"; } if (Produto.Preco <= 0) { Retorno.Mensagem += "<span> Inserir um Preço valido</span>"; } if (Produto.Quantidade <= 0) { Retorno.Mensagem += "<span> Inserir Quantidade</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } try { var bdProduto = new ProdutoRepositorioEF(contexto); bdProduto.Adicionar(Produto); bdProduto.SalvarTodos(); Retorno.Mensagem += "<span> Cadastrado com sucesso</span>"; Retorno.Sucesso = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/Produto/Index"; } catch (Exception e) { Retorno.Mensagem += "<span> Cadastrado nao foi completado</span>"; } return(Json(Retorno, JsonRequestBehavior.AllowGet)); }
public JsonResult EditProdutoFiado(RegistroCompraFiada compraFiada, FormCollection collection) { var Retorno = new RetornoJson(); if (!UI.Web.Helpers.Utilitarios.validarData(compraFiada.DataParaPagamento.ToString())) { Retorno.Mensagem += "<span>Data invalida, inserir data correta</span>"; } if (compraFiada.DataParaPagamento <= compraFiada.DataCompra || compraFiada.DataParaPagamento > compraFiada.DataCompra.AddMonths(2)) { Retorno.Mensagem += "<span> Não aceitamos data anterior a data da compra ou data para pagamento maior que dois meses em relação a compra</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } var bdRegistroCompraFiada = new RegistroCompraFiadaRepositorioEF(contexto); bdRegistroCompraFiada.Atualizar(compraFiada); bdRegistroCompraFiada.SalvarTodos(); var ProdutosSalvosBancoDados = contexto.ProdutoFiado.Where(x => x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId).ToList(); var bdProduto = new ProdutoRepositorioEF(contexto); var bdProdutoFiado = new ProdutoFiadoRepositorioEF(contexto); var Estoque = contexto.Produto.ToList(); if (collection["Produtos"] == null) { Retorno.Mensagem += "<span> Não foi selecionado nenhum Produto!<span>"; if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } //// devolve para o estoque os produtos da compra fiada //foreach (var produtoSalvoBancoDados in ProdutosSalvosBancoDados) //{ // var Produto = contexto.Produto.Where(x => x.ProdutoId == produtoSalvoBancoDados.ProdutoId).FirstOrDefault(); // Produto.Quantidade = Produto.Quantidade + produtoSalvoBancoDados.Quantidade; // bdProduto.Atualizar(Produto); //} //bdProduto.SalvarTodos(); ////exclui a compra de produto fiado //var ProdutosFiado = contexto.ProdutoFiado.Where(x => x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId).ToList(); //foreach (var produtoFiado in ProdutosFiado) //{ // bdProdutoFiado.Excluir(x => x.RegistroCompraFiadaId == produtoFiado.RegistroCompraFiadaId && x.ProdutoId == produtoFiado.ProdutoId); //} //bdProdutoFiado.SalvarTodos(); //Retorno.Sucesso = true; //Retorno.LimparForm = true; //Retorno.Redirecionar = true; //Retorno.Link = "/Admin/CompraFiado/Index"; } else { var Produtos = collection["Produtos"].Split(','); // se o poduto tiver no banco mas nao tiver na lista foreach (var produtoBanco in ProdutosSalvosBancoDados) { if (!Produtos.Any(x => x == produtoBanco.ProdutoId.ToString())) { var ProdutoAtualizar = contexto.Produto.Where(x => x.ProdutoId == produtoBanco.ProdutoId).FirstOrDefault(); //devolver para o estoque o produto excluido da compra ProdutoAtualizar.Quantidade = ProdutoAtualizar.Quantidade + produtoBanco.Quantidade; bdProduto.Atualizar(ProdutoAtualizar); bdProduto.SalvarTodos(); // excluir o produto que não foi selecionado na edição bdProdutoFiado.Excluir(x => x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId && x.ProdutoId == produtoBanco.ProdutoId); bdProdutoFiado.SalvarTodos(); } } foreach (var produto in Produtos) { var idProduto = int.Parse(produto); var qtde = int.Parse(collection["Quantidade_" + idProduto]); //validação importante que não permite valor negativo if (qtde < 0) { Retorno.Mensagem = "<span>Valor não pode ser Negativo</span>"; if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } } var Produto = contexto.Produto.Where(x => x.ProdutoId == idProduto).FirstOrDefault(); // se na lista tiver e no banco não tiver salva o que ta na lista no banco if (!ProdutosSalvosBancoDados.Any(x => x.ProdutoId == idProduto) || ProdutosSalvosBancoDados == null) { //verifica se tem no estoque e subtrai a quantidade vendida if (Estoque.Any(x => x.ProdutoId == idProduto && x.Quantidade >= qtde)) { Produto.Quantidade = Produto.Quantidade - qtde; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); // adiciona o produto na compra a prazo bdProdutoFiado.Adicionar(new ProdutoFiado() { RegistroCompraFiadaId = compraFiada.RegistroCompraFiadaId, ProdutoId = idProduto, Quantidade = qtde }); bdProdutoFiado.SalvarTodos(); } else { Retorno.Mensagem += "<span>Produto não contem no estoque ou sua compra é maior do que tem disponivel</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } } //se tiver na lista e tiver no banco mas quantidade é diferente if (ProdutosSalvosBancoDados.Any(x => x.ProdutoId == idProduto && x.Quantidade != qtde)) { var ProdutoFiadoAtualizar = contexto.ProdutoFiado.Where(x => x.ProdutoId == idProduto && x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId).FirstOrDefault(); int qtdeAtual = ProdutosSalvosBancoDados.Where(x => x.ProdutoId == idProduto).FirstOrDefault().Quantidade; int diferenca; if (qtdeAtual > qtde) { diferenca = qtdeAtual - qtde; //adicionar a diferenca para o estoque de produto e salvar nova quantidade Produto.Quantidade = Produto.Quantidade + diferenca; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); //altera a quantidade na compra produto fiado ProdutoFiadoAtualizar.Quantidade = qtde; bdProdutoFiado.Atualizar(ProdutoFiadoAtualizar); bdProdutoFiado.SalvarTodos(); } else { diferenca = qtde - qtdeAtual; //verificar se tem no estoque if (Estoque.Any(x => x.ProdutoId == idProduto && x.Quantidade >= diferenca)) { //subtrair a quantidade comprada do estoque Produto.Quantidade = Produto.Quantidade - diferenca; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); //alterar quantidade na compra produto fiado ProdutoFiadoAtualizar.Quantidade = qtde; bdProdutoFiado.Atualizar(ProdutoFiadoAtualizar); bdProdutoFiado.SalvarTodos(); } else { Retorno.Mensagem += "<span>Sua alteração excede a quantidade disponivel</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } } } } } Retorno.Sucesso = true; Retorno.LimparForm = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/CompraFiado/Index"; return(Json(Retorno, JsonRequestBehavior.AllowGet)); }
public JsonResult CreateProdutoFiado(RegistroCompraFiada compraFiada, FormCollection collection) { var Retorno = new RetornoJson(); if (compraFiada.ClienteId == 0) { Retorno.Mensagem += "<span>Selecionar o Cliente</span>"; } if (compraFiada.FuncionarioId == 0) { Retorno.Mensagem += "<span>Selecionar o Funcionário</span>"; } // validar data para pagamento if (!Utilitarios.validarData(compraFiada.DataParaPagamento.ToString())) { Retorno.Mensagem += "<span>Inserir uma Data</span>"; } if (compraFiada.DataParaPagamento <= DateTime.Now || compraFiada.DataParaPagamento > DateTime.Now.AddMonths(2)) { Retorno.Mensagem += "<span> Não aceitamos data anterior ou igual a data atual ou data acima de dois meses em relação a data que o servico foi prestado</span>"; } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } if (collection["Produtos"] != null) { var Estoque = contexto.Produto.ToList(); var Produtos = collection["Produtos"].Split(','); var ProdutosValido = new List <ProdutoValido>(); foreach (var produto in Produtos) { var produtoId = int.Parse(produto); var Qtde = int.Parse(collection["Quantidade_" + produtoId]); //validação importante que não permite valor negativo if (Qtde < 0) { Retorno.Mensagem = "<span>Valor não pode ser Negativo</span>"; if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } } if (Estoque.Any(x => x.ProdutoId == produtoId && x.Quantidade >= Qtde)) { //cria a lista da compra de produto que tem quantidade em estoque para vender ProdutosValido.Add(new ProdutoValido() { IdProduto = produtoId, Quant = Qtde }); //subtrair quantidade do produto abaixo que foi vendido atualizando a qtde var ProdutoAtualizar = contexto.Produto.Where(x => x.ProdutoId == produtoId).FirstOrDefault(); ProdutoAtualizar.Quantidade = ProdutoAtualizar.Quantidade - Qtde; var bdProduto = new ProdutoRepositorioEF(contexto); bdProduto.Atualizar(ProdutoAtualizar); bdProduto.SalvarTodos(); }//verifica se tem no estoque else { Retorno.Mensagem += "<span>Sua compra e maior que a qtde em estoque</span>"; } } if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } if (Retorno.Mensagem == "") { // cria a compra fiada compraFiada.DataCompra = DateTime.Now; var registroCompraFiada = new RegistroCompraFiadaRepositorioEF(contexto); registroCompraFiada.Adicionar(compraFiada); registroCompraFiada.SalvarTodos(); // salva os produtos desta compra fiada var bdProdutoFiado = new ProdutoFiadoRepositorioEF(contexto); foreach (var produtoValido in ProdutosValido) { bdProdutoFiado.Adicionar(new ProdutoFiado() { RegistroCompraFiadaId = compraFiada.RegistroCompraFiadaId, ProdutoId = produtoValido.IdProduto, Quantidade = produtoValido.Quant }); } bdProdutoFiado.SalvarTodos(); Retorno.LimparForm = true; Retorno.Sucesso = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/CompraFiado/Index"; } }//valida se selecionou produto else { Retorno.Mensagem += "<span>Nenhum produto foi Selecionado</span>"; } return(Json(Retorno, JsonRequestBehavior.AllowGet)); }
public JsonResult RegistrarCompra(RegistroCompra compra, FormCollection collection) { var retorno = new RetornoJson(); if (compra.ClienteId == 0) { retorno.Mensagem += "<span>Selecione um Cliente</span>"; } if (retorno.Mensagem != "") { return(Json(retorno, JsonRequestBehavior.AllowGet)); } if (collection["ProdutosSelecionados"] != null) { var Produtos = collection["ProdutosSelecionados"].Split(','); var Estoque = contexto.Produto.ToList(); var ProdutosValido = new List <ProdValido>(); foreach (var p in Produtos) { var idProduto = int.Parse(p); var qtde = int.Parse(collection["Quantidade_Produto_" + p]); //validação importante que não permite valor negativo if (qtde < 0) { retorno.Mensagem = "<span>Valor não pode ser Negativo</span>"; if (retorno.Mensagem != "") { return(Json(retorno, JsonRequestBehavior.AllowGet)); } } if (Estoque.Any(x => x.ProdutoId == idProduto && x.Quantidade >= qtde)) { ProdutosValido.Add(new ProdValido() { idProd = idProduto, quant = qtde }); //subtrai a quantidade que foi comprada var bdProduto = new ProdutoRepositorioEF(contexto); var ProdutoAtualizar = contexto.Produto.Where(x => x.ProdutoId == idProduto).FirstOrDefault(); ProdutoAtualizar.Quantidade = ProdutoAtualizar.Quantidade - qtde; bdProduto.Atualizar(ProdutoAtualizar); bdProduto.SalvarTodos(); } else { retorno.Mensagem += "<span>Sua compra ultrapassa a quantidade em estoque</span>"; } }// valida o estoque e cria lista de produtos para compra if (retorno.Mensagem != "") { return(Json(retorno, JsonRequestBehavior.AllowGet)); } if (retorno.Mensagem == "") { compra.DataCompra = DateTime.Now; var bdRegistroCompra = new RegistroCompraRepositorioEF(contexto); bdRegistroCompra.Adicionar(compra); bdRegistroCompra.SalvarTodos(); // adiciona os itens da compra var bdItemCompra = new ItemCompraRepositorioEF(contexto); foreach (var produto in ProdutosValido) { bdItemCompra.Adicionar(new ItemCompra() { RegistroCompraId = compra.RegistroCompraId, ProdutoId = produto.idProd, Quantidade = produto.quant }); } bdItemCompra.SalvarTodos(); retorno.Sucesso = true; retorno.LimparForm = true; retorno.Redirecionar = true; retorno.Link = "/Admin/Compra/Index"; } } else { retorno.Mensagem += "<span> Não foi selecionado nenhuma Compra</span>"; } return(Json(retorno, JsonRequestBehavior.AllowGet)); }
public JsonResult EditarCompra(RegistroCompra compra, FormCollection collection) { var Retorno = new RetornoJson(); var ProdutosSalvoBancoDados = contexto.ItemCompra.Where(x => x.RegistroCompraId == compra.RegistroCompraId).ToList(); var bdItemCompra = new ItemCompraRepositorioEF(contexto); var bdProduto = new ProdutoRepositorioEF(contexto); var Compra = contexto.RegistroCompra.Where(x => x.RegistroCompraId == compra.RegistroCompraId).FirstOrDefault(); Compra.ClienteId = compra.ClienteId; var bdRegistroCompra = new RegistroCompraRepositorioEF(contexto); bdRegistroCompra.Atualizar(Compra); bdRegistroCompra.SalvarTodos(); //se nao for selecionado nenhum produto exclui todos os itens de compra if (collection["ProdutosSelecionados"] == null) { Retorno.Mensagem = "<span> Selecione a Compra</span>"; if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } //var ItensDevolver = contexto.ItemCompra.Where(x => x.RegistroCompraId == compra.RegistroCompraId).ToList(); //var Produtos = contexto.Produto.ToList(); //foreach (var produto in Produtos) //{ // var Produto = contexto.Produto.Where(x => x.ProdutoId == produto.ProdutoId).FirstOrDefault(); // if (ItensDevolver.Any(x => x.ProdutoId == produto.ProdutoId)) // { // int QtdeDevolver = ItensDevolver.Where(x => x.ProdutoId == produto.ProdutoId).FirstOrDefault().Quantidade; // Produto.Quantidade = Produto.Quantidade + QtdeDevolver; // bdProduto.Atualizar(Produto); // } //} //bdProduto.SalvarTodos(); //bdItemCompra.Excluir(x => x.RegistroCompraId == compra.RegistroCompraId); //bdItemCompra.SalvarTodos(); } else { if (collection["ProdutosSelecionados"] != null) { var ProdSelecionado = collection["ProdutosSelecionados"].Split(','); var Estoque = contexto.Produto.ToList(); // se tem no banco de dados mas não tem na lista foreach (var produtoBanco in ProdutosSalvoBancoDados) { if (!ProdSelecionado.Any(x => x == produtoBanco.ProdutoId.ToString())) { //voltar a quantidade para o estoque de produtos int QtdeProdutoDevolver = produtoBanco.Quantidade; var Produto = contexto.Produto.Where(x => x.ProdutoId == produtoBanco.ProdutoId).FirstOrDefault(); Produto.Quantidade = Produto.Quantidade + QtdeProdutoDevolver; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); //exclui os produtos que não estao selecionados na edição bdItemCompra.Excluir(x => x.ProdutoId == produtoBanco.ProdutoId && x.RegistroCompraId == produtoBanco.RegistroCompraId); bdItemCompra.SalvarTodos(); } } //se tiver na lista e nao tiver no banco salva foreach (var prodSelecionado in ProdSelecionado) { var idProdSelecionado = int.Parse(prodSelecionado); var qtde = int.Parse(collection["Quantidade_Produto_" + idProdSelecionado]); //validação importante que não permite valor negativo if (qtde < 0) { Retorno.Mensagem = "<span>Valor não pode ser Negativo</span>"; if (Retorno.Mensagem != "") { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } } if (!ProdutosSalvoBancoDados.Any(x => x.RegistroCompraId == compra.RegistroCompraId && x.ProdutoId == idProdSelecionado)) { //validacao se tem no estoque if (Estoque.Any(x => x.ProdutoId == idProdSelecionado && x.Quantidade >= qtde)) { //subtrair produtos que foram comprados ao editar a compra var Produto = contexto.Produto.Where(x => x.ProdutoId == idProdSelecionado).FirstOrDefault(); Produto.Quantidade = Produto.Quantidade - qtde; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); // adicionar a compra do produto bdItemCompra.Adicionar(new ItemCompra() { ProdutoId = idProdSelecionado, Quantidade = qtde, RegistroCompraId = compra.RegistroCompraId }); bdItemCompra.SalvarTodos(); } else { Retorno.Mensagem += "<span>Produto excede a quantidade ou não tem no estoque</span>"; } } // se na lista tem e no banco tem, mas quer trocar a quantidade if (ProdutosSalvoBancoDados.Any(x => x.RegistroCompraId == compra.RegistroCompraId && x.ProdutoId == idProdSelecionado && x.Quantidade != qtde)) { //subtrair ou adicionar a nova quantidade no estoque de produto var ProdutoAtual = ProdutosSalvoBancoDados.Where(x => x.RegistroCompraId == compra.RegistroCompraId && x.ProdutoId == idProdSelecionado).FirstOrDefault(); int qtdeAntiga = ProdutoAtual.Quantidade; var Produto = contexto.Produto.Where(x => x.ProdutoId == idProdSelecionado).FirstOrDefault(); int nova; if (qtde > qtdeAntiga) { nova = qtde - qtdeAntiga; if (Estoque.Any(x => x.ProdutoId == idProdSelecionado && x.Quantidade >= nova)) { //subtrai do estoque de produto Produto.Quantidade = Produto.Quantidade - nova; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); //atualiza a nova quantidade setada na compra do produto var ProdNovaQtde = contexto.ItemCompra.Where(x => x.RegistroCompraId == compra.RegistroCompraId && x.ProdutoId == idProdSelecionado).FirstOrDefault(); ProdNovaQtde.Quantidade = qtde; bdItemCompra.Atualizar(ProdNovaQtde); bdItemCompra.SalvarTodos(); } else { Retorno.Mensagem += "<span>Produto excede a quantidade ou não tem no estoque</span>"; } } else { nova = qtdeAntiga - qtde; //devolve a quantidade para o estoque de produto Produto.Quantidade = Produto.Quantidade + nova; bdProduto.Atualizar(Produto); bdProduto.SalvarTodos(); //atualiza a nova quantidade setada na compra do produto var ProdNovaQtde = contexto.ItemCompra.Where(x => x.RegistroCompraId == compra.RegistroCompraId && x.ProdutoId == idProdSelecionado).FirstOrDefault(); ProdNovaQtde.Quantidade = qtde; bdItemCompra.Atualizar(ProdNovaQtde); bdItemCompra.SalvarTodos(); } } } if (!string.IsNullOrEmpty(Retorno.Mensagem)) { return(Json(Retorno, JsonRequestBehavior.AllowGet)); } Retorno.LimparForm = true; Retorno.Sucesso = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/Compra/Index"; } else { Retorno.Mensagem = "Não é possivel Editar uma compra sem itens"; } } return(Json(Retorno, JsonRequestBehavior.AllowGet)); }