public Demonstrativo( double salarioBase, double hrsConvencao, HorasCalculadas horasExtras, HorasCalculadas horasDescontadas, double totalProventos, Desconto inss, Desconto irrf, double totalDescontos, double totalLiquido, Desconto fgts) { SalarioBase = salarioBase; HrsConvencao = hrsConvencao; HorasExtras = horasExtras; HorasDescontadas = horasDescontadas; TotalProventos = totalProventos; Inss = inss; Irrf = irrf; TotalDescontos = totalDescontos; TotalLiquido = totalLiquido; Fgts = fgts; }
public Demonstrativo GerarDemonstrativo(int horasCategoria, double salarioBase, double horasExtras, double horasDescontadas) { double valorHora = Math.Truncate(100 * (salarioBase / horasCategoria)) / 100; HorasCalculadas totalHorasExtras = new HorasCalculadas(horasExtras, horasExtras * valorHora); HorasCalculadas totalHorasDescontadas = new HorasCalculadas(horasDescontadas, horasDescontadas * valorHora); double totalProventos = Math.Truncate(100 * (salarioBase + totalHorasExtras.ValorTotalHoras - totalHorasDescontadas.ValorTotalHoras)) / 100; //INSS double aliqINSS = aliquotaINSS(totalProventos); Desconto INSS = new Desconto(aliqINSS, calculaImposto(totalProventos, aliqINSS)); //IRRF double aliqIRRF = aliquotaIRRF(totalProventos - INSS.Valor); Desconto IRRF = new Desconto(aliqIRRF, calculaImposto(totalProventos - INSS.Valor, aliqIRRF)); //DESCONTOS Double totalDescontos = INSS.Valor + IRRF.Valor; //LIQUIDO Double salarioLiquido = Math.Truncate(100 * (totalProventos - totalDescontos)) / 100; //FGTS: Fundo de garantia sobre tempo de serviço deve ser apenas discriminado 11% fixo. Desconto valorFgts = new Desconto(0.11, Math.Truncate(100 * (totalProventos * 0.11)) / 100); Demonstrativo demonstrativo = new Demonstrativo(salarioBase, horasCategoria, totalHorasExtras, totalHorasDescontadas, totalProventos, INSS, IRRF, totalDescontos, salarioLiquido, valorFgts); return(demonstrativo); }