Пример #1
0
        static void Main(string[] args)
        {
            int    opcao;
            double totalItem  = 0;
            double totalVenda = 0;
            double totalGeral = 0;

            Dados.Inicializar();
            Produto         p          = new Produto();
            Cliente         c          = new Cliente();
            Vendedor        v          = new Vendedor();
            Venda           venda      = new Venda();
            ItemDeVenda     i          = new ItemDeVenda();
            Endereco        e          = new Endereco();
            List <Vendedor> vendedores = new List <Vendedor>();

            //MANTEM O PROGRAMA ATIVO ATÉ QUE SEJA SELECIONADA A OPÇÃO DE SAIDA
            do
            {
                //APRESENTAÇÃO DO MENU PRINCIPAL
                Console.Clear();
                Console.WriteLine("--------------- # MENU PRINCIPAL # ---------------");
                Console.WriteLine(" 1 - Cadastrar Cliente");
                Console.WriteLine(" 2 - Cadastrar Vendedor");
                Console.WriteLine(" 3 - Cadastrar Produtos");
                Console.WriteLine(" 4 - Listar Clientes");
                Console.WriteLine(" 5 - Listar Vendedores");
                Console.WriteLine(" 6 - Listar Produtos");
                Console.WriteLine(" 7 - Registrar Venda");
                Console.WriteLine(" 8 - Listar Vendas Por CPF");
                Console.WriteLine(" 9 - Listar Todas as Vendas");
                Console.WriteLine("10 - Cadastrar Endereço");
                Console.WriteLine("11 - Listar Vendas Por Endereço");

                Console.WriteLine(" 0 - Sair");
                Console.WriteLine("\nSelecione uma opção");

                opcao = Convert.ToInt32(Console.ReadLine());

                //EXECUTA A AÇÃO DA OPÇÃO SELECIONADA
                switch (opcao)
                {
                case 1:
                    //INICIA A INSTANCIA NOVAMENTE PARA NÃO DUPLICAR VARIAVEL
                    c = new Cliente();
                    Console.Clear();
                    Console.WriteLine("------------ CADASTRO DE CLIENTE ------------");

                    Console.WriteLine("\nDigite o nome do cliente:");
                    c.Nome = Console.ReadLine();
                    Console.WriteLine("\nDigite o CPF do cliente:");
                    c.Cpf = Console.ReadLine();

                    //SALVANDO CLIENTE NA LISTA
                    if (ClienteDAO.SalvarCliente(c))
                    {
                        Console.WriteLine("\nCliente Cadastrado com Sucesso!");
                        //Console.WriteLine("\nCliente: " + c);
                    }
                    else
                    {
                        Console.WriteLine("\nNão foi possível salvar o cliente");
                        //Console.WriteLine("\nCliente: " + c);
                    }



                    break;

                case 2:

                    v = new Vendedor();
                    Console.Clear();
                    Console.WriteLine("------------ CADASTRO DE VENDEDOR ------------");

                    Console.WriteLine("\nDigite o nome do vendedor:");
                    v.Nome = Console.ReadLine();
                    Console.WriteLine("\nDigite o CPF do vendedor");
                    v.Cpf = Console.ReadLine();
                    Console.WriteLine("\nInforme a taxa de comissão do vendedor:");
                    v.TaxaDeComissao = Convert.ToDouble(Console.ReadLine());

                    //SALVANDO VENDEDOR NA LISTA
                    if (VendedorDAO.SalvarVendedor(v))
                    {
                        Console.WriteLine("\nVendedor Cadastrado com Sucesso!");
                    }
                    else
                    {
                        Console.WriteLine("\nNão foi possível Cadastrar o Vendedor");
                    }

                    break;

                case 3:
                    //INICIA A INSTANCIA NOVAMENTE PARA NÃO DUPLICAR VARIAVEL
                    p = new Produto();

                    Console.Clear();
                    Console.WriteLine("------------ CADASTRO DE PRODUTO ------------");

                    Console.WriteLine("\nDigite o Nome do Produto:");
                    p.Nome = Console.ReadLine();
                    Console.WriteLine("\nDigite o Preço do Produto:");
                    p.Preco = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine("\nInforme o Markup do Produto:");
                    p.Markup = Convert.ToDouble(Console.ReadLine());

                    if (ProdutoDAO.SalvarProduto(p))
                    {
                        Console.WriteLine("\nProduto Cadastrado com Sucesso!");
                    }
                    else
                    {
                        Console.WriteLine("\nNão foi possível Cadastrar o Produto");
                    }

                    break;

                case 4:
                    Console.Clear();
                    Console.WriteLine("------------ LISTAGEM DE CLIENTES ------------");

                    //CHAMA O METODO QUE RETORNA A LISTA COM OS CLIENTES DENTRO DO FOREACH
                    foreach (Cliente clienteCadastrado in ClienteDAO.ListagemDeCliente())
                    {
                        Console.WriteLine("Cliente: " + clienteCadastrado);
                    }

                    break;

                case 5:

                    Console.Clear();
                    Console.WriteLine("------------ LISTAGEM DE VENDEDORES ------------");

                    foreach (Vendedor vendedorCadastrado in VendedorDAO.ListagemDeVendedores())
                    {
                        Console.WriteLine("Vendedor: " + vendedorCadastrado);
                    }

                    break;

                case 6:

                    Console.Clear();
                    Console.WriteLine("------------ LISTAGEM DE PRODUTOS ------------");

                    foreach (Produto produtoCadastrado in ProdutoDAO.ListagemDeProdutos())
                    {
                        Console.WriteLine("Produto: " + produtoCadastrado);
                    }

                    break;

                case 7:
                    c     = new Cliente();
                    v     = new Vendedor();
                    p     = new Produto();
                    venda = new Venda();
                    i     = new ItemDeVenda();
                    e     = new Endereco();


                    Console.Clear();
                    Console.WriteLine("------------ REGISTRO DE VENDA ------------");

                    Console.WriteLine("\nInforme o CPF do cliente:");
                    c.Cpf = Console.ReadLine();
                    Cliente auxCliente = ClienteDAO.BuscarClientePorCPF(c);
                    if (auxCliente != null)
                    {
                        venda.Cliente = auxCliente;
                        Console.WriteLine("\nInforme o CPF do Vendedor:");
                        v.Cpf = Console.ReadLine();
                        Vendedor auxVendedor = VendedorDAO.BuscarVendedorPorCPF(v);
                        if (auxVendedor != null)
                        {
                            venda.Vendedor = auxVendedor;


                            Console.WriteLine("\nIforme o CEP da Venda:");
                            e.CEP = Console.ReadLine();
                            Endereco auxEndereco = EnderecoDAO.BuscarEnderecoPorCEP(e);

                            if (auxEndereco != null)
                            {
                                venda.EnderecoDaVenda = auxEndereco;

                                bool aux = true;
                                do
                                {
                                    i = new ItemDeVenda();
                                    p = new Produto();

                                    Console.WriteLine("\nDigite o Nome do Produto:");
                                    p.Nome = Console.ReadLine();

                                    Produto auxProduto = ProdutoDAO.BuscarProdutoPeloNome(p);

                                    if (auxProduto != null)
                                    {
                                        //ALIMENTA A CLASSE ITEMDEVENDA
                                        i.Produto       = auxProduto;
                                        i.PrecoUnitario = auxProduto.Markup * auxProduto.Preco;
                                        venda.itens.Add(i);

                                        Console.WriteLine("\nDigite a Quantidade do Produto:");
                                        i.Quantidade = Convert.ToInt32(Console.ReadLine());


                                        Console.WriteLine("\nDeseja Adicionar um novo produto?");
                                        Console.WriteLine("\n\t1 - SIM");
                                        Console.WriteLine("\t2 - NÃO");
                                        int op = Convert.ToInt32(Console.ReadLine());

                                        switch (op)
                                        {
                                        case 1:
                                            aux = true;
                                            break;

                                        case 2:
                                            aux = false;
                                            break;

                                        default:
                                            Console.WriteLine("\nOpção Invalida!");
                                            aux = false;
                                            break;
                                        }
                                    }


                                    else
                                    {
                                        Console.WriteLine("\nNome do Produto inválido!");
                                    }
                                } while (aux);
                            }
                            else
                            {
                                Console.WriteLine("\nNumero do CEP inválido!");
                            }
                            //FINAL DA VENDA

                            venda.Data = DateTime.Now;
                            VendaDAO.SalvarVenda(venda);
                            Console.WriteLine("\nRegistro de Venda Salvo com sucesso!:");
                        }
                        else
                        {
                            Console.WriteLine("\nNumero de CPF inválido!");
                        }
                    }
                    else
                    {
                        Console.WriteLine("\nNumero de CPF inválido!");
                    }

                    break;

                case 8:
                    totalItem  = 0;
                    totalVenda = 0;
                    totalGeral = 0;
                    c          = new Cliente();

                    Console.Clear();
                    Console.WriteLine("------------ LISTAGEM DE VENDAS ------------");

                    Console.WriteLine("\nInforme o CPF do cliente registrado na venda:");
                    c.Cpf = Console.ReadLine();

                    foreach (Venda vendaCadastrada in VendaDAO.BuscarVendaPorCliente(c))
                    {
                        totalVenda = 0;
                        Console.WriteLine("Cliente: " + vendaCadastrada.Cliente.Nome);
                        Console.WriteLine("Vendedor: " + vendaCadastrada.Vendedor.Nome);
                        Console.WriteLine("Data da venda: " + vendaCadastrada.Data);
                        Console.WriteLine("Endereço: " + vendaCadastrada.EnderecoDaVenda.Rua);

                        foreach (ItemDeVenda itemVendaCadastrado in vendaCadastrada.itens)
                        {
                            totalItem = itemVendaCadastrado.PrecoUnitario * itemVendaCadastrado.Quantidade;
                            Console.WriteLine("\n\tProduto: " + itemVendaCadastrado.Produto.Nome);
                            Console.WriteLine("\tPreço unitário: " + itemVendaCadastrado.PrecoUnitario.ToString("C2"));
                            Console.WriteLine("\tQuantidade: " + itemVendaCadastrado.Quantidade);
                            Console.WriteLine("\tTotal do item: " + totalItem.ToString("C2"));
                            totalVenda += totalItem;
                        }
                        Console.WriteLine("\n\tTotal da venda: " + totalVenda.ToString("C2"));
                        totalGeral += totalVenda;
                    }
                    Console.WriteLine("\nTotal geral: " + totalGeral.ToString("C2"));

                    break;

                case 9:
                    totalItem  = 0;
                    totalVenda = 0;
                    totalGeral = 0;

                    Console.Clear();
                    Console.WriteLine("------------ LISTAGEM DE VENDAS ------------");

                    foreach (Venda vendaCadastrada1 in VendaDAO.RetornarLista())
                    {
                        totalVenda = 0;
                        Console.WriteLine("Cliente: " + vendaCadastrada1.Cliente.Nome);
                        Console.WriteLine("Vendedor: " + vendaCadastrada1.Vendedor.Nome);
                        Console.WriteLine("Data da venda: " + vendaCadastrada1.Data);
                        Console.WriteLine("Endereço: " + vendaCadastrada1.EnderecoDaVenda.Rua);
                        foreach (ItemDeVenda itemVendaCadastrado in vendaCadastrada1.itens)
                        {
                            totalItem = itemVendaCadastrado.PrecoUnitario * itemVendaCadastrado.Quantidade;
                            Console.WriteLine("\n\tProduto: " + itemVendaCadastrado.Produto.Nome);
                            Console.WriteLine("\tPreço unitário: " + itemVendaCadastrado.PrecoUnitario.ToString("C2"));
                            Console.WriteLine("\tQuantidade: " + itemVendaCadastrado.Quantidade);
                            Console.WriteLine("\tTotal do item: " + totalItem.ToString("C2"));
                            totalVenda += totalItem;
                        }
                        Console.WriteLine("\n\tTotal da venda: " + totalVenda.ToString("C2"));
                        totalGeral += totalVenda;
                    }
                    Console.WriteLine("\nTotal geral: " + totalGeral.ToString("C2"));

                    break;

                case 10:
                    e = new Endereco();

                    Console.Clear();
                    Console.WriteLine("------------ CADASTRO DE ENDEREÇO ------------");

                    Console.WriteLine("\nDigite o CEP do endereço:");
                    e.CEP = Console.ReadLine();
                    Console.WriteLine("\nDigite o Nome da Rua:");
                    e.Rua = Console.ReadLine();

                    if (EnderecoDAO.SalvarEndereco(e))
                    {
                        Console.WriteLine("\nEndereço Cadastrado com Sucesso!");
                    }
                    else
                    {
                        Console.WriteLine("\nNão foi possível Cadastrar o Endereço, CEP Inválido!");
                    }


                    break;

                case 11:
                    totalItem  = 0;
                    totalVenda = 0;
                    totalGeral = 0;
                    e          = new Endereco();

                    Console.Clear();
                    Console.WriteLine("------------ LISTAGEM DE VENDAS ------------");

                    Console.WriteLine("\nDigite o CEP para busca: ");
                    e.CEP = Console.ReadLine();

                    foreach (Venda vendaCadastrada in VendaDAO.BuscarVendaPorEndereco(e))
                    {
                        totalVenda = 0;
                        Console.WriteLine("Cliente: " + vendaCadastrada.Cliente.Nome);
                        Console.WriteLine("Vendedor: " + vendaCadastrada.Vendedor.Nome);
                        Console.WriteLine("Data da venda: " + vendaCadastrada.Data);
                        foreach (ItemDeVenda itemVendaCadastrado in vendaCadastrada.itens)
                        {
                            totalItem = itemVendaCadastrado.PrecoUnitario * itemVendaCadastrado.Quantidade;
                            Console.WriteLine("\n\tProduto: " + itemVendaCadastrado.Produto.Nome);
                            Console.WriteLine("\tPreço unitário: " + itemVendaCadastrado.PrecoUnitario.ToString("C2"));
                            Console.WriteLine("\tQuantidade: " + itemVendaCadastrado.Quantidade);
                            Console.WriteLine("\tTotal do item: " + totalItem.ToString("C2"));
                            totalVenda += totalItem;
                        }
                        Console.WriteLine("\n\tTotal da venda: " + totalVenda.ToString("C2"));
                        totalGeral += totalVenda;
                    }
                    Console.WriteLine("\nTotal geral: " + totalGeral.ToString("C2"));

                    break;

                //OPÇÃO DE SAIDA DO PROGRAMA
                case 0:
                    Console.Clear();
                    Console.WriteLine("Encerrando ... ");
                    break;

                //NENHUMA OPÇÃO DO MENU SELECIONADA
                default:
                    Console.WriteLine("Opção Inválida!");
                    break;
                }

                Console.WriteLine("\n Precione qualquer tecla para continuar");
                Console.ReadKey();
            } while (opcao != 0);
        }