private static void testeContaCorrente() { IServicoMensageria servicoMensageria = Ativador.Get <IServicoMensageria>(); ConsultarContasCorrentesResponse respostaConsultar = (ConsultarContasCorrentesResponse) servicoMensageria.ProcessarMensagem( new ConsultarContasCorrentesRequest() { }); List <double> saldoProjetado = new List <double>(new double[] { 1, 2, 3, 4 }); ContaCorrenteInfo contaCorrente = new ContaCorrenteInfo() { SaldoRegularAtual = 199, SaldoRegularProjetado = saldoProjetado }; SalvarContaCorrenteResponse respostaSalvar = (SalvarContaCorrenteResponse) servicoMensageria.ProcessarMensagem( new SalvarContaCorrenteRequest() { ContaCorrenteInfo = contaCorrente }); }
public ContaCorrenteInfo ObterSaldoContaCorrente(int CodigoCliente) { AcessaDados lAcessaDados = new AcessaDados(); ContaCorrenteInfo _SaldoContaCorrente = new ContaCorrenteInfo(); try { ContaCorrenteInfo lRetorno = new ContaCorrenteInfo(); lAcessaDados.ConnectionStringName = gNomeConexaoOracle; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_SALDO_ABERTURA_OMS")) { lRetorno.IdClienteSinacor = CodigoCliente; lAcessaDados.AddInParameter(lDbCommand, "pCodCliente", DbType.Int32, CodigoCliente); gLogger.Info("Inicia a consulta de saldos no banco de dados"); DataTable lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand); if (lDataTable.Rows.Count > 0) { lRetorno.SaldoD2 = (lDataTable.Rows[0]["VL_PROJET2"]).DBToDecimal(); } lRetorno.SaldoD0 = this.ObterSaldoD0(CodigoCliente); lRetorno.SaldoD1 = this.ObterSaldoD1(CodigoCliente); lRetorno.SaldoD3 = this.ObterSaldoD3(CodigoCliente); lRetorno.SaldoContaMargem = this.ObtemSaldoContaMargem(CodigoCliente); lRetorno.SaldoBloqueado = this.ObtemSaldoBloqueado(CodigoCliente); gLogger.Info("Consulta de saldos no banco de dados carregadas com sucesso"); this.ConsultarLimiteOperacionalDisponivel(lRetorno); //this.ConsultarLimiteOperacionalTotal(lRetorno); /* * _SaldoContaCorrente.Objeto = lRetorno; * _SaldoContaCorrente.DescricaoResposta = string.Format("Saldo de conta corrente do cliente: {0} carregado com sucesso", pParametro.IdCliente.DBToString()); * _SaldoContaCorrente.StatusResposta = CriticaMensagemEnum.OK; * */ } } catch (Exception ex) { gLogger.Info("Ocorreu um erro ao consultar a posição de conta corrente do cliente no banco de dados"); gLogger.Info("Descição do erro :" + ex.Message); /* * _SaldoContaCorrente.DescricaoResposta = ex.Message; * _SaldoContaCorrente.StackTrace = ex.StackTrace; * _SaldoContaCorrente.StatusResposta = CriticaMensagemEnum.Exception; * _SaldoContaCorrente.Objeto = null; * */ } return(_SaldoContaCorrente); }
/// <summary> /// Faz a consulta e cache de conta corrente /// </summary> /// <returns></returns> private ContaCorrenteInfo receberContaCorrente() { // Se a conta já foi carregada, retorna a carregada if (_contaCorrente != null) { return(_contaCorrente); } // Inicializa ContaCorrenteInfo contaCorrente = null; // Garante a criação da conta corrente ReceberContaCorrenteResponse respostaReceberContaCorrente = (ReceberContaCorrenteResponse) _servicoMensageria.ProcessarMensagem( new ReceberContaCorrenteRequest() { CodigoSessao = receberSessaoAdmin().CodigoSessao }); if (respostaReceberContaCorrente.ContaCorrenteInfo == null) { // Cria conta corrente e salva SalvarContaCorrenteResponse respostaSalvarContaCorrente = (SalvarContaCorrenteResponse) _servicoMensageria.ProcessarMensagem( new SalvarContaCorrenteRequest() { CodigoSessao = receberSessaoAdmin().CodigoSessao, ContaCorrenteInfo = new ContaCorrenteInfo() { CodigoContaCorrente = _consCodigoContaCorrente } }); // Pega a conta corrente contaCorrente = respostaSalvarContaCorrente.ContaCorrente; // Informa a conta corrente no usuário e salva UsuarioInfo usuarioTeste = receberUsuarioTeste(); usuarioTeste.Complementos.ReceberItem <ContextoOMSInfo>().CodigoContaCorrente = contaCorrente.CodigoContaCorrente; _servicoMensageria.ProcessarMensagem( new SalvarUsuarioRequest() { CodigoSessao = _sessaoAdmin.CodigoSessao, Usuario = usuarioTeste }); } // Salva no cache _contaCorrente = contaCorrente; // Retorna return(contaCorrente); }
public static SaldoFinanceiroCliente TraduzirCustodiaInfo(ContaCorrenteInfo pParametros) { var lRetorno = new SaldoFinanceiroCliente(); lRetorno.SaldoD0 = pParametros.SaldoD0; lRetorno.SaldoD1 = pParametros.SaldoD1; lRetorno.SaldoD2 = pParametros.SaldoD2; lRetorno.SaldoD3 = pParametros.SaldoD3; lRetorno.SaldoTotal = pParametros.SaldoD0 + pParametros.SaldoD1 + pParametros.SaldoD2 + pParametros.SaldoD3; return(lRetorno); }
/// <summary> /// Busca o limite operacional disponível para o cliente. /// </summary> private void ConsultarLimiteOperacionalDisponivel(ContaCorrenteInfo pParametro) { var lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = gNomeConexaoRisco; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_limites_cliente_sel")) { lAcessaDados.AddInParameter(lDbCommand, "@id_cliente", DbType.Int32, pParametro.IdClienteSinacor); gLogger.Info("Inicia a consulta de limites operacionais no banco de dados"); var lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand); if (null != lDataTable && lDataTable.Rows.Count > 0) { DataRow dr = null; int id_parametro; for (int i = 0; i < lDataTable.Rows.Count; i++) { dr = lDataTable.Rows[i]; if (!DBNull.Value.Equals(dr["id_parametro"])) { id_parametro = (int)dr["id_parametro"]; switch (id_parametro) { case 5: //--> Limite descoberto no mercado a vista pParametro.LimiteOperacioalDisponivelAVistaVenda = lDataTable.Rows[i]["valor"].DBToDecimal(); break; case 7: //--> Limite descoberto no mercado de opcoes pParametro.LimiteOperacioalDisponivelOpcaoVenda = lDataTable.Rows[i]["valor"].DBToDecimal(); break; case 12: //--> Limite para compra mercado a vista pParametro.LimiteOperacioalDisponivelAVista = lDataTable.Rows[i]["valor"].DBToDecimal(); break; case 13: //--> Limite para compra no mercado de opções pParametro.LimiteOperacioalDisponivelOpcao = lDataTable.Rows[i]["valor"].DBToDecimal(); break; } } } } } }
private void InicializaConta(ContaCorrenteInfo pContaInfo) { if (pContaInfo != null) { this.SaldoAtual = pContaInfo.SaldoCompraAcoes; this.Acoes_SaldoD0 = pContaInfo.SaldoD0; this.Acoes_SaldoD1 = pContaInfo.SaldoD1; this.Acoes_SaldoD2 = pContaInfo.SaldoD2; this.Acoes_SaldoD3 = pContaInfo.SaldoD3; // saldo margem = d0 this.Acoes_SaldoContaMargem = (pContaInfo.SaldoContaMargem.HasValue) ? pContaInfo.SaldoContaMargem.Value : 0; // limites faltam vir do serviço; this.Acoes_Limite = pContaInfo.LimiteOperacioalDisponivelAVista; this.Acoes_Limite_Venda = pContaInfo.LimiteOperacioalDisponivelAVistaVenda; //SaldoDisponivelD0 + SaldoLiquidacaoD1 + SaldoLiquidacaoD2 + SaldoLiquidacaoD3 + LimiteAcoes this.Acoes_LimiteTotalAVista = this.Acoes_SaldoD0 + this.Acoes_SaldoD1 + this.Acoes_SaldoD2 + this.Acoes_SaldoD3 + this.Acoes_SaldoContaMargem; this.Opcoes_Limite = pContaInfo.LimiteOperacioalDisponivelOpcao; this.Opcoes_Limite_Venda = pContaInfo.LimiteOperacioalDisponivelOpcaoVenda; this.Opcoes_SaldoD0 = Acoes_SaldoD0; this.Opcoes_SaldoD1 = Acoes_SaldoD1; //SaldoDisponivelD0 + SaldoLiquidacaoD1 this.Opcoes_LimiteTotal = this.Opcoes_SaldoD0 + this.Opcoes_SaldoD1 + this.Opcoes_Limite + this.Opcoes_Limite_Venda; this.BMF_LimiteOperacional = 0; this.BMF_SaldoMargem = 0; if (pContaInfo.SaldoBloqueado.HasValue) { this.SaldoBloqueado = pContaInfo.SaldoBloqueado.Value; } // dis. para resgate = ((SaldoMargem - SaldoBloqueado) - LimiteOperacional) this.BMF_DisponivelParaResgate = 0;// this.BMF_SaldoMargem - this.BMF_SaldoBloqueado - this.BMF_LimiteOperacional; } }
/// <summary> /// Pede sincronização de conta corrente com o sinacor /// </summary> private void sincronizarContaCorrenteSinacor(string codigoCBLC) { // Pede sincronização da conta corrente do cliente informado SincronizarContaCorrenteResponse respostaSincronizar = (SincronizarContaCorrenteResponse) _servicoMensageria.ProcessarMensagem( new SincronizarContaCorrenteRequest() { CodigoSessao = receberSessaoAdmin().CodigoSessao, CodigoClienteCBLC = codigoCBLC, CodigoContaCorrente = receberContaCorrente().CodigoContaCorrente }); // Invalida a conta corrente carregada _contaCorrente = null; }
public ContaCorrenteInfo GetSaldoContaCorrenteCliente(int CodigoCliente) { var lRetorno = new ContaCorrenteInfo(); try { SaldoContaCorrenteRequest lRequest = new SaldoContaCorrenteRequest(); lRequest.IdCliente = CodigoCliente; lRetorno = this.ObterSaldoContaCorrente(CodigoCliente); //gServicoContaCorrente.ObterSaldoContaCorrente(lRequest); } catch (Exception ex) { gLogger.Error(ex); } return(lRetorno); }
/// <summary> /// Obtem o saldo em conta corrente do cliente /// </summary> /// <param name="pParametro">Objeto com parametros do cliente</param> /// <returns>Objeto SaldoContaCorrenteResponse com as informacoes de saldo em conta corrente do cliente </returns> public SaldoContaCorrenteResponse <ContaCorrenteInfo> ObterSaldoContaCorrente(SaldoContaCorrenteRequest pParametro) { AcessaDados lAcessaDados = new AcessaDados(); SaldoContaCorrenteResponse <ContaCorrenteInfo> _SaldoContaCorrente = new SaldoContaCorrenteResponse <ContaCorrenteInfo>(); try { ContaCorrenteInfo lRetorno = new ContaCorrenteInfo(); lAcessaDados.ConnectionStringName = gNomeConexao; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "pccsaldoprojetado")) { lAcessaDados.AddInParameter(lDbCommand, "PCODCLIENTE", DbType.AnsiString, pParametro.IdCliente.DBToString()); lAcessaDados.AddOutParameter(lDbCommand, "PSALDO", DbType.Decimal, 12); lAcessaDados.AddOutParameter(lDbCommand, "PD1", DbType.Decimal, 12); lAcessaDados.AddOutParameter(lDbCommand, "PD2", DbType.Decimal, 12); lAcessaDados.AddOutParameter(lDbCommand, "PD3", DbType.Decimal, 12); lAcessaDados.ExecuteNonQuery(lDbCommand); lRetorno.SaldoD0 = lAcessaDados.GetParameterValue(lDbCommand, "PSALDO").DBToDecimal(); lRetorno.SaldoD1 = lAcessaDados.GetParameterValue(lDbCommand, "PD1").DBToDecimal(); lRetorno.SaldoD2 = lAcessaDados.GetParameterValue(lDbCommand, "PD2").DBToDecimal(); lRetorno.SaldoD3 = lAcessaDados.GetParameterValue(lDbCommand, "PD3").DBToDecimal(); lRetorno.SaldoContaMargem = this.ObtemSaldoContaMargem(pParametro.IdCliente); _SaldoContaCorrente.Objeto = lRetorno; _SaldoContaCorrente.DescricaoResposta = string.Format("Saldo de conta corrente do cliente: {0} carregado com sucesso", pParametro.IdCliente.DBToString()); _SaldoContaCorrente.StatusResposta = CriticaMensagemEnum.OK; } } catch (Exception ex) { _SaldoContaCorrente.DescricaoResposta = ex.Message; _SaldoContaCorrente.StackTrace = ex.StackTrace; _SaldoContaCorrente.StatusResposta = CriticaMensagemEnum.Exception; _SaldoContaCorrente.Objeto = null; } return(_SaldoContaCorrente); }
private static void testeBruno() { // Referencia para a mensageria IServicoMensageria servicoMensageria = Ativador.Get <IServicoMensageria>(); // Faz a autenticacao AutenticarUsuarioResponse responseAutenticacao = (AutenticarUsuarioResponse) servicoMensageria.ProcessarMensagem( new AutenticarUsuarioRequest() { Email = "*****@*****.**", Senha = "123" }); // Recebe o usuario ReceberUsuarioResponse respostaReceberUsuario = (ReceberUsuarioResponse) servicoMensageria.ProcessarMensagem( new ReceberUsuarioRequest() { CodigoSessao = null, Email = "*****@*****.**" }); // Verifica se tem o contexto, senao cria ContextoOMSInfo contextoOMS = respostaReceberUsuario.Usuario.Complementos.ReceberItem <ContextoOMSInfo>(); if (contextoOMS == null) { contextoOMS = respostaReceberUsuario.Usuario.Complementos.AdicionarItem <ContextoOMSInfo>(new ContextoOMSInfo()); } // Verifica se tem conta corrente, senao cria if (contextoOMS.CodigoContaCorrente != null) { // Cria conta corrente vazia ContaCorrenteInfo contaCorrente = new ContaCorrenteInfo() { }; // Salva conta corrente criada SalvarContaCorrenteResponse respostaSalvarContaCorrente = (SalvarContaCorrenteResponse) servicoMensageria.ProcessarMensagem( new SalvarContaCorrenteRequest() { CodigoSessao = responseAutenticacao.Sessao.CodigoSessao, ContaCorrenteInfo = contaCorrente }); // Associa conta corrente ao usuário contextoOMS.CodigoContaCorrente = contaCorrente.CodigoContaCorrente; // Salva usuário SalvarUsuarioResponse respostaSalvarUsuario = (SalvarUsuarioResponse) servicoMensageria.ProcessarMensagem( new SalvarUsuarioRequest() { CodigoSessao = responseAutenticacao.Sessao.CodigoSessao, Usuario = respostaReceberUsuario.Usuario }); } }
public TransporteSaldoDeConta(ContaCorrenteInfo pContaInfo) { this.InicializaConta(pContaInfo); }