Beispiel #1
0
 private DadosAtrasoRetorno Calcular(DadosAtraso dados)
 {
     return(new DadosAtrasoRetorno
     {
         Juros = ((dados.DiasAtraso * dados.Juros / 100M) * dados.Valor).Rnd2(),
         Multa = (dados.Valor * (dados.Multa / 100M)).Rnd2(),
         Valor = dados.Valor
     });
 }
Beispiel #2
0
        public ContasListagem AdicionarContas(ContasInclusao conta)
        {
            var dados   = new DadosAtraso();
            var calculo = new DadosAtrasoRetorno();
            var retorno = ContasListagemMap(conta);

            if (retorno.DiasAtraso > 0)
            {
                dados = new DadosAtraso
                {
                    DiasAtraso = retorno.DiasAtraso,
                    Valor      = conta.ValorOriginal
                };

                switch (dados.DiasAtraso)
                {
                case int n when(n > 0 && n <= 3):
                    dados.Juros = 0.1M;

                    dados.Multa = 2M;
                    break;

                case int n when(n > 3 && n < 5):
                    dados.Juros = 0.2M;

                    dados.Multa = 3M;
                    break;

                case int n when(n > 5):
                    dados.Juros = 0.3M;

                    dados.Multa = 5M;
                    break;

                default:
                    break;
                }
                calculo = this.Calcular(dados);
                retorno.ValorCorrigido = calculo.ValorCorrigido;
            }
            else
            {
                dados.Valor            = conta.ValorOriginal;
                retorno.ValorCorrigido = conta.ValorOriginal;
            }
            var contaModel = ContasMap(retorno);

            contaModel.DataVencimento = DateTime.Parse(conta.Vencimento);
            contaModel.PercJuros      = dados.Juros;
            contaModel.PercMulta      = dados.Multa;
            contaModel.ValorJuros     = calculo.Juros;
            contaModel.ValorMulta     = calculo.Multa;
            _context.Contas.Add(contaModel);
            _context.SaveChanges();
            return(retorno);
        }