public Demonstrativo GerarDemonstrativo(int horasBase, double salarioBase, double horasExtras, double horasDescontadas) { //Categoria = horasBase //Saláriobase: //Console.WriteLine("Salario Base" + salarioBase); double valorHora = TruncarValor(salarioBase / horasBase); //Valor Hora: é o Salário - base dividido pelo número de horas estabelecido pela convenção. double valorTotalExtras = TruncarValor(valorHora * horasExtras); HorasCalculadas HorasExtras = new HorasCalculadas(horasExtras, valorTotalExtras); //Horas Extras: A quantidade de horas extras realizadas pelo colaborador na Folha do Ponto que serão pagas. double valorTotalDescontadas = TruncarValor(valorHora * horasDescontadas); HorasCalculadas HorasDescontadas = new HorasCalculadas(horasDescontadas, valorTotalDescontadas); //Horas Descontadas: A quantidade de horas (faltas, atrasos, etc) não justificadas pelo colaborador na Folha do Ponto que serão descontadas. double TotalProventos = TruncarValor(salarioBase + HorasExtras.ValorTotalHoras - HorasDescontadas.ValorTotalHoras); //Total de Proventos: A soma do Salário-base + Total Horas Extras - Total Horas Descontadas. double impostoINSS = salarioBase <= 1500.0 ? salarioBase <= 1000.0? 0.08: 0.09 : 0.1; //Até R$1000,00 utilize 8 %, até R$1500,00 9 % e acima disso 10 %. double valorINSS = TruncarValor(TotalProventos * impostoINSS); //INSS: Calcule o INSS com base no Total de Proventos e aplique a alíquota conforme as faixas salariais: Desconto INSS = new Desconto(impostoINSS, valorINSS); double valorFaixaIRRF = TotalProventos - valorINSS; double impostoIRRF = valorFaixaIRRF <= 4271.59 ? valorFaixaIRRF <= 3418.59 ? valorFaixaIRRF <= 2563.91 ? valorFaixaIRRF <= 1710.78 ? .0 : .075 : .15 : .225 : 0.275; //Aplique a aliquota conforme as faixas: até R$1710.78 isento, até R$2563.91 7,5 %, até R$3418.59 15 %, até R$4271.59 22,5 % e acima disso 27,5 %. double valorIRRF = TruncarValor(valorFaixaIRRF * impostoIRRF); //Imposto de renda retido na fonte(IRRF): Considere como base cálculo o Total de Proventos deduzido o INSS. Desconto IRRF = new Desconto(impostoIRRF, valorIRRF); double TotalDescontos = INSS.Valor + IRRF.Valor; //Total de descontos:é a soma do INSS e do IRRF. double SalarioLiquido = TruncarValor(TotalProventos - TotalDescontos); //Salário líquido: A remuneração a ser repassada(transferida) para o colaborador.Para o cálculo some o Total de Proventos -Total de Descontos. double valorFGTS = TruncarValor(TotalProventos * 0.11); Desconto FGTS = new Desconto(0.11, valorFGTS); //FGTS: Fundo de garantia sobre tempo de serviço deve ser apenas discriminado 11 % fixo. return(new Demonstrativo(salarioBase, horasBase, HorasExtras, HorasDescontadas, TotalProventos, INSS, IRRF, TotalDescontos, SalarioLiquido, FGTS)); }
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; }