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);
        }