예제 #1
0
        // 1 - Gerar uma nova senha para o associado
        // 2 - Atualizar a senha no banco de dados
        // 3 - Chamar o serviço de envio de e-mail para comunicar a nova senha para o associado
        public UtilRetorno reenviarSenha(int idAssociado)
        {
            string novaSenha      = UtilString.randomString(8);
            string novaSenhaCrypt = UtilCrypt.SHA512(novaSenha);

            var query = this.db.Associado.Where(x => x.id == idAssociado && x.dtExclusao == null);

            query = query.condicoesSeguranca();

            Associado OAssociado = query.FirstOrDefault();

            if (OAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O associado não foi localizado."));
            }

            if (OAssociado.ativo == "N")
            {
                return(UtilRetorno.newInstance(true, "O Associado está desativado e não pode receber uma nova senha."));
            }

            if (OAssociado.Pessoa.login.isEmpty())
            {
                return(UtilRetorno.newInstance(true, "O Associado não possui um login."));
            }

            var listaEmails = OAssociado.Pessoa.ToEmailList();

            if (!listaEmails.Any())
            {
                return(UtilRetorno.newInstance(true, "Não pode ser localizado nenhum e-mail para o reenvio da senha."));
            }

            OAssociado.Pessoa.senha = novaSenhaCrypt;

            this.db.SaveChanges();

            IEnvioSenhaAssociado EnvioEmail = EnvioSenhaAssociado.factory(OAssociado.idOrganizacao, listaEmails, null);

            EnvioEmail.enviar(OAssociado, novaSenha);

            return(UtilRetorno.newInstance(false, "Foi gerada uma nova senha para e reenviada para os e-mails de cadastro do associado."));
        }
        //Persistir e inserir um novo registro
        //Inserir Empresa, Pessoa e lista de Endereços vinculados
        private bool inserir(UsuarioSistema OUsuarioSistema)
        {
            string senha = UtilString.randomString(8);

            OUsuarioSistema.senha = UtilCrypt.SHA512(senha);

            OUsuarioSistema.flagAlterarSenha = "S";

            OUsuarioSistema.setDefaultInsertValues();

            OUsuarioSistema.Pessoa.setDefaultInsertValues();

            OUsuarioSistema.Pessoa.listaEnderecos.ForEach(x => {
                x.setDefaultInsertValues();

                x.idPais = "BRA";

                x.idTipoEndereco = TipoEnderecoConst.PRINCIPAL;
            });

            if (OUsuarioSistema.Pessoa.listaEnderecos != null && OUsuarioSistema.Pessoa.listaEnderecos.Count > 0)
            {
                OUsuarioSistema.Pessoa.listaEnderecos.ForEach((x) => x.setDefaultInsertValues());

                OUsuarioSistema.Pessoa.listaEnderecos.ForEach((x) => x.idTipoEndereco = TipoEnderecoConst.PRINCIPAL);
            }

            db.UsuarioSistema.Add(OUsuarioSistema);

            db.SaveChanges();

            bool flagCastrado = OUsuarioSistema.id > 0;

            if (flagCastrado)
            {
                IEnvioNovoUsuario OEmail = EnvioNovoUsuario.factory(OUsuarioSistema.idOrganizacao.toInt(), OUsuarioSistema.Pessoa.ToEmailsPessoa(), null);

                OEmail.enviar(OUsuarioSistema, senha);
            }

            return(OUsuarioSistema.id > 0);
        }
        /// <summary>
        ///
        /// </summary>
        private string montarParametrosPersonalizados(EventoInscricao OInscricao)
        {
            var i = UtilCrypt.toBase64Encode(OInscricao.id.toInt());

            var icr = UtilCrypt.SHA512(OInscricao.id.toInt().ToString());

            string linkCertificado = ConfiguracaoLinkBaseBL.linkAreaAssociado(OInscricao.idOrganizacao, $"EventosPro/EventoCertificadoAcesso/index?i={i}&icr={icr}");

            Dictionary <string, string> personalizacaoParams = new Dictionary <string, string>();

            personalizacaoParams.Add("#LINK_CERTIFICADO#", linkCertificado);
            personalizacaoParams.Add("#TITULO_EVENTO#", OInscricao.Evento.titulo);
            personalizacaoParams.Add("#NOME_INSCRITO#", OInscricao.nomeInscrito);

            string infosPersonalizadas = JsonConvert.SerializeObject(personalizacaoParams, new JsonSerializerSettings {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            });

            return(infosPersonalizadas);
        }
예제 #4
0
        public bool cryptSenha(int id, string senhaClean)
        {
            if (id == 0)
            {
                return(false);
            }

            if (senhaClean.isEmpty())
            {
                return(false);
            }

            db.Associado.Where(x => id == x.id)
            .Update(
                x => new Associado {
                senhaTransacao = UtilCrypt.SHA512(senhaClean)
            }
                );

            return(true);
        }
예제 #5
0
        //Login para o associado na área institucional
        public Associado login(string login, string senha, int idTipoCadastro, int?idOrganizacaoParam = null)
        {
            if (idOrganizacaoParam == 0)
            {
                idOrganizacaoParam = idOrganizacao;
            }

            string cryptSenha = UtilCrypt.SHA512(senha);

            string loginCPF = login.onlyNumber();

            var loginNumerico = loginCPF.toInt();

            var query = from Ass in db.Associado
                        .Include(x => x.Pessoa)
                        .Include(x => x.PlanoCarreira)
                        where
                        (
                Ass.Pessoa.login == login ||
                (Ass.Pessoa.nroDocumento == loginCPF && !string.IsNullOrEmpty(loginCPF)) ||
                (Ass.nroAssociado == loginNumerico && loginNumerico > 0)
                        ) &&
                        Ass.Pessoa.senha == cryptSenha &&
                        Ass.dtExclusao == null &&
                        Ass.idTipoCadastro == idTipoCadastro &&
                        Ass.ativo != "N" &&
                        Ass.Pessoa.flagExcluido == "N"
                        select
                        Ass;

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

            var OAssociado = query.FirstOrDefault();

            return(OAssociado);
        }
예제 #6
0
        //Alteracao de senha solicitada pelo usuario
        public UtilRetorno alterarSenha(int idAssociado, string senhaAtual, string novaSenha, bool flagValidarSenhaAtual = true, int?idOrganizacaoParam = null)
        {
            if (idOrganizacao > 0 && idOrganizacaoParam == null)
            {
                idOrganizacaoParam = idOrganizacao;
            }

            var query = from Ass in db.Associado
                        .Include(x => x.Pessoa)
                        where
                        Ass.id == idAssociado &&
                        Ass.dtExclusao == null
                        select
                        Ass;

            var OAssociado = query.FirstOrDefault();

            if (OAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "Desculpe, não foi localizado nenhum associado com os dados informados."));
            }

            query = query.Where(x => x.idOrganizacao == idOrganizacaoParam);

            if (!UtilCrypt.SHA512(senhaAtual).Equals(OAssociado.Pessoa.senha) && flagValidarSenhaAtual)
            {
                return(UtilRetorno.newInstance(true, "A senha atual informada está incorreta."));
            }

            OAssociado.Pessoa.senha = UtilCrypt.SHA512(novaSenha);
            db.SaveChanges();

            //Assinatura e disparo do evento
            this.onSenhaAlterada.subscribe(new OnSenhaAlteradaHandler());
            this.onSenhaAlterada.publish((OAssociado as object));

            return(UtilRetorno.newInstance(false, "A senha foi alterada com sucesso!"));
        }
        //Inserir os dados para um novo não associado
        //Gerar uma senha randômica para enviar para o cadastro do novo não associado
        private bool inserir(Associado ONaoAssociado)
        {
            ONaoAssociado.setDefaultInsertValues();

            ONaoAssociado.Pessoa.login = ONaoAssociado.Pessoa.login.ToLower();

            ONaoAssociado.Pessoa.setDefaultInsertValues();

            ONaoAssociado.Pessoa.listaEnderecos.ForEach(e => { e.setDefaultInsertValues(); });

            ONaoAssociado.idTipoAssociado = UtilNumber.toInt32(ONaoAssociado.idTipoAssociado);

            ONaoAssociado.ativo = "S";

            string senha = ONaoAssociado.Pessoa.senha;

            ONaoAssociado.Pessoa.senha = UtilCrypt.SHA512(senha);

            db.Associado.Add(ONaoAssociado);
            db.SaveChanges();

            return(ONaoAssociado.id > 0);
        }
예제 #8
0
        /// <summary>
        ///
        /// </summary>
        public virtual UtilRetorno validaSenha(MovimentoOperacaoDTO Transacao)
        {
            var senhaTransacao = Transacao.MembroOrigem.senhaTransacao;

            if (senhaTransacao.isEmpty())
            {
                return(UtilRetorno.newInstance(true, "A conta informada não possui senha de transação configurada."));
            }

            if (Transacao.tk.isEmpty())
            {
                return(UtilRetorno.newInstance(true, "A senha de confirmação da transação não foi informada."));
            }

            string senhaEnviada = UtilCrypt.SHA512(Transacao.tk);

            if (!senhaEnviada.Equals(senhaTransacao))
            {
                return(UtilRetorno.newInstance(true, "A senha de transação informada é inválida."));
            }

            return(UtilRetorno.newInstance(false, ""));
        }
        public ActionResult visualizarAdmissao(string id)
        {
            var paramId   = UtilString.decodeURL(id);
            var decryptId = Convert.ToInt32(UtilCrypt.toBase64Decode(paramId));

            var ONaoAssociado = this.ONaoAssociadoBL.carregar(decryptId).condicoesSeguranca().FirstOrDefault();

            if (ONaoAssociado == null)
            {
                return(HttpNotFound());
            }

            NaoAssociadoImpressao ViewModel = null;

            if (ONaoAssociado.Pessoa.flagTipoPessoa == "F")
            {
                ViewModel = new NaoAssociadoImpressaoPF();
            }

            if (ONaoAssociado.Pessoa.flagTipoPessoa == "F")
            {
                ViewModel = new NaoAssociadoImpressaoPJ();
            }

            ViewModel.NaoAssociado = ONaoAssociado;

            ViewModel.carregarCampos();

            ViewModel.NaoAssociado.Pessoa.limparListas();

            ViewModel.OFichaCadastral = this.getLayoutFichaCadastral(ViewModel.NaoAssociado.Pessoa.flagTipoPessoa);

            ViewModel.montarHtmlFicha();

            return(View("imprimir-admissao", ViewModel));
        }
        //
        public UtilRetorno validarParametrosAcesso(string idOrganizacaoBase64, string idOrganizacaoSha512, string idAssociadoBase64, string idAssociadoSha512)
        {
            if (idOrganizacaoBase64.isEmpty() || idAssociadoBase64.isEmpty())
            {
                return(new UtilRetorno {
                    flagError = true, listaErros = new List <string> {
                        "Parâmetros inválidos!"
                    }
                });
            }

            string idOrganizacaoParam = UtilCrypt.toBase64Decode(idOrganizacaoBase64);
            string idAssociadoParam   = UtilCrypt.toBase64Decode(idAssociadoBase64);

            if (idOrganizacaoSha512 != UtilCrypt.SHA512(idOrganizacaoParam))
            {
                return(new UtilRetorno {
                    flagError = true, listaErros = new List <string> {
                        "Parâmetros inválidos!"
                    }
                });
            }

            if (idAssociadoSha512 != UtilCrypt.SHA512(idAssociadoParam))
            {
                return(new UtilRetorno {
                    flagError = true, listaErros = new List <string> {
                        "Parâmetros inválidos!"
                    }
                });
            }

            return(new UtilRetorno {
                flagError = false
            });
        }
        //
        public static MvcHtmlString linkRecibo(this HtmlHelper helper, int idAssociadoContribuicao, string textoLink, string cssClass = "")
        {
            var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);

            var linkHref = urlHelper.Action("exibir-recibo", "ReciboContribuicao", new { area = "Recibos", i = UtilCrypt.toBase64Encode(idAssociadoContribuicao) });

            TagBuilder htmlLink = new TagBuilder("a");

            htmlLink.Attributes.Add("href", linkHref);

            htmlLink.Attributes.Add("target", "_blank");

            htmlLink.Attributes.Add("title", "Visualizar recibo de pagamento.");

            htmlLink.Attributes.Add("data-toggle", "tooltip");

            htmlLink.InnerHtml = textoLink;

            if (!string.IsNullOrEmpty(cssClass))
            {
                htmlLink.AddCssClass(cssClass);
            }

            return(new MvcHtmlString(htmlLink.ToString()));
        }
        public ActionResult imprimirCarteirinha(int id)
        {
            var OAssociado = this.OAssociadoBL.carregar(id);

            if (OAssociado == null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Não foi possível emitir a carteirinha para este associado.");
                return(View());
            }

            if (!OAssociado.dtAdmissao.HasValue)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Não é possível imprimir carteirinha para associados que não foram admitidos.");

                return(View());
            }

            if (OAssociado.ativo == "N")
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Não é possível imprimir carteirinha para associados desativados.");

                return(View());
            }


            var OFoto = this.OArquivoUploadFotoBL.carregarPrincipal(id, EntityTypes.FOTO_ASSOCIADO);

            var ConfiguracaoCarteirinha = ConfiguracaoCarteirinhaBL.getInstance.carregar(OAssociado.idOrganizacao) ?? new ConfiguracaoCarteirinha();

            var htmlCarteirinha   = ConfiguracaoCarteirinha.htmlCarteirinha;
            var qtdeMesesValidade = ConfiguracaoCarteirinha.qtdeMesesValidade ?? 1;
            var dtValidadeFixa    = ConfiguracaoCarteirinha.dtValidadeFixa.exibirData();

            var OConfiguracaoTipoAssociado = OConfiguracaoTipoAssociadoBL.carregar(OAssociado.idTipoAssociado, OAssociado.idOrganizacao) ?? new ConfiguracaoTipoAssociado();

            if (!OConfiguracaoTipoAssociado.htmlCarteirinha.isEmpty())
            {
                htmlCarteirinha   = OConfiguracaoTipoAssociado.htmlCarteirinha;
                qtdeMesesValidade = OConfiguracaoTipoAssociado.qtdeMesesValidade ?? 1;
                dtValidadeFixa    = OConfiguracaoTipoAssociado.dtValidadeFixa.exibirData();
            }

            var sexo = "";

            if (!OAssociado.Pessoa.flagSexo.isEmpty())
            {
                sexo = (OAssociado.Pessoa.flagSexo == "M") ? "Masculino" : "Feminino";
            }

            if (OFoto != null)
            {
                OFoto.path      = OFoto.linkImagem();
                htmlCarteirinha = htmlCarteirinha.Replace("##PATH_IMAGEM##", OFoto.path);
            }

            htmlCarteirinha = htmlCarteirinha.Replace("##ID_ASSOCIADO##", OAssociado.nroAssociado > 0? OAssociado.nroAssociado.ToString(): OAssociado.id.ToString());

            htmlCarteirinha = htmlCarteirinha.Replace("##DT_ADMISSAO##", OAssociado.dtAdmissao.exibirData());

            htmlCarteirinha = htmlCarteirinha.Replace("##DT_NASCIMENTO##", OAssociado.Pessoa.dtNascimento.exibirData());

            htmlCarteirinha = htmlCarteirinha.Replace("##VALIDADE##", String.Concat(qtdeMesesValidade, " meses"));

            htmlCarteirinha = htmlCarteirinha.Replace("##VALIDADE_FIXA##", dtValidadeFixa);

            htmlCarteirinha = htmlCarteirinha.Replace("##DADOS_CUSTOMIZADO_01##", OAssociado.dadoCustomizado01);

            htmlCarteirinha = htmlCarteirinha.Replace("##DADOS_CUSTOMIZADO_02##", OAssociado.dadoCustomizado02);

            htmlCarteirinha = htmlCarteirinha.Replace("##DADOS_CUSTOMIZADO_03##", OAssociado.dadoCustomizado03);

            htmlCarteirinha = htmlCarteirinha.Replace("##CPF##", UtilString.formatCPFCNPJ(OAssociado.Pessoa.nroDocumento));

            htmlCarteirinha = htmlCarteirinha.Replace("##RG##", OAssociado.Pessoa.rg);

            htmlCarteirinha = htmlCarteirinha.Replace("##ORGAO_EMISSOR_RG##", OAssociado.Pessoa.orgaoEmissorRg);

            htmlCarteirinha = htmlCarteirinha.Replace("##NOME##", OAssociado.Pessoa.nome);

            htmlCarteirinha = htmlCarteirinha.Replace("##SEXO_SIGLA##", OAssociado.Pessoa.flagSexo);

            htmlCarteirinha = htmlCarteirinha.Replace("##SEXO##", sexo);

            htmlCarteirinha = htmlCarteirinha.Replace("##NOME_PAI##", OAssociado.Pessoa.nomePai);

            htmlCarteirinha = htmlCarteirinha.Replace("##NOME_MAE##", OAssociado.Pessoa.nomeMae);

            htmlCarteirinha = htmlCarteirinha.Replace("##NRO_REGISTRO_ORGAO_CLASSE##", OAssociado.Pessoa.nroRegistroOrgaoClasse);

            if (htmlCarteirinha.Contains("##INICIO_QRCODE##"))
            {
                var match    = Regex.Match(htmlCarteirinha, "##INICIO_QRCODE##(.*)##FIM_QRCODE##");
                var URL      = match.Groups[1].Value;
                var URL_CODE = URL.Replace("##ID_ASSOCIADO_CRYPT##", UtilCrypt.toBase64Encode(OAssociado.id));

                htmlCarteirinha = ""; //"##INICIO_QRCODE##"+URL+"##FIM_QRCODE##", ZxingExtensions.gerarQrCode(URL_CODE, 100, 100).ToString());
            }

            ViewBag.htmlCarteirinha = htmlCarteirinha;

            return(View());
        }
        public ActionResult exibirRecibo(string i)
        {
            int idInscricao = UtilNumber.toInt32(UtilCrypt.toBase64Decode(i));

            var OAssociadoInscricao = this.OAssociadoContribuicaoBL.carregar(idInscricao);

            if (OAssociadoInscricao == null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, UtilMessage.error("Falha", "O pagamento informado não foi localizado no sistema"));

                return(RedirectToAction("error404", "Erro", new { area = "Erros" }));
            }

            var OTitulo = this.OTituloReceitaBL.carregarPorReceita(OAssociadoInscricao.id);

            if (OTitulo == null && OAssociadoInscricao.dtPagamento.HasValue)
            {
                this.OTituloReceitaGeradorBL.gerar(OAssociadoInscricao as object);

                OTitulo = this.OTituloReceitaBL.carregarPorReceita(OAssociadoInscricao.id);

                OTitulo.dtQuitacao = OAssociadoInscricao.dtPagamento;

                this.OTituloReceitaGeradorBL.salvar(OTitulo);
            }

            if (OTitulo == null)
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, UtilMessage.error("Falha", "O título de pagamento informado não pôde ser localizado."));
                return(RedirectToAction("error404", "Erro", new { area = "Erros" }));
            }

            var ConfiguracaoSistema = ConfiguracaoSistemaBL.getInstance.carregar(OAssociadoInscricao.idOrganizacao);

            string htmlRecibo = ConfiguracaoReciboBL.getInstance.carregar().htmlRecibo;

            if (htmlRecibo.isEmpty())
            {
                this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, UtilMessage.error("Falha", "Não existem configurações de recibo no momento."));
                return(RedirectToAction("error404", "Erro", new { area = "Erros" }));
            }

            var OTituloRecibo = this.OTituloReceitaReciboVWBL.carregar(OTitulo.id);

            htmlRecibo = htmlRecibo.Replace("#LINK_LOGO#", ConfiguracaoImagemBL.linkImagemOrganizacao(OTitulo.idOrganizacao, ConfiguracaoImagemBL.IMAGEM_PRINT_SISTEMA));

            htmlRecibo = htmlRecibo.Replace("#NOME_ORGANIZACAO#", ConfiguracaoSistema.nomeEmpresaResumo);

            htmlRecibo = htmlRecibo.Replace("#TEL_1_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelPrincipal + " " + OTituloRecibo.organizacaoNroTelPrincipal));

            htmlRecibo = htmlRecibo.Replace("#TEL_2_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelSecundario + " " + OTituloRecibo.organizacaoNroTelSecundario));

            htmlRecibo = htmlRecibo.Replace("#ENDERECO_CABECALHO#", string.Concat(OTituloRecibo.organizacaoLogradouro, ", ", OTituloRecibo.organizacaoNumero, " ", OTituloRecibo.organizacaoComplemento, ", ", OTituloRecibo.organizacaoBairro.isEmpty() ? "" : " " + OTituloRecibo.organizacaoBairro, " - ", UtilString.formatCEP(OTituloRecibo.organizacaoCep)));

            htmlRecibo = htmlRecibo.Replace("#UF_CIDADE_CABECALHO#", string.Concat(OTituloRecibo.organizacaoNomeCidade, ", ", OTituloRecibo.organizacaoSiglaEstado));

            htmlRecibo = htmlRecibo.Replace("#NUMERO#", OTituloRecibo.id.ToString().PadLeft(8, '0'));

            var valorTotal = decimal.Add(OTituloRecibo.valorTotal.toDecimal(), OTituloRecibo.valorTotalJuros.toDecimal());

            valorTotal = decimal.Subtract(valorTotal, UtilNumber.toDecimal(OTituloRecibo.valorDesconto));

            DateTime dtQuitacao = OTituloRecibo.dtQuitacao.GetValueOrDefault();

            htmlRecibo = htmlRecibo.Replace("#VALOR#", valorTotal.ToString("C"));

            htmlRecibo = htmlRecibo.Replace("#NOME#", OTituloRecibo.nomeRecibo);

            htmlRecibo = htmlRecibo.Replace("#NRO_DOCUMENTO#", UtilString.formatCPFCNPJ(OTituloRecibo.documentoRecibo));

            htmlRecibo = htmlRecibo.Replace("#DESCRICAO#", OTituloRecibo.descricao);

            htmlRecibo = htmlRecibo.Replace("#DATA#", String.Concat(dtQuitacao.Day.ToString(), " de ", UtilDate.retornarMesPorExtenso(dtQuitacao.Month), " de ", dtQuitacao.Year.ToString()));

            htmlRecibo = htmlRecibo.Replace("#ASSINATURA#", UtilCrypt.signRecipe("ctb", i));

            var ViewModel = new ReciboVM();

            ViewModel.htmlRecibo = htmlRecibo;

            return(View(ViewModel));
        }
        //Customizado para essa classe especifica
        public UtilRetorno enviar(Associado OAssociado)
        {
            Dictionary <string, object> infos = new Dictionary <string, object>();

            infos["nome"] = OAssociado.Pessoa.flagTipoPessoa == "F" ? "Nome: " + OAssociado.Pessoa.nome : "Razão Social: " + OAssociado.Pessoa.razaoSocial + "<br>Nome Fantasia: " + OAssociado.Pessoa.nome;

            infos["descDocumento"] = OAssociado.Pessoa.TipoDocumento != null ? OAssociado.Pessoa.TipoDocumento.nome : "Documento";

            infos["nroDocumento"] = UtilString.formatCPFCNPJ(OAssociado.Pessoa.nroDocumento);

            //Lista de e-mail
            var email = OAssociado.Pessoa.emailPrincipal();

            email = String.IsNullOrEmpty(OAssociado.Pessoa.emailSecundario()) ? email : String.Concat(email, " / ", OAssociado.Pessoa.emailSecundario());

            infos["email"] = email;

            //Lista de telefones
            var telefone = OAssociado.Pessoa.formatarTelPrincipal();

            telefone = String.IsNullOrEmpty(OAssociado.Pessoa.formatarTelSecundario()) ? telefone : String.Concat(telefone, " / ", OAssociado.Pessoa.formatarTelSecundario());
            telefone = String.IsNullOrEmpty(OAssociado.Pessoa.formatarTelTerciario()) ? telefone : String.Concat(telefone, " / ", OAssociado.Pessoa.formatarTelTerciario());

            infos["telefone"] = telefone;

            var nroAssociado = UtilString.notNull(OAssociado.nroAssociado);

            infos["id"] = !String.IsNullOrEmpty(nroAssociado) ? nroAssociado :  OAssociado.id.ToString();

            infos["descricaoTipoAssociado"] = (OAssociado.TipoAssociado == null? "-": OAssociado.TipoAssociado.descricao);

            var OEndereco = OAssociado.Pessoa.listaEnderecos.Count > 0 ?
                            OAssociado.Pessoa.listaEnderecos.FirstOrDefault() : new PessoaEndereco();

            infos["endereco"] = OEndereco.id > 0 ?
                                String.Concat(
                OEndereco.logradouro, " ", OEndereco.numero, " ", OEndereco.complemento, " - ", OEndereco.bairro, " - ",
                (OEndereco.Cidade != null ? OEndereco.Cidade.nome : OEndereco.nomeCidade), "/",
                (OEndereco.Cidade != null && OEndereco.Cidade.Estado != null ? OEndereco.Cidade.Estado.sigla : OEndereco.uf)
                ) : "-";

            infos["link"] = String.Concat(UtilConfig.linkAbsSistema, "Associados/associadoimpressao/visualizar-admissao/", UtilCrypt.toBase64Encode(OAssociado.id));

            ConfiguracaoNotificacao OConfiguracao = ConfiguracaoNotificacaoBL.getInstance.carregar(this.idOrganizacao);

            var assuntoEmail = OConfiguracao.assuntoEmailFichaAssociado.Replace("#NOME#", OAssociado.Pessoa.nome);

            return(this.enviar(infos, assuntoEmail));
        }
        // 1 - Receber os dados informados pelo usuário
        // 2 - Criptografar a senha
        // 3 - Realizar a busca no banco de dados com base na senha e no login
        // 4 - Verificar se o usuário está ativo
        public UtilRetorno login(string login, string senha)
        {
            string encryptSenha = UtilCrypt.SHA512(senha);

            var OUsuario = (from Usu in db.UsuarioSistema
                            where
                            Usu.login == login &&
                            Usu.senha == encryptSenha &&
                            Usu.dtExclusao == null
                            select Usu).Include(x => x.Organizacao).FirstOrDefault();

            if (OUsuario == null)
            {
                return(UtilRetorno.newInstance(true, "Os dados de acesso são inválidos."));
            }

            if (OUsuario.ativo == "N")
            {
                return(UtilRetorno.newInstance(true, "O usuário informado não está ativo no momento.", OUsuario));
            }

            if (OUsuario.idPerfilAcesso != PerfilAcessoConst.DESENVOLVEDOR)
            {
                if (OUsuario.Organizacao.ativo != true)
                {
                    return(UtilRetorno.newInstance(true, "A associação do usuário não esta ativa no momento.", OUsuario));
                }

                if (OUsuario.Organizacao.idStatusOrganizacao == StatusOrganizacaoConst.BLOQUEADO)
                {
                    return(UtilRetorno.newInstance(true, "A sua associação não está ativa no momento, por favor, entre em contato com o gerente de sua assinatura.", OUsuario));
                }

                if (OUsuario.Organizacao.idStatusOrganizacao == StatusOrganizacaoConst.DESATIVADO)
                {
                    return(UtilRetorno.newInstance(true, "A sua associação não está ativa no momento, por favor, entre em contato com o gerente de sua assinatura.", OUsuario));
                }

                if (OUsuario.Organizacao.idStatusOrganizacao == StatusOrganizacaoConst.SUSPENSAO_FINANCEIRA)
                {
                    return(UtilRetorno.newInstance(true, "Não foi possível acessar o sistema, por favor, entre em contato com o departamento financeiro.", OUsuario));
                }
            }

            if (OUsuario.PerfilAcesso.flagTodasUnidades != true)
            {
                var flagUnidadeConfigurada = this.OUsuarioUnidadeBL.listar(OUsuario.id, null).Any();

                if (!flagUnidadeConfigurada)
                {
                    return(UtilRetorno.newInstance(true, "O usuário informado não possui unidade configurada.", OUsuario));
                }
            }

            if (OUsuario.isDegustacao() && !OUsuario.periodoDegustacaoAtivo())
            {
                if (OUsuario.dtFimDegustacao < DateTime.Today)
                {
                    return(UtilRetorno.newInstance(true, "O seu período de degustação expirou.", OUsuario));
                }

                if (OUsuario.dtInicioDegustacao > DateTime.Today)
                {
                    return(UtilRetorno.newInstance(true, "O seu acesso temporário ainda não está disponível.", OUsuario));
                }

                return(UtilRetorno.newInstance(true, "Houve algum problema com o seu acesso temporário. Tente novamente mais tarde.", OUsuario));
            }

            return(UtilRetorno.newInstance(false, "Dados de acesso validados com sucesso.", OUsuario));
        }
        public async Task <HttpResponseMessage> Post()
        {
            string jsonParam = await Request.Content.ReadAsStringAsync();

            if (jsonParam.isEmpty())
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new DefaultDTO(true, "Dados não enviados!")));
            }

            var info = JObject.Parse(jsonParam);

            int idEvento = info["idEvento"].toInt();

            string login = info["login"].stringOrEmpty();

            string senha = info["senha"].stringOrEmpty();

            var idOrganizacao = CustomExtensions.getIdOrganizacao();

            // Validação inicial
            var ORetornoValidacao = this.Validador.validar(idEvento, login, idOrganizacao);

            if (ORetornoValidacao.flagError)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized, new DefaultDTO(ORetornoValidacao.flagError, ORetornoValidacao.listaErros.FirstOrDefault())));
            }

            var ORetorno = new AcessoInscricaoRetornoDTO();

            var ConfiguracaoInscricao = ORetornoValidacao.info.ToJsonObject <ConfiguracaoInscricao>();

            if (ConfiguracaoInscricao.flagSenhaAcesso == true && senha.isEmpty())
            {
                ORetorno.flagInformarSenha = true;

                ORetorno.flagErro = false;

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

            // Autenticação do inscrito
            var ORetornoLogin = this.OInscricaoAcessoBL.autenticar(idEvento, login, senha);

            if (ORetornoLogin.flagError)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new DefaultDTO(ORetornoLogin.flagError, ORetornoLogin.listaErros.FirstOrDefault())));
            }

            var DadosInscrito = ORetornoLogin.info.ToJsonObject <DadosInscritoDTO>();

            var DadosRetorno = new {
                DadosInscrito.idOrganizacao,
                DadosInscrito.idInscricao,
                DadosInscrito.idPessoa,
                DadosInscrito.idInscricaoComprador,
                DadosInscrito.idTipoInscricao,
                DadosInscrito.tipoInscricao,
                DadosInscrito.idEvento,
                DadosInscrito.nomeInscrito,
                DadosInscrito.emailInscrito,
                DadosInscrito.descricaoStatusIncricao,
                DadosInscrito.flagInscricaoComprador,
                flagInscricaoQuitada = DadosInscrito.dtPagamento.HasValue || DadosInscrito.dtIsencao.HasValue,
                DadosInscrito.flagBloqueado,
                dtInscricao = DadosInscrito.dtInscricao.exibirData(),
                idA         = UtilCrypt.toBase64Encode(DadosInscrito.idInscricao),
                idAcr       = UtilCrypt.SHA512(DadosInscrito.idInscricao.ToString())
            };

            var listaResultados = new List <object>();

            listaResultados.Add(DadosRetorno);

            ORetorno.listaResultados = listaResultados;

            ORetorno.totalRegistros = 1;

            ORetorno.totalPaginas = 1;

            return(Request.CreateResponse(HttpStatusCode.OK, ORetorno));
        }
        //
        public UtilRetorno enviar(TituloReceitaPagamento OPagamento)
        {
            Dictionary <string, object> infos = new Dictionary <string, object>();

            string urlPagamento = String.Format(UtilConfig.linkPgto, UtilString.encodeURL(UtilCrypt.toBase64Encode(OPagamento.id)));

            infos["linkPgto"] = urlPagamento;

            infos["nomePessoa"] = OPagamento.TituloReceita.nomePessoa;

            string descricaoPagamento = OPagamento.TituloReceita.descricao;

            if (!string.IsNullOrEmpty(OPagamento.descricaoParcela))
            {
                descricaoPagamento = String.Concat(descricaoPagamento, " (", OPagamento.descricaoParcela, ")");
            }

            infos["descricaoPagamento"] = descricaoPagamento;

            string tituloEmail = $"{OConfiguracaoSistema.tituloSistema} - {OPagamento.TituloReceita.descricao}";

            return(this.enviar(infos, tituloEmail));
        }
        //Configurar os cookies de seguranca a partir de um associado
        public static void signInCheckout(this IPrincipal User, int idOrganizacao)
        {
            SecurityCookieCheckout.idOrganizacao = UtilCrypt.toBase64Encode(idOrganizacao);

            SecurityCookie.idOrganizacao = UtilCrypt.toBase64Encode(idOrganizacao);
        }
예제 #19
0
        public static void setOrganizacao(this IPrincipal User, string idOrganizacao, string nomeOrganizacao = "")
        {
            SecurityCookie.idOrganizacao = UtilCrypt.toBase64Encode(idOrganizacao.toInt());

            SecurityCookie.nomeOrganizacao = nomeOrganizacao;
        }
        public ActionResult exibirRecibo(string t)
        {
            int idTitulo = UtilNumber.toInt32(UtilCrypt.toBase64Decode(t));

            var OTituloReceita = this.OTituloReceitaBL.carregar(idTitulo);

            if (OTituloReceita == null)
            {
                return(HttpNotFound());
            }

            if (!OTituloReceita.dtQuitacao.HasValue)
            {
                return(HttpNotFound());
            }

            var ConfiguracaoSistema = ConfiguracaoSistemaBL.getInstance.carregar(OTituloReceita.idOrganizacao);

            var ConfiguracaoRecibo = ConfiguracaoReciboBL.getInstance.carregar(OTituloReceita.idOrganizacao);

            if (ConfiguracaoRecibo == null)
            {
                throw new Exception("Configurações de recibo não localizadas.");
            }

            var htmlRecibo = ConfiguracaoRecibo.htmlRecibo;

            var OTituloRecibo = this.OTituloReceitaReciboVWBL.carregar(OTituloReceita.id);

            htmlRecibo = htmlRecibo.Replace("#LINK_LOGO#", ConfiguracaoImagemBL.linkImagemOrganizacao(OTituloReceita.idOrganizacao, ConfiguracaoImagemBL.IMAGEM_PRINT_SISTEMA));

            htmlRecibo = htmlRecibo.Replace("#NOME_ORGANIZACAO#", ConfiguracaoSistema.nomeEmpresaResumo);

            htmlRecibo = htmlRecibo.Replace("#TEL_1_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelPrincipal + " " + OTituloRecibo.organizacaoNroTelPrincipal));

            htmlRecibo = htmlRecibo.Replace("#TEL_2_CABECALHO#", UtilString.formatPhone(OTituloRecibo.organizacaoDddTelSecundario + " " + OTituloRecibo.organizacaoNroTelSecundario));

            htmlRecibo = htmlRecibo.Replace("#ENDERECO_CABECALHO#", string.Concat(OTituloRecibo.organizacaoLogradouro, ", ", OTituloRecibo.organizacaoNumero, " ", OTituloRecibo.organizacaoComplemento, ", ", OTituloRecibo.organizacaoBairro.isEmpty() ? "" : " " + OTituloRecibo.organizacaoBairro, " - ", UtilString.formatCEP(OTituloRecibo.organizacaoCep)));

            htmlRecibo = htmlRecibo.Replace("#UF_CIDADE_CABECALHO#", string.Concat(OTituloRecibo.organizacaoNomeCidade, ", ", OTituloRecibo.organizacaoSiglaEstado));

            htmlRecibo = htmlRecibo.Replace("#NUMERO#", OTituloRecibo.id.ToString().PadLeft(8, '0'));

            var valorTotal = decimal.Add(OTituloRecibo.valorTotal.toDecimal(), OTituloRecibo.valorTotalJuros.toDecimal());

            valorTotal = decimal.Subtract(valorTotal, UtilNumber.toDecimal(OTituloRecibo.valorDesconto));

            DateTime dtQuitacao = OTituloRecibo.dtQuitacao.GetValueOrDefault();

            htmlRecibo = htmlRecibo.Replace("#VALOR#", valorTotal.ToString("C"));

            htmlRecibo = htmlRecibo.Replace("#NOME#", OTituloRecibo.nomeRecibo);

            htmlRecibo = htmlRecibo.Replace("#NRO_DOCUMENTO#", UtilString.formatCPFCNPJ(OTituloRecibo.documentoRecibo));

            htmlRecibo = htmlRecibo.Replace("#DESCRICAO#", OTituloRecibo.descricao);

            htmlRecibo = htmlRecibo.Replace("#DATA#", String.Concat(dtQuitacao.Day.ToString(), " de ", UtilDate.retornarMesPorExtenso(dtQuitacao.Month), " de ", dtQuitacao.Year.ToString()));

            htmlRecibo = htmlRecibo.Replace("#ASSINATURA#", UtilCrypt.signRecipe("tc", t));

            var ViewModel = new ReciboVM();

            ViewModel.htmlRecibo = htmlRecibo;

            return(View(ViewModel));
        }
예제 #21
0
        private DefaultDTO montarRetorno(List <EventoInscricao> listaInscricoes)
        {
            var ORetorno = new DefaultDTO();

            ORetorno.flagErro = false;

            if (!listaInscricoes.Any())
            {
                return(ORetorno);
            }

            var idsEventos = listaInscricoes.Select(x => x.idEvento).Distinct().ToList();

            var listaRealizacoesEvento = this.OEventoRealizacaoConsultaBL.query(this.idOrganizacao)
                                         .Where(x => idsEventos.Contains(x.idEvento))
                                         .Select(x => new { x.id, x.idEvento, x.dtRealizacao })
                                         .ToListJsonObject <EventoRealizacao>();


            var idsInscricoes = listaInscricoes.Select(x => (int?)x.id).ToList();

            var listaTitulosReceita = this.OTituloReceitaBL.query(this.idOrganizacao)
                                      .Where(x => x.idTipoReceita == TipoReceitaConst.INSCRICAO_EVENTO && idsInscricoes.Contains(x.idReceita))
                                      .Select(x => new { x.id, x.idReceita }).ToListJsonObject <TituloReceita>();

            var listaRetorno = listaInscricoes.Select(x => new {
                x.id,
                tituloEvento  = x.Evento?.titulo,
                dtInscricao   = x.dtInscricao.exibirData(),
                dtCadastro    = x.dtCadastro.exibirData(),
                flagCancelado = x.dtCancelamento.HasValue,
                flagPago      = x.dtPagamento.HasValue,
                flagIsento    = x.dtIsencao.HasValue,
                x.idTipoInscricao,
                descricaoTipoInscricao = x.TipoInscricao?.descricao,
                valorInscricao         = x.valorInscricaoComDesconto().ToString("C"),
                flagGratuito           = x.flagGratuito ?? false,
                x.idStatusInscricao,
                descricaoStatusInscricao = x.StatusInscricao?.descricao,
                idTituloReceita          = listaTitulosReceita.FirstOrDefault(c => c.idReceita == x.id)?.id.toInt(),
                idTituloReceitaCrypt     = listaTitulosReceita.FirstOrDefault(c => c.idReceita == x.id) != null ? UtilCrypt.toBase64Encode(listaTitulosReceita.FirstOrDefault(c => c.idReceita == x.id).id) : "",
                flagEventoEmAndamento    = listaRealizacoesEvento.Any() && listaRealizacoesEvento.Where(c => c.idEvento == x.idEvento).Min(c => c.dtRealizacao) <= DateTime.Today && listaRealizacoesEvento.Where(c => c.idEvento == x.idEvento).Max(c => c.dtRealizacao) >= DateTime.Today,
                flagEventoFinalizado     = listaRealizacoesEvento.Any() && listaRealizacoesEvento.Where(c => c.idEvento == x.idEvento).Max(c => c.dtRealizacao) < DateTime.Today
            });

            ORetorno.listaResultados = listaRetorno;

            return(ORetorno);
        }