/// <summary>
        /// Considera valor original + juros e abate os descontos
        /// </summary>
        public static decimal valorComJurosEDescontos(this TituloReceitaPagamentoResumoVW OPagamento)
        {
            decimal valorTotal = new decimal(0);

            decimal valorTotalDescontos = new decimal(0);

            if (OPagamento == null)
            {
                return(valorTotal);
            }

            valorTotal = decimal.Add(OPagamento.valorOriginal.toDecimal(), OPagamento.valorJuros.toDecimal());

            valorTotalDescontos = OPagamento.valorTotalDescontos();

            if (valorTotalDescontos > 0)
            {
                valorTotal = decimal.Subtract(valorTotal, valorTotalDescontos);
            }

            valorTotal = valorTotal < 0 ? 0 : valorTotal;

            valorTotal = Math.Round(valorTotal, 2);

            return(valorTotal);
        }
        //Calcular valor líquido a receber
        public static decimal valorLiquido(this TituloReceitaPagamentoResumoVW OPagamento)
        {
            decimal valorCreditos = new decimal(0);

            decimal valorDebitos = new decimal(0);

            if (OPagamento == null)
            {
                return(new decimal(0));
            }

            valorCreditos = OPagamento.valorOriginal.toDecimal();

            valorDebitos = decimal.Add(OPagamento.valorTotalTarifas(), OPagamento.valorTotalDescontos());

            decimal saldoFinal = decimal.Subtract(valorCreditos, valorDebitos);

            if (OPagamento.dtPagamento != null)
            {
                saldoFinal = decimal.Subtract(OPagamento.valorRecebido.toDecimal(), OPagamento.valorTotalTarifas());
            }
            else
            {
                saldoFinal = decimal.Add(saldoFinal, OPagamento.valorJuros.toDecimal());
            }

            return(saldoFinal);
        }
        //Calcular valor total das tarifas
        public static decimal valorTotalDescontos(this TituloReceitaPagamentoResumoVW OPagamento)
        {
            decimal valorTotalDescontos = new decimal(0);

            if (OPagamento == null)
            {
                return(valorTotalDescontos);
            }

            if (OPagamento.valorDesconto > 0)
            {
                valorTotalDescontos = decimal.Add(valorTotalDescontos, OPagamento.valorDesconto.toDecimal());
            }

            if (OPagamento.valorDescontoCupom > 0)
            {
                valorTotalDescontos = decimal.Add(valorTotalDescontos, OPagamento.valorDescontoCupom.toDecimal());
            }

            if (OPagamento.valorDescontoAntecipacao > 0)
            {
                valorTotalDescontos = decimal.Add(valorTotalDescontos, OPagamento.valorDescontoAntecipacao.toDecimal());
            }


            return(valorTotalDescontos);
        }
        //Calcular valor total das tarifas
        public static decimal valorTotalTarifas(this TituloReceitaPagamentoResumoVW OPagamento)
        {
            decimal valorTotal = new decimal(0);

            if (OPagamento == null)
            {
                return(valorTotal);
            }

            if (OPagamento.valorTarifasBancarias > 0)
            {
                valorTotal = Decimal.Add(valorTotal, UtilNumber.toDecimal(OPagamento.valorTarifasBancarias));
            }

            if (OPagamento.valorTarifasTransacao > 0)
            {
                valorTotal = Decimal.Add(valorTotal, UtilNumber.toDecimal(OPagamento.valorTarifasTransacao));
            }

            if (OPagamento.valorOutrasTarifas > 0)
            {
                valorTotal = Decimal.Add(valorTotal, UtilNumber.toDecimal(OPagamento.valorOutrasTarifas));
            }

            return(valorTotal);
        }
        //Classes CSS situacao financeira Associado
        public static string exibirClasseStatus(this TituloReceitaPagamentoResumoVW OPagamento)
        {
            if (OPagamento.dtPagamento == null && OPagamento.dtVencimentoRecebimento < DateTime.Today)
            {
                return("text-red");
            }

            string descricaoAtivo = (OPagamento.idStatusPagamento == StatusPagamentoConst.PAGO ? "text-green" : (OPagamento.idStatusPagamento == StatusPagamentoConst.CANCELADO || OPagamento.idStatusPagamento == StatusPagamentoConst.ESTORNADO ? "text-red" : "text-yellow"));

            return(descricaoAtivo);
        }
        //Icone FA situacao financeira Associado
        public static string exibirIconeStatus(this TituloReceitaPagamentoResumoVW OPagamento)
        {
            if (OPagamento.dtPagamento == null && OPagamento.dtVencimentoRecebimento < DateTime.Today)
            {
                return("fa-ban");
            }

            string descricaoAtivo = (OPagamento.idStatusPagamento == StatusPagamentoConst.PAGO ? "fa-check" : (OPagamento.idStatusPagamento == StatusPagamentoConst.CANCELADO || OPagamento.idStatusPagamento == StatusPagamentoConst.ESTORNADO ? "fa-ban" : "fa-exclamation"));

            return(descricaoAtivo);
        }