public Result SalvarVendaProduto(vendaProduto vendaProduto)
 {
     Result retorno = serviceVendaProduto.Salvar(vendaProduto);
     return retorno;
 }
 public Result AlterarVendaProduto(vendaProduto vendaProduto)
 {
     Result retorno = serviceVendaProduto.Alterar(vendaProduto);
     return retorno;
 }
 public List<vendaProduto> FiltrarVendaProduto(vendaProduto vendaProduto)
 {
     return serviceVendaProduto.Filtrar(vendaProduto);
 }
        public ActionResult movimentacaoVenda(string idVenda = "", string idCliente = "")
        {
            venda venda = new venda();

            List<SelectListItem> itens = new List<SelectListItem>();
            facadeVenda = new movimentacaoFacade();
            facadeCadastro = new cadastroFacade();

            List<vendaStatus> lstVendaStatus = facadeVenda.ListarVendaStatus();

            for (int i = 0; i < lstVendaStatus.Count; i++)
            {
                itens.Add(new SelectListItem { Value = lstVendaStatus[i].ID.ToString(), Text = lstVendaStatus[i].nome });
            }

            itens = itens.OrderBy(s => s.Text).ToList();

            @ViewBag.status = itens;
            @ViewBag.caminho = "Venda";

            if (idVenda != "" && idVenda != null)
            {
                venda = facadeVenda.ConsultarVenda(Guid.Parse(idVenda));

                venda.cliente = new cliente();
                venda.cliente = facadeCadastro.ConsultarCliente(venda.clienteID);

                vendaProduto vendaProduto = new vendaProduto();
                vendaProduto.vendaID = venda.ID;
                venda.vendaProdutos = facadeVenda.FiltrarVendaProduto(vendaProduto);

                for (int i = 0; i < venda.vendaProdutos.Count; i++)
                {
                    venda.vendaProdutos[i].produto = facadeCadastro.ConsultarProduto(venda.vendaProdutos[i].produtoID);
                    venda.vendaProdutos[i].produto.produtoCategoria = facadeCadastro.ConsultarProdutoCategoria(venda.vendaProdutos[i].produto.produtoCategoriaID);
                    venda.vendaProdutos[i].produto.produtoTipo = facadeCadastro.ConsultarProdutoTipo(venda.vendaProdutos[i].produto.produtoTipoID);
                }

                return View(venda);
            }
            else
            {
                if (idCliente != "" && idCliente != null)
                {
                    if (venda.ID == Guid.Empty || venda.ID == null)
                    {
                        venda.clienteID = Guid.Parse(idCliente);
                        venda.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
                        venda.vendaStatusID = Guid.Parse("9e3fb8c8-e790-4db1-9abd-84597ec02648");
                        venda.numeroPedido = facadeVenda.BuscarUltimoPedido(Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02"));
                        venda.numeroPedido += 1;
                        Result resultado = facadeVenda.SalvarVenda(venda);
                    }

                    venda.cliente = new cliente();
                    venda.cliente = facadeCadastro.ConsultarCliente(Guid.Parse(idCliente));

                }
                else
                {
                    return View("vendaInicio", venda);
                }
            }

            return RedirectToAction("movimentacaoVenda", routeValues: new { idVenda = venda.ID });
            //return View(venda);
        }
        public ActionResult vendaProdutoCadastroEdicao(string idVendaProduto = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            facadeCadastro = new cadastroFacade();
            facadeMovimentacao = new movimentacaoFacade();

            List<produtoCategoria> lstProdutoCategoria = facadeCadastro.ListarProdutoCategoria();

            for (int i = 0; i < lstProdutoCategoria.Count; i++)
            {
                itens.Add(new SelectListItem { Value = lstProdutoCategoria[i].ID.ToString(), Text = lstProdutoCategoria[i].nome });
            }

            @ViewBag.produtoCategorias = itens;
            itens = new List<SelectListItem>();

            List<produtoTipo> lstProdutoTipo = facadeCadastro.ListarProdutoTipo();

            for (int i = 0; i < lstProdutoTipo.Count; i++)
            {
                itens.Add(new SelectListItem { Value = lstProdutoTipo[i].ID.ToString(), Text = lstProdutoTipo[i].nome });
            }

            @ViewBag.produtoTipos = itens;

            vendaProduto vendaProduto = new vendaProduto();
            if (idVendaProduto != "")
            {
                vendaProduto = facadeMovimentacao.ConsultarVendaProduto(Guid.Parse(idVendaProduto));

                produto produto = facadeCadastro.ConsultarProduto(vendaProduto.produtoID);
                @ViewBag.nomeProduto = produto.nome;
            }

            @ViewBag.caminho = "Produto da venda";

            return View("vendaProdutoCadastro", vendaProduto);
        }
        public ActionResult vendaProdutoCadastro(string idVenda = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            facadeCadastro = new cadastroFacade();

            List<produtoCategoria> lstProdutoCategoria = facadeCadastro.ListarProdutoCategoria();

            for (int i = 0; i < lstProdutoCategoria.Count; i++)
            {
                itens.Add(new SelectListItem { Value = lstProdutoCategoria[i].ID.ToString(), Text = lstProdutoCategoria[i].nome });
            }

            @ViewBag.produtoCategorias = itens;
            itens = new List<SelectListItem>();

            List<produtoTipo> lstProdutoTipo = facadeCadastro.ListarProdutoTipo();

            for (int i = 0; i < lstProdutoTipo.Count; i++)
            {
                itens.Add(new SelectListItem { Value = lstProdutoTipo[i].ID.ToString(), Text = lstProdutoTipo[i].nome });
            }

            @ViewBag.produtoTipos = itens;

            Simplex.Pizzaria.Models.vendaProduto vendaProduto = new Simplex.Pizzaria.Models.vendaProduto();
            if (idVenda != "")
            {
                vendaProduto.vendaID = Guid.Parse(idVenda);
            }

            @ViewBag.caminho = "Produto da venda";

            return View("vendaProdutoCadastro", vendaProduto);
        }
        public ActionResult salvarVendaProduto(vendaProduto vendaProduto)
        {
            facadeVenda = new movimentacaoFacade();

            vendaProduto.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
            //vendaProduto.produtoID = Guid.Parse("43e0d280-cfd0-430a-afae-9a6f1520841b");

            Result resultado;
            if (vendaProduto.ID.ToString() == "" || vendaProduto.ID == Guid.Empty)
            {
                vendaProduto.ID = Guid.NewGuid();
                resultado = facadeVenda.SalvarVendaProduto(vendaProduto);
            }
            else
            {
                resultado = facadeVenda.AlterarVendaProduto(vendaProduto);
            }

            //Result resultado = facadeVenda.SalvarVendaProduto(vendaProduto);
            if (vendaProduto.ID != Guid.Empty)
            {
                resultado.AddMensagem("ID", vendaProduto.ID.ToString());
                resultado.Sucesso = true;

                vendaProduto vendaProdutoTotal = new vendaProduto();
                vendaProdutoTotal.vendaID = vendaProduto.vendaID;
                List<vendaProduto> lstvendaProduto = facadeVenda.FiltrarVendaProduto(vendaProdutoTotal);

                decimal valorTotal = lstvendaProduto.Sum(v => v.valorTotal);

                venda venda = facadeVenda.ConsultarVenda(vendaProdutoTotal.vendaID);
                venda.valorTotal = valorTotal;
                facadeVenda.AlterarVenda(venda);
            }

            return Json(resultado);
        }