public static List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> ConsultarCustodiaPosicaoDiaBMF(MonitorCustodiaInfo pParametros) { var lRetorno = new MonitorCustodiaInfo(); var lAcessaDados = new AcessaDados(); lRetorno.ListaPosicaoDiaBMF = new List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF>(); lAcessaDados.ConnectionStringName = gNomeConexaoOracle; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_SEL_CUSTODIA_INTRANET_DIA")) { lAcessaDados.AddInParameter(lDbCommand, "IdCliente", DbType.Int32, pParametros.CodigoClienteBmf); 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(); 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(); 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); } } } return(lRetorno.ListaPosicaoDiaBMF); }
private List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> TratarListaCustodia(List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> list) { List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> lRetorno = new List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF>(); try { MonitorCustodiaInfo.CustodiaPosicaoDiaBMF lPosicao; foreach (MonitorCustodiaInfo.CustodiaPosicaoDiaBMF posicao in list) { lPosicao = new MonitorCustodiaInfo.CustodiaPosicaoDiaBMF(); lPosicao = posicao; if (lPosicao.TipoMercado.Equals("FUT") || lPosicao.TipoMercado.Equals("OPF")) { //decimal lQuantidadeAtual = posicao.QtdeDisponivel; decimal lQuantidadeAtual = (posicao.QtdeAExecCompra - posicao.QtdeAExecVenda) == 0 ? 1 : (posicao.QtdeAExecCompra - posicao.QtdeAExecVenda); decimal lValorCotacao = posicao.Cotacao; decimal lFatorMultiplicador = RetornaFatorMultiplicador(posicao.CodigoInstrumento, Convert.ToDouble(posicao.ValorFechamento, gCultura), Convert.ToDouble(posicao.Cotacao, gCultura)); decimal lValorPosicao = posicao.ValorFechamento; decimal lDiferenca = (lValorCotacao - lValorPosicao); lPosicao.Resultado = ((lDiferenca * lFatorMultiplicador) * lQuantidadeAtual); } lRetorno.Add(lPosicao); } } catch (Exception ex) { gLogger.ErrorFormat("Erro ao tratar posição de custódia - StackTrace - {0}", ex.StackTrace); } return(lRetorno); }
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); }