public void ValorHoraExtraDeveSer30PorCentoDaHoraNormal() { var horaExtra = 1; var folhaPonto = new FolhaPonto(PontoDigital.Obter(DateTime.Now.AddMonths(-1)).Generate(10)); var pagamento = new Pagamento(Funcionario.Obter().Generate(), folhaPonto); var valorHora = pagamento.CalcularHoraNormal(horaExtra); pagamento.CalcularHoraExtra(horaExtra).Should().Be(valorHora * 1.3m); }
public void ValorDoCalculoHoraDeveSerCem() { var horasTrabalhadas = 10; var funcionario = Funcionario.Obter().Generate(); funcionario.ValorHora = 10; var folhaPonto = new FolhaPonto(PontoDigital.Obter(DateTime.Now.AddMonths(-1)).Generate(10)); var pagamento = new Pagamento(funcionario, folhaPonto); pagamento.CalcularHoraNormal(horasTrabalhadas).Should().Be(100); }
public static FolhaPonto ReportarHoras(FolhaPonto folhaPonto) { var cargaHorariaNormal = 0D; var cargaExtra = 0D; foreach (var ponto in folhaPonto) { cargaHorariaNormal += ponto.ObterCargaHoraria(); if (ponto.TemHoraExtra()) { cargaExtra += ponto.ObterCargaExtra(); } } folhaPonto.InformarCarga(cargaHorariaNormal, cargaExtra); return(folhaPonto); }
public static Pagamento CalcularPagamento(FolhaPonto folhaPonto) { var valorTotalHoraNormal = 0m; var valorTotalExtra = 0m; var pagamento = new Pagamento(folhaPonto.Funcionario, folhaPonto); foreach (var ponto in folhaPonto) { var cargaHorariaDoDia = ponto.ObterCargaHoraria(); valorTotalHoraNormal = pagamento.CalcularHoraNormal(cargaHorariaDoDia); if (ponto.TemHoraExtra()) { var cargaExtra = ponto.ObterCargaExtra(); valorTotalExtra += pagamento.CalcularHoraExtra(cargaExtra); } } pagamento.PagoEm = new DateTime(folhaPonto.Inicio.Year, folhaPonto.Inicio.Month, 5); pagamento.InformarSalario(valorTotalHoraNormal, valorTotalExtra); return(pagamento); }
public Fechamento Adicionar(FolhaPonto folhaPonto) { FolhaPonto = folhaPonto; return(this); }
private FolhaPonto RelatoHoras(DateTime inicioCiclo) { var folhaPonto = FolhaPonto.ComputarPeriodo(_funcionario, inicioCiclo); return(RelatorioHoras.ReportarHoras(folhaPonto)); }
private Pagamento CalcularPagamento(DateTime inicioCiclo) { var folhaPonto = FolhaPonto.ComputarPeriodo(_funcionario, inicioCiclo); return(CalculadoraPagamento.CalcularPagamento(folhaPonto)); }