private ImpostoDeRenda(Contribuinte contribuinte, decimal salarioMinimo) { // Armazena os valores Contribuinte = contribuinte; SalarioMinimo = salarioMinimo; // Instancia a validação new ValidationContract <ImpostoDeRenda>(this) .IsGreaterThan(x => x.SalarioMinimo, 1) .IsNotNull(Contribuinte, "O contribuinte não pode ser vazio"); // Verifica se o contribuinte não está vazio if (base.IsValid()) { // Cria a aliquota para o contribuinte Aliquota = Aliquota.Novo(CalcularRendaLiquida(), SalarioMinimo); // Adiciona as notificações da aliquota e do contribuinte. if (Contribuinte.Notifications != null) { base.AddNotifications(Contribuinte.Notifications); } base.AddNotifications(Aliquota.Notifications); } }
public static void Initialize(CalculatorContext context) { context.Database.EnsureCreated(); // Look for any students. if (context.Aliquotas.Any()) { return; // DB has been seeded } var aliquotas = new Aliquota[] { new Aliquota { SalarioMax = 2, Porcentagem = 0 }, new Aliquota { SalarioMin = 2, SalarioMax = 4, Porcentagem = 7.5m }, new Aliquota { SalarioMin = 4, SalarioMax = 5, Porcentagem = 15 }, new Aliquota { SalarioMin = 5, SalarioMax = 7, Porcentagem = 22.5m }, new Aliquota { SalarioMin = 7, Porcentagem = 27.5m }, }; foreach (Aliquota a in aliquotas) { context.Aliquotas.Add(a); } context.SaveChanges(); }
public Aliquota FindByCodigo(Aliquota aliquota) { var findAliq = db.Aliquota.FirstOrDefault(a => a.Codigo.Equals(aliquota.Codigo)); if (findAliq == null) { throw new Exception( string.Format("A alíquota {0} não está cadastrada! Informe ao administrador do sistema" , aliquota)); } return(findAliq); }
public void Fundo_Calcula_Imposto_Renda() { //Given var investimento = _fixture.Create <Fundo>(); var aliquota = new Aliquota(0.15m); var valorImpostoRendaEsperado = investimento.Rentabilidade * aliquota.Percentual; //When investimento.CalculaImpostoRenda(); //Then Assert.Equal(valorImpostoRendaEsperado, investimento.ValorImpostoRenda); }
public AliquotaServiceTest() { _aliquotaMockService = new Mock<IAliquotaService>(); _aliquotaNotEmpty = new Aliquota { Id = new Guid(), Porcentagem = 10, SalarioMax = 10, SalarioMin = 0 }; _aliquotaEmpty = null; }
protected virtual Aliquota CalculaAliquotaParaResgate() { // Aliquota padrão Aliquota aliquotaParaResgate = 0.30M; if (MaisDaMetadeDoTempoEmCustodia()) { aliquotaParaResgate = 0.15m; } else if (VencimentoOcorreEmAteTresMeses()) { aliquotaParaResgate = 0.06m; } return(aliquotaParaResgate); }
public void Renda_Fixa_Calcula_Valor_Resgate_Custodia_Acima_Metade_Tempo() { //Given var valorInvestido = 100m; Aliquota aliquotaEsperada = 0.15m; var valorResgateEsperado = valorInvestido - (valorInvestido * aliquotaEsperada.Percentual); var vencimento = DateTime.Today.AddDays(1); var compra = DateTime.Today.AddDays(-2); //When var investimento = Investimento.Factor.Criar <RendaFixa>( nome: _fixture.Create <string>(), valorInvestido: valorInvestido, valorTotal: _fixture.Create <decimal>(), vencimento: vencimento, compra: compra); //Then Assert.Equal(valorResgateEsperado, investimento.ValorResgate); }
public void Fundo_Calcula_Valor_Resgate_Padrao() { //Given var valorInvestido = 100m; Aliquota aliquotaEsperada = 0.3m; var valorResgateEsperado = valorInvestido - (valorInvestido * aliquotaEsperada.Percentual); var vencimento = DateTime.Today.AddYears(1); var compra = DateTime.Today; //When var investimento = Investimento.Factor.Criar <Fundo>( nome: _fixture.Create <string>(), valorInvestido: valorInvestido, valorTotal: _fixture.Create <decimal>(), vencimento: vencimento, compra: compra); //Then Assert.Equal(valorResgateEsperado, investimento.ValorResgate); }
public void Renda_Fixa_Calcula_Valor_Resgate_Vencimento_Menor_Tres_Meses() { //Given var valorInvestido = 100m; Aliquota aliquotaEsperada = 0.06m; var valorResgateEsperado = valorInvestido - (valorInvestido * aliquotaEsperada.Percentual); var totalDiasTresMeses = (365.25 / 12) * 3; var vencimento = DateTime.Today.AddDays(totalDiasTresMeses - 1); var compra = DateTime.Today; //When var investimento = Investimento.Factor.Criar <RendaFixa>( nome: _fixture.Create <string>(), valorInvestido: valorInvestido, valorTotal: _fixture.Create <decimal>(), vencimento: vencimento, compra: compra); //Then Assert.Equal(valorResgateEsperado, investimento.ValorResgate); }
public ValorNota() { Aliquota = new Aliquota(); }
public ValorProduto() { Aliquota = new Aliquota(); }