public ActionResult excluir(DespesaPagamentoExcluirForm ViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("modal-excluir-despesa-pagamento", ViewModel));
            }

            var ORetorno = this.OTituloDespesaPagamentoBL.excluir(ViewModel.TituloDespesaPagamento.id, ViewModel.TituloDespesaPagamento.motivoExclusao, ViewModel.flagAtualizarOutros);

            if (!ORetorno.flagError)
            {
                this.onAtualizarValorTituloDespesa.subscribe(new OnAtualizarValorTituloDespesaHandler());
                this.onAtualizarValorTituloDespesa.publish(ViewModel.TituloDespesaPagamento.idTituloDespesa as object);

                return(Json(ORetorno));
            }

            this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, ORetorno.listaErros.FirstOrDefault());
            return(View("modal-excluir-despesa-pagamento", ViewModel));
        }
        public ActionResult modalExcluirDespesaPagamento(int?id)
        {
            var ViewModel = new DespesaPagamentoExcluirForm();

            ViewModel.TituloDespesaPagamento = this.OTituloDespesaPagamentoBL.carregar(id.toInt());

            if (ViewModel.TituloDespesaPagamento == null)
            {
                return(Json(new { flagErro = true, message = "O pagamento não pode ser localizada" }, JsonRequestBehavior.AllowGet));
            }

            if (ViewModel.TituloDespesaPagamento.TituloDespesa.dtExclusao.HasValue)
            {
                return(Json(new { flagErro = true, message = "Não é possível remover um pagamento de uma despesa excluída" }, JsonRequestBehavior.AllowGet));
            }

            var listaOutrosPagamentos = this.OTituloDespesaPagamentoBL.listar(ViewModel.TituloDespesaPagamento.idTituloDespesa)
                                        .Select(x => new { x.dtVencimento, x.id }).ToList();

            ViewModel.flagHabilitarAtualizarTodos    = listaOutrosPagamentos.Count() > 1;
            ViewModel.flagHabilitarAtualizarProximos = listaOutrosPagamentos.Any(x => x.dtVencimento > ViewModel.TituloDespesaPagamento.dtVencimento || (x.dtVencimento == ViewModel.TituloDespesaPagamento.dtVencimento && x.id > ViewModel.TituloDespesaPagamento.id));

            return(View(ViewModel));
        }