private List <SinacorContaBancariaInfo> GetContasBancarias(SinacorClienteInfo pCliente) { List <SinacorContaBancariaInfo> lRetorno = new List <SinacorContaBancariaInfo>(); AcessaDados lAcessaDados = new AcessaDados(); DataTable lDataTable = new DataTable(); lAcessaDados.ConnectionStringName = gNomeConexaoOracle; //A conta bancário pode estar relacionada com Bovespa ou BMF //Foi usado um Hash para não deixar duplicar as contas, poi cliente possuem o mesmo código para conta Bovespa e BMF Hashtable lContas = new Hashtable(); foreach (SinacorBovespaInfo item in pCliente.Bovespas) { lContas.Add(item.CD_CLIENTE.Value, item.CD_CLIENTE.Value); } foreach (SinacorBmfInfo item in pCliente.Bmfs) { if (!lContas.Contains(item.CODCLI.Value)) { lContas.Add(item.CODCLI.Value, item.CODCLI.Value); } } SinacorContaBancariaInfo lConta; foreach (DictionaryEntry item in lContas) { using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_sel_tscclicta")) { lDataTable.Rows.Clear(); lAcessaDados.AddInParameter(lDbCommand, "pCD_CLIENTE", DbType.Int32, item.Value); lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand); foreach (DataRow linha in lDataTable.Rows) { lConta = new SinacorContaBancariaInfo(); lConta.CD_AGENCIA = linha["CD_AGENCIA"].DBToString(); lConta.DV_AGENCIA = linha["DV_AGENCIA"].DBToString(); lConta.CD_BANCO = linha["CD_BANCO"].DBToString(); lConta.DV_CONTA = linha["DV_CONTA"].DBToString();; lConta.IN_PRINCIPAL = linha["IN_PRINCIPAL"].DBToChar(); lConta.NR_CONTA = linha["NR_CONTA"].DBToString(); lConta.TP_CONTA = linha["TP_CONTA"].DBToString(); lRetorno.Add(lConta); } } } return(lRetorno); }
/// <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; } }