public Desconto CalcularIRRF(double proventos, Desconto doInss)
        {
            double aliquota;
            double faixaIRRF = proventos - doInss.calcular();

            if (faixaIRRF < 1710.18)
            {
                aliquota = 0;
            }
            else if (faixaIRRF < 2563.91)
            {
                aliquota = 7.5;
            }
            else if (faixaIRRF < 3418.59)
            {
                aliquota = 15.0;
            }
            else if (faixaIRRF < 4271.59)
            {
                aliquota = 22.5;
            }
            else
            {
                aliquota = 27.5;
            }
            return(new Desconto(aliquota, faixaIRRF));
        }
        public Demonstrativo GerarDemonstrativo(int horasCategoria, double salarioBase,
                                                double horasExtras, double horasDescontadas)
        {
            double          SalarioBase      = salarioBase;
            double          HrsConvencao     = horasCategoria;
            HorasCalculadas HorasExtras      = CalcularHorasExtras(horasExtras, salarioBase, horasCategoria);
            HorasCalculadas HorasDescontadas = CalcularHorasDescontadas(horasDescontadas, salarioBase, horasCategoria);
            double          totalProventos   = CalcularTotalProventos(salarioBase, HorasExtras, HorasDescontadas);
            Desconto        inss             = CalcularInss(totalProventos);
            Desconto        irrf             = CalcularIRRF(totalProventos, inss);
            double          totalDescontos   = inss.calcular() + irrf.calcular();
            double          totalLiquido     = totalProventos - totalDescontos;
            Desconto        fgts             = new Desconto(11, totalProventos);
            Demonstrativo   aRetornar        = new Demonstrativo(SalarioBase, HrsConvencao, HorasExtras, HorasDescontadas,
                                                                 totalProventos, inss, irrf, totalDescontos, totalLiquido, fgts);

            return(aRetornar);
        }
 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;
 }