Example #1
0
        /// <summary>
        /// Atualiza o tipo de corretagem do cliente no sinacor TSCCLIBOL
        /// </summary>
        private void AtualizaPlanoCorretagemClienteSinacor(PlanoClienteInfo pRequest)
        {
            try
            {
                AcessaDados acesso = new AcessaDados();

                acesso.ConnectionStringName = _ConnstringCorrWin;

                string lQuery = string.Format("UPDATE TSCCLIBOL SET IN_TIPO_CORRET = 1 WHERE CD_CLIENTE = {0}", pRequest.CdCblc);

                using (DbCommand cmdUpd = acesso.CreateCommand(CommandType.Text, lQuery))
                {
                    acesso.ExecuteNonQuery(cmdUpd);
                }

                //string lQueryCus = string.Format("UPDATE TSCCLICUS SET TP_CUSTODIA = 351 WHERE CD_CLIENTE = {0}", pRequest.CdCblc);

                //using (DbCommand cmdUpd = acesso.CreateCommand(CommandType.Text, lQueryCus))
                //{
                //    acesso.ExecuteNonQuery(cmdUpd);
                //}
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro em AtualizaPlanoCorretagemClienteSinacor- {0} - Stacktrace - {1}", ex.Message, ex.StackTrace);
                throw ex;
            }
        }
Example #2
0
        private IntegracaoIRInfo CriarRegistroIntegracaoIRInfo(PlanoClienteInfo pPlanoCliente)
        {
            var lRetorno     = new IntegracaoIRInfo();
            var lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = "Cadastro";

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "cliente_endereco_lst_sp"))
            {
                lAcessaDados.AddInParameter(lDbCommand, "@cd_bovespa", DbType.Int32, pPlanoCliente.CdCblc);
                lAcessaDados.AddInParameter(lDbCommand, "@st_principal", DbType.Int32, 1);

                var lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand);

                if (null != lDataTable && lDataTable.Rows.Count > 0)
                {
                    lRetorno.Cidade = lDataTable.Rows[0]["ds_cidade"].DBToString();
                    lRetorno.Estado = lDataTable.Rows[0]["cd_uf"].DBToString();
                }
            }

            lRetorno.IdBovespa       = Convert.ToInt32(this.ToCodigoClienteComDigito(pPlanoCliente.CdCblc)); //coloca o digito no código CBLC
            lRetorno.Email           = this.GetEmailPadraoCliente;
            lRetorno.dataFim         = pPlanoCliente.DtFimAdesao;
            lRetorno.EstadoBloqueado = "S";

            return(lRetorno);
        }
Example #3
0
        private void AtualizarPlanoClienteSql(PlanoClienteInfo pRequest)
        {
            var lRetorno     = new IntegracaoIRInfo();
            var lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = "Seguranca";
            try
            {
                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_ClienteProduto_upd"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "@ds_cpfcnpj", DbType.AnsiString, pRequest.DsCpfCnpj);
                    lAcessaDados.AddInParameter(lDbCommand, "@dt_fim_adesao", DbType.DateTime, pRequest.DtFimAdesao);
                    lAcessaDados.AddInParameter(lDbCommand, "@st_situacao", DbType.String, pRequest.StSituacao);
                    lAcessaDados.AddInParameter(lDbCommand, "@id_produto_plano", DbType.Int32, pRequest.IdProdutoPlano);

                    lAcessaDados.ExecuteNonQuery(lDbCommand);
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro ao Atualizar Plano cliente no SQL Sever - Error - {0} ", ex.Message);

                throw ex;
            }
        }
 /// <summary>
 /// Log de Email ativando
 /// </summary>
 /// <param name="info">Informações do cliente e do produto</param>
 private void LogAtivacaoPlanoCliente(PlanoClienteInfo info)
 {
     logger.InfoFormat("Email..............: {0}", info.DsEmail);
     logger.InfoFormat("Nome...............: {0}", info.NomeCliente);
     logger.InfoFormat("Id Do Produto......: {0}", info.IdProdutoPlano);
     logger.InfoFormat("CPFCNPJ............: {0}", info.DsCpfCnpj);
     logger.InfoFormat("Codigo CBLC........: {0}", info.CdCblc);
     logger.InfoFormat("Situação...........: {0}", info.StSituacao);
     logger.InfoFormat("Dt Operação........: {0}", info.DtOperacao);
     logger.InfoFormat("DT Adesão..........: {0}", info.DtAdesao);
 }
        public void VerificaPosicaoClienteAssessorDirect(object state, bool signaled)
        {
            try
            {
                Thread.Sleep(TemporizadorIntervaloVerificacao);

                DB = new PersistenciaDB();

                logger.InfoFormat("Verificação de posição de cliente com Assessor Direct no sinacor");

                List <PlanoClienteInfo> lClientesEmEspera = DB.SelecionaClientesAssessorDirectEmEspera();

                List <PlanoClienteInfo> lEnvio = new List <PlanoClienteInfo>();

                PlanoClienteInfo lInfo = null;

                lClientesEmEspera.ForEach(delegate(PlanoClienteInfo info)
                {
                    if (info.CdCblc != null && info.CdCblc != 0)
                    {
                        logger.InfoFormat("Achou o cliente com o CBLC -  {0}", info.CdCblc);

                        lInfo                = new PlanoClienteInfo();
                        lInfo.DtOperacao     = DateTime.Now;
                        lInfo.CdCblc         = info.CdCblc;
                        lInfo.DtAdesao       = info.DtAdesao;
                        lInfo.DtAdesao       = DateTime.Now;
                        lInfo.StSituacao     = 'A';
                        lInfo.DsCpfCnpj      = info.DsCpfCnpj;
                        lInfo.IdProdutoPlano = info.IdProdutoPlano;
                        lInfo.DsEmail        = info.DsEmail;
                        lInfo.NomeCliente    = info.NomeCliente;
                        lEnvio.Add(lInfo);

                        this.LogAtivacaoPlanoCliente(info);
                    }
                });

                logger.InfoFormat("Encontrou {0} cliente(s) do assessor direct em espera para ativação", lEnvio.Count);

                lEnvio = DB.AtualizaPlanoClienteExistente(lEnvio); //--> Atualiza os clientes novos e já existentes

                lEnvio.ForEach(delegate(PlanoClienteInfo info)
                {
                    this.EnviaNotificacaoAtivacaoPlanoCliente(info);
                });
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Parando o serviço de VerificaPosicaoClienteDirect  - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }
        /// <summary>
        /// Envia e-mail para o cliente para com a notificação de ativação do plano
        /// </summary>
        private void EnviaNotificacaoAtivacaoPlanoCliente(PlanoClienteInfo info)
        {
            try
            {
                var lServico = Ativador.Get <IServicoEmail>();

                logger.InfoFormat("Conseguiu instanciar o serviço Ativador.Get<IServicoEmail>");

                StreamReader lStream = new StreamReader(Path.Combine(ConfigurationManager.AppSettings["pathArquivoEmailNotificacao"].ToString(), "EmailNotificacaoAtivacaoPlano.txt"));

                string lCorpoEmail = lStream.ReadToEnd();

                var lEmail = new EnviarEmailRequest();

                lEmail.Objeto = new EmailInfo();

                lEmail.Objeto.Assunto = "Notificação de ativação do DirectTrade";

                lEmail.Objeto.Destinatarios = new List <string>();

                lEmail.Objeto.Destinatarios.Add(info.DsEmail);

                logger.InfoFormat(string.Format("Enviando e-mail de notificação de ativação de plano para para {0}", info.DsEmail));

                lEmail.Objeto.Remetente = ConfigurationManager.AppSettings["EmailRemetenteNotificacao"].ToString();

                lEmail.Objeto.CorpoMensagem = lCorpoEmail.Replace("###NOME###", info.NomeCliente);

                logger.InfoFormat("Entrou no método de EnviaEmailAvisoPlanoCliente");

                EnviarEmailResponse lResponse = lServico.Enviar(lEmail);

                if (lResponse.StatusResposta.Equals(MensagemResponseStatusEnum.OK))
                {
                    logger.Info("Email disparado com sucesso");
                }
                else
                {
                    logger.ErrorFormat("O e-mail não foi disparado - Descrição: {0} ", lResponse.DescricaoResposta);
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro em EnviaEmailAvisoPlanoCliente  - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }
Example #7
0
        private void AtualizarPlanoClienteOracle(PlanoClienteInfo pRequest)
        {
            var lIntegracaoIR = new IntegracaoIRInfo();


            var lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = "MyCapital";
            try
            {
                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "INS_MYC_INTEGRACAO"))
                {
                    lDbCommand.Parameters.Clear();

                    lIntegracaoIR = this.CriarRegistroIntegracaoIRInfo(pRequest);

                    lAcessaDados.AddInParameter(lDbCommand, "P_CODIGOBOVESPACLIENTE", DbType.Int32, lIntegracaoIR.IdBovespa);
                    lAcessaDados.AddInParameter(lDbCommand, "P_EMAILUSUARIO", DbType.String, lIntegracaoIR.Email);
                    lAcessaDados.AddInParameter(lDbCommand, "P_CIDADEUSUARIO", DbType.String, lIntegracaoIR.Cidade);
                    lAcessaDados.AddInParameter(lDbCommand, "P_ESTADOUSUARIO", DbType.String, lIntegracaoIR.Estado);
                    lAcessaDados.AddInParameter(lDbCommand, "P_DTAINICIOLANCAMENTOUSUARIO", DbType.DateTime, lIntegracaoIR.dataFim);
                    lAcessaDados.AddInParameter(lDbCommand, "P_STABLOQUEADO", DbType.String, lIntegracaoIR.EstadoBloqueado);
                    lAcessaDados.AddInParameter(lDbCommand, "P_CODIGOEVENTO", DbType.Int32, IntegracaoIRInfo.CodigoEvento.CANCELAR);
                    lAcessaDados.AddInParameter(lDbCommand, "P_DESCRICAO", DbType.String, lIntegracaoIR.Descricao);
                    lAcessaDados.AddInParameter(lDbCommand, "P_TPOPRODUTO", DbType.Int32, IntegracaoIRInfo.TipoProduto.BOVESPA);

                    lAcessaDados.ExecuteNonQuery(lDbCommand);
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Erro ao Atualizar Plano cliente no MyCapital - Error - {0} ", ex.Message);

                throw ex;
            }
        }
        /// <summary>
        /// Verifica se há clientes que foram incluídos no cadastro e podem já
        /// ser atualizados nos planos como "ativados"
        /// </summary>
        public void VerificaPosicaoClienteSinacor(object state, bool signaled)
        {
            try
            {
                Thread.Sleep(TemporizadorIntervaloVerificacao);

                string[] lHoraVerif = ConfigurationManager.AppSettings["HoraVerificacao"].ToString().Split(';');

                List <string> lHorasVerif = lHoraVerif.ToList <string>();

                if (!lHorasVerif.Contains(DateTime.Now.ToString("HH:mm")))
                {
                    return;
                }

                DB = new PersistenciaDB();

                logger.InfoFormat("Verificação de posição de cliente no sinacor");

                List <PlanoClienteInfo> lClientesEmEspera = DB.SelecionaClientesEmEspera();

                logger.InfoFormat("Encontrou {0} cliente(s) em espera para ativação", lClientesEmEspera.Count);

                List <PlanoClienteInfo> lEnvio = new List <PlanoClienteInfo>();

                PlanoClienteInfo lInfo = null;

                lClientesEmEspera.ForEach(delegate(PlanoClienteInfo info)
                {
                    if (info.CdCblc != null && info.CdCblc != 0)
                    {
                        logger.InfoFormat("Achou o cliente com o CBLC -  {0}", info.CdCblc);

                        lInfo = new PlanoClienteInfo();

                        lInfo.DtOperacao = DateTime.Now;

                        lInfo.CdCblc = info.CdCblc;

                        lInfo.DtAdesao = info.DtAdesao;

                        lInfo.DtAdesao = DateTime.Now;

                        lInfo.StSituacao = 'A';

                        lInfo.DsCpfCnpj = info.DsCpfCnpj;

                        lInfo.IdProdutoPlano = info.IdProdutoPlano;

                        lInfo.DsEmail = info.DsEmail;

                        lInfo.NomeCliente = info.NomeCliente;

                        lEnvio.Add(lInfo);

                        this.LogAtivacaoPlanoCliente(info);
                    }
                });


                lEnvio = DB.AtualizaPlanoClienteExistente(lEnvio); //--> Atualiza os clientes novos e já existentes

                lEnvio.ForEach(delegate(PlanoClienteInfo info)
                {
                    this.EnviaNotificacaoAtivacaoPlanoCliente(info);
                });
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Parando o serviço de VerificaPosicaoClienteSinacor  - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }