Esempio n. 1
0
        public void NaoAprovarCreditoJuridicoValorMinimo()
        {
            var handler = new LiberacaoCreditoHandler();
            var command = new LiberacaoCreditoJuridicaCommand();

            command.ValorCredito       = "14.999,00";
            command.Parcelas           = "5";
            command.PrimeiroVencimento = DateTime.Now.AddDays(30).ToString();

            var result = (CommandResult)handler.Handle(command);

            Assert.AreEqual(true, ((Juridica)result.Data).Status.Equals(EStatusLiberacaoCredito.Recusado));
        }
Esempio n. 2
0
        public ICommandResult Handle(LiberacaoCreditoJuridicaCommand command)
        {
            command.Validate();
            if (command.Invalid)
            {
                AddNotifications(command);
                return(new CommandResult(false, "Não foi possível a Liberação de Crédito de Pessoa Jurídica", null));
            }

            //Validacoes
            if (!decimal.TryParse(command.ValorCredito, out decimal valorCredito))
            {
                AddNotification("LiberacaoCreditoFisicaCommand.ValorCredito", "O valor de crédito é inválido");
            }
            if (!int.TryParse(command.Parcelas, out int parcelas))
            {
                AddNotification("LiberacaoCreditoFisicaCommand.Parcelas", "O número de parcelas é inválido");
            }
            if (!DateTime.TryParse(command.PrimeiroVencimento, out DateTime primeiroVencimento))
            {
                AddNotification("LiberacaoCreditoFisicaCommand.PrimeiroVencimento", "A data do primeiro vencimento é inválida");
            }

            if (Invalid)
            {
                return(new CommandResult(false, "Não foi possível a Liberação de Crédito de Pessoa Jurídica", null));
            }

            //Gerar a Entidade de Liberacao de Credito
            var juridica = new Juridica(valorCredito, parcelas, primeiroVencimento);

            //Aprovar ou Reprovar
            juridica.Aprovar();

            //Calcular Juros
            juridica.CalcularJuros();

            if (juridica.Invalid)
            {
                return(new CommandResult(false, "Não foi possível calcular o Juros de Crédito de Pessoa Jurídica", null));
            }

            return(new CommandResult(true, $"Status do crédito: {juridica.StatusString} | Valor total com juros: {juridica.ValorTotalComJurosString} | Valor do juros: {juridica.ValorJurosString} ", juridica));
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            System.Console.Write("Digite o valor do crédito:");
            string valorCredito = System.Console.ReadLine();

            System.Console.Write("Digite o tipo de crédito (1 - Direto | 2 - Consignado | 3 - Pessoa Jurídica | 4 - Pessoa Física | 5 - Imobiliário):");
            string tipoCredito = System.Console.ReadLine();

            System.Console.Write("Digite a quantidade de parcelas:");
            string parcelas = System.Console.ReadLine();

            System.Console.Write("Digite a data do primeiro vencimento:");
            string primeiroVencimento = System.Console.ReadLine();

            var handler = new LiberacaoCreditoHandler();

            if (tipoCredito.Contains("1"))
            {
                var command = new LiberacaoCreditoDiretoCommand();
                command.ValorCredito       = valorCredito;
                command.Parcelas           = parcelas;
                command.PrimeiroVencimento = primeiroVencimento;
                var result = (CommandResult)handler.Handle(command);
                System.Console.Write(result.Message);
            }
            else if (tipoCredito.Contains("2"))
            {
                var command = new LiberacaoCreditoConsignadoCommand();
                command.ValorCredito       = valorCredito;
                command.Parcelas           = parcelas;
                command.PrimeiroVencimento = primeiroVencimento;
                var result = (CommandResult)handler.Handle(command);
                System.Console.Write(result.Message);
            }
            else if (tipoCredito.Contains("3"))
            {
                var command = new LiberacaoCreditoJuridicaCommand();
                command.ValorCredito       = valorCredito;
                command.Parcelas           = parcelas;
                command.PrimeiroVencimento = primeiroVencimento;
                var result = (CommandResult)handler.Handle(command);
                System.Console.Write(result.Message);
            }
            else if (tipoCredito.Contains("4"))
            {
                var command = new LiberacaoCreditoFisicaCommand();
                command.ValorCredito       = valorCredito;
                command.Parcelas           = parcelas;
                command.PrimeiroVencimento = primeiroVencimento;
                var result = (CommandResult)handler.Handle(command);
                System.Console.Write(result.Message);
            }
            else if (tipoCredito.Contains("5"))
            {
                var command = new LiberacaoCreditoImobiliarioCommand();
                command.ValorCredito       = valorCredito;
                command.Parcelas           = parcelas;
                command.PrimeiroVencimento = primeiroVencimento;
                var result = (CommandResult)handler.Handle(command);
                System.Console.Write(result.Message);
            }
        }