Ejemplo n.º 1
0
        public decimal Calcular(decimal valorOriginal, int quantidadeDiasVencido)
        {
            if (quantidadeDiasVencido <= 0)
            {
                return(valorOriginal);
            }

            var tipoRegra = TipoRegraEnum.AteTresDias;

            if (quantidadeDiasVencido > 3 && quantidadeDiasVencido <= 5)
            {
                tipoRegra = TipoRegraEnum.SuperiorTresAteCincoDias;
            }

            if (quantidadeDiasVencido > 5)
            {
                tipoRegra = TipoRegraEnum.SuperiorCincoDias;
            }

            var regra = _regraContaPagarJurosMultaRepository.GetAll().FirstOrDefault(x => x.TipoRegra == tipoRegra);

            if (regra == null)
            {
                throw new System.Exception("Deve ser parametrizado as regras de cálculo de juros e multa previamente!");
            }

            var valorMulta = (valorOriginal * (regra.Multa / 100));
            var valorJuros = valorOriginal * ((regra.JurosAoDia * quantidadeDiasVencido) / 100);

            return(valorOriginal + valorMulta + valorJuros);
        }
Ejemplo n.º 2
0
        public void SetUp()
        {
            regraContaPagarJurosMultaRepositoryMock = Substitute.For <IRegraContaPagarJurosMultaRepository>();
            regraContaPagarJurosMultaRepositoryMock.GetAll().Returns(PreencherRegrasContasPagar());

            calculoMultaJurosContaPagar = new CalculoMultaJurosContaPagar(regraContaPagarJurosMultaRepositoryMock);

            valorOriginalContaPagar = 1000M;
            quantidadeDiasVencido   = 6;
        }