private string gerarLinhaExcel(AssociadoContribuicaoItemLista OContribuicao, List <AssociadoContribuicaoItemLista> lista)
        {
            StringBuilder linha = new StringBuilder();

            linha.Append(OContribuicao.AssociadoContribuicao.id).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.idAssociado).Append(";");
            linha.Append(OContribuicao.AssociadoExcel.nroAssociado).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.nomeAssociado).Append(";");
            linha.Append(UtilString.formatCPFCNPJ(OContribuicao.AssociadoExcel.nroDocumentoAssociado)).Append(";");
            linha.Append(OContribuicao.AssociadoExcel.statusAssociado == StatusConst.ativo ? "Ativo" : (OContribuicao.AssociadoExcel.statusAssociado == StatusConst.emAdmissao ? "Em Admissão" : "Desativado")).Append(";");
            linha.Append(OContribuicao.AssociadoExcel.situacaoFinanceira == "AD" ? "Adimplente" : "Inadimplente").Append(";");

            var qtdTel  = lista.Max(x => x.listTelefones.Count);
            var qtdMail = lista.Max(x => x.listEmails.Count);

            var contTel = 0;

            foreach (var Telefone in OContribuicao.listTelefones)
            {
                contTel++;
                linha.Append(UtilString.formatPhone(Telefone.nroTelefone)).Append(";");
            }
            for (int i = contTel; i < qtdTel; i++)
            {
                linha.Append("").Append(";");
            }

            var contMail = 0;

            foreach (var Email in OContribuicao.listEmails)
            {
                contMail++;
                linha.Append(Email.email).Append(";");
            }
            for (int i = contMail; i < qtdMail; i++)
            {
                linha.Append("").Append(";");
            }

            linha.Append(OContribuicao.AssociadoContribuicao.descricaoContribuicao).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.descricaoPeriodoContribuicao).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.descricaoTipoAssociado).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.valorOriginal).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.valorAtual).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.dtVencimentoOriginal.exibirData()).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.dtVencimentoAtual.exibirData()).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.dtInicioVigencia.exibirData()).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.dtFimVigencia.exibirData()).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.dtPagamento.exibirData()).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.flagIsento == true ? "Sim" : "Não").Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.motivoIsencao).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.dtCadastro.exibirData()).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.nomeUsuarioCadastro).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.valorTotalTitulo).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.qtdeParcelas).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.valorTotalRecebido).Append(";");
            linha.Append(OContribuicao.AssociadoContribuicao.flagDescontoAntecipacao == true ? "Sim" : "Não").Append(";");

            return(linha.ToString());
        }
예제 #2
0
        /// <summary>
        /// Exibir detalhe HTML para item de cobrança de associado
        /// </summary>
        public static IHtmlString exibirDetalhes(this HtmlHelper helper, AssociadoContribuicaoItemLista OItem)
        {
            var htmlBuilder = new StringBuilder();

            if (OItem.AssociadoContribuicao.id == 0)
            {
                return(new MvcHtmlString("<strong>Cobrança não realizada</strong>"));
            }

            if (OItem.AssociadoContribuicao.flagIsento == true)
            {
                return(new MvcHtmlString($"<strong>Isento</strong> <span class=\"fs-10 text-italic\">({(OItem.AssociadoContribuicao.motivoIsencao.isEmpty()? "Motivo não registrado": OItem.AssociadoContribuicao.motivoIsencao)})</span>"));
            }

            if (OItem.AssociadoContribuicao.dtPagamento.HasValue)
            {
                htmlBuilder.Append($"<strong>{OItem.valorAtualFinal.ToString("C")}</strong>");

                htmlBuilder.Append($"<small class=\"text-italic fs-10\">Pago ({OItem.AssociadoContribuicao.dtPagamento.exibirData()})</small>");

                return(new MvcHtmlString(htmlBuilder.ToString()));
            }

            htmlBuilder.Append($"<strong>{OItem.valorAtualFinal.ToString("C")} </strong>");

            decimal valorPago = OItem.AssociadoContribuicao.valorTotalRecebido.GetValueOrDefault();

            htmlBuilder.Append($"<small class=\"text-italic fs-10\">{(valorPago > 0? $" - {valorPago.ToString("C")} pago": "Em aberto")}</small>");

            if (OItem.AssociadoContribuicao.flagTemParcelamento())
            {
                decimal valorParcela = decimal.Divide(OItem.valorAtualFinal, new decimal(OItem.AssociadoContribuicao.qtdeParcelas.toInt()));

                htmlBuilder.Append($"<br /><strong>Parcelado {OItem.AssociadoContribuicao.qtdeParcelas}X {valorParcela.ToString("C")}</strong>");
            }


            if (OItem.AssociadoContribuicao.flagDescontoAntecipacao == true)
            {
                UrlHelper urlHelper = new UrlHelper(helper.ViewContext.RequestContext);

                htmlBuilder.Append($"<br/><a href=\"javascript:void(0)\" onclick=\"DescontoAntecipacao.exibirModalDesconto(this)\" data-url=\"{urlHelper.Action("modal-detalhe-descontos", "DescontoAntecipacao", new {area = "Financeiro", OItem.AssociadoContribuicao.idTituloReceita})}\" class=\"text-italic fs-10\">Desconto por antecipação</a>");
            }

            return(new MvcHtmlString(htmlBuilder.ToString()));
        }
        /// <summary>
        /// Gerar o menu de acoes para uma contribuica
        /// </summary>
        public static MvcHtmlString menuAcoes(this HtmlHelper helper, AssociadoContribuicaoItemLista Cobranca)
        {
            StringBuilder html = new StringBuilder();

            html.AppendLine("<button class=\"btn btn-default btn-white-sm dropdown-toggle\" data-toggle=\"dropdown\"> Ações <span class=\"caret\"></span></button>");

            html.AppendLine("<ul class=\"dropdown-menu dropdown-menu-right\">");


            if (!Cobranca.AssociadoContribuicao.flagQuitado() && !Cobranca.AssociadoContribuicao.flagTemParcelamento())
            {
                html.AppendLine($"<li>{ helper.linkRegistrarPagamentoTitulo(Cobranca.AssociadoContribuicao.idTituloReceita.toInt(), "Registrar pagamento") }</li>");


                html.AppendLine($"<li>{ helper.linkParcelarTitulo(Cobranca.AssociadoContribuicao.idTituloReceita.toInt(), "Parcelar cobrança") }</li>");
            }

            html.AppendLine($"<li>{helper.linkDetalheTitulo(Cobranca.AssociadoContribuicao.idTituloReceita.toInt(), "Detalhes Cobrança")}</li>");

            if (Cobranca.AssociadoContribuicao.flagPodeIsentar())
            {
                html.AppendLine($"<li>{ helper.linkConcederIsencao(Cobranca.AssociadoContribuicao.id, "Conceder isenção") }</li>");
            }

            if (Cobranca.AssociadoContribuicao.dtPagamento.HasValue)
            {
                html.AppendLine($"<li>{ helper.linkRecibo(Cobranca.AssociadoContribuicao.id, "Recibo pagamento") }</li>");
            }

            html.AppendLine("<li ole=\"separator\" class=\"divider\"></li>");

            html.AppendLine($"<li>{ helper.linkExcluirContribuicao(Cobranca.AssociadoContribuicao.id, "Excluir cobrança") }</li>");

            html.AppendLine("</ul>");



            return(new MvcHtmlString(html.ToString()));
        }
예제 #4
0
        /// <summary>
        /// Carregar os associados que devem/deveriam estar vinculados à contribuicao
        /// </summary>
        private void carregarAssociados(int[] idsAssociados)
        {
            var listaAssociadoContribuicao = new List <AssociadoContribuicao>();

            var flagDataVariada = this.Contribuicao.flagVencimentoVariado();

            var OTabelaPreco = this.Contribuicao.retornarTabelaVigente();

            var listaPrecos = OTabelaPreco.listaPrecos.Where(x => x.flagExcluido == "N").ToList();

            var idsTiposAssociado = listaPrecos.Where(x => x.TipoAssociado.idOrganizacao == Contribuicao.idOrganizacao).Select(x => x.idTipoAssociado).ToArray();

            var idsAssociadosVinculados = listaContribuicoes.Select(x => x.idAssociado).Distinct().ToArray();

            var baseQuery = this.OAssociadoBL.listar(0, String.Empty, String.Empty, "S")
                            .Where(x => idsTiposAssociado.Contains(x.idTipoAssociado) || idsAssociadosVinculados.Contains(x.id));

            if (ano > 0)
            {
                var dtCorteAno = new DateTime(ano, 12, 31);

                if (this.Contribuicao.idTipoVencimento == TipoVencimentoConst.FIXO_PELA_CONTRIBUICAO)
                {
                    baseQuery = baseQuery.Where(x => x.dtAdmissao <= dtCorteAno || x.dtAdmissao == null || idsAssociadosVinculados.Contains(x.id));
                }

                if (this.Contribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELA_ADMISSAO_ASSOCIADO)
                {
                    dtCorteAno = new DateTime(ano, mes, 1).AddMonths(1);

                    baseQuery = baseQuery.Where(x => x.dtAdmissao <= dtCorteAno || idsAssociadosVinculados.Contains(x.id));
                }

                if (this.Contribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELO_ULTIMO_PAGAMENTO)
                {
                    dtCorteAno = new DateTime(ano, mes, 1).AddMonths(1);

                    listaAssociadoContribuicao = this.OAssociadoContribuicaoBL.listar(this.Contribuicao.id, 0, null, null)
                                                 .Where(x => x.dtExclusao == null &&
                                                        (x.dtVencimentoAtual <= dtCorteAno || x.dtPagamento <= dtCorteAno)
                                                        ).Select(x => new {
                        x.id,
                        x.idAssociado,
                        x.idAssociadoContribuicaoPrincipal,
                        x.dtPagamento,
                        x.dtVencimentoOriginal,
                        x.dtVencimentoAtual
                    })
                                                 .ToListJsonObject <AssociadoContribuicao>();

                    var idsAssociadosContrubuicao = listaAssociadoContribuicao.Select(x => x.idAssociado).ToArray();

                    baseQuery = baseQuery.Where(x => idsAssociadosContrubuicao.Contains(x.id) || idsAssociadosVinculados.Contains(x.id));
                }
            }

            //Se a contribuicao nao for anuidade, filtramos somente os associados nao vinculados que foram admitidos antes do vencimento atual
            if (dtVencimento != DateTime.MinValue && this.Contribuicao.PeriodoContribuicao.qtdeAnos == 0)
            {
                baseQuery = baseQuery.Where(x => x.dtAdmissao <= dtVencimento || (x.dtAdmissao == null && !flagDataVariada) || idsAssociadosVinculados.Contains(x.id));
            }

            if (Contribuicao.flagGerarParaTodos != true)
            {
            }

            if (this.idsTipoAssociado.Count > 0)
            {
                baseQuery = baseQuery.Where(x => this.idsTipoAssociado.Contains(x.idTipoAssociado));
            }


            if (!String.IsNullOrEmpty(this.ativo))
            {
                baseQuery = baseQuery.Where(x => x.ativo == this.ativo);
            }

            var query = baseQuery.Select(x => new {
                idAssociado = x.id,
                x.idPessoa,
                nomeAssociado = x.Pessoa.nome,

                nroAssociado          = x.nroAssociado,
                nroDocumentoAssociado = x.Pessoa.nroDocumento,

                statusAssociado = x.ativo,

                x.dtAdmissao,
                dtUltimaContribuicao   = DateTime.Today,
                descricaoTipoAssociado = x.TipoAssociado.descricao,

                listEmails = x.Pessoa.listaEmails,

                listTelefones = x.Pessoa.listaTelefones
            }).AsQueryable();


            if (idsAssociados != null && idsAssociados.Length > 0)
            {
                query = query.Where(x => idsAssociados.Contains(x.idAssociado));
            }

            var listaDinamicaAssociados = query.ToList();

            foreach (var Item in listaDinamicaAssociados)
            {
                var ItemLista = new AssociadoContribuicaoItemLista();

                ItemLista.AssociadoContribuicao = new AssociadoContribuicaoResumoVW();

                ItemLista.AssociadoContribuicao.idAssociado = Item.idAssociado;

                ItemLista.AssociadoContribuicao.idPessoa = Item.idPessoa;

                ItemLista.AssociadoContribuicao.nomeAssociado = Item.nomeAssociado;

                ItemLista.AssociadoContribuicao.descricaoTipoAssociado = Item.descricaoTipoAssociado;

                ItemLista.AssociadoContribuicao.dtVencimentoOriginal = dtVencimento;

                ItemLista.AssociadoExcel.nroAssociado = Item.nroAssociado;

                ItemLista.AssociadoExcel.nroDocumentoAssociado = Item.nroDocumentoAssociado;

                ItemLista.AssociadoExcel.statusAssociado = Item.statusAssociado;

                ItemLista.listEmails = Item.listEmails.Where(x => x.dtExclusao == null && !string.IsNullOrEmpty(x.email)).Take(2).ToList();

                ItemLista.listTelefones = Item.listTelefones.Where(x => x.dtExclusao == null && !string.IsNullOrEmpty(x.nroTelefone)).Take(3).ToList();


                if (this.Contribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELA_ADMISSAO_ASSOCIADO)
                {
                    ItemLista.AssociadoContribuicao.dtVencimentoOriginal = new DateTime(this.ano, UtilNumber.toInt32(Item.dtAdmissao?.Month), UtilNumber.toInt32(Item.dtAdmissao?.Day));
                }

                if (this.Contribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELO_ULTIMO_PAGAMENTO)
                {
                    var dtUltimaContribuicao = listaAssociadoContribuicao.Where(i => i.idAssociado == Item.idAssociado).Select(i => (i.dtPagamento != null ? i.dtPagamento.Value : i.dtVencimentoAtual)).LastOrDefault();

                    ItemLista.AssociadoContribuicao.dtVencimentoOriginal = dtUltimaContribuicao != DateTime.MinValue ? new DateTime(this.ano, dtUltimaContribuicao.Month.toInt(), dtUltimaContribuicao.Day.toInt()) : DateTime.Today;
                }

                this.listaAssociados.Add(ItemLista);
            }
        }