//Cadastros============================================================================================
        public ActionResult produtoCadastro()
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            facadeProduto = new cadastroFacade();

            List<produtoCategoria> lstProdutoCategoria = facadeProduto.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 = facadeProduto.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;

            produto produto = new produto();
            produto.produtoCategoria = new produtoCategoria();
            produto.produtoTipo = new produtoTipo();

            @ViewBag.caminho = "Produto";

            return View(produto);
        }
        public ActionResult ClienteCadastroEdicao(string idCliente = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeCliente = new Simplex.Pizzaria.Facade.cadastroFacade();

            List<CNAE> lstCNAE = cadastroGeralFacade.ListarCNAE();

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

            @ViewBag.CNAEs = itens;

            cliente cliente = new cliente();
            if (idCliente != "")
            {
                cliente = facadeCliente.ConsultarCliente(Guid.Parse(idCliente));
            }

            @ViewBag.caminho = "Cliente";

            return View("ClienteCadastro", cliente);
        }
        public JsonResult buscarProduto(string Filtro = "")
        {
            facadeCadastro = new cadastroFacade();
            produto produto = new produto();
            produto.nome = Filtro;
            List<produto> lstProduto = facadeCadastro.FiltrarProduto(produto);

            return Json(lstProduto, JsonRequestBehavior.AllowGet);
        }
        //Excluir============================================================================================
        public ActionResult ExcluirProduto(string idProduto = "")
        {
            facadeProduto = new cadastroFacade();
            Result resultado = new Result();

            if (idProduto != "")
            {
                resultado = facadeProduto.ExcluirProduto(Guid.Parse(idProduto));
            }
            return Json(resultado, JsonRequestBehavior.AllowGet);
        }
        public ActionResult excluirFornecedorEndereco(string idFornecedorEndereco = "")
        {
            facadeFornecedor = new cadastroFacade();
            Result resultado = new Result();

            if (idFornecedorEndereco != "")
            {
                resultado = facadeFornecedor.ExcluirFornecedorEndereco(Guid.Parse(idFornecedorEndereco));
            }
            return Json(resultado, JsonRequestBehavior.AllowGet);
        }
        public PartialViewResult partialProdutoListagem(string pesquisarproduto)
        {
            facadeProduto = new cadastroFacade();
            produto produto = new produto();
            produto.nome = pesquisarproduto;
            //produto.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
            List<produto> lstProduto = facadeProduto.FiltrarProduto(produto);

            @ViewBag.caminho = "Produto";

            return PartialView(lstProduto);
        }
        public ActionResult ClienteContatoCadastro(string idCliente = "")
        {
            facadeCliente = new cadastroFacade();

            clienteContato clienteContato = new clienteContato();
            if (idCliente != "")
            {
                clienteContato.clienteID = Guid.Parse(idCliente);
            }

            @ViewBag.caminho = "Contato";

            return View("ClienteContatoCadastro", clienteContato);
        }
        public ActionResult fornecedorContatoCadastroEdicao(string idFornecedorContato = "")
        {
            facadeFornecedor = new cadastroFacade();

            fornecedorContato fornecedorContato = new fornecedorContato();
            if (idFornecedorContato != "")
            {
                fornecedorContato = facadeFornecedor.ConsultarFornecedorContato(Guid.Parse(idFornecedorContato));
            }

            @ViewBag.caminho = "Contato";

            return View("fornecedorContatoCadastro", fornecedorContato);
        }
        public ActionResult produtoCadastroEdicao(string idProduto = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeProduto = new cadastroFacade();

            List<produtoCategoria> lstProdutoCategoria = facadeProduto.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 = facadeProduto.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;

            produto produto = new produto();
            if (idProduto != "")
            {
                produto = facadeProduto.ConsultarProduto(Guid.Parse(idProduto));
            }

            @ViewBag.caminho = "Produto";

            return View("produtoCadastro", produto);
        }
        public ActionResult fornecedorContatoCadastro(string idFornecedor = "")
        {
            facadeFornecedor = new cadastroFacade();

            fornecedorContato fornecedorContato = new fornecedorContato();
            if (idFornecedor != "")
            {
                fornecedorContato.fornecedorID = Guid.Parse(idFornecedor);
            }

            @ViewBag.caminho = "Contato";

            return View("fornecedorContatoCadastro", fornecedorContato);
        }
        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 SalvarProduto(produto produto)
        {
            facadeProduto = new cadastroFacade();
            Result resultado;
            if (produto.ID.ToString() == "" || produto.ID == Guid.Empty)
            {
                produto.ID = Guid.NewGuid();
                resultado = facadeProduto.SalvarProduto(produto);
            }
            else
            {
                resultado = facadeProduto.AlterarProduto(produto);
            }

            //Result resultado = facadeProduto.SalvarProduto(produto);
            if (produto.ID != Guid.Empty)
            {
                resultado.AddMensagem("ID", produto.ID.ToString());
                resultado.Sucesso = true;
            }

            return Json(resultado);
        }
        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 ExcluirClienteEndereco(string idClienteEndereco = "")
        {
            facadeCliente = new cadastroFacade();
            Result resultado = new Result();

            if (idClienteEndereco != "")
            {
                resultado = facadeCliente.ExcluirClienteEndereco(Guid.Parse(idClienteEndereco));
            }
            return Json(resultado, JsonRequestBehavior.AllowGet);
        }
        public ActionResult ClienteEnderecoCadastro(string idCliente = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeCliente = new Simplex.Pizzaria.Facade.cadastroFacade();

            List<cidade> lstCidade = cadastroGeralFacade.ListarCidade();

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

            @ViewBag.cidades = itens;

            itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeCliente = new cadastroFacade();

            List<estado> lstEstados = cadastroGeralFacade.ListarEstado();

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

            @ViewBag.estados = itens;

            itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeCliente = new cadastroFacade();

            List<pais> lstPaises = cadastroGeralFacade.ListarPais();

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

            @ViewBag.paises = itens;

            clienteEndereco clienteEndereco = new clienteEndereco();
            if (idCliente != "")
            {
                clienteEndereco.clienteID = Guid.Parse(idCliente);
            }

            @ViewBag.caminho = "Endereço";

            return View("ClienteEnderecoCadastro", clienteEndereco);
        }
        public ActionResult salvarFornecedor(fornecedor fornecedor)
        {
            facadeFornecedor = new cadastroFacade();

            Result resultado;
            if (fornecedor.ID.ToString() == "" || fornecedor.ID == Guid.Empty)
            {
                fornecedor.ID = Guid.NewGuid();
                resultado = facadeFornecedor.SalvarFornecedor(fornecedor);
            }
            else
            {
                resultado = facadeFornecedor.AlterarFornecedor(fornecedor);
            }

            //Result resultado = facadeFornecedor.SalvarFornecedor(fornecedor);

            if (fornecedor.ID != Guid.Empty)
            {
                resultado.AddMensagem("ID", fornecedor.ID.ToString());
                resultado.Sucesso = true;
            }

            return Json(resultado);
        }
        public ActionResult fornecedorEnderecoCadastroEdicao(string idFornecedorEndereco = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeFornecedor = new cadastroFacade();

            List<cidade> lstCidade = cadastroGeralFacade.ListarCidade();

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

            @ViewBag.cidades = itens;

            itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeFornecedor = new cadastroFacade();

            List<estado> lstEstados = cadastroGeralFacade.ListarEstado();

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

            @ViewBag.estados = itens;

            itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeFornecedor = new cadastroFacade();

            List<pais> lstPaises = cadastroGeralFacade.ListarPais();

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

            @ViewBag.paises = itens;

            fornecedorEndereco fornecedorEndereco = new fornecedorEndereco();
            if (idFornecedorEndereco != "")
            {
                fornecedorEndereco = facadeFornecedor.ConsultarFornecedorEndereco(Guid.Parse(idFornecedorEndereco));
            }

            @ViewBag.caminho = "Endereço";

            return View("fornecedorEnderecoCadastro", fornecedorEndereco);
        }
        public ActionResult SalvarClienteEndereco(clienteEndereco clienteEndereco)
        {
            facadeCliente = new cadastroFacade();
            Result resultado;
            if (clienteEndereco.ID.ToString() == "" || clienteEndereco.ID == Guid.Empty)
            {
                 resultado = facadeCliente.SalvarClienteEndereco(clienteEndereco);
            }
            else
            {
                 resultado = facadeCliente.AlterarClienteEndereco(clienteEndereco);
            }

            return Json(resultado);
        }
        public ActionResult SalvarCliente(cliente cliente)
        {
            facadeCliente = new cadastroFacade();
            Result resultado;
            if (cliente.ID.ToString() == "" || cliente.ID == Guid.Empty)
            {
                cliente.ID = Guid.NewGuid();
                resultado = facadeCliente.SalvarCliente(cliente);
            }
            else
            {
                resultado = facadeCliente.AlterarCliente(cliente);
            }
            if (cliente.ID != Guid.Empty)
            {
                resultado.AddMensagem("ID", cliente.ID.ToString());
                resultado.Sucesso = true;
            }

            return Json(resultado);
        }
        public PartialViewResult PartialClienteListagem(string pesquisarcliente)
        {
            facadeCliente = new Simplex.Pizzaria.Facade.cadastroFacade();
            cliente cliente = new cliente();
            cliente.razaoSocial = pesquisarcliente;
            //cliente.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
            List<cliente> lstCliente = facadeCliente.FiltrarCliente(cliente);

            for (int i = 0; i < lstCliente.Count; i++)
            {
                for (int j = 0; j < lstCliente[i].clientesEnderecos.Count; j++)
                {
                    lstCliente[i].clientesEnderecos[j].cliente = new cliente();
                }

                for (int j = 0; j < lstCliente[i].clientesContatos.Count; j++)
                {
                    lstCliente[i].clientesContatos[j].cliente = new cliente();
                }
            }

            @ViewBag.caminho = "Cliente";

            return PartialView(lstCliente);
        }
        public PartialViewResult partialFornecedorListagem(string pesquisarfornecedor)
        {
            facadeFornecedor = new cadastroFacade();
            fornecedor fornecedor = new fornecedor();
            fornecedor.razaoSocial = pesquisarfornecedor;
            //fornecedor.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
            List<fornecedor> lstFornecedor = facadeFornecedor.FiltrarFornecedor(fornecedor);

            for (int i = 0; i < lstFornecedor.Count; i++)
            {
                for (int j = 0; j < lstFornecedor[i].fornecedoresEnderecos.Count; j++)
                {
                    lstFornecedor[i].fornecedoresEnderecos[j].fornecedor = new fornecedor();
                }

                for (int j = 0; j < lstFornecedor[i].fornecedoresContatos.Count; j++)
                {
                    lstFornecedor[i].fornecedoresContatos[j].fornecedor = new fornecedor();
                }
            }

            @ViewBag.caminho = "Fornecedor";

            return PartialView(lstFornecedor);
        }
        public ActionResult ClienteContatoCadastroEdicao(string idClienteContato = "")
        {
            facadeCliente = new Simplex.Pizzaria.Facade.cadastroFacade();

            clienteContato clienteContato = new clienteContato();
            if (idClienteContato != "")
            {
                clienteContato = facadeCliente.ConsultarClienteContato(Guid.Parse(idClienteContato));
            }

            @ViewBag.caminho = "Contato";

            return View("ClienteContatoCadastro", clienteContato);
        }
        public ActionResult salvarFornecedorEndereco(fornecedorEndereco fornecedorEndereco)
        {
            facadeFornecedor = new cadastroFacade();

            Result resultado;
            if (fornecedorEndereco.ID.ToString() == "" || fornecedorEndereco.ID == Guid.Empty)
            {
                fornecedorEndereco.ID = Guid.NewGuid();
                resultado = facadeFornecedor.SalvarFornecedorEndereco(fornecedorEndereco);
            }
            else
            {
                resultado = facadeFornecedor.AlterarFornecedorEndereco(fornecedorEndereco);
            }

            //Result resultado = facadeFornecedor.SalvarFornecedorEndereco(fornecedorEndereco);

            return Json(resultado);
        }
 public AdministradorController()
 {
     facadeAdministrador = new administracaoFacade();
     facadeCadastro = new cadastroFacade();
 }
        public ActionResult fornecedorCadastroEdicao(string idFornecedor = "")
        {
            List<SelectListItem> itens = new List<SelectListItem>();
            cadastroGeralFacade = new cadastroGeralFacade();
            facadeFornecedor = new cadastroFacade();

            List<CNAE> lstCNAE = cadastroGeralFacade.ListarCNAE();

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

            @ViewBag.CNAEs = itens;

            fornecedor fornecedor = new fornecedor();
            if (idFornecedor != "")
            {
                fornecedor = facadeFornecedor.ConsultarFornecedor(Guid.Parse(idFornecedor));
            }

            @ViewBag.caminho = "Fornecedor";

            return View("fornecedorCadastro", fornecedor);
        }
        public PartialViewResult partialVendaListagem(string pesquisarvendapedido, string pesquisarvendacliente)
        {
            facadeVenda = new movimentacaoFacade();
            facadeCadastro = new cadastroFacade();

            venda venda = new venda();
            List<venda> lstVenda = new List<venda>();

            if (pesquisarvendapedido != "" && pesquisarvendapedido != "Pesquisar pedido..." && pesquisarvendapedido != null)
            {
                venda.numeroPedido = Convert.ToInt32(pesquisarvendapedido);
                venda.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
                lstVenda = facadeVenda.FiltrarVenda(venda);

                for (int i = 0; i < lstVenda.Count; i++)
                {
                    lstVenda[i].cliente = facadeCadastro.ConsultarCliente(lstVenda[i].clienteID);
                }
            }

            if (pesquisarvendacliente != "" && pesquisarvendacliente != "Pesquisar cliente..." && pesquisarvendacliente != null)
            {
                cliente cliente = new cliente();
                cliente.razaoSocial = pesquisarvendacliente;
                List<cliente> lstcliente = facadeCadastro.FiltrarCliente(cliente);

                for (int i = 0; i < lstcliente.Count; i++)
                {
                    venda.clienteID = lstcliente[i].ID;
                    //venda.empresaID = Guid.Parse("fc70ecab-61b8-4e53-9a99-6098b0a75a02");
                    List<venda>  lstVendaCliente = facadeVenda.FiltrarVenda(venda);

                    for (int k = 0; k < lstVendaCliente.Count; k++)
                    {
                        lstVenda.Add(lstVendaCliente[k]);
                    }
                }

                for (int j = 0; j < lstVenda.Count; j++)
                {
                    lstVenda[j].cliente = facadeCadastro.ConsultarCliente(lstVenda[j].clienteID);
                }
            }

            @ViewBag.caminho = "Venda";

            return PartialView(lstVenda);
        }