Ejemplo n.º 1
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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }