private static IList <IngresosProductoReporteDto> crearIngresosProducto(IDictionary <String, IDictionary <String, IngresosProductoReporteDto> > marcas) { List <IngresosProductoReporteDto> contenido = new List <IngresosProductoReporteDto>(); foreach (String idMarca in marcas.Keys) { IngresosProductoReporteDto marca = new IngresosProductoReporteDto(); marca.Marca = true; marca.PrincipalesMarcas = idMarca; contenido.Add(marca); contenido.AddRange(marcas[idMarca].Values); } return(contenido); }
private static IngresosProductoReporteDto actualizarIngresosProducto(IngresosProductoReporteDto ingresos, String producto, String idItemMiembro, HechoDto hecho, ReporteXBRLDTO reporteXBRLDTO) { if (ingresos == null) { ingresos = new IngresosProductoReporteDto(); ingresos.Producto = true; ingresos.PrincipalesProductos = producto; } if (idItemMiembro.Equals("ifrs_mx-cor_20141205_IngresosNacionalesMiembro")) { ingresos.IngresosNacionales = new HechoReporteDTO(); ingresos.IngresosNacionales.ValorNumerico = hecho.ValorNumerico; ingresos.IngresosNacionales.ValorFormateado = ReporteXBRLUtil.formatoDecimal(hecho.ValorNumerico, ReporteXBRLUtil.FORMATO_CANTIDADES_MONETARIAS); obtenerNotasAlPie(hecho, ingresos.IngresosNacionales, reporteXBRLDTO); } else if (idItemMiembro.Equals("ifrs_mx-cor_20141205_IngresosPorExportacionMiembro")) { ingresos.IngresosExportacion = new HechoReporteDTO(); ingresos.IngresosExportacion.ValorNumerico = hecho.ValorNumerico; ingresos.IngresosExportacion.ValorFormateado = ReporteXBRLUtil.formatoDecimal(hecho.ValorNumerico, ReporteXBRLUtil.FORMATO_CANTIDADES_MONETARIAS); obtenerNotasAlPie(hecho, ingresos.IngresosExportacion, reporteXBRLDTO); } else if (idItemMiembro.Equals("ifrs_mx-cor_20141205_IngresosDeSubsidiariasEnElExtranjeroMiembro")) { ingresos.IngresosSubsidirias = new HechoReporteDTO(); ingresos.IngresosSubsidirias.ValorNumerico = hecho.ValorNumerico; ingresos.IngresosSubsidirias.ValorFormateado = ReporteXBRLUtil.formatoDecimal(hecho.ValorNumerico, ReporteXBRLUtil.FORMATO_CANTIDADES_MONETARIAS); obtenerNotasAlPie(hecho, ingresos.IngresosSubsidirias, reporteXBRLDTO); } else if (idItemMiembro.Equals("ifrs_mx-cor_20141205_IngresosTotalesMiembro")) { ingresos.IngresosTotales = new HechoReporteDTO(); ingresos.IngresosTotales.ValorNumerico = hecho.ValorNumerico; ingresos.IngresosTotales.ValorFormateado = ReporteXBRLUtil.formatoDecimal(hecho.ValorNumerico, ReporteXBRLUtil.FORMATO_CANTIDADES_MONETARIAS); obtenerNotasAlPie(hecho, ingresos.IngresosTotales, reporteXBRLDTO); } return(ingresos); }
public static IList <IngresosProductoReporteDto> generaContenidoReporte(DocumentoInstanciaXbrlDto documentoInstancia, ReporteXBRLDTO reporteXBRLDTO, int ContadorNotasAlPie, out int outContadorNotasAlPie) { contadorTMP = ContadorNotasAlPie; IDictionary <String, IDictionary <String, IngresosProductoReporteDto> > marcas = new Dictionary <String, IDictionary <String, IngresosProductoReporteDto> >(); IList <IngresosProductoReporteDto> contenido = null; IngresosProductoReporteDto total = new IngresosProductoReporteDto(); total.Total = true; total.PrincipalesProductos = tituloRenglonTotal; String finPeriodo = ReporteXBRLUtil.obtenerValorHecho(ReportConstants.ID_FECHA_CIERRE_REPORTE_2014, documentoInstancia); String inicioPeriodo = DateReporteUtil.obtenerPeriodos(finPeriodo)["acum_anio_actual"].Split(new String[] { "_" }, StringSplitOptions.None)[0]; var dateInicioPeriodo = DateReporteUtil.obtenerFecha(inicioPeriodo); var dateFinPeriodo = DateReporteUtil.obtenerFecha(finPeriodo); foreach (ContextoDto contexto in documentoInstancia.ContextosPorId.Values) { if (contexto.Periodo.Tipo == PeriodoDto.Instante) { if (!contexto.Periodo.FechaInstante.Equals(dateFinPeriodo)) { continue; } } else { if (!contexto.Periodo.FechaInicio.Equals(dateInicioPeriodo) || !contexto.Periodo.FechaFin.Equals(dateFinPeriodo)) { continue; } } if (contexto.ValoresDimension != null && contexto.ValoresDimension.Count() > 0) { DimensionInfoDto dimensionMarca = obtenerPrimero(contexto.ValoresDimension, IdDimensionMarcas); DimensionInfoDto dimensionProducto = obtenerPrimero(contexto.ValoresDimension, IdDimensionProductos); if (dimensionMarca != null && dimensionProducto != null) { String marca = obtenerNombreMarcaProducto(dimensionMarca.ElementoMiembroTipificado).Trim(); String producto = obtenerNombreMarcaProducto(dimensionProducto.ElementoMiembroTipificado).Trim(); String idMiembro = obtenerIdItemMiembro(contexto.ValoresDimension); HechoDto hecho = documentoInstancia.HechosPorId[documentoInstancia.HechosPorIdContexto[contexto.Id][0]]; if (marca.Equals(todasLasMarcas) && producto.Equals(todosLosProductos)) { actualizarIngresosProducto(total, producto, idMiembro, hecho, reporteXBRLDTO); } else { actualizarHechosProducto(marcas, marca, producto, idMiembro, hecho, reporteXBRLDTO); } } } } contenido = crearIngresosProducto(marcas); contenido.Add(total); outContadorNotasAlPie = contadorTMP; contadorTMP = 0; return(contenido); }