예제 #1
0
        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));
        }
예제 #2
0
        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));
        }