Пример #1
0
        private bool ValidaEntrada(ParametrosCredito pc)
        {
            DateTime dtAtualMinino = DateTime.Now.AddDays(15);
            DateTime dtAtualMaximo = DateTime.Now.AddDays(40);

            if (pc.ValorCredito > 1000000)
            {
                return(false);
            }

            if (pc.QtdParcela > 72 || pc.QtdParcela < 5)
            {
                return(false);
            }

            if ((int)TipoCredito.CreditoPessoaJuridica == pc.TipoCredito && pc.ValorCredito < 15000)
            {
                return(false);
            }

            if (pc.DtPrimeiroVen < dtAtualMinino || pc.DtPrimeiroVen > dtAtualMaximo)
            {
                return(false);
            }

            return(true);
        }
Пример #2
0
        public Resultado CalculaCredito(ParametrosCredito pc)
        {
            Resultado result  = new Resultado();
            decimal   txJuros = 0;
            bool      ok      = ValidaEntrada(pc);

            if (ok)
            {
                switch (pc.TipoCredito)
                {
                case (int)TipoCredito.CreditoDireto:
                {
                    txJuros = 2;
                    break;
                }

                case (int)TipoCredito.CreditoConsignado:
                {
                    txJuros = 1;
                    break;
                }

                case (int)TipoCredito.CreditoPessoaJuridica:
                {
                    txJuros = 5;
                    break;
                }

                case (int)TipoCredito.CreditoPessoaFisica:
                {
                    txJuros = 3;
                    break;
                }

                case (int)TipoCredito.CreditoImobiliario:
                {
                    txJuros = (9 / 12);
                    break;
                }
                }
                /*Para este exercício, os juros são calculados da seguinte forma, incremente a porcentagem de juros no valor total do crédito.*/
                var juros = (pc.ValorCredito * (pc.QtdParcela * txJuros) / 100);
                //var juros = (pc.ValorCredito * txJuros / 100);

                result.VtTotalComJuros = pc.ValorCredito + juros;
                result.VlJuros         = (decimal)juros;
                result.Status          = true;
            }


            return(result);
        }
Пример #3
0
        static void Main(string[] args)
        {
            ParametrosCredito pc           = new ParametrosCredito();
            string            entrada      = string.Empty;
            decimal           valorCredito = 0m;
            int      tipoCredito           = 0;
            int      qtdParcela            = 0;
            DateTime dtPrimeiroVen;

            // Valor Credito
            while (true)
            {
                Console.WriteLine("Informe o valor do crédito:");
                entrada = Console.ReadLine();

                if (!string.IsNullOrEmpty(entrada))
                {
                    bool success = decimal.TryParse(entrada, out valorCredito);
                    if (success)
                    {
                        pc.ValorCredito = Convert.ToDecimal(entrada);
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Valor do crédito inválido.");
                    }
                }
                else
                {
                    Console.WriteLine("Valor do crédito não informado.");
                }
            }

            Console.WriteLine("\n");

            //Tipo crédito
            while (true)
            {
                Console.WriteLine("Informe o código do tipo de crédito:");
                Console.WriteLine("Cód - Tipo\n" +
                                  "1 - Credito Direto.\n" +
                                  "2 - Credito Consignado.\n" +
                                  "3 - Credito Pessoa Jurídica.\n" +
                                  "4 - Credito Pessoa Física.\n" +
                                  "5 - Credito Imobiliário.\n");

                entrada = Console.ReadLine();

                if (!string.IsNullOrEmpty(entrada))
                {
                    bool success = int.TryParse(entrada, out tipoCredito);
                    if (success)
                    {
                        pc.TipoCredito = Convert.ToInt32(entrada);
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Tipo de crédito inválido.");
                    }
                }
                else
                {
                    Console.WriteLine("Tipo de crédito não informado.");
                }
            }
            Console.WriteLine("\n");

            //QtdParcela
            while (true)
            {
                Console.WriteLine("Informe quantidade de parcelas ( Quantidade de parcelas máximas é de 72x e a mínima é de 5x ) :");
                entrada = Console.ReadLine();

                if (!string.IsNullOrEmpty(entrada))
                {
                    bool success = int.TryParse(entrada, out qtdParcela);
                    if (success)
                    {
                        pc.QtdParcela = Convert.ToInt32(entrada);
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Quantidade de parcelas inválida.");
                    }
                }
                else
                {
                    Console.WriteLine("Quantidade de parcelas não informada.");
                }
            }

            Console.WriteLine("\n");

            //DtVencimento
            while (true)
            {
                Console.WriteLine("Informe a data do primeiro vencimento( Deve ser preenchido no formato DD/MM/AAAA ):");
                entrada = Console.ReadLine();

                if (!string.IsNullOrEmpty(entrada))
                {
                    bool success = DateTime.TryParse(entrada, out dtPrimeiroVen);
                    if (success)
                    {
                        pc.DtPrimeiroVen = Convert.ToDateTime(entrada);
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Formato de data inválido.");
                    }
                }
                else
                {
                    Console.WriteLine("Data não informada.");
                }
            }

            //Chama metodo de calculo
            RulesCredito rc     = new RulesCredito();
            Resultado    result = rc.CalculaCredito(pc);

            Console.WriteLine("\n");
            //Mostra resultado
            if (result.Status)
            {
                Console.WriteLine("Status do crédito 'APROVADO'");
                Console.WriteLine(string.Format("Valor total com juros R${0}", result.VtTotalComJuros));
                Console.WriteLine(string.Format("Valor do juros R${0}", result.VlJuros));
            }

            else
            {
                Console.WriteLine("Status do crédito 'RECUSADO'.");
            }

            Console.ReadKey();
        }