public Demonstrativo GerarDemonstrativo(int horasCategoria, double salarioBase, double horasExtras, double horasDescontadas) { double valorHora = salarioBase / horasCategoria; HorasCalculadas extras = new HorasCalculadas(horasExtras, Math.Round((valorHora * horasExtras), 2)); HorasCalculadas descontadas = new HorasCalculadas(horasDescontadas, Math.Round((valorHora * horasDescontadas), 2)); double totalProventos = Math.Truncate(salarioBase + extras.ValorTotalHoras - descontadas.ValorTotalHoras); Desconto inss = INSS(totalProventos); Desconto irrf = IRRF(totalProventos, inss); Desconto fgts = FGTS(totalProventos); double totalDescontos = Math.Truncate(inss.Valor + fgts.Valor); double salarioLiquido = Math.Truncate(salarioBase - totalDescontos); Demonstrativo d = new Demonstrativo( Math.Truncate(salarioBase), horasCategoria, extras, descontadas, totalProventos, inss, irrf, totalDescontos, salarioLiquido, fgts); return(d); }
public Demonstrativo GerarDemonstrativo(int horasCategoria, double salarioBase, double horasExtras, double horasDescontadas) { double PrecoPorHoras = Math.Round(salarioBase / horasCategoria, 2); HorasCalculadas CustoHorasExtras = new HorasCalculadas(horasExtras, PrecoPorHoras); HorasCalculadas TotalHorasDescontadas = new HorasCalculadas(horasDescontadas, PrecoPorHoras); double TotalDeProventos = Math.Round(salarioBase + CustoHorasExtras.Calcular() - TotalHorasDescontadas.Calcular(), 2); Desconto INSS = new Desconto(INSS_aliquota(TotalDeProventos), TotalDeProventos); Desconto IRRF = new Desconto(IRRF_aliquota(TotalDeProventos - INSS.CalcularDesconto()), TotalDeProventos - INSS.CalcularDesconto()); double TotalDescontos = INSS.CalcularDesconto() + IRRF.CalcularDesconto(); double SalarioLiquido = Math.Round(TotalDeProventos - TotalDescontos, 2); Desconto FGTS = new Desconto((11 / 100), TotalDeProventos); Demonstrativo modelo = new Demonstrativo(salarioBase, horasCategoria, CustoHorasExtras, TotalHorasDescontadas, TotalDeProventos, INSS, IRRF, TotalDescontos, SalarioLiquido, FGTS); modelo.demonstrativoNoConsole(); return(modelo); }