Exemplo n.º 1
0
        public ActionResult realizarVendaaPrazo()
        {
            if (Session["idVendedor"] != null)
            {
                VendasDAO      objVDAO  = new VendasDAO();
                VendaaPrazoDAO objVpDAO = new VendaaPrazoDAO();
                PedidosDAO     objPe    = new PedidosDAO();
                ProdutosDAO    objPr    = new ProdutosDAO();
                ParcelasDAO    objPaD   = new ParcelasDAO();
                Parcelas       objPa    = new Parcelas();
                Vendas         objV     = new Vendas();
                ClientesDAO    objCl    = new ClientesDAO();


                List <Pedidos> objP = new List <Pedidos>();
                objP = objPe.MostrarPedidos();
                for (int i = 0; i < objP.Count; i++)
                {
                    string idProduto;
                    int    qtdProduto;
                    idProduto  = objP[i].idProduto;
                    qtdProduto = objP[i].qtdProduto;
                    objPr.atualizaEstoque(qtdProduto, idProduto);
                }



                //pegando do form o idCliente
                string idCliente = Request.Form["idCliente"];
                objV.idCliente = Int32.Parse(idCliente);

                //pegando o nome do cliente
                TempData["nomeCliente"] = objCl.selecionanomeCliente(Int32.Parse(idCliente));


                int parcelas = Convert.ToInt32(Request.Form["parcelas"]);


                //realiza a venda (a prazo) retorna o idVenda
                string retorno = objVDAO.vendaAprazo(objV);

                //realiza a vendaaprazo e retorna o idVendaaprazo
                int idVendaaprazo = Int32.Parse(objVpDAO.vendaaprazo(retorno, parcelas));


                //método que atualiza o pedido com o idVenda e o status do pedido
                objPe.atualizaStatus(retorno);

                DateTime today = DateTime.Now;


                //pegar o valorTotal da venda
                decimal total        = objVDAO.pegartotalVenda(retorno);
                decimal valorParcela = total / parcelas;
                TempData["parcelas"]     = parcelas;
                TempData["valorParcela"] = valorParcela;

                //método que faz as parcelas da venda a prazo
                for (int i = 0; i < parcelas; i++)
                {
                    DateTime dtvenc        = today.AddDays((30 * (i + 1)));
                    string   dtvencParcela = dtvenc.ToString("dd/MM/yyyy");

                    objPa.valorParcela  = valorParcela;
                    objPa.idVendaaPrazo = idVendaaprazo;
                    objPa.numParcela    = i + 1;
                    objPa.statusParcela = 0;
                    objPa.dtvencParcela = dtvencParcela;
                    objPaD.criarParcela(objPa);
                }


                ViewBag.retorno = retorno;

                return(RedirectToAction("sucessoap/" + retorno + ""));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }