/// <summary> /// Obtiene los ultimos tres reportes trimestrales IFRS enviados. /// </summary> /// <param name="abaxXBRLBlockStore"></param> /// <param name="claveEmisora"></param> /// <returns></returns> public static List <Envio> ObtenerUlrimosTresReportesTrimestralesIFRS(IAbaxXBRLCellStoreMongo abaxXBRLBlockStore, String claveEmisora) { List <Envio> enviosIFRS = new List <Envio>(); Dictionary <String, object> parametros = new Dictionary <string, object>(); parametros.Add("'Entidad.Nombre'", claveEmisora); parametros.Add("Taxonomia", "{$regex: 'ifrs'}"); parametros.Add("EsVersionActual", "true"); var parametrosConsulta = GenerarCadenaParametrosConsulta(parametros); enviosIFRS = abaxXBRLBlockStore.ConsultaElementos <Envio>("Envio", parametrosConsulta).ToList(); if (enviosIFRS != null && enviosIFRS.Count > 0) { enviosIFRS = enviosIFRS.OrderByDescending(x => x.FechaRecepcion).ToList(); } if (enviosIFRS != null && enviosIFRS.Count >= 3) { return(enviosIFRS.GetRange(0, 3)); } return(enviosIFRS); }
/// <summary> /// Obtiene la lista de hechos IFRS. /// </summary> /// <param name="abaxXBRLBlockStore"></param> /// <param name="envio"></param> /// <returns></returns> public static List <Hecho> ObtenerHechosIFRS(IAbaxXBRLCellStoreMongo abaxXBRLBlockStore, Envio envio) { List <Hecho> listaHechos = new List <Hecho>(); if (envio != null) { Dictionary <String, object> parametros = new Dictionary <string, object>(); parametros.Add("'Entidad.Nombre'", "'" + envio.Entidad.Nombre + "'"); parametros.Add("IdEnvio", "'" + envio.IdEnvio + "'"); parametros.Add("'Concepto.IdConcepto'", "{$in : ['" + String.Join("','", ID_CONCEPTOS_IFRS) + "']}"); var parametrosConsulta = GenerarCadenaParametrosConsulta(parametros); listaHechos = abaxXBRLBlockStore.ConsultaElementos <Hecho>("Hecho", parametrosConsulta).ToList(); } return(listaHechos); }
/// <summary> /// Obtiene el utlimo envio trimestral 4D de IFRS de la emisora. /// </summary> /// <param name="claveEmisora"></param> /// <param name="abaxXBRLBlockStore"></param> /// <returns></returns> public static Envio ObtenerUltimoEnviosIFRS(String claveEmisora, IAbaxXBRLCellStoreMongo abaxXBRLBlockStore) { Envio envioIFRS = null; Dictionary <String, object> parametros = new Dictionary <string, object>(); parametros.Add("'Entidad.Nombre'", claveEmisora); parametros.Add("Taxonomia", "{$regex: 'ifrs'}"); parametros.Add("EsVersionActual", "true"); parametros.Add("'Parametros.Dictaminado'", "'true'"); parametros.Add("'Parametros.trimestre'", "'4D'"); var parametrosConsulta = GenerarCadenaParametrosConsulta(parametros); List <Envio> listaEnvios = abaxXBRLBlockStore.ConsultaElementos <Envio>("Envio", parametrosConsulta).ToList(); if (listaEnvios != null && listaEnvios.Count > 0) { listaEnvios = listaEnvios.OrderByDescending(x => x.Periodo.Ejercicio).ToList(); envioIFRS = listaEnvios.ElementAt(0); } return(envioIFRS); }
/// <summary> /// Obtiene los últimos 5 eventos relevantes por sector. /// </summary> /// <param name="listaEmisoras"></param> /// <param name="abaxXBRLBlockStore"></param> /// <returns></returns> public static List <List <Hecho> > ObtenerUltimosSincoEventosRelevantesDelSector(String[] listaEmisoras, IAbaxXBRLCellStoreMongo abaxXBRLBlockStore) { List <List <Hecho> > ulimosSincoEventosRelevantesDelSector = new List <List <Hecho> >(); var parametrosConsultaEnviosEventosRelevantes = "{ 'Entidad.Nombre' : { $in: ["; foreach (var claveEmisora in listaEmisoras) { parametrosConsultaEnviosEventosRelevantes += "'" + claveEmisora + "' ,"; } parametrosConsultaEnviosEventosRelevantes = parametrosConsultaEnviosEventosRelevantes.Remove(parametrosConsultaEnviosEventosRelevantes.LastIndexOf(","), 1); parametrosConsultaEnviosEventosRelevantes += "]}, "; parametrosConsultaEnviosEventosRelevantes += "Taxonomia: { $in: [" + TAXOS_ER + "]}, "; parametrosConsultaEnviosEventosRelevantes += "EsVersionActual: true"; parametrosConsultaEnviosEventosRelevantes += "}"; var listaEnviosEventosRelevantesEmisoras = abaxXBRLBlockStore.ConsultaElementos <Envio>("Envio", parametrosConsultaEnviosEventosRelevantes); var parametrosConsultaHechosEventosRelevantes = "{ 'Concepto.IdConcepto': { $in : ['" + ID_CONCEPTO_EVENTO_RELEVANTE + "', '" + ID_CONCEPTO_FECHA_EVENTO_RELEVANTE + "'] } , IdEnvio: { $in: ["; var entroEnvios = false; foreach (var envio in listaEnviosEventosRelevantesEmisoras) { parametrosConsultaHechosEventosRelevantes += "'" + envio.IdEnvio + "',"; entroEnvios = true; } if (entroEnvios) { parametrosConsultaEnviosEventosRelevantes = parametrosConsultaEnviosEventosRelevantes.Remove(parametrosConsultaEnviosEventosRelevantes.LastIndexOf(","), 1); parametrosConsultaHechosEventosRelevantes += "] }"; parametrosConsultaHechosEventosRelevantes += "}"; } var listaHechosEventosRelevantesEmisoras = abaxXBRLBlockStore.ConsultaElementos <Hecho>("Hecho", parametrosConsultaEnviosEventosRelevantes); var hechosAgrupadosPorEnvio = listaHechosEventosRelevantesEmisoras.ToList().GroupBy(hecho => hecho.IdEnvio).Select(grp => grp.ToList()).ToList(); hechosAgrupadosPorEnvio.OrderBy(lista => lista.Find(hecho => hecho.Concepto.IdConcepto.Equals(ID_CONCEPTO_FECHA_EVENTO_RELEVANTE)).Valor); if (hechosAgrupadosPorEnvio.Count() > 0) { if (hechosAgrupadosPorEnvio.Count() >= 5) { ulimosSincoEventosRelevantesDelSector = hechosAgrupadosPorEnvio.GetRange(0, 5); } else { ulimosSincoEventosRelevantesDelSector = hechosAgrupadosPorEnvio.GetRange(0, hechosAgrupadosPorEnvio.Count()); } } return(ulimosSincoEventosRelevantesDelSector); }
/// <summary> /// Obtiene los hechos del Reporte Anual. /// </summary> /// <param name="parametrosConsulta"></param> /// <param name="abaxXBRLBlockStore"></param> /// <returns></returns> public static IList <Hecho> ObtenerHechosReporteAnual(String parametrosConsulta, IAbaxXBRLCellStoreMongo abaxXBRLBlockStore) { IList <Hecho> listaHechosReporteAnual = new List <Hecho>(); listaHechosReporteAnual = abaxXBRLBlockStore.ConsultaElementos <Hecho>("Hecho", parametrosConsulta); return(listaHechosReporteAnual); }
public static String[] EnvioPorFecha(String ticker, String trimestre, int anio, ObjetoFecha[] fechas, IAbaxXBRLCellStoreMongo AbaxXBRLCellStoreMongo) { String[] envioPorFecha = new String[4]; for (var i = 0; i < 4; i++) { var parametroTrimestreEnvio = ""; if (i == 0 || i == 1) { parametroTrimestreEnvio = " $or: [ {'Parametros.trimestre': '4D'}, {'Parametros.trimestre': '4'} ]"; } else { parametroTrimestreEnvio = "'Parametros.trimestre': '" + trimestre + "'"; } var parametrosEnvio = "{'Entidad.Nombre': '" + ticker + "', Taxonomia: {$regex: 'ifrs'}, 'Parametros.Ano':'" + fechas[i].FechaFin.Substring(0, 4) + "'," + parametroTrimestreEnvio + "}"; List <Envio> envios = AbaxXBRLCellStoreMongo.ConsultaElementos <CellStore.Modelo.Envio>("Envio", parametrosEnvio).ToList(); Envio envio = new Envio(); if (envios != null && envios.Count > 0) { envios = envios.OrderByDescending(envio1 => envio1.Parametros["trimestre"].ToString()).ToList(); envio = envios.ElementAt(0); } else { if (i == 0 || i == 1) { parametrosEnvio = "{'Entidad.Nombre': '" + ticker + "', Taxonomia: {$regex: 'ifrs'}, 'Parametros.Ano':'" + (Convert.ToInt32(fechas[i].FechaFin.Substring(0, 4)) + 1).ToString() + "'," + parametroTrimestreEnvio + "}"; envios = AbaxXBRLCellStoreMongo.ConsultaElementos <CellStore.Modelo.Envio>("Envio", parametrosEnvio).ToList(); if (envios != null && envios.Count > 0) { envios = envios.OrderByDescending(envio1 => envio1.Parametros["trimestre"].ToString()).ToList(); envio = envios.ElementAt(0); } } } envioPorFecha[i] = envio.IdEnvio; } return(envioPorFecha); }