Esempio n. 1
0
        private void EnviarEmailCodigo(SinacorExportarInfo pRequestSinacor, ClienteInfo pRequestCliente)
        {
            if (pRequestSinacor.Retorno.ExportacaoSinacorOk && pRequestCliente.StPasso == 3)
            {                                       //--> Primeira exportação
                var lNome = pRequestCliente.DsNome; //--> Pegar Nome Cliente

                var lEntradaLogin = new ReceberEntidadeCadastroRequest <LoginInfo>()
                {   //--> Pegar Login
                    EntidadeCadastro = new LoginInfo()
                    {
                        IdLogin = pRequestCliente.IdLogin,
                    }
                };

                string lEmailDestinatario = this.ServicoPersistenciaCadastro.ReceberEntidadeCadastro(lEntradaLogin).EntidadeCadastro.DsEmail;

                if (lEmailDestinatario.Trim().Length > 0 &&
                    (lEmailDestinatario.Trim().IndexOf('@') > -1) &&
                    (lNome.Trim().Length > 0) &&
                    (lEmailDestinatario.Trim().ToLower() != "[email protected]"))
                {
                    var dicVariaveis = new Dictionary <string, string>();

                    {   //--> Enviando e-mail para o cliente.
                        dicVariaveis.Add("@Nome", lNome);
                        dicVariaveis.Add("@Codigo", pRequestSinacor.Entrada.CdCodigo.ToString());

                        var lNomeAssessorInicial = this.ServicoPersistenciaCadastro.ConsultarEntidadeCadastro <SinacorListaComboInfo>(
                            new ConsultarEntidadeCadastroRequest <SinacorListaComboInfo>()
                        {       //-->Pegando o Assessor para ver se é TBC
                            IdUsuarioLogado        = base.UsuarioLogado.Id,
                            DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                            EntidadeCadastro       = new SinacorListaComboInfo()
                            {
                                Informacao = eInformacao.Assessor,
                                Filtro     = pRequestCliente.IdAssessorInicial.Value.ToString()
                            }
                        });

                        var lTextoEmail = "CadastroPasso4-PrimeiraExportacao.htm";

                        if (MensagemResponseStatusEnum.OK.Equals(lNomeAssessorInicial.StatusResposta) &&
                            (null != lNomeAssessorInicial) &&
                            (null != lNomeAssessorInicial.Resultado) &&
                            (lNomeAssessorInicial.Resultado.Count > 0) &&
                            (null != lNomeAssessorInicial.Resultado[0]) &&
                            lNomeAssessorInicial.Resultado[0].Value.ToUpper().Contains("TBC"))
                        {
                            lTextoEmail = "CadastroPrimeiraExportacaoTBC.htm";
                        }
                        else if (MensagemResponseStatusEnum.OK.Equals(lNomeAssessorInicial.StatusResposta) &&
                                 (null != lNomeAssessorInicial) &&
                                 (null != lNomeAssessorInicial.Resultado) &&
                                 (lNomeAssessorInicial.Resultado.Count > 0) &&
                                 (null != lNomeAssessorInicial.Resultado[0]) &&
                                 lNomeAssessorInicial.Resultado[0].Value.ToUpper().Contains("ESPACO DELA"))
                        {
                            lTextoEmail = "CadastroPrimeiraExportacaoEspacoDela.htm";
                        }

                        if (pRequestCliente.TpDesejaAplicar != "FUNDOS")
                        {
                            base.EnviarEmail(lEmailDestinatario, "Dados da sua conta na Gradual", lTextoEmail, dicVariaveis, eTipoEmailDisparo.Assessor);
                        }
                    }

                    {   //--> Enviando notificação para o assessor do cliente.
                        var lAssessor = this.ServicoPersistenciaCadastro.ReceberEntidadeCadastro <AssessorDoClienteInfo>(
                            new ReceberEntidadeCadastroRequest <AssessorDoClienteInfo>()
                        {       //--> Enviando email para o Assessor
                            IdUsuarioLogado        = base.UsuarioLogado.Id,
                            DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                            EntidadeCadastro       = new AssessorDoClienteInfo()
                            {
                                IdCliente = pRequestCliente.IdCliente.Value
                            }
                        });

                        dicVariaveis = new Dictionary <string, string>();
                        dicVariaveis.Add("@NomeCliente", lNome);
                        dicVariaveis.Add("@Codigo", pRequestSinacor.Entrada.CdCodigo.ToString());//.ToCodigoClienteFormatado());
                        dicVariaveis.Add("@Nome", lAssessor.EntidadeCadastro.NomeAssessor);

                        var lListaEmailAssessor = base.ConsultarListaEmailAssessor(lAssessor.EntidadeCadastro.CodigoAssessor).ListaEmailAssessor;

                        if (null != lListaEmailAssessor)
                        {
                            lListaEmailAssessor.ForEach(lDestinatario =>
                            {
                                base.EnviarEmail(lDestinatario, "Dados do seu cliente na Gradual", "CadastroPrimeiraExportacaoAssessor.htm", dicVariaveis, eTipoEmailDisparo.Assessor);
                            });
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public static void Logar(SinacorExportarInfo Entidade, int IdUsuarioLogado, string DescricaoUsuarioLogado, eAcao Acao, Exception Ex = null)
        {
            string lCabecalho = GetCabacalho(Entidade, IdUsuarioLogado, DescricaoUsuarioLogado, Acao);

            string lConteudo = "";

            try
            {
                lConteudo += " ; [Entrada.IdCliente] " + Entidade.Entrada.IdCliente.DBToString();
                lConteudo += " ; [Entrada.CdCodigo] " + Entidade.Entrada.CdCodigo.DBToString();
                lConteudo += " ; [Entrada.PrimeiraExportacao] " + Entidade.Entrada.PrimeiraExportacao.DBToString();

                if (null != Entidade.Retorno)
                {
                    lConteudo += " ; [Retorno.DadosClienteOk] " + Entidade.Retorno.DadosClienteOk.DBToString();
                    if (!Entidade.Retorno.DadosClienteOk)
                    {
                        if (null != Entidade.Retorno.DadosClienteMensagens)
                        {
                            foreach (var item in Entidade.Retorno.DadosClienteMensagens)
                            {
                                lConteudo += " ; [Mensagem] " + item.Mensagem.DBToString();
                                lConteudo += " ; [Tabela] " + item.Tabela.DBToString();
                            }
                        }
                    }

                    lConteudo += " ; [Retorno.ExportacaoSinacorOk] " + Entidade.Retorno.ExportacaoSinacorOk.DBToString();
                    if (!Entidade.Retorno.ExportacaoSinacorOk)
                    {
                        if (null != Entidade.Retorno.ExportacaoSinacorMensagens)
                        {
                            foreach (var item in Entidade.Retorno.ExportacaoSinacorMensagens)
                            {
                                lConteudo += " ; [CD_CLIENTE] " + item.CD_CLIENTE.DBToString();
                                lConteudo += " ; [CD_CPFCGC] " + item.CD_CPFCGC.DBToString();
                                lConteudo += " ; [CD_EXTERNO] " + item.CD_EXTERNO.DBToString();
                                lConteudo += " ; [DS_AUX] " + item.DS_AUX.DBToString();
                                lConteudo += " ; [DS_OBS] " + item.DS_OBS.DBToString();
                                lConteudo += " ; [DT_IMPORTA] " + item.DT_IMPORTA.DBToString();
                                lConteudo += " ; [DT_NASC_FUND] " + item.DT_NASC_FUND.DBToString();
                                lConteudo += " ; [NM_CLIENTE] " + item.NM_CLIENTE.DBToString();
                            }
                        }
                    }

                    lConteudo += " ; [Retorno.ExportacaoAtualizarCadastroOk] " + Entidade.Retorno.ExportacaoAtualizarCadastroOk.DBToString();
                    if (!Entidade.Retorno.ExportacaoAtualizarCadastroOk)
                    {
                        if (null != Entidade.Retorno.ExportacaoAtualizarCadastroMensagens)
                        {
                            foreach (var item in Entidade.Retorno.ExportacaoAtualizarCadastroMensagens)
                            {
                                lConteudo += " ; [Mensagem] " + item.Mensagem.DBToString();
                                lConteudo += " ; [Tabela] " + item.Tabela.DBToString();
                            }
                        }
                    }

                    lConteudo += " ; [Retorno.ExportacaoComplementosOk] " + Entidade.Retorno.ExportacaoComplementosOk.DBToString();
                    if (!Entidade.Retorno.ExportacaoComplementosOk)
                    {
                        if (null != Entidade.Retorno.ExportacaoComplementosMensagens)
                        {
                            foreach (var item in Entidade.Retorno.ExportacaoComplementosMensagens)
                            {
                                lConteudo += " ; [Mensagem] " + item.Mensagem.DBToString();
                                lConteudo += " ; [Tabela] " + item.Tabela.DBToString();
                                lConteudo += " ; [Procedure] " + item.Procedure.DBToString();
                            }
                        }
                    }

                    lConteudo += " ; [Retorno.ExportacaoRiscoOk] " + Entidade.Retorno.ExportacaoRiscoOk.DBToString();
                    if (!Entidade.Retorno.ExportacaoRiscoOk)
                    {
                        if (null != Entidade.Retorno.ExportacaoRiscoMensagens)
                        {
                            foreach (var item in Entidade.Retorno.ExportacaoRiscoMensagens)
                            {
                                lConteudo += " ; [Mensagem] " + item.Mensagem.DBToString();
                                lConteudo += " ; [Tabela] " + item.Tabela.DBToString();
                                lConteudo += " ; [Procedure] " + item.Procedure.DBToString();
                            }
                        }
                    }
                }
                if (null == Ex)
                {
                    logger.Info(lCabecalho + lConteudo);
                }
                else
                {
                    logger.Error(lCabecalho + lConteudo, Ex);
                }
            }
            catch (Exception ex)
            {
                logger.Error("[Erro ao Salvar Log] ", ex);
            }
        }
Esempio n. 3
0
        private string ResponderSincronizarComSinacor()
        {
            var lResposta = string.Empty;
            var lPrimeira = true;
            var lCodigo   = new Nullable <int>();

            //Pegar Cliente
            var lEntradaCliente = new ReceberEntidadeCadastroRequest <ClienteInfo>()
            {
            };
            var lRetornoCliente = new ReceberEntidadeCadastroResponse <ClienteInfo>();

            lEntradaCliente.EntidadeCadastro           = new ClienteInfo();
            lEntradaCliente.EntidadeCadastro.IdCliente = this.GetIdCliente;
            lEntradaCliente.IdUsuarioLogado            = base.UsuarioLogado.Id;
            lEntradaCliente.DescricaoUsuarioLogado     = base.UsuarioLogado.Nome;

            lRetornoCliente = this.ServicoPersistenciaCadastro.ReceberEntidadeCadastro(lEntradaCliente);

            if (lRetornoCliente.EntidadeCadastro.StPasso < 3)
            {
                lResposta = RetornarErroAjax("É preciso gerar a ficha cadastral antes de exportar o cliente.");
            }
            else
            {
                //Passo e Conta
                if (lRetornoCliente.EntidadeCadastro.StPasso == 4)
                {
                    lPrimeira = false;

                    //Pegar o Códio Principal
                    var lEntradaConta = new ConsultarEntidadeCadastroRequest <ClienteContaInfo>();
                    var lRetornoConta = new ConsultarEntidadeCadastroResponse <ClienteContaInfo>();

                    lEntradaConta.EntidadeCadastro           = new ClienteContaInfo();
                    lEntradaConta.EntidadeCadastro.IdCliente = lRetornoCliente.EntidadeCadastro.IdCliente.Value;
                    lEntradaConta.DescricaoUsuarioLogado     = base.UsuarioLogado.Nome;
                    lEntradaConta.IdUsuarioLogado            = base.UsuarioLogado.Id;
                    lRetornoConta = this.ServicoPersistenciaCadastro.ConsultarEntidadeCadastro <ClienteContaInfo>(lEntradaConta);

                    List <ClienteContaInfo> lListaConta = lRetornoConta.Resultado;

                    foreach (ClienteContaInfo lConta in lListaConta)
                    {
                        if (null != lConta.StPrincipal && lConta.StPrincipal.Value)
                        {
                            lCodigo = lConta.CdCodigo;
                            break;
                        }
                    }
                }

                //Exportação
                var lEntradaExportacao = new SalvarEntidadeCadastroRequest <SinacorExportarInfo>();
                var lRetornoExportacao = new SalvarEntidadeCadastroResponse();

                lEntradaExportacao.EntidadeCadastro                            = new SinacorExportarInfo();
                lEntradaExportacao.EntidadeCadastro.Entrada                    = new SinacorExportacaoEntradaInfo();
                lEntradaExportacao.EntidadeCadastro.Entrada.IdCliente          = lRetornoCliente.EntidadeCadastro.IdCliente.Value;
                lEntradaExportacao.EntidadeCadastro.Entrada.CdCodigo           = lCodigo;
                lEntradaExportacao.EntidadeCadastro.Entrada.PrimeiraExportacao = lPrimeira;
                lEntradaExportacao.DescricaoUsuarioLogado                      = base.UsuarioLogado.Nome;
                lEntradaExportacao.IdUsuarioLogado = base.UsuarioLogado.Id;
                lRetornoExportacao = this.ServicoPersistenciaCadastro.SalvarEntidadeCadastro <SinacorExportarInfo>(lEntradaExportacao);

                //Retorno da Exportação
                var lTransporte = new TransporteSincronizacaoComSinacor()
                {
                    GridErro = new List <GridSincronizacao>()
                };

                if (lRetornoExportacao.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    SinacorExportarInfo lRetorno = (SinacorExportarInfo)lRetornoExportacao.Objeto;
                    GridSincronizacao   lGrig;

                    if (!lRetorno.Retorno.DadosClienteOk)
                    {   //Erro na validação do Cliente
                        lTransporte.Resultado = gResultadoErroCadastro;
                        foreach (var item in lRetorno.Retorno.DadosClienteMensagens)
                        {
                            lGrig           = new GridSincronizacao();
                            lGrig.Tipo      = gTipoPendencia;
                            lGrig.Descricao = item.Mensagem;
                            lTransporte.GridErro.Add(lGrig);
                        }
                    }
                    else
                    {
                        if (!lRetorno.Retorno.ExportacaoSinacorOk)
                        {   //Erro no processo CliExterno
                            lTransporte.Resultado = gResultadoErroClieExterno;
                            foreach (var item in lRetorno.Retorno.ExportacaoSinacorMensagens)
                            {
                                lGrig           = new GridSincronizacao();
                                lGrig.Tipo      = gTipoCliExterno;
                                lGrig.Descricao = string.Concat(item.DS_OBS, " - ", item.DS_AUX);
                                lTransporte.GridErro.Add(lGrig);
                            }
                        }
                        else
                        {
                            //Cliente Exportado
                            //Verificação do Resultado:
                            if (lRetorno.Retorno.ExportacaoAtualizarCadastroOk && lRetorno.Retorno.ExportacaoComplementosOk)//Tudo OK
                            {
                                lTransporte.Resultado = gResultadoOk;
                            }
                            else //Com resalvas
                            {
                                lTransporte.Resultado = gResultadoOkParcial;

                                if (!lRetorno.Retorno.ExportacaoAtualizarCadastroOk) //Atualizacao OK
                                {
                                    lTransporte.Mensagens.Add(gResultadoErroAtualizacao);
                                }

                                if (!lRetorno.Retorno.ExportacaoRiscoOk) //Risco OK
                                {
                                    lTransporte.Mensagens.Add(gResultadoErroRisco);
                                }

                                if (!lRetorno.Retorno.ExportacaoComplementosOk) //Complementos OK
                                {
                                    lTransporte.Mensagens.Add(gResultadoErroComplementos);
                                }
                            }

                            //Montando o Grid
                            if (!lRetorno.Retorno.ExportacaoAtualizarCadastroOk)
                            {
                                foreach (var item in lRetorno.Retorno.ExportacaoAtualizarCadastroMensagens)
                                {
                                    lGrig           = new GridSincronizacao();
                                    lGrig.Tipo      = gTipoAtualizacao;
                                    lGrig.Descricao = item.Mensagem;
                                    lTransporte.GridErro.Add(lGrig);
                                }
                            }

                            if (!lRetorno.Retorno.ExportacaoRiscoOk)
                            {
                                foreach (var item in lRetorno.Retorno.ExportacaoRiscoMensagens)
                                {
                                    lGrig           = new GridSincronizacao();
                                    lGrig.Tipo      = gTipoRisco;
                                    lGrig.Descricao = item.Mensagem;
                                    lTransporte.GridErro.Add(lGrig);
                                }
                            }

                            if (!lRetorno.Retorno.ExportacaoComplementosOk)
                            {
                                foreach (var item in lRetorno.Retorno.ExportacaoComplementosMensagens)
                                {
                                    lGrig           = new GridSincronizacao();
                                    lGrig.Tipo      = gTipoComplementos;
                                    lGrig.Descricao = item.Mensagem;
                                    lTransporte.GridErro.Add(lGrig);
                                }
                            }

                            this.EnviarEmailCodigo(lRetorno, lRetornoCliente.EntidadeCadastro);
                        } // Fim Cliente Exportado
                    }
                }
                else
                {
                    lTransporte.Resultado = lRetornoExportacao.DescricaoResposta;
                    lResposta             = RetornarErroAjax(lRetornoExportacao.DescricaoResposta);
                }

                lResposta = RetornarSucessoAjax(lTransporte, "Comunicação com o Sinacor realizada.");

                base.RegistrarLogAlteracao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                {
                    IdClienteAfetado = this.GetIdCliente,
                    DsObservacao     = string.Concat("Cliente sincronizado: id_cliente: ", this.GetIdCliente)
                });
            }
            return(lResposta);
        }