예제 #1
0
        public static CotacaoValor ObterCotacaoAtual(string pInstrumento)
        {
            AcessaDados lAcessaDados = new AcessaDados();
            //Hashtable htQuote = new Hashtable();

            decimal ValorCotacao = 0;
            string  IdAtivo      = string.Empty;

            CotacaoValor lRetorno = new CotacaoValor();

            lRetorno.ValorCotacao = 0;

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoGradualOMS;// gNomeConexaoOracle;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_cotacoes_monitor_item"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "@pAtivo", DbType.AnsiString, pInstrumento);

                    DataTable lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand);

                    if (lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            IdAtivo                  = (lDataTable.Rows[i]["id_ativo"]).DBToString();
                            ValorCotacao             = (lDataTable.Rows[i]["vl_ultima"]).DBToDecimal();
                            lRetorno.Ativo           = IdAtivo;
                            lRetorno.ValorCotacao    = ValorCotacao;
                            lRetorno.ValorFechamento = (lDataTable.Rows[i]["vl_fechamento"]).DBToDecimal();
                            lRetorno.ValorAbertura   = (lDataTable.Rows[i]["VL_abertura"]).DBToDecimal();
                            lRetorno.Variacao        = (lDataTable.Rows[i]["vl_oscilacao"]).DBToDecimal();
                            lRetorno.ValorAjuste     = (lDataTable.Rows[i]["vl_ajuste"].DBToDecimal());
                            lRetorno.ValorPU         = (lDataTable.Rows[i]["vl_pu"].DBToDecimal());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                if (lAcessaDados != null)
                {
                    lAcessaDados.Dispose();
                    lAcessaDados = null;
                }
            }
            return(lRetorno);
        }
예제 #2
0
        public static Hashtable ObterVencimentosDI()
        {
            AcessaDados lAcessaDados = new AcessaDados();

            string procedure = "prc_obter_relacao_DI";

            Hashtable htVencimentoDI = new Hashtable();

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoOracle;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, procedure))
                {
                    DataTable lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            string   Instrumento = (lDataTable.Rows[i]["cd_codneg"]).DBToString();
                            DateTime Vencimento  = (lDataTable.Rows[i]["DT_VENC"]).DBToDateTime();

                            htVencimentoDI.Add(Instrumento, Vencimento);
                        }
                    }
                }

                return(htVencimentoDI);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                if (lAcessaDados != null)
                {
                    lAcessaDados.Dispose();
                    lAcessaDados = null;
                }
            }
        }
예제 #3
0
        public static List <int> ListarClientesComCustodiaCC()
        {
            var lListaCliente = new List <int>();

            try
            {
                var lAcessaDados = new AcessaDados();

                lAcessaDados.ConnectionStringName = gNomeConexaoOracle;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_CUSTODIA_ABERTURA_CLI_LST"))
                {
                    var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        gLogger.InfoFormat("Foram encontrados [{0}] Cliente(s) com custódia", lDataTable.Rows.Count);

                        for (int i = 0; i < lDataTable.Rows.Count; i++)
                        {
                            lListaCliente.Add(lDataTable.Rows[i]["cd_cliente"].DBToInt32());
                        }
                    }
                }

                if (lAcessaDados != null)
                {
                    lAcessaDados.Dispose();
                    lAcessaDados = null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            gLogger.InfoFormat("Foram Encontrados [{0}] clientes para carregar custodia de abertura", lListaCliente.Count);

            return(lListaCliente);
        }
예제 #4
0
        public List <int> ListaClientesOperaramUltimoMomento()
        {
            AcessaDados lAcessaDados = new AcessaDados();

            var ListaClientes = new List <int>();

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoOracle;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_RELACAO_CLIENTE_OPERARAM"))
                {
                    DataTable lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            ListaClientes.Add(int.Parse(lDataTable.Rows[i]["cd_cliente"].ToString()));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                if (lAcessaDados != null)
                {
                    lAcessaDados.Dispose();
                    lAcessaDados = null;
                }
            }

            return(ListaClientes);
        }
예제 #5
0
        public static List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> ConsultarCustodiaPosicaoDiaBMF(Nullable <int> CodigoClienteBmf)
        {
            var lRetorno     = new MonitorCustodiaInfo();
            var lAcessaDados = new AcessaDados();

            lRetorno.ListaPosicaoDiaBMF = new List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF>();
            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoOracle;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_SEL_CUSTODIA_INTRANET_DIA"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "IdCliente", DbType.Int32, CodigoClienteBmf.Value);

                    var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i < lDataTable.Rows.Count; i++)
                        {
                            MonitorCustodiaInfo.CustodiaPosicaoDiaBMF lPosicao = new MonitorCustodiaInfo.CustodiaPosicaoDiaBMF();

                            CotacaoValor lCotacao = ObterCotacaoAtual(lDataTable.Rows[i]["CD_NEGOCIO"].DBToString());

                            lPosicao.CodigoInstrumento = lDataTable.Rows[i]["CD_NEGOCIO"].DBToString();
                            lPosicao.TipoMercado       = "FUT";
                            lPosicao.TipoGrupo         = "FUT";
                            lPosicao.IdCliente         = lDataTable.Rows[i]["CD_CLIENTE"].DBToInt32();
                            lPosicao.QtdeAtual         = 0;
                            lPosicao.QtdeDisponivel    = lDataTable.Rows[i]["QT_NEGOCIO"].DBToDecimal();
                            lPosicao.CodigoSerie       = lDataTable.Rows[i]["CD_SERIE"].DBToString();
                            lPosicao.ValorFechamento   = lCotacao.ValorAbertura;
                            lPosicao.Cotacao           = lCotacao.ValorCotacao;
                            lPosicao.Variacao          = lCotacao.Variacao;
                            lPosicao.ValorPU           = lCotacao.ValorPU;
                            lPosicao.ValorAjuste       = lCotacao.ValorAjuste;

                            string lSentido = lDataTable.Rows[i]["CD_NATOPE"].DBToString();

                            lPosicao.Sentido = lSentido;

                            if (lSentido.Equals("V"))
                            {
                                lPosicao.QtdeAExecVenda = lDataTable.Rows[i]["QT_NEGOCIO"].DBToDecimal();

                                lPosicao.PrecoNegocioVenda = lDataTable.Rows[i]["PR_NEGOCIO"].DBToDecimal();
                            }
                            else if (lSentido.Equals("C"))
                            {
                                lPosicao.QtdeAExecCompra = lDataTable.Rows[i]["QT_NEGOCIO"].DBToDecimal();

                                lPosicao.PrecoNegocioCompra = lDataTable.Rows[i]["PR_NEGOCIO"].DBToDecimal();
                            }

                            lRetorno.ListaPosicaoDiaBMF.Add(lPosicao);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                if (lAcessaDados != null)
                {
                    lAcessaDados.Dispose();
                    lAcessaDados = null;
                }
            }

            if (lRetorno.ListaPosicaoDiaBMF.Count > 0)
            {
                AtualizaInserePosicaoDiaBmf(lRetorno.ListaPosicaoDiaBMF);
            }

            return(lRetorno.ListaPosicaoDiaBMF);
        }
예제 #6
0
        public static List <MonitorCustodiaInfo.CustodiaPosicao> ConsultarCustodiaNormal(Nullable <int> CodigoCliente, Nullable <int> CodigoClienteBmf)
        {
            MonitorCustodiaInfo lRetorno = new MonitorCustodiaInfo();

            try
            {
                var lAcessaDados = new AcessaDados();

                lAcessaDados.ConnectionStringName = gNomeConexaoOracle;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_SEL_CUSTODIA_INTRANET3"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "IdCliente", DbType.Int32, CodigoCliente);
                    lAcessaDados.AddInParameter(lDbCommand, "IdClienteBMF", DbType.Int32, CodigoClienteBmf);

                    var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i < lDataTable.Rows.Count; i++)
                        {
                            if (lDataTable.Rows[i]["TIPO_MERC"].DBToString().Equals("OPF") ||
                                lDataTable.Rows[i]["TIPO_MERC"].DBToString().Equals("FUT") ||
                                lDataTable.Rows[i]["TIPO_MERC"].DBToString().Equals("OPD"))
                            {
                                continue;
                            }

                            lRetorno.ListaCustodia.Add(new MonitorCustodiaInfo.CustodiaPosicao()
                            {
                                CodigoInstrumento = lDataTable.Rows[i]["COD_NEG"].DBToString(),
                                CodigoCarteira    = lDataTable.Rows[i]["COD_CART"].DBToInt32(),
                                DescricaoCarteira = lDataTable.Rows[i]["DESC_CART"].DBToString().Trim(),
                                TipoMercado       = lDataTable.Rows[i]["TIPO_MERC"].DBToString(),
                                TipoGrupo         = lDataTable.Rows[i]["TIPO_GRUP"].DBToString(),
                                IdCliente         = lDataTable.Rows[i]["COD_CLI"].DBToInt32(),
                                QtdeAtual         = lDataTable.Rows[i]["QTDE_ATUAL"].DBToDecimal(),
                                QtdeLiquidar      = lDataTable.Rows[i]["QTDE_LIQUID"].DBToDecimal(),
                                QtdeDisponivel    = lDataTable.Rows[i]["QTDE_DISP"].DBToDecimal(),
                                QtdeAExecVenda    = lDataTable.Rows[i]["QTDE_AEXE_VDA"].DBToDecimal(),
                                QtdeAExecCompra   = lDataTable.Rows[i]["QTDE_AEXE_CPA"].DBToDecimal(),
                                NomeEmpresa       = lDataTable.Rows[i]["NOME_EMP_EMI"].DBToString(),
                                ValorPosicao      = lDataTable.Rows[i]["VAL_POSI"].DBToDecimal(),
                                DtVencimento      = lDataTable.Rows[i]["DATA_VENC"].DBToDateTime(Extensions.eDateNull.Permite),
                                QtdeD1            = lDataTable.Rows[i]["QTDE_DA1"].DBToDecimal(),
                                QtdeD2            = lDataTable.Rows[i]["QTDE_DA2"].DBToDecimal(),
                                QtdeD3            = lDataTable.Rows[i]["QTDE_DA3"].DBToDecimal(),
                                CodigoSerie       = lDataTable.Rows[i]["COD_SERI"].DBToString(),
                                FatorCotacao      = lDataTable.Rows[i]["FAT_COT"].DBToDecimal(),
                                QtdeDATotal       = lDataTable.Rows[i]["QTDE_DATOTAL"].DBToDecimal(),
                            });
                        }
                    }
                }
                if (lAcessaDados != null)
                {
                    lAcessaDados.Dispose();
                    lAcessaDados = null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            if (lRetorno.ListaCustodia.Count > 0)
            {
                AtualizaInserePosicaoNormal(lRetorno.ListaCustodia);
            }

            return(lRetorno.ListaCustodia);
        }