Пример #1
0
        /// <summary>
        /// Método específico para o Sistema de Cadastro, que recebe os dados na estrutura do Sinacor e Salva o cliente no Cadastro
        /// </summary>
        /// <param name="pCliente">Entidade Cliente do Sinacor</param>
        public SalvarEntidadeResponse <SinacorClienteInfo> SinacorSalvarCliente(SalvarObjetoRequest <SinacorClienteInfo> pParametros)
        {
            LoginInfo   lLogin;
            ClienteInfo lCliente;
            List <ClienteTelefoneInfo> lTelefone;
            List <ClienteEnderecoInfo> lEndereco;
            List <ClienteBancoInfo>    lContaBancaria;
            List <ClienteContaInfo>    lConta;
            List <ClienteDiretorInfo>  lDiretor;
            List <ClienteEmitenteInfo> lEmitente;
            ClienteSituacaoFinanceiraPatrimonialInfo lSfp;

            try
            {
                SinacorClienteInfo pCliente = pParametros.Objeto;

                lCliente = ConversaoSinacor.ConverterCliente(pCliente.ChaveCliente, pCliente.ClienteGeral, pCliente.ClienteComplemento, pCliente.Cc, pCliente.Diretor);

                string lCpfCnpj = string.Empty;

                if (pParametros.Objeto.ChaveCliente.CD_CPFCGC.ToString().Length <= 11)
                {
                    lCpfCnpj = pParametros.Objeto.ChaveCliente.CD_CPFCGC.ToString().PadLeft(11, '0');
                }
                else
                {
                    if (pParametros.Objeto.ChaveCliente.CD_CPFCGC.ToString().Length > 11)
                    {
                        lCpfCnpj = pParametros.Objeto.ChaveCliente.CD_CPFCGC.ToString().PadLeft(15, '0');
                    }
                }

                string lKey = string.Format("{0}-{1}", lCpfCnpj, pParametros.Objeto.ChaveCliente.DT_NASC_FUND.ToString("ddMMyyyy"));

                if (ObjetosCompartilhados.lHashClientes.Contains(lKey))
                {
                    SinacorMigracaoLoginInfo lSinacorMigracaoLoginInfo = (SinacorMigracaoLoginInfo)(ObjetosCompartilhados.lHashClientes[lKey]);

                    lLogin = new LoginInfo();

                    lLogin.CdAssinaturaEletronica = lSinacorMigracaoLoginInfo.DsAssinatura;
                    lLogin.CdSenha             = lSinacorMigracaoLoginInfo.DsSenha;
                    lLogin.DsEmail             = lSinacorMigracaoLoginInfo.DsEmail;
                    lLogin.DsRespostaFrase     = string.Empty;
                    lLogin.DtUltimaExpiracao   = DateTime.Now;
                    lLogin.IdFrase             = null;
                    lLogin.IdLogin             = null;
                    lLogin.NrTentativasErradas = 0;
                    lLogin.TpAcesso            = eTipoAcesso.Cliente;
                    lLogin.CdAssessor          = lSinacorMigracaoLoginInfo.IdAssessor;
                }
                else
                {
                    lLogin = new LoginInfo();
                    string lSenhaMigracao = ConfigurationManager.AppSettings["SenhaMigracao"].ToString();

                    lLogin.CdAssinaturaEletronica = lSenhaMigracao;
                    lLogin.CdSenha             = lSenhaMigracao;
                    lLogin.DsEmail             = "[email protected]";
                    lLogin.DsRespostaFrase     = string.Empty;
                    lLogin.DtUltimaExpiracao   = DateTime.Now;
                    lLogin.IdFrase             = null;
                    lLogin.IdLogin             = null;
                    lLogin.NrTentativasErradas = 0;
                    lLogin.TpAcesso            = eTipoAcesso.Cliente;
                    lLogin.CdAssessor          = null;
                }


                lTelefone = ConversaoSinacor.ConverterTelefone(pCliente.Telefones);

                lEndereco = ConversaoSinacor.ConverterEndereco(pCliente.Enderecos);

                lContaBancaria = ConversaoSinacor.ConverterContaBancaria(pCliente.ContasBancarias);

                lConta = ConversaoSinacor.ConverterConta(pCliente.Bovespas, pCliente.Bmfs, pCliente.AtividadesCc, pCliente.AtividadesCustodia);

                lConta = this.SetContaPrincipal(pCliente.ChaveCliente, lConta);

                var AssessorContaPrincipal = (from cp in lConta
                                              where cp.StPrincipal == true
                                              select new { cp.CdAssessor }).ToList();

                if (null == lCliente.IdAssessorInicial)
                {
                    lCliente.IdAssessorInicial = AssessorContaPrincipal[0].CdAssessor;
                }

                lDiretor = ConversaoSinacor.ConverterDiretor(pCliente.Diretor);

                lEmitente = ConversaoSinacor.ConverterEmitente(pCliente.Emitentes);

                lSfp = ConversaoSinacor.ConverterSFP(pCliente.SituacaoFinaceiraPatrimoniais);

                SalvarEntidadeResponse <SinacorClienteInfo> lRetorno = new SalvarEntidadeResponse <SinacorClienteInfo>();

                pCliente.Enderecos.ForEach(ende => {
                    if (ende.IN_TIPO_ENDE.HasValue && ende.IN_TIPO_ENDE == 'C')
                    {
                        lCliente.DsEmailComercial = ende.DS_EMAIL_COMERCIAL;
                    }
                });

                lRetorno.Codigo =
                    this.InserirCliente(
                        pParametros.Objeto.StReimportacao,
                        lLogin,
                        lCliente,
                        lTelefone,
                        lEndereco,
                        lContaBancaria,
                        lConta,
                        lDiretor,
                        lEmitente,
                        lSfp
                        );

                LogCadastro.Logar(pParametros.Objeto.ChaveCliente, pParametros.IdUsuarioLogado, pParametros.DescricaoUsuarioLogado, LogCadastro.eAcao.Importar);

                //Atualizar Ativação da informação referenta à CliGer e acesso ao HB
                Boolean stAtivoCliGer = pCliente.ClienteGeral.IN_SITUAC.Value == 'A' ? true : false;

                ReceberObjetoResponse <ClienteAtivarInativarInfo>  RetornoClienteAtivar = new ReceberObjetoResponse <ClienteAtivarInativarInfo>();
                ReceberEntidadeRequest <ClienteAtivarInativarInfo> EntradaClienteAtivar = new ReceberEntidadeRequest <ClienteAtivarInativarInfo>()
                {
                    DescricaoUsuarioLogado = "Processo de Exportação"
                };
                EntradaClienteAtivar.Objeto = new ClienteAtivarInativarInfo()
                {
                    IdCliente = lRetorno.Codigo.Value
                };
                EntradaClienteAtivar.DescricaoUsuarioLogado = "Processo de Importação";
                RetornoClienteAtivar = ClienteDbLib.ReceberClienteAtivarInativar(EntradaClienteAtivar);

                SalvarEntidadeRequest <ClienteAtivarInativarInfo> EntradaSalvar = new SalvarEntidadeRequest <ClienteAtivarInativarInfo>();
                EntradaSalvar.Objeto = RetornoClienteAtivar.Objeto;
                EntradaSalvar.Objeto.StClienteGeralAtivo = stAtivoCliGer;
                EntradaSalvar.Objeto.StHbAtivo           = stAtivoCliGer;
                EntradaSalvar.DescricaoUsuarioLogado     = "Processo de Importação";

                SalvarEntidadeResponse <ClienteAtivarInativarInfo> RetornoSalvar = ClienteDbLib.SalvarClienteAtivarInativar(EntradaSalvar);

                return(lRetorno);
            }
            catch (Exception ex)
            {
                LogCadastro.Logar(pParametros.Objeto.ChaveCliente, pParametros.IdUsuarioLogado, pParametros.DescricaoUsuarioLogado, LogCadastro.eAcao.Importar, ex);
                throw ex;
            }
        }
Пример #2
0
        public CadastrarAdesaoAoContratoResponse CadastrarAdesaoAoContrato(CadastrarAdesaoAoContratoRequest pRequest)
        {
            CadastrarAdesaoAoContratoResponse lResponse = new CadastrarAdesaoAoContratoResponse();

            try
            {
                ServicoHostColecao.Default.CarregarConfig("Desenvolvimento");

                SalvarEntidadeRequest <ClienteContratoInfo>  lRequestCadastro = new SalvarEntidadeRequest <ClienteContratoInfo>();
                SalvarEntidadeResponse <ClienteContratoInfo> lResponseCadastro;

                lRequestCadastro.Objeto = new ClienteContratoInfo();

                lRequestCadastro.Objeto.LstIdContrato = new List <int>();
                lRequestCadastro.Objeto.LstIdContrato.Add(pRequest.IdDoContratoNoCadastro);

                lRequestCadastro.Objeto.CodigoBovespaCliente = pRequest.CodigoBovespaDoCliente;
                lRequestCadastro.Objeto.IdContrato           = pRequest.IdDoContratoNoCadastro;
                lRequestCadastro.Objeto.DtAssinatura         = DateTime.Now;

                Logger.InfoFormat("Executando ClienteDbLib.SalvarClienteContrato(CodigoBovespaCliente: [{0}], IdContrato: [{1}])", pRequest.CodigoBovespaDoCliente, pRequest.IdDoContratoNoCadastro);

                lResponseCadastro = Gradual.Intranet.Servicos.BancoDeDados.Persistencias.ClienteDbLib.SalvarClienteContrato(lRequestCadastro);

                int lIdContratoAlavancagem = Convert.ToInt32(ConfigurationManager.AppSettings["IdContratoTermoAlavancagemFinanceira"]);

                if (pRequest.IdDoContratoNoCadastro == lIdContratoAlavancagem)   //verificar se é contrato de adesão termo alavancagem
                {
                    Logger.InfoFormat("Atualizando suitability pelo contrato de adesão (ID [{0}])", lIdContratoAlavancagem);

                    Gradual.Intranet.Contratos.IServicoPersistenciaCadastro lServicoPersistenciaCadastro = Ativador.Get <Gradual.Intranet.Contratos.IServicoPersistenciaCadastro>();

                    SalvarEntidadeCadastroRequest <ClienteSuitabilityInfo> lRequestSuitability = new SalvarEntidadeCadastroRequest <ClienteSuitabilityInfo>();
                    SalvarEntidadeCadastroResponse lResponseSuitability;

                    lRequestSuitability.EntidadeCadastro = new ClienteSuitabilityInfo();

                    lRequestSuitability.EntidadeCadastro.ds_fonte          = "Termo-Alavancagem";
                    lRequestSuitability.EntidadeCadastro.ds_loginrealizado = pRequest.NomeDoCliente;
                    lRequestSuitability.EntidadeCadastro.ds_perfil         = "Arrojado";
                    lRequestSuitability.EntidadeCadastro.ds_respostas      = "";
                    lRequestSuitability.EntidadeCadastro.ds_status         = "Finalizado";
                    lRequestSuitability.EntidadeCadastro.dt_realizacao     = DateTime.Now;
                    //lRequestSuitability.EntidadeCadastro.IdCliente                 = Convert.ToInt32(pRequest.IdDoClienteNoBanco);
                    lRequestSuitability.EntidadeCadastro.CdCblc = Convert.ToInt32(pRequest.CodigoBovespaDoCliente);
                    lRequestSuitability.EntidadeCadastro.st_preenchidopelocliente = true;

                    lResponseSuitability = lServicoPersistenciaCadastro.SalvarEntidadeCadastro <ClienteSuitabilityInfo>(lRequestSuitability);

                    if (lResponseSuitability.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        Logger.InfoFormat("Resposta ok do IServicoPersistenciaCadastro ao cadastrar suitability para [{0}] [{1}]", pRequest.IdDoClienteNoBanco, pRequest.CodigoBovespaDoCliente);

                        this.EnviarEmailComPerfilDoInvestidor(pRequest.EmailDoCliente);

                        Logger.Info("Resposta OK");

                        lResponse.StatusResposta = "OK";
                    }
                    else
                    {
                        Logger.ErrorFormat("Resposta com erro do IServicoPersistenciaCadastro ao cadastrar suitability para [{0}] [{1}]: [{2}]\r\n{3}"
                                           , pRequest.IdDoClienteNoBanco
                                           , pRequest.CodigoBovespaDoCliente
                                           , lResponseSuitability.StatusResposta
                                           , lResponseSuitability.DescricaoResposta);

                        lResponse.StatusResposta = "ERRO";

                        lResponse.DescricaoResposta = "Resposta com erro do IServicoPersistenciaCadastro ao cadastrar suitability";
                    }
                }
                else
                {
                    lResponse.StatusResposta = "OK";

                    lResponse.DescricaoResposta = "OK";
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("Erro executando ClienteDbLib.SalvarClienteContrato: [{0}] [{1}]", ex.Message, ex.StackTrace);

                lResponse.StatusResposta = "ERRO";

                lResponse.DescricaoResposta = string.Format("{0}\r\n\r\n{1}", ex.Message, ex.StackTrace);
            }


            return(lResponse);
        }
Пример #3
0
        private void ResponderImportarPEP_Async(object pIdDaImportacaoEConteudo)
        {
            string lIdDaImportacao    = ((string[])pIdDaImportacaoEConteudo)[0];
            string lConteudoDoArquivo = ((string[])pIdDaImportacaoEConteudo)[1];

            TransporteImportacaoPEP lTransporte = this.ApplicationImportacoesPEPSendoEfetuadas[lIdDaImportacao];

            List <PessoaExpostaPoliticamenteInfo> lListaParaImportar = new List <PessoaExpostaPoliticamenteInfo>();

            if (lTransporte != null)
            {
                SalvarEntidadeRequest <PessoaExpostaPoliticamenteImportacaoInfo> lRequest = new SalvarEntidadeRequest <PessoaExpostaPoliticamenteImportacaoInfo>();
                SalvarObjetoResponse <PessoaExpostaPoliticamenteImportacaoInfo>  lResponse;

                string[] lLinhas = lConteudoDoArquivo.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

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

                PessoaExpostaPoliticamenteInfo lNovaPessoa;

                foreach (PessoaExpostaPoliticamenteInfo lPessoaImportada in this.SessionUltimoResultadoDeBusca)
                {
                    if (!lJaImportados.ContainsKey(lPessoaImportada.DsDocumento))
                    {
                        lJaImportados.Add(lPessoaImportada.DsDocumento, lPessoaImportada.DsNome);
                    }
                }

                foreach (string lLinha in lLinhas)
                {
                    if (!string.IsNullOrEmpty(lLinha) && lLinha.StartsWith("110"))
                    {
                        lNovaPessoa = new PessoaExpostaPoliticamenteInfo(lLinha);

                        if (!lJaImportados.ContainsKey(lNovaPessoa.DsDocumento))     //TODO: método melhor pra não-repetidos? direto na tabela?
                        {
                            lListaParaImportar.Add(lNovaPessoa);
                        }
                    }
                }

                lRequest.Objeto = new PessoaExpostaPoliticamenteImportacaoInfo()
                {
                    ListaParaImportar = lListaParaImportar
                };

                lRequest.IdUsuarioLogado = base.UsuarioLogado.Id;

                lRequest.DescricaoUsuarioLogado = base.UsuarioLogado.Nome;

                lResponse = ((ServicoPersistenciaCadastro)this.ServicoPersistenciaCadastro).ImportarPessoasExpostasPoliticamente(lRequest);

                lTransporte.MensagemDeFinalizacao = "Registros importados com sucesso";

                lTransporte.RegistrosImportadosComSucesso = lResponse.Objeto.RegistrosImportadosComSucesso;
                lTransporte.RegistrosComErro = lResponse.Objeto.RegistrosImportadosComErro;

                lTransporte.StatusDaImportacao = "Finalizada";

                this.SessionUltimoResultadoDeBusca = null;
            }
        }