/// <summary> /// /// </summary> /// <param name="pAccount"></param> /// <param name="pCodBmf"></param> /// <param name="pDataDe"></param> /// <param name="pDataAte"></param> /// <param name="pChannelId"></param> /// <param name="pSymbol"></param> /// <param name="pOrderStatusId"></param> /// <param name="pCodigoAssessor"></param> /// <returns></returns> public BuscarOrdensResponse BuscarOrdens(BuscarOrdensRequest pRequest) { AcessaDados lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = ClienteDbLib.gNomeConexaoRisco; BuscarOrdensResponse lRetorno = new BuscarOrdensResponse(); lRetorno.Ordens = new List <OrdemInfo>(); List <OrdemInfo> lResponseOrdens = new List <OrdemInfo>(); using (DbCommand lDbCommand = lAcessaDados.CreateCommand(System.Data.CommandType.StoredProcedure, "prc_buscar_ordens")) { lAcessaDados.AddInParameter(lDbCommand, "@Account", DbType.Int32, pRequest.ContaDoCliente); lAcessaDados.AddInParameter(lDbCommand, "@CodBmf", DbType.Int32, pRequest.CodigoBmfDoCliente); lAcessaDados.AddInParameter(lDbCommand, "@DataDe", DbType.DateTime, pRequest.DataDe); lAcessaDados.AddInParameter(lDbCommand, "@DataAte", DbType.DateTime, pRequest.DataAte); lAcessaDados.AddInParameter(lDbCommand, "@ChannelId", DbType.Int32, pRequest.Canal); lAcessaDados.AddInParameter(lDbCommand, "@Symbol", DbType.AnsiString, pRequest.Instrumento); lAcessaDados.AddInParameter(lDbCommand, "@OrdStatusId", DbType.Int32, pRequest.Status == null ? new Nullable <int>() : (int)pRequest.Status); lAcessaDados.AddInParameter(lDbCommand, "@CodigoAssessor", DbType.Int32, pRequest.CodigoAssessor); //lAcessaDados.AddInParameter(lDbCommand, "@id_sistema", DbType.Int32, pRequest.IdSistemaOrigem); DataTable lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand); lResponseOrdens = PreencherOrdensInfoDaVwOrderDetails(lDataTable); this.BuscarAssessoresFiltro(pRequest.CodigoAssessor, ref lResponseOrdens); lRetorno.Ordens = lResponseOrdens; } return(lRetorno); }
private static void BuscarOrdens(string pInput) { string[] lInputs = pInput.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); int lConta = -1; DateTime lDataDe = DateTime.MinValue, lDataAte = DateTime.MinValue; string lParamA = null, lParamB = null, lParamC = null; CultureInfo lProv = new CultureInfo("pt-BR"); if (lInputs.Length == 2) { lParamA = lInputs[1]; } if (lInputs.Length == 3) { //passador dois parametros, vê se o primeiro é int if (int.TryParse(lInputs[1], out lConta)) { lParamA = lInputs[1]; lParamB = lInputs[2]; } else { lParamA = null; lParamB = lInputs[1]; lParamC = lInputs[2]; } } if (!string.IsNullOrEmpty(lParamA)) { if (!int.TryParse(lParamA, out lConta)) { lConta = -1; } } if (!string.IsNullOrEmpty(lParamB)) { if (!DateTime.TryParseExact(lParamB, "dd/MM/yyyy", lProv, DateTimeStyles.None, out lDataDe)) { if (!DateTime.TryParseExact(lParamB, "dd/MM", lProv, DateTimeStyles.None, out lDataDe)) { if (!DateTime.TryParseExact(lParamB, "dd/MM/yyyy HH:mm", lProv, DateTimeStyles.None, out lDataDe)) { if (!DateTime.TryParseExact(lParamB, "dd/MM/yyyy HH:mm:ss", lProv, DateTimeStyles.None, out lDataDe)) { //não entendeu a data... } } } } } if (string.IsNullOrEmpty(lParamC)) { if (lDataDe != DateTime.MinValue) { lDataAte = DateTime.Now; } } else { if (!DateTime.TryParseExact(lParamC, "dd/MM/yyyy", lProv, DateTimeStyles.None, out lDataAte)) { if (!DateTime.TryParseExact(lParamC, "dd/MM", lProv, DateTimeStyles.None, out lDataAte)) { if (!DateTime.TryParseExact(lParamC, "dd/MM/yyyy HH:mm", lProv, DateTimeStyles.None, out lDataAte)) { if (!DateTime.TryParseExact(lParamC, "dd/MM/yyyy HH:mm:ss", lProv, DateTimeStyles.None, out lDataAte)) { //não entendeu a data... } } } } } BuscarOrdensRequest lRequest = new BuscarOrdensRequest(); BuscarOrdensResponse lResponse; ServicoAcompanhamentoOrdensClient lClient = new ServicoAcompanhamentoOrdensClient(); if (lConta > 0) { lRequest.ContaDoCliente = lConta; } if (lDataDe != DateTime.MinValue) { lRequest.DataDe = lDataDe; lRequest.DataAte = lDataAte; } else { lRequest.DataDe = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day - 1, 0, 0, 0); lRequest.DataAte = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day - 1, 23, 59, 59); } Console.WriteLine("Enviando busca: conta [{0}] De [{1}] Até [{2}]...", lRequest.ContaDoCliente, lRequest.DataDe, lRequest.DataAte); lResponse = lClient.BuscarOrdens(lRequest); if (lResponse.StatusResposta == Library.MensagemResponseStatusEnum.OK) { ConsoleWriteOrdens(lResponse.Ordens); } else { Console.WriteLine("Erro na consulta: [{0}] [{1}]", lResponse.StatusResposta, lResponse.DescricaoResposta); } }
/// <summary> /// Busca ordens inseridas no sinacor /// </summary> /// <param name="pRequest"></param> /// <returns></returns> public BuscarOrdensResponse BuscarOrdensSinacor(BuscarOrdensRequest pRequest) { BuscarOrdensResponse lReturn = new BuscarOrdensResponse(); OrdemInfo lOrdem = new OrdemInfo(); AcessaDados lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = ClienteDbLib.gNomeConexaoSinacorTrade; ///PRC_ACOMP_ORDENS_BMF_LST //PRC_ACOMPANHAMENTO_ORDENS_LST //string lProc = (pRequest.Canal == 0) ? "PRC_ACOMP_ORDENS_BMF_LST" : "PRC_ACOMPANHAMENTO_ORDENS_LST"; string lProc = (pRequest.Canal == 0) ? "PRC_ACOMP_ORDENS_BMF_LST" : "PRC_ACOMPA_ORDENS_LST"; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, lProc)) { lAcessaDados.AddInParameter(lDbCommand, "pDtDe", DbType.Date, pRequest.DataDe); lAcessaDados.AddInParameter(lDbCommand, "pDtAte", DbType.Date, pRequest.DataAte); lAcessaDados.AddInParameter(lDbCommand, "pPapel", DbType.AnsiString, pRequest.Instrumento); lAcessaDados.AddInParameter(lDbCommand, "pCodCliente", DbType.Int32, pRequest.ContaDoCliente); lAcessaDados.AddInParameter(lDbCommand, "pPaginaCorrente", DbType.Int32, pRequest.PaginaCorrente); lAcessaDados.AddInParameter(lDbCommand, "pQtdRegs", DbType.Int32, pRequest.QtdeLimiteRegistros); lAcessaDados.AddInParameter(lDbCommand, "pCodAssessor", DbType.Int32, pRequest.CodigoAssessor); lAcessaDados.AddInParameter(lDbCommand, "pStatusOrdem", DbType.Int32, pRequest.Status == null ? new Nullable <int>() : (int)pRequest.Status); lAcessaDados.AddInParameter(lDbCommand, "pStPortaTryd", DbType.String, "TRYD".Equals(pRequest.Origem) ? pRequest.Origem : null); lAcessaDados.AddOutParameter(lDbCommand, "pTotalRegistros", DbType.Int32, 12); DataTable lDados = lAcessaDados.ExecuteOracleDataTable(lDbCommand); lReturn.Ordens = new List <OrdemInfo>(); lReturn.TotalItens = lDados.Rows.Count; foreach (DataRow lRow in lDados.Rows) { lOrdem = new OrdemInfo(); lOrdem.IdOrdem = Convert.ToInt32(lRow["OrderId"]); lOrdem.Account = lRow["CD_CLIENTE"].DBToInt32(); lOrdem.ChannelID = lRow["ChannelId"].DBToInt32(); lOrdem.ExpireDate = lRow["ExpireDate"].DBToDateTime(); lOrdem.OrderQty = lRow["OrderQty"].DBToInt32(); lOrdem.OrderQtyRemmaining = lRow["OrderQtyRemaining"].DBToInt32(); lOrdem.OrdStatus = (OrdemStatusEnum)lRow["OrdStatusId"].DBToInt32(); lOrdem.ClOrdID = lRow["OrderId"].ToString(); lOrdem.OrdType = (OrdemTipoEnum)50; lOrdem.RegisterTime = DateTime.ParseExact(lRow["RegisterTime"].ToString(), "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture); lOrdem.Side = (OrdemDirecaoEnum)lRow["Side"].DBToInt32(); lOrdem.Symbol = lRow["SYMBOL"].DBToString(); if (lRow["Price"] != DBNull.Value) { lOrdem.Price = Convert.ToDouble(lRow["Price"]); } lOrdem.Acompanhamentos = new List <AcompanhamentoOrdemInfo>(); lReturn.Ordens.Add(lOrdem); } List <OrdemInfo> lTempOrdens = lReturn.Ordens; this.BuscarAssessoresFiltro(pRequest.CodigoAssessor, ref lTempOrdens); lReturn.Ordens = lTempOrdens; } return(lReturn); }