示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }