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