public Demonstrativo GerarDemonstrativo(double salarioBase, double horasCategoria, double horasExtras, double horasDescontadas)
        {
            double          valorHora      = ValorHora(salarioBase, horasCategoria);
            HorasCalculadas horaExtra      = new HorasCalculadas(horasExtras, ValorTotalHoras(valorHora, horasExtras));
            HorasCalculadas horaDescontada = new HorasCalculadas(horasDescontadas, ValorTotalHoras(valorHora, horasDescontadas));
            double          proventos      = TotalProventos(salarioBase, horaExtra.ValorTotalHoras, horaDescontada.ValorTotalHoras);
            Desconto        inss           = Inss(proventos);
            Desconto        irrf           = Irrf(proventos - inss.Valor);
            double          descontos      = TotalDescontos(inss.Valor, irrf.Valor);
            double          valorLiquido   = SalarioLiquido(proventos, descontos);
            Desconto        fgts           = Fgts(aliquota, proventos);

            return(new Demonstrativo(salarioBase, horasCategoria, horaExtra, horaDescontada, proventos, inss, irrf, descontos, valorLiquido, fgts));
            //return new Demonstrativo(salarioBase, horasCategoria, horasExtras, horasDescontadas, TotalProventos, valorInss, valorIrrf, valorDescontos, salarioLiquido, 11);
        }
        public Demonstrativo GerarDemonstrativo(int horasCategoria, double salarioBase, double horasExtras, double horasDescontadas)
        {
            double          salarioPorHora             = calcularSalarioPorHora(salarioBase, horasCategoria);
            double          totalHorasDescontadas      = calcularTotalHorasDescontadas(salarioPorHora, horasDescontadas);
            double          totalHorasExtras           = calcularTotalHorasExtras(salarioPorHora, horasExtras);
            HorasCalculadas horasExtrasCalculadas      = new HorasCalculadas(horasExtras, totalHorasExtras);
            HorasCalculadas horasDescontadasCalculadas = new HorasCalculadas(horasDescontadas, totalHorasDescontadas);
            double          totalProventos             = arredondar(calcularTotalProventos(salarioBase, totalHorasExtras, totalHorasDescontadas));
            double          aliquotaINSS   = new aliquotaINSS(totalProventos).Valor();
            double          totalINSS      = arredondar(aliquotaINSS * totalProventos);
            Desconto        inss           = new Desconto(aliquotaINSS, totalINSS);
            double          aliquotaIRRF   = new aliquotaIRRF(totalProventos, totalINSS).Valor();
            double          totalIRRF      = arredondar((totalProventos - totalINSS) * aliquotaIRRF);
            Desconto        irrf           = new Desconto(aliquotaIRRF, totalIRRF);
            double          totalDescontos = irrf.Valor + inss.Valor;
            double          totalLiquido   = totalProventos - totalDescontos;
            double          totalFGTS      = calcularFGTS(totalProventos);
            Desconto        fgts           = new Desconto(0.11, totalFGTS);

            return(new Demonstrativo(salarioBase, horasCategoria, horasExtrasCalculadas, horasDescontadasCalculadas, totalProventos, inss, irrf, totalDescontos, totalLiquido, 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;
 }