Esempio n. 1
0
        public ActionResult gerarExcel()
        {
            List <int> ids = UtilRequest.getListInt("ids");

            List <MacroConta> lista = this.OMacroContaBL.listar("", true).Where(x => ids.Contains(x.id)).ToList();

            if (lista.Count > 0)
            {
                var listaExcel = lista.Select(x => new {
                    x.id,
                    x.descricao,
                    dtCadastro = UtilDate.toDisplay(x.dtCadastro.ToString()),
                    status     = x.ativo == true ? "Ativo" : "Desativado"
                }).ToList();

                var OGrid = new GridView();
                OGrid.DataSource = listaExcel;
                OGrid.DataBind();

                OGrid.HeaderRow.Cells[0].Text = "ID";
                OGrid.HeaderRow.Cells[1].Text = "Macro Conta";
                OGrid.HeaderRow.Cells[2].Text = "Data de Cadastro";
                OGrid.HeaderRow.Cells[3].Text = "Status";

                UTIL.Excel.UtilExcel OExcel = new UTIL.Excel.UtilExcel();
                OExcel.downloadExcel(Response, OGrid, String.Concat("Lista de Macro Contas - ", DateTime.Now.ToShortDateString().Replace("/", "-"), ".xls"));
            }

            return(null);
        }
        //
        public IQueryable <Pedido> montarQuery()
        {
            var valorBusca = UtilRequest.getString("valorBusca");

            var dtPrazoInicio = UtilRequest.getDateTime("dtPrazoInicio");
            var dtPrazoFim    = UtilRequest.getDateTime("dtPrazoFim");

            var idsStatusPedido = UtilRequest.getListInt("idsStatusPedido");

            var query = this.OPedidoBL.listar(valorBusca, "S", 0);

            query = query.Where(x => x.idStatusPedido == StatusPedidoConst.PAGO ||
                                (x.idStatusPedido == StatusPedidoConst.EM_ABERTO && x.flagPagamentoNaEntrega == true) ||
                                (x.idStatusPedido == StatusPedidoConst.AGUARDANDO_PAGAMENTO && x.flagPagamentoNaEntrega == true));

            if (dtPrazoInicio.HasValue)
            {
                query = query.Where(x => x.listaPedidoEntrega.Any(c => c.dtAgendamentoEntrega >= dtPrazoInicio));
            }

            if (dtPrazoFim.HasValue)
            {
                var dtFiltro = dtPrazoFim.Value.AddDays(1);
                query = query.Where(x => x.listaPedidoEntrega.Any(c => c.dtAgendamentoEntrega < dtFiltro));
            }

            if (idsStatusPedido?.Any() == true)
            {
                query = query.Where(x => idsStatusPedido.Contains(x.idStatusPedido));
            }


            return(query);
        }
Esempio n. 3
0
        /// <summary>
        /// Exportar Zip
        /// </summary>
        public ActionResult exportar()
        {
            int idContribuicao = UtilRequest.getInt32("idContribuicao");
            int ano            = UtilRequest.getInt32("ano");

            var ViewModel = new PainelCobrancaVM();

            var listaIds = UtilRequest.getListInt("id");

            if ((idContribuicao == 0 || ano == 0) && !listaIds.Any())
            {
                return(Json(new { error = true, message = "Nenhum boleto foi localizado para ser realizado a exportação" }));
            }


            var listaUrlBoletos = ViewModel.carregarBoletosExportacao(idContribuicao, listaIds).Where(x => !x.isEmpty()).ToList();

            if (!listaUrlBoletos.Any())
            {
                return(Json(new { error = true, message = "Nenhum boleto foi localizado para ser realizado a exportação" }));
            }

            var nomeArquivoZip = "";

            return(Json(new { error = false, nomeArquivo = nomeArquivoZip, totalRegistros = listaUrlBoletos.Count }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public ActionResult gerarExcel()
        {
            var ids = UtilRequest.getListInt("ids");
            var listaEstoqueEntrada = this.OEstoqueEntradaBL.listarPorId(ids).ToList();

            if (listaEstoqueEntrada.Count > 0)
            {
                var listaExcel = listaEstoqueEntrada.Select(x => new {
                    x.id,
                    x.ProdutoEstoque.dtMovimentacao,
                    fornecedor = x.Fornecedor.Pessoa.nome,
                    produto    = x.ProdutoEstoque.Produto.nome,
                    quantidade = x.ProdutoEstoque.qtdMovimentada,
                    dtCadastro = UtilDate.toDisplay(x.dtCadastro.ToString()),
                    status     = (x.ativo == "S") ? "Sim" : "Não",
                }).ToList();

                var OGrid = new GridView();
                OGrid.DataSource = listaExcel;
                OGrid.DataBind();

                OGrid.HeaderRow.Cells[0].Text = "ID";
                OGrid.HeaderRow.Cells[1].Text = "Data Entrada";
                OGrid.HeaderRow.Cells[2].Text = "Fornecedor";
                OGrid.HeaderRow.Cells[3].Text = "Produto";
                OGrid.HeaderRow.Cells[4].Text = "Quantidade";
                OGrid.HeaderRow.Cells[5].Text = "Data de Cadastro";
                OGrid.HeaderRow.Cells[6].Text = "Ativo";

                UTIL.Excel.UtilExcel OExcel = new UTIL.Excel.UtilExcel();
                OExcel.downloadExcel(Response, OGrid, String.Concat("Lista de Entrada do Estoque - ", DateTime.Now.ToShortDateString().Replace("/", "-"), ".xls"));
            }

            return(null);
        }
        public HttpResponseMessage Get(HttpRequestMessage request)
        {
            var RetornoApi = new DefaultDTO();

            var FormularioConsulta = new InscricaoEtapaConsultaForm {
                idOrganizacao        = CustomExtensions.getIdOrganizacao(),
                idProcessoAvaliacao  = UtilRequest.getInt32("idProcessoAvaliacao"),
                idEtapa              = UtilRequest.getInt32("idEtapa"),
                idsAreasConhecimento = UtilRequest.getListInt("idsAreasConhecimento"),
                flagAprovados        = UtilRequest.getBool("flagAprovados"),
                nroRegistros         = UtilRequest.getNroRegistros(),
                nroPagina            = UtilRequest.getNroPagina()
            };

            try {
                if (FormularioConsulta.idProcessoAvaliacao <= 0)
                {
                    RetornoApi.flagErro = true;
                    RetornoApi.listaMensagens.Add("O processo de avaliação deve ser informado.");
                    RetornoApi.listaResultados = null;

                    return(Request.CreateResponse(HttpStatusCode.Forbidden, RetornoApi));
                }

                if (FormularioConsulta.idEtapa <= 0)
                {
                    RetornoApi.flagErro = true;
                    RetornoApi.listaMensagens.Add("A Etapa deve ser informada.");
                    RetornoApi.listaResultados = null;

                    return(Request.CreateResponse(HttpStatusCode.Forbidden, RetornoApi));
                }

                var RetornoConsulta = Filler.carregar(FormularioConsulta);

                if (!RetornoConsulta.listaAprovados.Any())
                {
                    RetornoApi.flagErro = false;
                    RetornoApi.listaMensagens.Add("Nenhuma inscrição na etapa foi encontrada.");
                    RetornoApi.listaResultados = null;

                    return(Request.CreateResponse(HttpStatusCode.OK, RetornoApi));
                }

                RetornoApi.flagErro = false;
                RetornoApi.listaMensagens.Add("Inscrições na etapa listadas com sucesso.");
                RetornoApi.listaResultados = RetornoConsulta.listaAprovados;
                RetornoApi.carregarDadosPaginacao(RetornoConsulta.listaAprovados);

                return(Request.CreateResponse(HttpStatusCode.OK, RetornoApi));
            } catch (Exception ex) {
                var message = ex.getLogError("Erro no serviço de listagem de inscrição em etapas de processos de avaliação");

                RetornoApi.flagErro = true;
                RetornoApi.listaMensagens.Add(message);

                return(this.Request.CreateResponse(HttpStatusCode.InternalServerError, RetornoApi));
            }
        }
 public void capturarParametros()
 {
     this.idsTipoAssociado     = UtilRequest.getListInt("idsTipoAssociado");
     this.dtAtualizacaoInicial = UtilRequest.getDateTime("dtAtualizacaoInicial");
     this.dtAtualizacaoFinal   = UtilRequest.getDateTime("dtAtualizacaoFinal");
     this.valorBusca           = UtilRequest.getString("valorBusca");
     this.flagTipoSaida        = UtilRequest.getString("flagTipoSaida");
 }
Esempio n. 7
0
        public PartialViewResult modalExcluirBoleto()
        {
            var listaIds = UtilRequest.getListInt("id");

            var listaAssociadoContribuicao = this.OAssociadoContribuicaoBoletoBL.listar(0).Where(x => listaIds.Contains(x.idTituloReceitaPagamento.Value)).ToList();

            return(PartialView(listaAssociadoContribuicao));
        }
Esempio n. 8
0
        public ActionResult registrarLeitura()
        {
            var ids = UtilRequest.getListInt("id");

            foreach (var id in ids)
            {
                this.ONotificacaoLeituraBL.registrarLeitura(id);
            }

            return(Json(new { error = false }));
        }
Esempio n. 9
0
        //
        public IQueryable <PessoaRelacionamentoVW> montarQuery()
        {
            var idPessoa = UtilRequest.getInt32("idPessoa");

            var idsOcorrencias = UtilRequest.getListInt("idsOcorrencias");

            var dtOcorrenciaInicial = UtilRequest.getDateTime("dtOcorrenciaInicial");
            var dtOcorrenciaFinal   = UtilRequest.getDateTime("dtOcorrenciaFinal");

            var idUsuarioCadastro = UtilRequest.getInt32("idUsuarioCadastro");

            var valorBusca = UtilRequest.getString("valorBusca");

            var flagTemArquivos = UtilRequest.getString("flagTemArquivos");

            var query = this.OPessoaRelacionamentoVWBL.listar(valorBusca);

            if (idPessoa > 0)
            {
                query = query.Where(x => x.idPessoa == idPessoa);
            }

            if (idsOcorrencias?.Any() == true)
            {
                query = query.Where(x => idsOcorrencias.Contains(x.idOcorrenciaRelacionamento));
            }

            if (dtOcorrenciaInicial.HasValue)
            {
                query = query.Where(x => x.dtOcorrencia >= dtOcorrenciaInicial);
            }

            if (dtOcorrenciaFinal.HasValue)
            {
                var dtFiltro = dtOcorrenciaFinal.Value.AddDays(1);
                query = query.Where(x => x.dtOcorrencia < dtFiltro);
            }

            if (idUsuarioCadastro > 0)
            {
                query = query.Where(x => x.idUsuarioCadastro == idUsuarioCadastro);
            }

            if (flagTemArquivos == "S")
            {
                var ids           = query.Select(x => x.id).ToList();
                var idsComArquivo = OArquivoUploadBL.listarDocumentos(0, EntityTypes.PESSOADOCUMENTO_RELACIONAMENTO).Where(x => ids.Contains(x.idReferenciaEntidade)).Select(x => x.idReferenciaEntidade).ToList();

                query = query.Where(x => idsComArquivo.Contains(x.id));
            }

            return(query);
        }
        public ActionResult modalConciliar()
        {
            var viewModel = new ConciliacaoAcaoForm();

            viewModel.idsLancamentos   = UtilRequest.getListInt("idsLancamentos");
            viewModel.tiposLancamentos = UtilRequest.getListString("tiposLancamentos");

            viewModel.listaLancamentos = OReceitasDespesasVWBL.listar().Where(x => viewModel.idsLancamentos.Contains(x.idPagamento)).ToList();

            if (!viewModel.listaLancamentos.Any())
            {
                return(Json(new { error = true, message = "Nenhum lançamento foi encontrado para ser conciliado." }, JsonRequestBehavior.AllowGet));
            }

            return(PartialView(viewModel));
        }
Esempio n. 11
0
        public ActionResult modelRegistrarPagamento()
        {
            var ViewModel = new BaixaTituloReceitaPagamentoForm();

            List <int> ids = UtilRequest.getListInt("id");

            ViewModel.TituloReceitaPagamento = new TituloReceitaPagamento();

            ViewModel.TituloReceitaPagamento.TituloReceita = new TituloReceita();

            ViewModel.listaTituloReceitaPagamento = this.OTituloReceitaPagamentoBL.listar(0)
                                                    .Where(x => ids.Contains(x.id) &&
                                                           x.dtPagamento == null &&
                                                           x.TituloReceita.dtExclusao == null
                                                           ).Select(x => new {
                x.id,
                x.idTituloReceita,
                x.valorOriginal,
                x.valorRecebido,
                x.descricaoParcela,
                x.dtVencimento,
                x.dtVencimentoOriginal,
                TituloReceita = new {
                    x.TituloReceita.id,
                    x.TituloReceita.idTipoReceita,
                    x.TituloReceita.idReceita,
                    x.TituloReceita.dtQuitacao,
                    x.TituloReceita.descricao
                }
            }).ToListJsonObject <TituloReceitaPagamento>();

            if (!ViewModel.listaTituloReceitaPagamento.Any())
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "Nenhum registro localizado");

                return(PartialView(ViewModel));
            }

            var qtdeTituloReceita = ViewModel.listaTituloReceitaPagamento.DistinctBy(x => x.idTituloReceita).Count();

            var OTituloReceita = qtdeTituloReceita == 1 ? ViewModel.listaTituloReceitaPagamento.Select(x => x.TituloReceita).FirstOrDefault() : new TituloReceita();

            ViewModel.TituloReceitaPagamento.TituloReceita = OTituloReceita;

            return(PartialView(ViewModel));
        }
        // GET: AssociadosConsultas/AssociadoDocumento
        public ActionResult Index(){

            var idsTipoAssociado = UtilRequest.getListInt("idsTipoAssociado");
            var flagSituacaoContribuicao = UtilRequest.getString("flagSituacaoContribuicao");
            var valorBuscaAssociado = UtilRequest.getString("valorBuscaAssociado");
            var idEntidadeArquivo = UtilRequest.getInt32("idEntidadeArquivo");
            var formatoArquivo = UtilRequest.getString("formatoArquivo");
            var ativo = UtilRequest.getString("ativo");
            var valorBusca = UtilRequest.getString("valorBusca");

            var listaDocumentos = OArquivoAssociadoVWBL.listar(idsTipoAssociado, flagSituacaoContribuicao, valorBuscaAssociado, idEntidadeArquivo, formatoArquivo, valorBusca, ativo);
            
            var ViewModel = new AssociadoDocumentoVM();

            ViewModel.listaArquivoAssociado = listaDocumentos.OrderByDescending(x => x.dtCadastro).ToPagedList(UtilRequest.getNroPagina(), UtilRequest.getNroRegistros());

            return View(ViewModel);
        }
        //
        public IQueryable <Pedido> montarQuery()
        {
            var valorBusca = UtilRequest.getString("valorBusca");

            var dtCadastroInicio = UtilRequest.getDateTime("dtCadastroInicio");
            var dtCadastroFim    = UtilRequest.getDateTime("dtCadastroFim");

            var dtPrazoInicio = UtilRequest.getDateTime("dtPrazoInicio");
            var dtPrazoFim    = UtilRequest.getDateTime("dtPrazoFim");

            var idsStatusPedido = UtilRequest.getListInt("idsStatusPedido");

            var query = this.OPedidoBL.listar(valorBusca, "S", 0);

            if (dtCadastroInicio.HasValue)
            {
                query = query.Where(x => x.dtCadastro >= dtCadastroInicio);
            }

            if (dtCadastroFim.HasValue)
            {
                var dtFiltro = dtCadastroFim.Value.AddDays(1);
                query = query.Where(x => x.dtCadastro < dtFiltro);
            }

            if (dtPrazoInicio.HasValue)
            {
                query = query.Where(x => x.listaPedidoEntrega.Any(c => c.dtAgendamentoEntrega >= dtPrazoInicio));
            }

            if (dtPrazoFim.HasValue)
            {
                var dtFiltro = dtPrazoFim.Value.AddDays(1);
                query = query.Where(x => x.listaPedidoEntrega.Any(c => c.dtAgendamentoEntrega < dtFiltro));
            }

            if (idsStatusPedido?.Any() == true)
            {
                query = query.Where(x => idsStatusPedido.Contains(x.idStatusPedido));
            }

            return(query);
        }
Esempio n. 14
0
        public PartialViewResult partialListaCampos(int idTipoCampoCadastro)
        {
            var ViewModel = new ConfiguracaoCamposVM();

            ViewModel.idTipoCampoCadastro = idTipoCampoCadastro;

            ViewModel.idsTipoAssociado = UtilRequest.getListInt("idsTipoAssociado");

            ViewModel.idOrganizacao = UtilRequest.getInt32("idOrganizacao");

            if (User.idOrganizacao() > 0)
            {
                ViewModel.idOrganizacao = User.idOrganizacao();
            }

            ViewModel.carregarDados();

            return(PartialView(ViewModel));
        }
Esempio n. 15
0
        //Carregar os filtros enviados via form
        private void carregarFiltros()
        {
            this.idsTipoAssociado = UtilRequest.getListInt("idsTipoAssociado");

            this.flagSituacao = UtilRequest.getString("flagSituacao");

            this.valorBusca = UtilRequest.getString("valorBusca").ToLower();

            this.ano = UtilRequest.getInt32("ano");

            this.mes = UtilRequest.getInt32("mes");

            this.flagSituacaoContribuicao = UtilRequest.getString("flagSituacaoContribuicao");

            this.ativo = UtilRequest.getString("ativo");

            string mesDiaVencimento = UtilRequest.getString("mesDiaVencimento");

            if (!string.IsNullOrEmpty(mesDiaVencimento))
            {
                string[] data = mesDiaVencimento.Split('/');

                int dia = data.Length > 0 ? UtilNumber.toInt32(data[0]) : 0;

                int mes = data.Length > 1 ? UtilNumber.toInt32(data[1]) : 0;

                if (dia > 0 && mes > 0)
                {
                    dtVencimento = new DateTime(ano, mes, dia);
                }

                return;
            }

            //Se a contribuição for anual e com data fixa deve-se capturar a única data de vencimento possível para o ano
            if (Contribuicao.PeriodoContribuicao?.qtdeAnos >= 1 && !this.Contribuicao.flagVencimentoVariado())
            {
                var OVencimento = Contribuicao.retornarListaVencimento().FirstOrDefault() ?? new ContribuicaoVencimento();

                dtVencimento = new DateTime(this.ano, OVencimento.mesVencimento.toInt(), OVencimento.diaVencimento.toInt());
            }
        }
        /// <summary>
        /// Exportar Zip
        /// </summary>
        public ActionResult exportar() {

            var ViewModel = new AssociadoDocumentoVM();

            var listaIds = UtilRequest.getListInt("id");

            if (!listaIds.Any()) {
                return Json(new { error = true, message = "Nenhum arquivo foi localizado para ser realizado a exportação" });
            }
            
            var listaUrlArquivos = OArquivoAssociadoVWBL.carregarArquivosExportacao(listaIds);

            if (!listaUrlArquivos.Any()) {
                return Json(new { error = true, message = "Nenhum arquivo foi localizado para ser realizado a exportação" });
            }

            var nomeArquivoZip = this.OExportarArquivoAssociadoVWBL.exportar(listaUrlArquivos);

            return Json(new { error = false, nomeArquivo = nomeArquivoZip, totalRegistros = listaUrlArquivos.Count }, JsonRequestBehavior.AllowGet);
        }
Esempio n. 17
0
        public ActionResult gerarExcel()
        {
            var ids = UtilRequest.getListInt("ids");
            var listaEstoqueSaida = this.OEstoqueSaidaBL.listarPorId(ids).ToList();

            if (listaEstoqueSaida.Count > 0)
            {
                var listaExcel = listaEstoqueSaida.Select(x => new {
                    x.id,
                    x.ProdutoEstoque.dtMovimentacao,
                    tipoSaida = x.TipoReferenciaSaida.descricao,
                    saidaPara = ((x.idTipoReferenciaSaida == (int)TipoReferenciaSaidaEnum.FUNCIONARIOS) ?
                                 this.OFuncionarioConsultaBL.carregar(x.idReferencia).Pessoa.nome :
                                 "Outros"),
                    produto    = x.ProdutoEstoque.Produto.nome,
                    quantidade = x.ProdutoEstoque.qtdMovimentada,
                    descricao  = x.ProdutoEstoque.descricao,
                    dtCadastro = UtilDate.toDisplay(x.dtCadastro.ToString()),
                    status     = (x.ativo == "S") ? "Sim" : "Não",
                }).ToList();

                var OGrid = new GridView();
                OGrid.DataSource = listaExcel;
                OGrid.DataBind();

                OGrid.HeaderRow.Cells[0].Text = "ID";
                OGrid.HeaderRow.Cells[1].Text = "Data Entrada";
                OGrid.HeaderRow.Cells[2].Text = "Tipo Saída";
                OGrid.HeaderRow.Cells[3].Text = "Saída Para";
                OGrid.HeaderRow.Cells[4].Text = "Produto";
                OGrid.HeaderRow.Cells[5].Text = "Quantidade";
                OGrid.HeaderRow.Cells[6].Text = "Descriç&atilde;o";
                OGrid.HeaderRow.Cells[7].Text = "Data de Cadastro";
                OGrid.HeaderRow.Cells[8].Text = "Ativo";

                UTIL.Excel.UtilExcel OExcel = new UTIL.Excel.UtilExcel();
                OExcel.downloadExcel(Response, OGrid, String.Concat("Lista de Saída do Estoque - ", DateTime.Now.ToShortDateString().Replace("/", "-"), ".xls"));
            }

            return(null);
        }
        public HttpResponseMessage Index(HttpRequestMessage request)
        {
            var RetornoApi = new DefaultDTO();

            var FormularioConsulta = new ProcessoAvaliacaoConsultaForm {
                ids            = UtilRequest.getListInt("ids"),
                idOrganizacao  = CustomExtensions.getIdOrganizacao(),
                idTipoProcesso = UtilRequest.getInt32("idTipoProcesso"),
                valorBusca     = UtilRequest.getString("valorBusca"),
                nroRegistros   = UtilRequest.getNroRegistros(),
                nroPagina      = UtilRequest.getNroPagina()
            };

            try {
                var RetornoConsulta = Filler.carregar(FormularioConsulta);

                if (!RetornoConsulta.listaProcessos.Any())
                {
                    RetornoApi.flagErro = false;
                    RetornoApi.listaMensagens.Add("Nenhum processo de avaliação foi encontrado.");
                    RetornoApi.listaResultados = RetornoConsulta.listaProcessos;

                    return(Request.CreateResponse(HttpStatusCode.OK, RetornoApi));
                }

                RetornoApi.flagErro = false;
                RetornoApi.listaMensagens.Add("Processos de avaliações listadas com sucesso.");
                RetornoApi.listaResultados = RetornoConsulta.listaProcessos;
                RetornoApi.carregarDadosPaginacao(RetornoConsulta.listaProcessos);

                return(Request.CreateResponse(HttpStatusCode.OK, RetornoApi));
            }
            catch (Exception ex) {
                var message = ex.getLogError($"Erro no serviço de listagem de processos de avaliação");

                RetornoApi.flagErro = true;
                RetornoApi.listaMensagens.Add(message);

                return(this.Request.CreateResponse(HttpStatusCode.InternalServerError, RetornoApi));
            }
        }
        public ActionResult gerarCobrancas()
        {
            int idContribuicao = UtilRequest.getInt32("idContribuicao");

            int[] idsAssociados = UtilRequest.getListInt("idsAssociados").ToArray();

            var ViewModel = new PainelCobrancaVM();

            ViewModel.carregarDadosContribuicao(idContribuicao, idsAssociados);

            if (!ViewModel.listaNaoCobrados.Any())
            {
                return(Json(new { error = true, message = "Todos os associados informados já foram cobrados." }, JsonRequestBehavior.AllowGet));
            }
            if (ViewModel.listaNaoCobrados.Any(x => x.AssociadoContribuicao.dtVencimentoOriginal == DateTime.MinValue))
            {
                return(Json(new { error = true, message = "Existem associados sem data de vencimento configurada para a geração da cobrança" }, JsonRequestBehavior.AllowGet));
            }


            return(Json(new { error = false, message = $"O sistema irá realizar a cobrança de 0 associados. Isso poderá durar alguns minutos. Ao término da execução, você será notificado." }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult modelRegistrarPagamento()
        {
            var ViewModel = new BaixaTituloDespesaPagamentoForm();

            List <int> ids = UtilRequest.getListInt("id");

            ViewModel.TituloDespesaPagamento = new TituloDespesaPagamento();
            ViewModel.TituloDespesaPagamento.TituloDespesa = new TituloDespesa();

            ViewModel.listaTituloDespesaPagamento = this.OTituloDespesaPagamentoBL.listar(0)
                                                    .Where(x => ids.Contains(x.id) && x.dtPagamento == null && x.TituloDespesa.dtQuitacao == null && x.TituloDespesa.dtExclusao == null).ToList();

            if (!ViewModel.listaTituloDespesaPagamento.Any())
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_INFO, "Nenhum registro localizado");
                return(PartialView(ViewModel));
            }

            ViewModel.TituloDespesaPagamento.TituloDespesa = ViewModel.listaTituloDespesaPagamento.DistinctBy(x => x.idTituloDespesa).Count() == 1
                ? ViewModel.listaTituloDespesaPagamento.FirstOrDefault()?.TituloDespesa : new TituloDespesa();

            return(PartialView(ViewModel));
        }
        private List <EventoAgenda> carregarProgramacao()
        {
            var idsRealizacoes = this.OEventoRealizacaoConsultaBL.query(this.idOrganizacao).Where(x => x.idEvento == this.idEvento).Select(x => x.id).ToList();

            List <int> idsPalestrantes = UtilRequest.getListInt("idsPalestrantes");

            List <int> idsEventoAgenda = new List <int>();

            if (idsPalestrantes.Any())
            {
                idsEventoAgenda = this.OEventoAgendaPalestranteConsultaBL.query(this.idOrganizacao)
                                  .Where(x => idsPalestrantes.Contains(x.idPalestrante) && x.idEventoAgenda > 0 && x.dtAceite != null)
                                  .Select(x => x.idEventoAgenda ?? 0).ToList();
            }

            var query = this.OEventoAgendaConsultaBL.query(this.idOrganizacao).Where(x => idsRealizacoes.Contains(x.idEventoRealizacao));

            bool?flagOnline = UtilRequest.getBool("flagOnline");

            if (flagOnline != null)
            {
                query = query.Where(x => x.flagOnline == flagOnline);
            }

            if (idsEventoAgenda.Any())
            {
                query = query.Where(x => idsEventoAgenda.Contains(x.id));
            }

            var listaProgramacao = query.Select(x => new {
                x.id,
                x.titulo,
                idTipoAtracao     = x.idTipoAtracao ?? 0,
                EventoTipoAtracao = new {
                    x.EventoTipoAtracao.descricao
                },
                x.chamada,
                x.descricao,
                x.horarioInicio,
                x.horarioFim,
                x.nomeEspaco,
                x.flagOnline,
                x.idEventoRealizacao,
                EventoRealizacao = new {
                    x.EventoRealizacao.dtRealizacao,
                    Evento      = new { x.EventoRealizacao.Evento.titulo },
                    EventoLocal = new {
                        flagLocalFisico = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.flagLocalFisico : x.EventoRealizacao.Evento.EventoLocal.flagLocalFisico,
                        nome            = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.nome : x.EventoRealizacao.Evento.EventoLocal.nome,
                        logradouro      = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.logradouro : x.EventoRealizacao.Evento.EventoLocal.logradouro,
                        numero          = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.numero : x.EventoRealizacao.Evento.EventoLocal.numero,
                        bairro          = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.bairro : x.EventoRealizacao.Evento.EventoLocal.bairro,
                        complemento     = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.complemento : x.EventoRealizacao.Evento.EventoLocal.complemento,
                        nomeCidade      = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.nomeCidade : x.EventoRealizacao.Evento.EventoLocal.nomeCidade,
                        uf = x.EventoRealizacao.EventoLocal.id > 0 ? x.EventoRealizacao.EventoLocal.uf : x.EventoRealizacao.Evento.EventoLocal.uf,
                    }
                }
            }).OrderBy(x => x.horarioInicio).ToListJsonObject <EventoAgenda>();

            return(listaProgramacao);
        }
        public ActionResult gerarBoletos()
        {
            int idContribuicao = UtilRequest.getInt32("idContribuicao");

            int[] idsAssociados = UtilRequest.getListInt("idsAssociados").ToArray();

            var ViewModel = new PainelCobrancaVM();

            ViewModel.carregarDadosContribuicao(idContribuicao, idsAssociados);

            StringBuilder msgRetorno = new StringBuilder();

            if (ViewModel.listaIsentos.Count > 0)
            {
                foreach (var itemIsento in ViewModel.listaIsentos)
                {
                    msgRetorno.AppendLine($"O associado {itemIsento.AssociadoContribuicao.nomeAssociado} não terá o boleto gerado pois é um associado isento.");
                }
            }

            if (ViewModel.listaQuitados.Count > 0)
            {
                foreach (var itemQuitado in ViewModel.listaQuitados)
                {
                    msgRetorno.AppendLine($"O associado {itemQuitado.AssociadoContribuicao.nomeAssociado} não terá o boleto gerado pois é o pagamento já foi realizado.");
                }
            }

            var idsBoletosGerados = ViewModel.carregarBoletos().Select(x => x.idAssociadoContribuicao).ToList();

            var listaPendentes = ViewModel.listaCobrancas.Where(x => !x.AssociadoContribuicao.flagQuitado() && !idsBoletosGerados.Contains(x.AssociadoContribuicao.id)).ToList();


            if (!listaPendentes.Any())
            {
                return(Json(new { error = true, message = "Não foi encontrada nenhuma cobrança em aberto para geração de boletos." }, JsonRequestBehavior.AllowGet));
            }

            var OTarefa = new TarefaSistema();

            OTarefa.idReferencia = idContribuicao;

            OTarefa.idUsuarioInicializacao = User.id();

            OTarefa.titulo = idsAssociados.Length == 0 ? $"Geração de boletos de cobrança para todos os associados: {ViewModel.Contribuicao.descricao}" : $"Geração de boletos de cobrança para associados específicos: {ViewModel.Contribuicao.descricao}";

            //Criar a nova tarefa no sistema
            var OTarefaGeracaoBL = TarefaGerarBoletosContribuicao.getInstance;

            var RetornoTarefa = OTarefaGeracaoBL.criar(OTarefa, false);

            if (RetornoTarefa.flagError)
            {
                return(Json(new { error = true, message = RetornoTarefa.listaErros.FirstOrDefault() }, JsonRequestBehavior.AllowGet));
            }

            var listaNovosItens = listaPendentes.Select(x =>
                                                        new AssociadoContribuicaoBoletoGeracao {
                idOrganizacao           = User.id(),
                idAssociadoContribuicao = x.AssociadoContribuicao.id,
                dtVencimento            = x.AssociadoContribuicao.dtVencimentoOriginal,
                idUsuarioGeracao        = User.id(),
                idTarefa = OTarefa.id
            }).ToList();

            //Salvar a lista de contribuicoes que precisam ser geradas
            OAssociadoContribuicaoBoletoGeracaoBL.salvar(listaNovosItens);

            //Registro início do processamento
            OTarefaGeracaoBL.iniciarProcessamento();

            //Realizar primeira execucao
            OTarefaGeracaoBL.executar();

            return(Json(new { error = false, message = $"O sistema irá gerar boletos para {listaNovosItens.Count} cobranças. Isso poderá durar alguns minutos. Ao término da execução, você será notificado." }, JsonRequestBehavior.AllowGet));
        }