public ActionResult modelRegistrarPagamento(int id)
        {
            var ViewModel = new BaixaTituloReceitaForm();

            int idTituloReceita = id;

            ViewModel.TituloReceita = this.OTituloReceitaBL.carregar(idTituloReceita) ?? new TituloReceita();

            if (ViewModel.TituloReceita.id == 0)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "A cobrança informada não foi localizada.");

                return(PartialView(ViewModel));
            }

            if (ViewModel.TituloReceita.idOrganizacao != User.idOrganizacao())
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "A cobrança informada não foi localizada.");

                return(PartialView(ViewModel));
            }

            if (ViewModel.TituloReceita.dtQuitacao.HasValue)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "A cobrança informada já foi quitada.");

                return(PartialView(ViewModel));
            }


            ViewModel.TituloReceitaPagamento.valorRecebido = ViewModel.TituloReceita.valorTotal.toDecimal();

            return(PartialView(ViewModel));
        }
        public ActionResult registrarPagamento(BaixaTituloReceitaForm ViewModel)
        {
            ViewModel.TituloReceita = this.OTituloReceitaBL.carregar(ViewModel.TituloReceita.id) ?? new TituloReceita();

            if (!ModelState.IsValid)
            {
                return(PartialView("modal-registrar-pagamento", ViewModel));
            }

            if (ViewModel.TituloReceita.idOrganizacao != User.idOrganizacao())
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "A cobrança informada não foi localizada.");

                return(PartialView("modal-registrar-pagamento", ViewModel));
            }

            if (ViewModel.TituloReceita.dtQuitacao.HasValue)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "A cobrança informada já foi quitada.");

                return(PartialView("modal-registrar-pagamento", ViewModel));
            }

            if (ViewModel.TituloReceitaPagamento.idMeioPagamento == MeioPagamentoConst.BITLINK)
            {
                var Saldo = this.OSaldoConsultaBL.query(0, 1)
                            .Where(x => x.Membro.idPessoa == ViewModel.TituloReceita.idPessoa)
                            .Select(x => new {
                    x.id,
                    x.idMembro,
                    x.idPessoa,
                    x.saldoAtual
                })
                            .FirstOrDefault()
                            .ToJsonObject <MembroSaldo>() ?? new MembroSaldo();

                if (Saldo.saldoAtual < ViewModel.TituloReceitaPagamento.valorRecebido)
                {
                    this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "O usuário em questão não possui saldo suficiente para a operação.");

                    return(PartialView("modal-registrar-pagamento", ViewModel));
                }
            }

            ViewModel.TituloReceitaPagamento.transferirDadosTitulo(ViewModel.TituloReceita);

            ViewModel.TituloReceitaPagamento.idUsuarioBaixa = User.id();

            if (ViewModel.TituloReceitaPagamento.idMeioPagamento == MeioPagamentoConst.DINHEIRO ||
                ViewModel.TituloReceitaPagamento.idMeioPagamento == MeioPagamentoConst.DEPOSITO_BANCARIO ||
                ViewModel.TituloReceitaPagamento.idMeioPagamento == MeioPagamentoConst.TRANSFERENCIA_ELETRONICA)
            {
                ViewModel.TituloReceitaPagamento.valorTarifasBancarias = 0;
                ViewModel.TituloReceitaPagamento.valorTarifasTransacao = 0;
            }

            ViewModel.TituloReceitaPagamento.idStatusPagamento = StatusPagamentoConst.PAGO;

            ViewModel.TituloReceitaPagamento.valorRecebido = decimal.Add(ViewModel.TituloReceita.valorTotal.toDecimal(), ViewModel.TituloReceitaPagamento.valorJuros.toDecimal());

            var listaPagamentos = new List <TituloReceitaPagamento>();

            listaPagamentos.Add(ViewModel.TituloReceitaPagamento);

            TituloReceitaBaixaFactoryBL.getInstance.factory(ViewModel.TituloReceita).liquidar(ViewModel.TituloReceita, listaPagamentos);

            this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, "O pagamento foi registrado com sucesso");

            return(PartialView("modal-registrar-pagamento", ViewModel));
        }