public override void AdicionarDeAcordoCom(int mesesAContabilizarOBeneficio, double valorDaParcela, int mesAdmissao) { for (var i = 0; i < mesesAContabilizarOBeneficio; i++) { var parcela = new Parcela { Mes = i + 1, Valor = valorDaParcela }; if (i + 1 >= mesAumentoConvencao) { var salarioAumentoConvencao = CalcularAumentoConvencao(salario, aumentoConvencao); parcela.Valor = Orcamento.Tickets.Where(x => this.Conta.TiposTickets.Any(t => t.Ticket == x.Ticket)).Sum(ticketDeOrcamentoPessoal => (ticketDeOrcamentoPessoal.Valor / 100) * salarioAumentoConvencao); } if (i+ 1 < mesAdmissao && Funcionario.AnoAdmissao == 2016) parcela.Valor = 0; VerificarMesFerias(parcela); Adicionar(parcela); } }
public virtual void Adicionar(Parcela parcela) { Contract.Requires(parcela != null, "A parcela não foi informada"); if (Parcelas == null) Parcelas = new List<Parcela>(); Parcelas.Add(parcela); }
public void calcular_ferias_de_um_ano_deve_ter_10_reais_de_parcela() { Conta conta = new Conta("Test", new TipoConta { Id = 1 }); var ferias = new Ferias(conta, new NovoOrcamentoPessoal(new Setor("nome"), new CentroDeCusto("novo"), 2014)); ferias.Calcular(100, 1, 0, 0); var parcela = new Parcela { Mes = 1, Valor = 11.110833333333334d }; CollectionAssert.Contains(ferias.Parcelas, parcela); }
public void valor_da_parcela_de_recisao_calculada_com_sucesso() { var orcamento = new NovoOrcamentoPessoal(new Setor("Nome"),new CentroDeCusto("nome"),2014); Conta conta = new Conta("TestMethod", new TipoConta { Id = 1 }); orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Descricao = "Indenização", Valor = 1 }); Recisao recisao = new Recisao(2, conta, orcamento); recisao.Calcular(2, 1, 0, 0); Parcela parcela = new Parcela { Mes = 2, Valor = 0.02d }; // CollectionAssert.Contains(recisao.Parcelas, parcela); }
public void teste_calcular_parcela_de_fgts_com_sucesso() { var orcamento = new NovoOrcamentoPessoal(new Setor("Nome"), new CentroDeCusto("novo"), 2014); var conta = new Conta("Test", new TipoConta { Id = 1 }); conta.Adicionar(TipoTicketDePessoal.FGTS); orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "Teste", Valor = 0 }); orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "FGTS", Valor = 8 }); var fgts = new FGTS(conta, orcamento); fgts.Funcionario = new Funcionario(new Hospital("nome")) { AnoAdmissao = 2014, DataAdmissao = 1 }; fgts.Calcular(2, 1, 0, 0); Parcela parcela = new Parcela { Mes = 1, Valor = 0.19111066666666665d}; Assert.AreEqual(fgts.Parcelas.FirstOrDefault().Valor, parcela.Valor); }
public void teste_calcular_parcela_de_salario_com_sucesso() { NovoOrcamentoPessoal orcamento = new NovoOrcamentoPessoal(new Setor("Nome"), new CentroDeCusto("nome"), 2014); Conta conta = new Conta("Test", new TipoConta { Id = 1 }); var salario = new Salario(conta, orcamento); salario.Funcionario = new Funcionario(new Hospital("nome")) { AnoAdmissao = 2014, DataAdmissao = 1 }; salario.Calcular(0.03, 1, 0, 0); Parcela parcela = new Parcela { Mes = 1, Valor = 0.03d }; CollectionAssert.Contains(salario.Parcelas, parcela); }
public virtual void AdicionarDeAcordoCom(int mesesAContabilizarOBeneficio, double valorDaParcela, int mesAdmissao) { Contract.Requires(mesesAContabilizarOBeneficio > default(int), "Total de meses a receber o benefício não foi informado"); for (var i = 0; i < mesesAContabilizarOBeneficio; i++) { var parcela = new Parcela { Mes = i + 1, Valor = valorDaParcela }; if (i + 1 < mesAdmissao && Funcionario.AnoAdmissao == 2014) parcela.Valor = 0; Adicionar(parcela); } }
private void CalcularDespesas(double salario, int MesAdmissao, bool aumentado, double salarioAumentado, int mesAumento, int mesesAcontabilizar) { for (var i = 0; i < mesesAcontabilizar; i++) { double total = 0; if (aumentado && mesAumento <= i + 1) { total = Orcamento.Tickets.Where(x => this.Conta.TiposTickets.Any(t => t.Ticket == x.Ticket)).Sum(ticketDeOrcamentoPessoal => (ticketDeOrcamentoPessoal.Valor / 100) * salarioAumentado); if (i + 1 >= mesAumentoConvencao) { total = Orcamento.Tickets.Where(x => this.Conta.TiposTickets.Any(t => t.Ticket == x.Ticket)).Sum(ticketDeOrcamentoPessoal => (ticketDeOrcamentoPessoal.Valor / 100) * CalcularAumentoConvencao(salarioAumentado, aumentoConvencao)); } } else { total = Orcamento.Tickets.Where(x => this.Conta.TiposTickets.Any(t => t.Ticket == x.Ticket)).Sum(ticketDeOrcamentoPessoal => (ticketDeOrcamentoPessoal.Valor / 100) * salario); if (i + 1 >= mesAumentoConvencao) { total = Orcamento.Tickets.Where(x => this.Conta.TiposTickets.Any(t => t.Ticket == x.Ticket)).Sum(ticketDeOrcamentoPessoal => (ticketDeOrcamentoPessoal.Valor / 100) * CalcularAumentoConvencao(salario, aumentoConvencao)); } } var parcela = new Parcela { Mes = i + 1, Valor = total }; if (i + 1 < MesAdmissao && Funcionario.AnoAdmissao == 2016) parcela.Valor = 0; VerificarMesFerias(parcela); Adicionar(parcela); } }
public virtual void VerificarMesFerias(Parcela parcela) { if (Funcionario.AnoAdmissao < 2014 && parcela.Mes == Funcionario.DataAdmissao) parcela.Valor = 0; }