public Demonstrativo GerarDemonstrativo(int horasCategoria, double salarioBase, double horasExtras, double horasDescontadas)
        {
            //Quanto o colaborador ganha por hora
            var ValorHora = TruncarValor(salarioBase / horasCategoria);
            //Calcula valor das horas (extras e descontadas)
            var valorHorasExtras   = calcularHoras(horasExtras, ValorHora);
            var valorHorasDesconto = calcularHoras(horasDescontadas, ValorHora);
            //Inicia o objeto de horas extras e horas descontadas
            var TotalHorasExtras      = new HorasCalculadas(horasExtras, valorHorasExtras);
            var TotalHorasDescontadas = new HorasCalculadas(horasDescontadas, valorHorasDesconto);


            var TotalDeProventos = TruncarValor(salarioBase + TotalHorasExtras.ValorTotalHoras - TotalHorasDescontadas.ValorTotalHoras);

            var aliquotaINSS = CalcularAliquotaINSS(TotalDeProventos);
            var INSS         = new Desconto(aliquotaINSS, TruncarValor(aliquotaINSS * TotalDeProventos));

            var aliquotaIRRF = CalcularAliquotaIRRF(TotalDeProventos - INSS.Valor);
            var IRRF         = new Desconto(aliquotaIRRF, TruncarValor(aliquotaIRRF * (TotalDeProventos - INSS.Valor)));

            var TotalDescontos = INSS.Valor + IRRF.Valor;
            var SalarioLiquido = TruncarValor(TotalDeProventos - TotalDescontos);
            var FGTS           = new Desconto((11d / 100d), TruncarValor((11d / 100d) * TotalDeProventos));

            Demonstrativo Demonstrativo = new Demonstrativo
                                          (
                salarioBase,
                horasCategoria,
                TotalHorasExtras,
                TotalHorasDescontadas,
                TotalDeProventos,
                INSS,
                IRRF,
                TotalDescontos,
                SalarioLiquido,
                FGTS
                                          );

            //Demonstrativo.LogarDemonstrativo();

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