Exemplo n.º 1
0
        static void Main(string[] args)
        {
            string version = "Controle De Oficina 0.8\n";

            Console.Clear();
            Console.Write("Carregando Sistema");
            for (int i = 0; i < 7; i++)
            {
                Thread.Sleep(500);
                Console.Write(".");
            }
            Console.Write("Carregado!");
            Thread.Sleep(500);
            bool   menu = true;
            string menuback;
            string pathOs     = Directory.GetCurrentDirectory() + "\\baseOS.txt";
            string pathClient = Directory.GetCurrentDirectory() + "\\baseClientes.txt";

            if (!File.Exists(pathOs))
            {
                StreamWriter x;
                x = File.CreateText(pathOs);
                x.Close();
            }
            if (!File.Exists(pathClient))
            {
                StreamWriter x;
                x = File.CreateText(pathClient);
                x.Close();
            }
            int    qtdColunas = 9;
            string opcao;

            string[] tipoVeiculo = new string[2] {
                "Carro", "Moto"
            };
            string[] status = new string[4] {
                "Ag. Peças", "Ag. Execução", "Em Execução", "Finalizada"
            };

            while (menu)
            {
                Console.Clear();
                Console.WriteLine(version);
                Console.WriteLine("-> Menu Principal\n");
                Console.WriteLine("Escolha uma das Opções:" +
                                  "\n 1 - Criar nova Ordem de Serviço" +
                                  "\n 2 - Consultar Ordem de Serviço" +
                                  "\n 3 - Editar Ordem de Serviço" +
                                  "\n 4 - Gerenciar Clientes" +
                                  "\n 5 - Gerar Comprovante de Pagamento" +
                                  "\n 6 - Sair");
                opcao = Console.ReadLine();
                //Criar nova Ordem de Serviço
                if (opcao == "1")
                {
                    Console.Clear();
                    Console.WriteLine(version);
                    Console.WriteLine("-> Criar Ordem de Serviço\n");
                    string leitura = "";
                    bool   error   = true;
                    os     novaOS  = new os(pathOs);
                    int    number  = os.getNextNumber(pathOs);
                    Console.WriteLine("Ordem de Serviço Número: {0}!", number);

                    while (error)
                    {
                        Console.Write("Informe o CPF ou CNPJ do cliente (Somente os números): ");
                        leitura = Console.ReadLine();
                        Console.WriteLine("");
                        error = client.documentInvalid(leitura);
                    }

                    if (client.documentExist(leitura, pathClient) == false)
                    {
                        Console.WriteLine("Cliente não Cadastrado!\n");
                        Console.WriteLine("Deseja cadastra-lo?\n 1 - Sim\n 2 - Não");
                        opcao = Console.ReadLine();
                        if (opcao == "1")
                        {
                            client cliente = new client();
                            client.createClient(cliente, pathClient, leitura, version);
                        }
                        else
                        {
                            Console.WriteLine("O cliente precisa estar cadastrado para dar continuidade à abertura da OS!");
                            opcao = "g";
                        }
                    }
                    else
                    {
                        os.createOS(pathOs, novaOS, leitura, tipoVeiculo, status);
                    }
                }
                else
                //Consultar Ordem de Serviço
                if (opcao == "2")
                {
                    Console.Clear();
                    Console.WriteLine(version);
                    Console.WriteLine("-> Menu de Consulta\n");
                    Console.WriteLine("Escolha uma das Opções:" +
                                      "\n 1 - Consultar todas as OS's" +
                                      "\n 2 - Filtrar por Número" +
                                      "\n 3 - Filtrar por Cliente" +
                                      "\n 4 - Filtrar por Status");
                    opcao = Console.ReadLine();
                    //Consultar todas as OS's
                    if (opcao == "1")
                    {
                        int qtdLinhas = File.ReadLines(pathOs).Count();
                        if (qtdLinhas == 0)
                        {
                            Console.Clear();
                            Console.WriteLine("Nenhuma Ordem de serviço localizada!");
                            Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial...");
                            menuback = Console.ReadLine();
                        }
                        else
                        {
                            string[,] dados = new string[qtdLinhas, qtdColunas];
                            string[] bd = File.ReadAllLines(pathOs);
                            int      i = 0, j = 0;
                            foreach (var element in bd)
                            {
                                string[] line = element.Split(",");
                                foreach (var element2 in line)
                                {
                                    dados[i, j] = line[j];
                                    j++;
                                }
                                i++;
                                j = 0;
                            }
                            Console.Clear();
                            showDados(dados, qtdLinhas, qtdColunas, version);
                            Console.WriteLine("\nPrecione qualquer tecla para voltar ao menu inicial...");
                            menuback = Console.ReadLine();
                        }
                    }
                    else
                    //Filtrar por Número
                    if (opcao == "2")
                    {
                        bool   error = true;
                        string id;

                        while (error)
                        {
                            Console.WriteLine("Digite o número da OS ou 0 para voltar ao menu inicial:");
                            id = Console.ReadLine();
                            if (id == "0")
                            {
                                error = false;
                            }
                            else
                            {
                                string[] linha = os.returnAllAtributes(pathOs, id);
                                if (linha[0] == "nd")
                                {
                                    Console.WriteLine("Ordem de serviço não encontrada!");
                                }
                                else
                                {
                                    Console.Clear();
                                    Console.WriteLine(version);
                                    Console.WriteLine("-> Menu de Consulta\n");
                                    Console.WriteLine("\nDados da OS:\n");
                                    Console.WriteLine("     Número: {0}", linha[0]);
                                    Console.WriteLine("     Documento do Cliente: {0}", linha[1]);
                                    Console.WriteLine("     Tipo de Veiculo: {0}", linha[2]);
                                    Console.WriteLine("     Placa: {0}", linha[3]);
                                    Console.WriteLine("     Início do Serviço: {0}", linha[4]);
                                    Console.WriteLine("     Previsão de Conclusão: {0}", linha[5]);
                                    Console.WriteLine("     Fim Real do Serviço: {0}", linha[6]);
                                    Console.WriteLine("     Status: {0}", linha[7]);
                                    Console.WriteLine("     Descrição completa: {0}", linha[8]);
                                    Console.WriteLine("\n\n Digite qualquer tecla para voltar ao menu inicial...");
                                    id    = Console.ReadLine();
                                    error = false;
                                }
                            }
                        }
                    }
                    else
                    //Filtrar por Cliente
                    if (opcao == "3")
                    {
                        bool   error   = true;
                        string leitura = "";
                        int    cont    = 0;

                        while (error)
                        {
                            Console.WriteLine("Digite o CPF ou CNPJ do cliente (Somente números) ou 0 para voltar ao menu inicial:");
                            leitura = Console.ReadLine();
                            if (leitura == "0")
                            {
                                error = false;
                            }
                            else
                            {
                                leitura = leitura = Regex.Replace(leitura, "[\\,\\/\\-\\ \\.]", "");
                                if (leitura.Length == 14 || leitura.Length == 11)
                                {
                                    error = false;
                                    if (leitura.Length == 14)
                                    {
                                        leitura = Convert.ToUInt64(leitura).ToString(@"00\.000\.000\/0000\-00");
                                    }
                                    else
                                    {
                                        leitura = Convert.ToUInt64(leitura).ToString(@"000\.000\.000\-00");
                                    }
                                    string[] bd = File.ReadAllLines(pathOs);
                                    foreach (var element in bd)
                                    {
                                        string[] line = element.Split(",");
                                        if (line[1].Contains(leitura))
                                        {
                                            cont++;
                                        }
                                    }
                                    if (cont == 0)
                                    {
                                        Console.Clear();
                                        Console.WriteLine("\n\n     Nenhum OS encontrada para o cliente!");
                                        Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial!");
                                        leitura = Console.ReadLine();
                                    }
                                    else
                                    {
                                        string[,] bd2 = new string[cont, 9];
                                        int cont2 = 0;
                                        foreach (var element in bd)
                                        {
                                            string[] line = element.Split(",");
                                            if (line[1].Contains(leitura))
                                            {
                                                for (int i = 0; i < 9; i++)
                                                {
                                                    bd2[cont2, i] = line[i];
                                                }
                                                cont2++;
                                            }
                                        }

                                        showDados(bd2, cont, 9, version);
                                        Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial...");
                                        leitura = Console.ReadLine();
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("CPF ou CNPJ inválido");
                                    error = true;
                                }
                            }
                        }
                    }
                    else
                    //Filtrar por Status
                    if (opcao == "4")
                    {
                        bool   error = true;
                        string ler;
                        int    qtdLinhas = 0;
                        Console.Clear();
                        Console.WriteLine(version);
                        Console.WriteLine("-> Menu de Consulta\n");
                        Console.WriteLine("Escolha o Status:" +
                                          "\n 1 - {0}" +
                                          "\n 2 - {1}" +
                                          "\n 3 - {2}" +
                                          "\n 4 - {3}", status[0], status[1], status[2], status[3]);
                        while (error)
                        {
                            int leitura = Convert.ToInt32(Console.ReadLine());
                            if (leitura < 0 || leitura > 4)
                            {
                                Console.WriteLine("\nOpção Inválida!\n");
                            }
                            else
                            {
                                error = false;
                                string[] bd = File.ReadAllLines(pathOs);
                                foreach (var element in bd)
                                {
                                    if (element.Contains(status[leitura - 1]))
                                    {
                                        qtdLinhas++;
                                    }
                                }
                                if (qtdLinhas == 0)
                                {
                                    Console.Clear();
                                    Console.WriteLine("\n\n     Nenhuma Ordem de Serviço encontrada no status selecionado!");
                                    Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial...");
                                    ler = Console.ReadLine();
                                }
                                else
                                {
                                    string[,] dados = new string[qtdLinhas, qtdColunas];
                                    int i = 0;
                                    foreach (var element in bd)
                                    {
                                        if (element.Contains(status[leitura - 1]))
                                        {
                                            string[] line = element.Split(",");
                                            for (int j = 0; j < 9; j++)
                                            {
                                                dados[i, j] = line[j];
                                            }
                                            i++;
                                        }
                                    }


                                    showDados(dados, qtdLinhas, qtdColunas, status[leitura - 1]);
                                    Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial...");
                                    ler = Console.ReadLine();
                                }
                            }
                        }
                    }
                }
                else
                //Editar Ordem de Serviço
                if (opcao == "3")
                {
                    Console.Clear();
                    Console.WriteLine(version);
                    Console.WriteLine("-> Editar Ordem de Serviço\n");
                    bool   error = true;
                    string leitura;
                    Console.Write("Digite o número da OS: ");
                    while (error)
                    {
                        leitura = Console.ReadLine();
                        if (leitura.Length > 0)
                        {
                            os.editOS(pathOs, leitura, status, version);
                            error = false;
                        }
                        else
                        {
                            Console.WriteLine("Digite um número válido!");
                        }
                    }
                }
                else
                //Cadastrar Cliente
                if (opcao == "4")
                {
                    Console.Clear();
                    Console.WriteLine(version);
                    Console.WriteLine("-> Gerenciar Clientes\n");
                    Console.WriteLine("Escolha uma das Opções:" +
                                      "\n 1 - Cadastrar Cliente" +
                                      "\n 2 - Consultar Todos os Clientes" +
                                      "\n 3 - Voltar ao menu inicial");
                    opcao = Console.ReadLine();
                    if (opcao == "1")
                    {
                        string ler;
                        bool   error = true;
                        string leitura;
                        Console.WriteLine("Informe o CPF ou CNPJ (Somente os números):");
                        leitura = Console.ReadLine();
                        error   = client.documentInvalid(leitura);
                        while (error)
                        {
                            Console.WriteLine("Informe o CPF ou CNPJ (Somente os números):");
                            leitura = Console.ReadLine();
                            error   = client.documentInvalid(leitura);
                        }

                        if (client.documentExist(leitura, pathClient) == true)
                        {
                            Console.Clear();
                            Console.WriteLine("     \n\nCliente já Cadastrado!\n");
                            string[] dados = client.returnAllAtributes(pathClient, leitura);
                            Console.WriteLine("   Nome do cliente: {0}", dados[0]);
                            Console.WriteLine("   CPF/CNPJ: {0}", dados[1]);
                            Console.WriteLine("   Endereço: {0}", dados[2]);
                            Console.WriteLine("   E-mail: {0}", dados[3]);
                            Console.WriteLine("   Telefone: {0}", dados[4]);
                            Console.WriteLine("\nDigite qualquer tecla para voltar ao menu inicial...");
                            ler = Console.ReadLine();
                        }
                        else
                        {
                            client cliente = new client();
                            client.createClient(cliente, pathClient, leitura, version);
                        }
                    }
                    else
                    if (opcao == "2")
                    {
                        string espaco = "                        ";
                        Console.Clear();
                        Console.WriteLine(version);
                        Console.WriteLine("-> Lista dos Clientes Cadastrados\n");
                        Console.WriteLine("\n\n PARA MELHOR VISUALIZAÇÃO UTILIZE A TELA MAXIMIZADA!\n");
                        Console.WriteLine("Nome                          |CPF/CNPJ          |E-mail                        |Telefone       ");
                        Console.WriteLine("________________________________________________________________________________________________");
                        string[] bd = File.ReadAllLines(pathClient);
                        foreach (var element in bd)
                        {
                            string[] line = element.Split(",");
                            Console.Write(line[0].Length >= 30 ? line[0].Substring(0, 30) : line[0] + espaco.Substring(0, 30 - line[0].Length));
                            Console.Write("|");
                            Console.Write(line[1].Length > 15 ? line[1] : line[1] + espaco.Substring(0, 18 - line[1].Length));
                            Console.Write("|");
                            Console.Write(line[3].Length >= 30 ? line[3].Substring(0, 30) : line[3] + espaco.Substring(0, 30 - line[3].Length));
                            Console.Write("|");
                            Console.Write(line[4]);
                            Console.WriteLine();
                        }
                        Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial...");
                        opcao = Console.ReadLine();
                    }
                }
                else
                if (opcao == "5")
                {
                    bool   error   = true;
                    string leitura = "";
                    double valor;
                    while (error)
                    {
                        Console.Clear();
                        Console.WriteLine(version);
                        Console.WriteLine("-> Emitir Comprovante de Pagamento\n");
                        Console.WriteLine("Informe o número da OS para gerar o comprovante ou 0 para sair: ");
                        leitura = Console.ReadLine();
                        if (leitura == "0")
                        {
                            error = false;
                        }
                        else
                        {
                            string[] dados = os.returnAllAtributes(pathOs, leitura);
                            if (dados[0] == "nd")
                            {
                                Console.Clear();
                                Console.WriteLine("     \n\nOrdem de Serviço Não Localizada!");
                                Thread.Sleep(1000);
                            }
                            else
                            {
                                Comprovante recibo = new Comprovante(Convert.ToInt32(dados[0]), dados[1], dados[2], dados[3], DateTime.Parse(dados[4]), DateTime.Parse(dados[5]), DateTime.Parse(dados[6]), dados[7], dados[8]);
                                Console.WriteLine("Informe a Forma de pagamento: ");
                                leitura            = Console.ReadLine();
                                recibo.PaymentForm = leitura;
                                while (error)
                                {
                                    Console.WriteLine("Informe o Valor do Serviço (R$): ");
                                    leitura = Console.ReadLine().Replace(".", ",");
                                    if (double.TryParse(leitura, out valor))
                                    {
                                        error        = false;
                                        valor        = double.Parse(leitura, NumberStyles.Float);
                                        recibo.Valor = valor;
                                        if (recibo.printComprovante(pathClient))
                                        {
                                            Console.Clear();
                                            Console.WriteLine("\n\n     Recibo Criado Com Sucesso! Vá até a pasta C:\\Comprovantes");
                                            Console.WriteLine("\n\n Precione qualquer tecla para voltar ao menu inicial...");
                                            leitura = Console.ReadLine();
                                        }
                                        else
                                        {
                                            Console.WriteLine("Ops, Algo deu Errado!");
                                        }
                                    }
                                    else
                                    {
                                        Console.WriteLine("Valor Inválido");
                                    }
                                }
                            }
                        }
                    }
                }
                else
                if (opcao == "6")
                {
                    break;
                }
                else
                {
                    Console.WriteLine("Opção Inválida!");
                }
            }
        }