/// <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; } }
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); }
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; } }