Ejemplo n.º 1
0
        public override void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            //   docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;

            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Letter;
            docBuilder.CurrentSection.PageSetup.LeftMargin  = 40;
            docBuilder.CurrentSection.PageSetup.RightMargin = 40;

            //  escribirEncabezado(docBuilder, instancia, estructuraReporte, true);

            imprimirTituloRol(docBuilder, rolAExportar);
            var             lista  = new List <ConceptoReporteDTO>();
            var             lista2 = new List <ConceptoReporteDTO>();
            var             lista3 = new List <ConceptoReporteDTO>();
            HechoReporteDTO hecho  = null;

            foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol])
            {
                if (concepto.Hechos != null)
                {
                    foreach (String llave in concepto.Hechos.Keys)
                    {
                        hecho = concepto.Hechos[llave];
                        if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                        {
                            if (!ConceptoHiper.Contains(concepto.IdConcepto))
                            {
                                escribirConceptoEnTablaNota(docBuilder, estructuraReporte, hecho, concepto);
                            }
                            string tipoNumerico = ObtenertipoDato(concepto, TIPO_DATO_MONETARY);

                            if (concepto.TipoDato == tipoNumerico && concepto.IdConcepto != ID_Importe && concepto.IdConcepto != ID_IVA && concepto.IdConcepto != ID_Total)
                            {
                                lista.Add(concepto);
                                banderahecho = 1;
                            }
                            else if (banderahecho == 1)
                            {
                                PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista);
                                banderahecho = 0;
                                lista.Clear();
                            }
                            string tipoNoNegativo = ObtenertipoDato(concepto, TIPO_DATO_NoNEGATIVO);
                            if (concepto.TipoDato == tipoNoNegativo)
                            {
                                lista2.Add(concepto);
                                banderahecho = 2;
                            }
                            else if (banderahecho == 2)
                            {
                                PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista2);
                                banderahecho = 0;
                                lista2.Clear();
                            }
                            string tipoDecimal = ObtenertipoDato(concepto, TIPO_DATO_DECIMAL);
                            if (concepto.TipoDato == tipoNoNegativo)
                            {
                                lista3.Add(concepto);
                                banderahecho = 3;
                            }
                            else if (banderahecho == 3)
                            {
                                PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista3);
                                banderahecho = 0;
                                lista3.Clear();
                            }

                            string conceptoAdosColumnas = ObtenertipoDato(concepto, TIPO_DATO_SI_NO);

                            if (concepto.TipoDato == conceptoAdosColumnas || concepto.IdConcepto == ID_Tipo_Oferta ||
                                concepto.IdConcepto == ID_Denominacion_moneda || concepto.IdConcepto == ID_Pesos || concepto.IdConcepto == ID_Pesos1)
                            {
                                escribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte);
                            }
                        }
                    }

                    if (hipercubosSerie.Contains(concepto.IdConcepto))
                    {
                        docBuilder.Writeln();
                        var      conceptoActual = concepto;
                        string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                        string   ConceptoHipercubo = (d[0]);
                        PintaTablaDimensionSerie(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte, conceptoActual);
                    }
                    else if (hipercubosExist.Contains(concepto.IdConcepto))
                    {
                        docBuilder.Writeln();

                        string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                        string   ConceptoHipercubo = (d[0]);
                        PintaTablaDimensionExplicita(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte);
                    }
                }
            }

            banderahecho = 0;
            Evaluador.Clear();
            ConceptoHiper.Clear();
        }
Ejemplo n.º 2
0
        public override void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Letter;
            docBuilder.CurrentSection.PageSetup.LeftMargin  = 40;
            docBuilder.CurrentSection.PageSetup.RightMargin = 40;
            Idioma = estructuraReporte.Lenguaje;


            escribirEncabezado(docBuilder, instancia, estructuraReporte, true);

            //Titulo rol
            imprimirTituloRol(docBuilder, rolAExportar);

            HechoReporteDTO hecho = null;

            ConceptoHiper.Add("");

            foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol])
            {
                if (ConceptosHipercubos.ContainsKey(concepto.IdConcepto))
                {
                    continue;
                }
                if (concepto.Hechos != null)
                {
                    foreach (String llave in concepto.Hechos.Keys)
                    {
                        hecho = concepto.Hechos[llave];
                        if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                        {
                            if (!ConceptoHiper.Contains(concepto.IdConcepto))
                            {
                                //Escribe titulo campo
                                escribirConceptoEnTablaNota(docBuilder, estructuraReporte, hecho, concepto);
                            }
                        }
                    }
                }

                string conceptoAdosColumnas = ObtenertipoDato(concepto, TIPO_DATO_SI_NO);

                if (concepto.TipoDato != null &&
                    (concepto.TipoDato == conceptoAdosColumnas || concepto.Numerico))
                {
                    EscribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte);
                }

                string conceptoPDF = ObtenertipoDato(concepto, TIPO_DATOS_BASE64_FILE);

                if (concepto.TipoDato == conceptoPDF)
                {
                    if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                    {
                        EscribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte);
                    }
                }


                if (hipercubosSerie.Contains(concepto.IdConcepto))
                {
                    docBuilder.Writeln();
                    var      conceptoActual = concepto;
                    string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                    string   ConceptoHipercubo = (d[0]);
                    PintaTablaDimensionSerie(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte, conceptoActual);
                }
                if (hipercubosExist.Contains(concepto.IdConcepto))
                {
                    docBuilder.Writeln();

                    string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                    string   ConceptoHipercubo = (d[0]);
                    PintaTablaDimensionExplicita(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte);
                }
                else if (concepto.IdConcepto.Equals("ar_pros_CompanyAdministratorsAbstract"))
                {
                    ImprimeTitulo(docBuilder, concepto);
                    PintaAdministradores(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_CompanyAdministratorsTable"]);
                }
                else if (concepto.IdConcepto.Equals("ar_pros_CompanyShareholdersAbstract"))
                {
                    ImprimeTitulo(docBuilder, concepto);
                    PintaAccionistas(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_CompanyShareholdersTable"]);
                }
                else if (concepto.IdConcepto.Equals("ar_pros_SubcommitteesSynopsis"))
                {
                    ImprimeTitulo(docBuilder, concepto);
                    PintaListaSubcomites(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_SubcommitteesTable"]);
                }
            }

            Evaluador.Clear();
            ConceptoHiper.Clear();
        }