public ActionResult modalEnviarCobrancaTodos(int idContribuicao) { var OPainelCobrancaVM = new PainelCobrancaVM(); OPainelCobrancaVM.carregarDadosContribuicao(idContribuicao, null); var ViewModel = new AssociadoContribuicaoCobrancaForm(); ViewModel.Contribuicao = OPainelCobrancaVM.Contribuicao; ViewModel.Contribuicao.emailCobrancaTitulo = ViewModel.Contribuicao.emailCobrancaTitulo.Replace("#NOME_ORGANIZACAO#", this.OConfiguracaoSistema.nomeEmpresaResumo); var listaPendentes = OPainelCobrancaVM.listaCobrancas.Where(x => !x.AssociadoContribuicao.flagQuitado()).ToList(); ViewModel.idsAssociadoContribuicoes = listaPendentes.Select(x => x.AssociadoContribuicao.id).ToList(); return(View("modal-gerar-email-cobranca", ViewModel)); }
public ActionResult listar() { int idContribuicao = UtilRequest.getInt32("idContribuicao"); int ano = UtilRequest.getInt32("ano"); var ViewModel = new PainelCobrancaVM(); if (idContribuicao == 0 || ano == 0) { return(View(ViewModel)); } ViewModel.carregarDadosContribuicao(idContribuicao, null); ViewModel.listaBoletos = ViewModel.carregarBoletos() .Where(x => x.idMeioPagamento > 0 && x.dtExclusaoParcela == null && !string.IsNullOrEmpty(x.boletoUrl)) .OrderBy(x => x.idTituloReceitaPagamento) .ToPagedList(UtilRequest.getNroPagina(), 200); return(View(ViewModel)); }
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 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)); }
//Atributos //Propriedades // GET: ContribuicoesPainel/PainelCobranca public ActionResult Index() { int idContribuicao = UtilRequest.getInt32("idContribuicao"); int ano = UtilRequest.getInt32("ano"); bool flagBusca = !string.IsNullOrEmpty(UtilRequest.getString("search")); string tipoSaida = UtilRequest.getString("tipoSaida"); var ViewModel = new PainelCobrancaVM(); if (!flagBusca) { return(View(ViewModel)); } if (idContribuicao == 0) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Informe qual plano/contribuição deseja visualizar"); return(View(ViewModel)); } if (ano == 0) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Informe de que o ano deseja ver as informações."); return(View(ViewModel)); } ViewModel.carregarContribuicao(idContribuicao); if (ViewModel.Contribuicao.idOrganizacao != User.idOrganizacao()) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "A contribuição informada não foi localizada."); return(RedirectToAction("index")); } if (ViewModel.Contribuicao.dtValidade.HasValue && ViewModel.Contribuicao.dtValidade.Value.Year < ano) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "A validade da contribuição é inferior ao ano informado."); return(RedirectToAction("index")); } ViewModel.carregarDadosContribuicao(idContribuicao, null); var listaBoletos = ViewModel.carregarBoletos().Select(x => new { x.idTituloReceitaPagamento, x.idAssociadoContribuicao, x.boletoUrl }).ToList(); ViewModel.qtdeBoletosGerados = listaBoletos.Count; foreach (var Item in ViewModel.listaAssociadosPager) { var OPgtoBoleto = listaBoletos.FirstOrDefault(x => x.idAssociadoContribuicao == Item.AssociadoContribuicao.id); Item.idTituloReceitaPagamento = OPgtoBoleto?.idTituloReceitaPagamento; Item.urlBoleto = OPgtoBoleto?.boletoUrl; } if (tipoSaida == "Excel") { this.baixarExcel(ViewModel.listagemFiltrada); return(null); } return(View(ViewModel)); }