public JsonResult Create(RegistroCompraFiada compraFiada, FormCollection collection) { var Retorno = new RetornoJson(); if (compraFiada.ClienteId == 0) { Retorno.Mensagem += "<span> O Cliente é obrigatório</span>"; } if (compraFiada.FuncionarioId == 0) { Retorno.Mensagem += "<span> O Funcionario é obrigatório</span>"; } //validar data corretamente if (!Utilitarios.validarData(compraFiada.DataParaPagamento.ToString())) { Retorno.Mensagem += "<span> A Data é obrigatório</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["Servicos"] != null) { compraFiada.DataCompra = DateTime.Now; var bdRegistroCompraFiada = new RegistroCompraFiadaRepositorioEF(contexto); bdRegistroCompraFiada.Adicionar(compraFiada); bdRegistroCompraFiada.SalvarTodos(); //salvar os itens da compra de servicos fiado var bdServicoFiado = new ServicoFiadoRepositorioEF(contexto); var Servicos = collection["Servicos"].Split(','); foreach (var servico in Servicos) { var servicoID = int.Parse(servico); bdServicoFiado.Adicionar(new ServicoFiado() { RegistroCompraFiadaId = compraFiada.RegistroCompraFiadaId, ServicoId = servicoID }); } bdServicoFiado.SalvarTodos(); Retorno.Sucesso = true; Retorno.LimparForm = true; Retorno.Redirecionar = true; Retorno.Link = "/Admin/CompraFiado/Index"; } else { Retorno.Mensagem += "<span> Não foi selecionado nenhum Servico</span>"; } 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)); }