private IDictionary <String, String> obtenerPeriodos(String periodo)
        {
            IDictionary <String, String> periodos = new Dictionary <String, String>();

            DateTime datePeriodo = DateReporteUtil.obtenerFecha(periodo);

            periodos.Add("periodo_actual", periodo);

            return(periodos);
        }
        private IDictionary<String, String> obtenerPeriodos(String periodo)
        {
            IDictionary<String, String> periodos = new Dictionary<String, String>();

            DateTime datePeriodo = DateReporteUtil.obtenerFecha(periodo);

            String periodoAnterior = DateReporteUtil.modificadorFechas(datePeriodo, -1, 0, 0, 0, 12, 31);
            String periodoPreAnterior = DateReporteUtil.modificadorFechas(datePeriodo, -2, 0, 0, 0, 12, 31);

            String inicioPeriodo = DateReporteUtil.modificadorFechas(datePeriodo, 0, 0, 0, 0, 1, 1);
            String inicioPeriodoAnterior = DateReporteUtil.modificadorFechas(datePeriodo, -1, 0, 0, 0, 1, 1);
            String inicioPeriodoPreAnterior = DateReporteUtil.modificadorFechas(datePeriodo, -2, 0, 0, 0, 1, 1);

            periodos.Add("periodo_actual", periodo);
            periodos.Add("periodo_anterior", periodoAnterior);
            periodos.Add("periodo_pre_anterior", periodoPreAnterior);
            periodos.Add("anual_actual", inicioPeriodo + "_" + periodo);
            periodos.Add("anual_anterior", inicioPeriodoAnterior + "_" + periodoAnterior);
            periodos.Add("anual_pre_anterior", inicioPeriodoPreAnterior + "_" + periodoPreAnterior);

            return periodos;
        }
Esempio n. 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);
        }
Esempio n. 4
0
        /// <summary>

        /// <summary>
        /// (non-Javadoc)
        /// </summary>
        /// </summary>
        ///  @see java.lang.Object#toString()

        override public String ToString()
        {
            StringBuilder buffer = new StringBuilder();


            buffer.Append("T: " + Titulo + " A: " + TituloAbstracto + " Total: " + Total + "\t\t\t");
            if (!TituloAbstracto)
            {
                if (InstitucionExtranjera != null)
                {
                    buffer.Append("\tIE: " + InstitucionExtranjera.Valor);
                }
                if (FechaVencimiento != null)
                {
                    buffer.Append("\tFV: " + DateUtil.ToFormatString(DateReporteUtil.obtenerFecha(FechaVencimiento.Valor), DateUtil.YMDateFormat));
                }
                if (FechaFirmaContrato != null)
                {
                    buffer.Append("\tFFC: " + DateUtil.ToFormatString(DateReporteUtil.obtenerFecha(FechaFirmaContrato.Valor), DateUtil.YMDateFormat));
                }
                if (TasaInteres != null)
                {
                    buffer.Append("\tTI: " + TasaInteres);
                }
                buffer.Append("\t\t||\t");
                if (MonedaNacionalAnioActual != null)
                {
                    buffer.Append("\tMNAA: " + MonedaNacionalAnioActual.ValorNumerico.ToString());
                }
                if (MonedaNacionalUnAnio != null)
                {
                    buffer.Append("\tMN1A: " + MonedaNacionalUnAnio.ValorNumerico.ToString());
                }
                if (MonedaNacionalDosAnio != null)
                {
                    buffer.Append("\tMN2A: " + MonedaNacionalDosAnio.ValorNumerico.ToString());
                }
                if (MonedaNacionalTresAnio != null)
                {
                    buffer.Append("\tMN3A: " + MonedaNacionalTresAnio.ValorNumerico.ToString());
                }
                if (MonedaNacionalCuatroAnio != null)
                {
                    buffer.Append("\tMN4A: " + MonedaNacionalCuatroAnio.ValorNumerico.ToString());
                }
                if (MonedaNacionalCincoMasAnio != null)
                {
                    buffer.Append("\tMN5A: " + MonedaNacionalCincoMasAnio.ValorNumerico.ToString());
                }
                if (MonedaExtranjeraAnioActual != null)
                {
                    buffer.Append("\tMEAA: " + MonedaExtranjeraAnioActual.ValorNumerico.ToString());
                }
                if (MonedaExtranjeraUnAnio != null)
                {
                    buffer.Append("\tME1A: " + MonedaExtranjeraUnAnio.ValorNumerico.ToString());
                }
                if (MonedaExtranjeraDosAnio != null)
                {
                    buffer.Append("\tME2A: " + MonedaExtranjeraDosAnio.ValorNumerico.ToString());
                }
                if (MonedaExtranjeraTresAnio != null)
                {
                    buffer.Append("\tME3A: " + MonedaExtranjeraTresAnio.ValorNumerico.ToString());
                }
                if (MonedaExtranjeraCuatroAnio != null)
                {
                    buffer.Append("\tME4A: " + MonedaExtranjeraCuatroAnio.ValorNumerico.ToString());
                }
                if (MonedaExtranjeraCincoMasAnio != null)
                {
                    buffer.Append("\tME5A: " + MonedaExtranjeraCincoMasAnio.ValorNumerico.ToString());
                }
            }

            return(buffer.ToString());
        }
        private void PintaTabla(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte, IList <ConceptoReporteDTO> listaConseptosReporte)
        {
            Table tablaActual = docBuilder.StartTable();
            Color colorTitulo = Color.FromArgb(ColorTituloTabla[0], ColorTituloTabla[1], ColorTituloTabla[2]);

            docBuilder.ParagraphFormat.SpaceAfter  = 0;
            docBuilder.ParagraphFormat.SpaceBefore = 2;

            ConceptoReporteDTO primerConcepto = null;

            if (!estructuraReporte.Roles.ContainsKey(rolAExportar.Rol))
            {
                throw new IndexOutOfRangeException("No existe el rol [" + rolAExportar.Rol + "] dentro del listado de roles del reporte.");
            }
            if (estructuraReporte.Roles.ContainsKey(rolAExportar.Rol))
            {
                foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol])
                {
                    if (!concepto.Abstracto)
                    {
                        primerConcepto = concepto;
                        break;
                    }
                }
            }
            establecerFuenteTituloCampo(docBuilder);
            docBuilder.Font.Size = TamanioLetraTituloTabla;
            docBuilder.InsertCell();

            //tablaActual.StyleIdentifier = StyleIdentifier.LIGHT_GRID_ACCENT_1;
            //tablaActual.StyleOptions = TableStyleOptions.FIRST_ROW;

            docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
            docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
            docBuilder.Font.Color = Color.White;
            docBuilder.Write(estructuraReporte.ObtenValorEtiquetaReporte("ETIQUETA_CONCEPTO"));

            String fechaReporteCadena      = estructuraReporte.FechaReporte;
            String fechaConstitucionCadena = estructuraReporte.Plantilla.ObtenerParametrosConfiguracion()["fechaConstitucion"];

            DateTime fechaReporte      = DateReporteUtil.obtenerFecha(fechaReporteCadena);
            DateTime fechaConstitucion = DateReporteUtil.obtenerFecha(fechaConstitucionCadena);

            int diferenciaAnios = fechaReporte.Year - fechaConstitucion.Year;

            var periodosPermitidos = new Dictionary <String, bool>()
            {
                { "anual_actual", true },
            };

            if (diferenciaAnios == 1)
            {
                periodosPermitidos.Add("anual_anterior", true);
            }
            else if (diferenciaAnios >= 2)
            {
                periodosPermitidos.Add("anual_anterior", true);
                periodosPermitidos.Add("anual_pre_anterior", true);
            }

            foreach (String periodo in primerConcepto.Hechos.Keys)
            {
                if (!periodosPermitidos.ContainsKey(periodo))
                {
                    continue;
                }

                docBuilder.InsertCell();
                docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
                docBuilder.CellFormat.PreferredWidth = PreferredWidth.FromPoints(AnchoPreferidoColumnaDatos);
                //docBuilder.CellFormat.Width = 35;
                docBuilder.CellFormat.WrapText = false;
                docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                String descPeriodo = estructuraReporte.PeriodosReporte[periodo];
                docBuilder.Writeln(estructuraReporte.Titulos[periodo]);
                docBuilder.Writeln(estructuraReporte.Moneda);
                docBuilder.Write(descPeriodo.Replace("_", " - "));
            }
            docBuilder.RowFormat.HeadingFormat = true;
            docBuilder.EndRow();

            establecerFuenteValorCampo(docBuilder);
            docBuilder.Font.Size = TamanioLetraContenidoTabla;
            foreach (ConceptoReporteDTO concepto in listaConseptosReporte)
            {
                /* if (ConceptosOcultar.Contains(concepto.IdConcepto))
                 * {
                 *   continue;
                 * }*/

                //if(!concepto.Abstracto && !concepto.Numerico)
                //{
                //    establecerBordesGrisesTabla(tablaActual);
                //    docBuilder.EndTable();
                //    var subLista = ObtenSubLista(listaConseptosReporte, listaConseptosReporte.IndexOf(concepto));
                //    EscribeNotas(docBuilder, instancia, rolAExportar, estructuraReporte, subLista);
                //    return;
                //}
                if (concepto.TipoDato.EndsWith(TIPO_DATO_MONETARY) || concepto.TipoDato.EndsWith(TIPO_DATO_PERSHERE))
                {
                    docBuilder.InsertCell();
                    docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
                    docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                    docBuilder.CellFormat.WrapText = true;
                    docBuilder.Font.Color          = Color.Black;
                    if (concepto.Abstracto)
                    {
                        docBuilder.Bold       = true;
                        docBuilder.Font.Color = Color.White;
                        docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                    }
                    else
                    {
                        docBuilder.Bold = false;
                    }
                    docBuilder.ParagraphFormat.LeftIndent = (concepto.Tabuladores < 0 ? concepto.Tabuladores : 0);
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Left;
                    if (concepto.AtributosAdicionales != null)
                    {
                        if (concepto.AtributosAdicionales.Count == 1)
                        {
                            conceptosEnIndice(docBuilder, concepto);
                        }
                        else
                        {
                            docBuilder.Write(concepto.Valor);
                        }
                    }
                    else
                    {
                        docBuilder.Write(concepto.Valor);
                    }

                    if (concepto.Abstracto)
                    {
                        for (int iCell = 0; iCell < primerConcepto.Hechos.Count(); iCell++)
                        {
                            docBuilder.InsertCell();
                            docBuilder.CellFormat.PreferredWidth = PreferredWidth.FromPoints(AnchoPreferidoColumnaDatos);
                        }
                    }
                    else
                    {
                        foreach (var periodo in concepto.Hechos.Keys)
                        {
                            if (!periodosPermitidos.ContainsKey(periodo))
                            {
                                continue;
                            }
                            HechoReporteDTO hecho = concepto.Hechos[periodo];
                            if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                            {
                                docBuilder.InsertCell();
                                docBuilder.CellFormat.PreferredWidth = PreferredWidth.FromPoints(AnchoPreferidoColumnaDatos);

                                docBuilder.ParagraphFormat.LeftIndent = 0;
                                if (concepto.Numerico)
                                {
                                    docBuilder.CellFormat.WrapText       = true;
                                    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Right;
                                }
                                else
                                {
                                    docBuilder.CellFormat.WrapText       = false;
                                    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                                }
                                escribirValorHecho(docBuilder, estructuraReporte, hecho, concepto);
                            }
                        }
                        docBuilder.RowFormat.AllowBreakAcrossPages = true;
                        docBuilder.RowFormat.HeadingFormat         = false;
                        docBuilder.EndRow();
                    }
                }
            }
            establecerBordesGrisesTabla(tablaActual);
            docBuilder.EndTable();
        }
Esempio n. 6
0
        override public void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Landscape;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Legal;
            docBuilder.CurrentSection.PageSetup.LeftMargin  = 10;
            docBuilder.CurrentSection.PageSetup.RightMargin = 10;

            Color colorTitulo = Color.FromArgb(ColorTituloTabla[0], ColorTituloTabla[1], ColorTituloTabla[2]);

            escribirEncabezado(docBuilder, instancia, estructuraReporte, true);


            imprimirTituloRol(docBuilder, rolAExportar);

            Table tablaDesglose = docBuilder.StartTable();

            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            establecerFuenteTituloCampo(docBuilder);
            docBuilder.Font.Size = TamanioLetraReporteDesglose;

            docBuilder.ParagraphFormat.SpaceAfter  = 0;
            docBuilder.ParagraphFormat.SpaceBefore = 2;

            docBuilder.InsertCell();
            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            docBuilder.RowFormat.HeadingFormat   = true;

            docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
            docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
            docBuilder.Font.Color = Color.White;

            var idioma = estructuraReporte.Lenguaje;

            docBuilder.CellFormat.VerticalMerge   = CellMerge.First;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_InstitucionEje",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.First;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_InstitucionExtranjeraSiNo",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.First;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_FechaDeFirmaContrato",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.First;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_FechaDeVencimiento",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.First;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_TasaDeInteresYOSobretasa",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.First;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_DenominacionEje",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.EndRow();

            docBuilder.InsertCell();
            docBuilder.RowFormat.HeadingFormat    = true;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.First;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_MonedaNacionalMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.First;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_MonedaExtranjeraMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.EndRow();

            docBuilder.InsertCell();
            docBuilder.RowFormat.HeadingFormat    = true;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.First;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_IntervaloDeTiempoEje",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.First;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_IntervaloDeTiempoEje",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;

            docBuilder.EndRow();

            docBuilder.InsertCell();
            docBuilder.RowFormat.HeadingFormat    = true;
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;

            docBuilder.InsertCell();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
            docBuilder.CellFormat.VerticalMerge   = CellMerge.Previous;

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_AnoActualMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta1AnoMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta2AnosMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta3AnosMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta4AnosMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta5AnosOMasMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_AnoActualMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta1AnoMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta2AnosMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.CellFormat.VerticalMerge = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta3AnosMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            docBuilder.CellFormat.VerticalMerge  = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta4AnosMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.InsertCell();
            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            docBuilder.CellFormat.VerticalMerge  = CellMerge.None;
            docBuilder.Write(DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, "ifrs_mx-cor_20141205_Hasta5AnosOMasMiembro",
                                                                                idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT));

            docBuilder.EndRow();

            foreach (DesgloseDeCreditosReporteDto dto in estructuraReporte.DesgloseCreditos)
            {
                docBuilder.InsertCell();
                docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;

                docBuilder.RowFormat.HeadingFormat    = false;
                docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                docBuilder.CellFormat.VerticalMerge   = CellMerge.None;


                if (dto.TituloAbstracto)
                {
                    docBuilder.Font.Color = Color.White;
                    docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;

                    docBuilder.Write(dto.Titulo);
                    for (int i = 0; i < 16; i++)
                    {
                        docBuilder.InsertCell();
                        docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                        docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                        docBuilder.Font.Color = Color.White;
                        if (i == 0)
                        {
                            docBuilder.CellFormat.HorizontalMerge = CellMerge.First;
                            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                        }
                        else
                        {
                            docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous;
                            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                        }
                    }
                }
                else
                {
                    docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                    docBuilder.Font.Color = Color.Black;
                    docBuilder.Write(dto.Titulo);
                    docBuilder.InsertCell();
                    docBuilder.Font.Color = Color.Black;
                    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                    docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.InstitucionExtranjera != null)
                    {
                        docBuilder.Write(Boolean.Parse(dto.InstitucionExtranjera.Valor) ? "SI" : "NO");
                        escribirLinkNotaAlPie(docBuilder, dto.InstitucionExtranjera, estructuraReporte);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.FechaFirmaContrato != null && dto.FechaFirmaContrato.Valor != null && DateReporteUtil.obtenerFecha(dto.FechaFirmaContrato.Valor) != default(DateTime))
                    {
                        docBuilder.Write(DateUtil.ToFormatString(DateReporteUtil.obtenerFecha(dto.FechaFirmaContrato.Valor), ReporteXBRLUtil.FORMATO_FECHA_YYYY_MM_DD));
                        escribirLinkNotaAlPie(docBuilder, dto.FechaFirmaContrato, estructuraReporte);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.FechaVencimiento != null && dto.FechaVencimiento.Valor != null && DateReporteUtil.obtenerFecha(dto.FechaVencimiento.Valor) != default(DateTime))
                    {
                        docBuilder.Write(DateUtil.ToFormatString(DateReporteUtil.obtenerFecha(dto.FechaVencimiento.Valor), ReporteXBRLUtil.FORMATO_FECHA_YYYY_MM_DD));
                        escribirLinkNotaAlPie(docBuilder, dto.FechaVencimiento, estructuraReporte);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.TasaInteres != null && dto.TasaInteres.Valor != null)
                    {
                        docBuilder.Write(dto.TasaInteres.Valor);
                        escribirLinkNotaAlPie(docBuilder, dto.TasaInteres, estructuraReporte);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaNacionalAnioActual != null && dto.MonedaNacionalAnioActual.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaNacionalAnioActual, estructuraReporte);
                        docBuilder.Write(dto.MonedaNacionalAnioActual.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaNacionalUnAnio != null && dto.MonedaNacionalUnAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaNacionalUnAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaNacionalUnAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaNacionalDosAnio != null && dto.MonedaNacionalDosAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaNacionalDosAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaNacionalDosAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaNacionalTresAnio != null && dto.MonedaNacionalTresAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaNacionalTresAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaNacionalTresAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaNacionalCuatroAnio != null && dto.MonedaNacionalCuatroAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaNacionalCuatroAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaNacionalCuatroAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaNacionalCincoMasAnio != null && dto.MonedaNacionalCincoMasAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaNacionalCincoMasAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaNacionalCincoMasAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaExtranjeraAnioActual != null && dto.MonedaExtranjeraAnioActual.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaExtranjeraAnioActual, estructuraReporte);
                        docBuilder.Write(dto.MonedaExtranjeraAnioActual.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaExtranjeraUnAnio != null && dto.MonedaExtranjeraUnAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaExtranjeraUnAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaExtranjeraUnAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaExtranjeraDosAnio != null && dto.MonedaExtranjeraDosAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaExtranjeraDosAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaExtranjeraDosAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaExtranjeraTresAnio != null && dto.MonedaExtranjeraTresAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaExtranjeraTresAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaExtranjeraTresAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaExtranjeraCuatroAnio != null && dto.MonedaExtranjeraCuatroAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaExtranjeraCuatroAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaExtranjeraCuatroAnio.ValorFormateado);
                    }

                    docBuilder.InsertCell();
                    docBuilder.CellFormat.WrapText        = true;
                    docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Right;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;
                    if (dto.MonedaExtranjeraCincoMasAnio != null && dto.MonedaExtranjeraCincoMasAnio.ValorFormateado != null)
                    {
                        escribirLinkNotaAlPie(docBuilder, dto.MonedaExtranjeraCincoMasAnio, estructuraReporte);
                        docBuilder.Write(dto.MonedaExtranjeraCincoMasAnio.ValorFormateado);
                    }
                }
                docBuilder.EndRow();
            }
            establecerBordesGrisesTabla(tablaDesglose);
            docBuilder.EndTable();
        }