Exemple #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;
            }
        }