Esempio n. 1
0
        static void Menu(List <Cliente> listaCliente, List <Livro> listaLivros, List <Emprestimo> listaEmprestimo)
        {
            /*FUNCAO CRIADA PARA CRIAR A INTERFACE DE MENU*/

            string escolha;

            do
            {
                Console.WriteLine("1)Cadastro de cliente\n2)Cadastro de livro\n3)Empréstimo de livro\n4)Devolução de livro" +
                                  "\n5)Relatório de empréstimo e devoluções\n6)Sair");
                Console.Write("\nInforme o que você quer fazer: ");
                escolha = Console.ReadLine();
                Console.Clear();

                //SWITCH ATE A PESSOA APERTAR O 6 QUE É PRA SAIR
                switch (escolha)
                {
                //FAZ O CADASTRO DOS CLIENTES CHAMA A FUNCAO DE CADASTRO DOS CLIENTE, ESCREVE NO ARQUIVO O CADASTRO E PUXA OS DADOS JA CADASTRADOS CASO ABRA O PROGRAMA
                case "1":
                    Console.WriteLine("------CADASTRO DE CLIENTE------");
                    listaCliente = CadastrarCliente(listaCliente);
                    Arquivo.EscreverNoArquivoCliente(listaCliente);
                    Console.WriteLine("\nAPERTE QUALQUER TECLA PARA SAIR");
                    Console.ReadLine();
                    Console.Clear();
                    break;

                //FAZ O CADASTRO DOS LIVROS CHAMA A FUNCAO DE CADASTRO DE LIVROS, ESCREVE NO ARQUIVO O CADASTRO E PUXA OS DADOS JA CADASTRADOS CASO ABRA O PROGRAMA
                case "2":
                    Console.WriteLine("------CADASTRO DE LIVRO------");
                    listaLivros = CadastrarLivro(listaLivros);
                    Arquivo.EscreverNoArquivoLivro(listaLivros);
                    Console.WriteLine("\nAPERTE QUALQUER TECLA PARA SAIR");
                    Console.ReadLine();
                    Console.Clear();
                    break;

                //FAZ O CADASTRO DOS EMPRESTIMOS CHAMA A FUNCAO DE CADASTRO DOS EMPRESTIMOS, ESCREVE NO ARQUIVO O CADASTRO E PUXA OS DADOS JA CADASTRADOS CASO ABRA O PROGRAMA
                case "3":
                    Console.WriteLine("------CADASTRO DE EMPRESTIMOS------");
                    EmprestimoLivro(listaLivros, listaCliente, listaEmprestimo);
                    Console.WriteLine("\nAPERTE QUALQUER TECLA PARA SAIR");
                    Console.ReadLine();
                    Console.Clear();
                    break;

                //FAZ O CADASTRO DAS DEVOLUÇÕES, CHAMA A FUNCAO DE CADASTRO DAS DEVOLUÇÕES, ESCREVE NO ARQUIVO O CADASTRO E PUXA OS DADOS JA CADASTRADOS CASO ABRA O PROGRAMA
                case "4":
                    Console.WriteLine("------CADASTRO DE DEVOLUÇÕES------");
                    DevolucaoLivro(listaEmprestimo);
                    Console.WriteLine("\nAPERTE QUALQUER TECLA PARA SAIR");
                    Console.ReadLine();
                    Console.Clear();
                    break;

                //FAZ RELATORIO E LE O RELATORIO JA ESCRITO CASO ABRA O PROGRAMA
                case "5":
                    Console.WriteLine("------RELATÓRIOS------");
                    Relatorio(listaLivros, listaCliente, listaEmprestimo);
                    Console.WriteLine("\nAPERTE QUALQUER TECLA PARA SAIR");
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }
            } while (escolha != "6");
        }
Esempio n. 2
0
        static void DevolucaoLivro(List <Emprestimo> listaEmprestimos)
        {
            //DECLARACAO DE VARIAVEIS
            long       numTombo;
            string     resposta;
            int        contador     = 0;
            int        saldoDevedor = 0;
            Emprestimo encontrado;

            //VERIFICA SE TEM ALGUM LIVRO SENDO EMPRESTADO PARA FAZER A DEVOLUÇÃO
            if (listaEmprestimos.Count == 0)
            {
                Console.WriteLine("\nNão tem nenhum livro emprestado ainda\n");
            }
            //SE TIVER ALGUM LIVRO EMPRESTADO ENTRA NO ELSE
            else
            {
                Console.WriteLine("\nQual livro o cliente quer devolver? Insira o numero de tombo do livro: \n");
                numTombo = long.Parse(Console.ReadLine());

                //PERCORRE A LISTA DE EMPRESTIMOS E ARMAZENA NA VARIAVEL ENCONTRADO CASO ACHE O LIVRO
                encontrado = listaEmprestimos.Find(x => x.NumeroTombo == numTombo);

                //VERFIFCA SE O LIVRO FOI ENCOTRADO
                if (encontrado == null)
                {
                    Console.WriteLine("\nNão possuimos esse livro emprestado!!!\n");
                }
                //SE O LIVRO FOI EMPRESTADO ENTRA NO ELSE
                else
                {
                    //MOSTRA OS DADOS DO LIVRO
                    Console.WriteLine(encontrado.ToString());

                    //PERCORRE A LISTA DE EMPRESTIMO E VERIFICA SE O LIVRO JA FOI DEVOLVIDO
                    foreach (Emprestimo emprestimoLivros in listaEmprestimos)
                    {
                        if (encontrado.StatusEmprestimos == 2)
                        {
                            Console.WriteLine("\nEsse livro já foi devolvido!!!\n");
                            contador++;
                            break;
                        }
                    }
                    //SE TEM O LIVRO NAO FOI DEVOLVIDO AINDA ELE ENTRA NESSE IF
                    if (contador == 0)
                    {
                        do
                        {
                            Console.WriteLine("\nTem certeza que deseja que o cliente deseja devolver? s(sim) ou n (não)");
                            resposta = Console.ReadLine();
                            if (resposta.ToLower() == "n")
                            {
                                break;
                            }
                        } while (resposta.ToLower() != "s");


                        //VERIFICA SE O CLIENTE REALMENTE DESEJA DEVOLVER
                        if (resposta.ToLower() == "s")
                        {
                            //FAZ A SUBTRAÇÃO DA DATA DO SISTEMA COM A DATA DEFINIDA PARA DEVOLUÇÃO DO LIVRO, TRASNFORMA EM DIAS QUE PASSA SER INTEIRO E ARMAZENA
                            //NA VARIAVEL SALDO DEVEDOR
                            saldoDevedor = (int)DateTime.Now.Subtract(encontrado.DataDevolucao).TotalDays;
                            //VERIFICA SE A SUBTRACAO DE CIMA É MAIOR DO QUE ZERO PARA EFETUAR A MULTA E SE FOR ENTRA NO IF
                            if (saldoDevedor > 0)
                            {
                                Console.WriteLine("O cliente deve por atraso: R$" + saldoDevedor * 0.10);
                                //FAZ A CONTA DE 10 CENTAVOS POR CADA DIA DE ATRASO E MOSTRA PRO USUARIO O VALOR FINAL QUE ELE DEVE
                            }
                            encontrado.StatusEmprestimos = 2;
                            encontrado.DataDevolucao     = DateTime.Now; //ALTERA O STATUS DO LIVRO PARA 2(DEVOLVIDO) E COLOCA A DATA DE DEVOLUÇÃO IGUAL A DO SISTEMA

                            //ESCREVE NO ARQUIVO DE EMPRESTIMO
                            Arquivo.EscreverNoArquivoEmprestimo(listaEmprestimos);

                            Console.WriteLine("\nLivro devolvido com sucesso\n");
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        static void EmprestimoLivro(List <Livro> listaLivros, List <Cliente> listaClientes, List <Emprestimo> listaEmprestimos)
        {
            //FUNCAO CRIADA PARA FAZER OS CADASTRO DOS EMPRESTIMOS DOS LIVROS
            Livro      livroencontrado   = new Livro();
            Cliente    clienteEncontrado = new Cliente();
            Emprestimo livroEmprestado   = new Emprestimo();

            long     NumTombo;
            int      contador = 0;
            string   escolha, cpf, respostaCadastro;
            DateTime dataDevolucao;

            //VERIFICANDO SE A LISTA DE LIVROS ESTA VAZIA
            if (listaLivros.Count == 0)
            {
                Console.WriteLine("\nCadastre livros primeiro antes de emprestá-los\n");
            }
            //SE NAO ESTIVER VAZIA ELE ENTRA NO ELSE
            else
            {
                Console.WriteLine("Informe o numero de tombo do livro: ");
                NumTombo = long.Parse(Console.ReadLine());

                //PERCORRENDO A LISTA PARA VER SE ACHA O LIVRO COM O NUMERO DE TOMBO DIGITADO E ARMAZENANDO NUMA VARIAVEL
                livroencontrado = listaLivros.Find(i => i.NumeroTombo == NumTombo);

                //VERIFICA SE TEM O LIVRO
                if (livroencontrado == null)
                {
                    Console.WriteLine("\nA biblioteca não possui esse livro!!!\n");
                }
                //SE TIVER ELE VEM PRO ELSE
                else
                {
                    Console.WriteLine("\n-----O livro foi encontrado-----\n" + livroencontrado.ToString());

                    //PERCORRE A LISTA DOS EMPRESTIMOS PARA VER SE O LIVRO JA ESTA SENDO EMPRESTADO OU NAO COM O NUMERO DE TOMBO DO LIVRO
                    livroEmprestado = listaEmprestimos.Find(x => x.NumeroTombo == NumTombo);

                    //FAZ A VERIFICACAO SE TIVER O LIVRO E SE ELE ESTIVER COM STATUS DE EMPRESTADO ENTRA NO IF
                    if (livroEmprestado != null && livroEmprestado.StatusEmprestimos == 1)
                    {
                        Console.WriteLine("\nO livro já esta sendo emprestado no momento!!!\n");
                        contador++;
                    }
                    else
                    {
                        //SE O CONTADOR FOR IGUAL A ZERO OQ SIGNFIICA QUE ELE NAO ESTA SENDO EMPRESTADO E QUE O LIVRO EXISTE ELE FAZ O RESTO DO PROCESSO
                        if (contador == 0)
                        {
                            Console.WriteLine("\nVocê deseja emprestar esse livro para qual cliente? Digite o cpf do cliente: ");
                            cpf = Console.ReadLine();

                            //PERCORRE A LISTA PROCURANDO PELO CPF DO CLIENTE QUE DESEJA O LIVRO
                            clienteEncontrado = listaClientes.Find(x => x.Cpf == cpf);

                            //VERIFICA SE O CLIENTE NAO FOI ENCONTRADO, SE ELE NAO FOI! CHAMAMOS A FUNCAO DE CADASTRO
                            if (clienteEncontrado == null)
                            {
                                Console.WriteLine("\nCliente não cadastrado!!!\n");
                                do
                                {
                                    Console.WriteLine("Deseja cadastrar esse cliente? s(sim) ou n(nao)");
                                    respostaCadastro = Console.ReadLine();
                                    if (respostaCadastro.ToLower() == "n")
                                    {
                                        break;
                                    }
                                } while (respostaCadastro.ToLower() != "s");

                                if (respostaCadastro.ToLower() == "s")
                                {
                                    CadastrarCliente(listaClientes);                 //CHAMANDO FUNCAO DE CADASTRO
                                    Arquivo.EscreverNoArquivoCliente(listaClientes); //ESCREVENDO NO ARQUIVO DE CLIENTES O CLIENTE QUE ACABA DE SER CADASTRADO
                                    do
                                    {
                                        Console.WriteLine("\nDeseja realmente emprestar esse livro? s(sim) ou n(nao)");
                                        escolha = Console.ReadLine();
                                        if (escolha.ToLower() == "n")
                                        {
                                            break;
                                        }
                                    } while (escolha.ToLower() != "s");


                                    //VERIFICANDO SE A BIBLIOTECARIA REALMENTE DESEJA EMPRESTAR ESSE LIVRO
                                    if (escolha.ToLower() == "s")
                                    {
                                        do
                                        {
                                            Console.WriteLine("Informe a data de devolução (dd/mm/aaaa): "); dataDevolucao = DateTime.Parse(Console.ReadLine());
                                            if (dataDevolucao <= DateTime.Now)
                                            {
                                                Console.WriteLine("Informe uma data maior do que hoje!");
                                            }
                                        } while (dataDevolucao <= DateTime.Now);

                                        //INFORMA O ID DO CLIENTE E A DATA QUE ELE TEM QUE DEVOLVER

                                        livroEmprestado = new Emprestimo
                                        {
                                            IdCliente         = clienteEncontrado.IdCliente,
                                            DataEmprestimo    = DateTime.Now,
                                            DataDevolucao     = dataDevolucao,
                                            NumeroTombo       = NumTombo,
                                            StatusEmprestimos = 1
                                        };

                                        listaEmprestimos.Add(livroEmprestado);
                                        Arquivo.EscreverNoArquivoEmprestimo(listaEmprestimos); //ADICIONA NA LISTA DE EMPRESTIMO E ESCREVE NO ARQUIVO EMPRESTIMO
                                        Console.WriteLine("\nLivro emprestado com sucesso!!!\n");
                                    }
                                }
                            }
                            //SE EXISTIR O CLIENTE E NAO PRECISAR FAZER O CADASTRO ELE ENTRA AQUI
                            else
                            {
                                Console.WriteLine(clienteEncontrado.ToString());
                                do
                                {
                                    Console.WriteLine("\nDeseja realmente emprestar esse livro? s(sim) ou n(nao)");
                                    escolha = Console.ReadLine();
                                    if (escolha.ToLower() == "n")
                                    {
                                        break;
                                    }
                                } while (escolha.ToLower() != "s");

                                //VERIFICA SE REALEMNTE DESEJA EMRPESTAR O LIVRO
                                if (escolha.ToLower() == "s")
                                {
                                    do
                                    {
                                        Console.WriteLine("Informe a data de devolução(dd/mm/aaaa): "); dataDevolucao = DateTime.Parse(Console.ReadLine());
                                        if (dataDevolucao <= DateTime.Now)
                                        {
                                            Console.WriteLine("Informe uma data maior do que hoje!");
                                        }
                                    } while (dataDevolucao < DateTime.Now);

                                    //INFORMA O ID DO CLIENTE E INFORMA A DATA QUE ELE TEM QUE DEVOLVER O LIVRO

                                    livroEmprestado = new Emprestimo
                                    {
                                        IdCliente         = clienteEncontrado.IdCliente,
                                        DataEmprestimo    = DateTime.Now,
                                        DataDevolucao     = dataDevolucao,
                                        NumeroTombo       = NumTombo,
                                        StatusEmprestimos = 1,
                                    };

                                    listaEmprestimos.Add(livroEmprestado);
                                    Arquivo.EscreverNoArquivoEmprestimo(listaEmprestimos); //ADCIONA NA LISTA DE EMPRESTIMO E ESCREVE NO ARQUIVO
                                    Console.WriteLine("\nLivro emprestado com sucesso!!!\n");
                                }
                            }
                        }
                    }
                }
            }
        }