Beispiel #1
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);
        }
 public IActionResult AddContas([FromBody][Required] ContasInclusao conta)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     else
     {
         return(StatusCode(200, contasService.AdicionarContas(conta)));
     }
 }
Beispiel #3
0
        private ContasListagem ContasListagemMap(ContasInclusao conta)
        {
            var ret = new ContasListagem
            {
                Nome           = conta.Nome,
                DataPagamento  = DateTime.Parse(conta.Pagamento),
                ValorOriginal  = conta.ValorOriginal,
                DiasAtraso     = DateTime.Parse(conta.Pagamento).Subtract(DateTime.Parse(conta.Vencimento)).Days > 0 ? DateTime.Parse(conta.Pagamento).Subtract(DateTime.Parse(conta.Vencimento)).Days : 0,
                ValorCorrigido = 0M
            };

            return(ret);
        }