示例#1
0
        private void agregarTaxonomia(DocumentoInstanciaXbrlDto instanciaDto, CacheTaxonomiaEnMemoriaXBRL _cacheTaxonomiaXbrl)
        {
            var viewerService    = new XbrlViewerService();
            var taxonomiaDto     = _cacheTaxonomiaXbrl.ObtenerTaxonomia(instanciaDto.DtsDocumentoInstancia);
            var manejadorErrores = new ManejadorErroresCargaTaxonomia();

            if (taxonomiaDto == null)
            {
                var taxo = new TaxonomiaXBRL {
                    ManejadorErrores = manejadorErrores
                };
                foreach (var dts in instanciaDto.DtsDocumentoInstancia)
                {
                    if (dts.Tipo == DtsDocumentoInstanciaDto.SCHEMA_REF)
                    {
                        taxo.ProcesarDefinicionDeEsquema(dts.HRef);
                    }
                }
                taxo.CrearArbolDeRelaciones();
                taxonomiaDto = viewerService.CrearTaxonomiaAPartirDeDefinicionXbrl(taxo);
                if (manejadorErrores.PuedeContinuar())
                {
                    _cacheTaxonomiaXbrl.AgregarTaxonomia(instanciaDto.DtsDocumentoInstancia, taxonomiaDto);
                }
                else
                {
                    return;
                }
            }
            instanciaDto.Taxonomia = taxonomiaDto;
        }
示例#2
0
        public void TestImportarHechosDeDocumento()
        {
            var service = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),
                EmpresaRepository  = new EmpresaRepository(),
                UsuarioRepository  = new UsuarioRepository(),
                UnidadRepository   = new UnidadRepository(),
                ContextoRepository = new ContextoRepository(),
                DtsDocumentoInstanciaRepository = new DtsDocumentoInstanciaRepository(),
                HechoRepository     = new HechoRepository(),
                NotaAlPieRepository = new NotaAlPieRepository()
            };

            var _cacheTaxonomiaXbrl = new CacheTaxonomiaEnMemoriaXBRL();

            var resultadoDocumento = service.ObtenerModeloDocumentoInstanciaXbrl(105, 19);
            var instanciaDto       = resultadoDocumento.InformacionExtra as DocumentoInstanciaXbrlDto;

            agregarTaxonomia(instanciaDto, _cacheTaxonomiaXbrl);
            foreach (var hecho in instanciaDto.HechosPorId.Values)
            {
                Debug.WriteLine(hecho.IdConcepto + ":" + hecho.Id + ":" + hecho.Valor);
            }
            resultadoDocumento = service.ImportarHechosADocumentoInstancia(instanciaDto, 97, false, true, 19);
            Debug.WriteLine(resultadoDocumento.InformacionExtra);
            foreach (var hecho in instanciaDto.HechosPorId.Values)
            {
                Debug.WriteLine(hecho.IdConcepto + ":" + hecho.Id + ":" + hecho.Valor);
            }
        }
        public void TestExportarWordBmv2014()
        {
            DateTime fechaNet = new DateTime();

            DateUtil.ParseDate("2015-01-01", DateUtil.YMDateFormat, out fechaNet);
            Date fecha = XPEUtil.CrearJavaDate(fechaNet);

            Debug.WriteLine(fecha.getYear());

            XPEService serv = XPEServiceImpl.GetInstance();

            Debug.WriteLine("COREROOT:" + serv.GetCoreRoot());

            if (serv.GetErroresInicializacion() != null)
            {
            }

            var errores = new List <ErrorCargaTaxonomiaDto>();
            var cache   = new CacheTaxonomiaEnMemoriaXBRL();

            var info = new AbaxCargaInfoDto();

            ConfiguracionCargaInstanciaDto config = new ConfiguracionCargaInstanciaDto();

            config.UrlArchivo           = @"C:\Users\carlos\Desarrollo\ABAX\CNBV\plani_error\ifrsxbrl_PLANI_2016-3.xbrl";
            config.Errores              = errores;
            config.CacheTaxonomia       = cache;
            config.InfoCarga            = info;
            config.EjecutarValidaciones = false;
            config.ConstruirTaxonomia   = true;
            var instancia = serv.CargarDocumentoInstanciaXbrl(config);


            Debug.WriteLine("Tiempo de carga:" + info.MsCarga);
            Debug.WriteLine("Tiempo de Validación:" + info.MsValidacion);
            Debug.WriteLine("Tiempo de Procesamiento de Fórmulas:" + info.MsFormulas);
            Debug.WriteLine("Tiempo de Transformación:" + info.MsTransformacion);


            ActivadorLicenciaAsposeUtil.ActivarAsposeWords();

            instancia.ParametrosConfiguracion = new Dictionary <string, string>();
            instancia.ParametrosConfiguracion.Add("trimestre", "3");
            instancia.ParametrosConfiguracion.Add("primerAnio", "false");
            instancia.ParametrosConfiguracion.Add("emisora", "PLANI");
            instancia.ParametrosConfiguracion.Add("anio", "2015-01-01T06:00:00.000Z");
            instancia.ParametrosConfiguracion.Add("moneda", "http://www.xbrl.org/2003/iso4217:MXN");

            var importador = (IImportadorExportadorArchivoADocumentoInstancia)applicationContext.GetObject("ImportadorExportadorArchivosPlantilla");
            var resultado  = importador.ExportarDocumentoWord(instancia, "es");

            using (var fileStream = new FileStream(@"C:\Users\carlos\Desarrollo\ABAX\CNBV\plani_error\ifrsxbrl_PLANI_2016-3-test.docx", FileMode.Create))
            {
                var instanciaSalida = (byte[])(resultado.InformacionExtra as Dictionary <string, object>)["archivo"];
                fileStream.Write(instanciaSalida, 0, instanciaSalida.Length);
            }
        }
示例#4
0
        /// <summary>
        /// Veirifica si la taxonomía del archivo está en caché, si no está, se carga y agrega
        /// </summary>
        /// <param name="docIns"></param>
        /// <param name="cache"></param>

        private void VerificarTaxonomiaEnCache(DocumentoInstanciaXbrlDto docIns, CacheTaxonomiaEnMemoriaXBRL cache)
        {
            if (cache.ObtenerTaxonomia(docIns.DtsDocumentoInstancia) == null)
            {
                var servicio = XPEServiceImpl.GetInstance();
                var errores  = new List <ErrorCargaTaxonomiaDto>();
                cache.AgregarTaxonomia(docIns.DtsDocumentoInstancia,
                                       servicio.CargarTaxonomiaXbrl(docIns.DtsDocumentoInstancia[0].HRef, errores, true)
                                       );
            }
        }
示例#5
0
        public void testProcesarCarpeta()
        {
            LogUtil.LogDirPath = ".\\";
            LogUtil.Inicializa();

            var archivos      = Directory.GetFiles(@"C:\temp\transjson", "*.xbrl");
            var carpetaSalida = @"C:\temp\transjson\salida\";
            var xbrlService   = XPEServiceImpl.GetInstance();

            Debug.WriteLine("COREROOT:" + xbrlService.GetCoreRoot());
            ConfiguracionCargaInstanciaDto configCarga = null;
            var cache = new CacheTaxonomiaEnMemoriaXBRL();

            LogUtil.Info("Iniciando proceso de transformación de archivos:" + archivos.Length);
            int i = 0;

            foreach (var rutaArchivo in archivos)
            {
                i++;
                configCarga = new ConfiguracionCargaInstanciaDto()
                {
                    UrlArchivo           = rutaArchivo,
                    CacheTaxonomia       = cache,
                    ConstruirTaxonomia   = true,
                    EjecutarValidaciones = false,
                    Errores             = new List <ErrorCargaTaxonomiaDto>(),
                    ForzarCerradoDeXbrl = false,
                    InfoCarga           = new AbaxCargaInfoDto()
                };
                LogUtil.Info("(" + i + ") Leyendo archivo:" + Path.GetFileName(rutaArchivo));
                var docIns = xbrlService.CargarDocumentoInstanciaXbrl(configCarga);
                LogUtil.Info("(" + i + ") Archivo Leido:" + Path.GetFileName(rutaArchivo));
                if (docIns != null)
                {
                    VerificarTaxonomiaEnCache(docIns, cache);
                    LogUtil.Info("(" + i + ") Generando JSON:" + Path.GetFileName(rutaArchivo));
                    string objJson = JsonConvert.SerializeObject(docIns, Formatting.Indented, new JsonSerializerSettings
                    {
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                    });

                    using (var streamSalida = new FileStream(carpetaSalida + Path.GetFileNameWithoutExtension(rutaArchivo) + ".json", FileMode.Create))
                    {
                        LogUtil.Info("(" + i + ") Escribiendo JSON:" + carpetaSalida + Path.GetFileNameWithoutExtension(rutaArchivo) + ".json");
                        var bytesEscribir = Encoding.UTF8.GetBytes(objJson);
                        streamSalida.Write(bytesEscribir, 0, bytesEscribir.Length);
                    }
                }
            }
        }
示例#6
0
        public void testInicializar()
        {
            DateTime fechaNet = new DateTime();

            DateUtil.ParseDate("2015-01-01", DateUtil.YMDateFormat, out fechaNet);
            Date fecha = XPEUtil.CrearJavaDate(fechaNet);

            Debug.WriteLine(fecha.getYear());

            XPEService serv = XPEServiceImpl.GetInstance(true);

            Debug.WriteLine("COREROOT:" + serv.GetCoreRoot());

            if (serv.GetErroresInicializacion() != null)
            {
            }

            var errores = new List <ErrorCargaTaxonomiaDto>();



            var config2 = new ConfiguracionCargaInstanciaDto();

            config2.CacheTaxonomia       = null;
            config2.ConstruirTaxonomia   = true;
            config2.EjecutarValidaciones = true;
            config2.Errores = new List <ErrorCargaTaxonomiaDto>();
            //config2.UrlArchivo = @"C:\Users\Emigdio\Desktop\tmp\AA_BMV\fiduxbrl_875171_CIB2919_2019-01_1.xbrl";

            config2.Archivo = new FileStream(@"C:\Users\Emigdio\Desktop\tmp\AA_BMV\fiduxbrl_875171_CIB2919_2019-01_1.xbrl", FileMode.Open);

            var doc2 = serv.CargarDocumentoInstanciaXbrl(config2);

            Debug.WriteLine("Errores:" + config2.Errores.Count);
            config2.Archivo.Close();

            var config1 = new ConfiguracionCargaInstanciaDto();

            config1.CacheTaxonomia       = null;
            config1.ConstruirTaxonomia   = true;
            config1.EjecutarValidaciones = true;
            config1.Errores    = new List <ErrorCargaTaxonomiaDto>();
            config1.UrlArchivo = @"C:\tmp\ifrsxbrl_SENDA_2017-4.xbrl";
            var doc1 = serv.CargarDocumentoInstanciaXbrl(config1);

            Debug.WriteLine("Errores:" + config1.Errores.Count);

            /*
             * var taxo = serv.CargarTaxonomiaXbrl("http://emisnet.bmv.com.mx/taxonomy/mx-ifrs-2014-12-05/full_ifrs_mc_mx_ics_entry_point_2014-12-05.xsd",errores,true);
             * Debug.WriteLine(taxo.EspacioNombresPrincipal);
             * Debug.WriteLine("Errores:" + errores.Count);
             * errores.Clear();
             *
             * var taxo2 = serv.CargarTaxonomiaXbrl("https://taxonomiasxbrl.cnbv.gob.mx/taxonomy/ra-prospecto-2016-08-22/ar_N_entry_point_2016-08-22.xsd", errores, true);
             * Debug.WriteLine(taxo2.EspacioNombresPrincipal);
             * Debug.WriteLine("Errores:" + errores.Count);
             * errores.Clear();
             */


            var cache = new CacheTaxonomiaEnMemoriaXBRL();

            var listaDts = new List <DtsDocumentoInstanciaDto>();

            listaDts.Add(new DtsDocumentoInstanciaDto()
            {
                HRef = "http://emisnet.bmv.com.mx/taxonomy/mx-ifrs-2014-12-05/full_ifrs_mc_mx_ics_entry_point_2014-12-05.xsd",
                Tipo = DtsDocumentoInstanciaDto.SCHEMA_REF
            });

            //cache.AgregarTaxonomia(listaDts, taxo);



            var info = new AbaxCargaInfoDto();

            ConfiguracionCargaInstanciaDto config = new ConfiguracionCargaInstanciaDto();

            config.UrlArchivo           = @"C:\temp\lois\ifrsxbrl_BIMBO_2015-2.xbrl";
            config.Errores              = errores;
            config.CacheTaxonomia       = cache;
            config.InfoCarga            = info;
            config.EjecutarValidaciones = false;
            config.ConstruirTaxonomia   = true;
            var instancia = serv.CargarDocumentoInstanciaXbrl(config);


            Debug.WriteLine("Tiempo de carga:" + info.MsCarga);
            Debug.WriteLine("Tiempo de Validación:" + info.MsValidacion);
            Debug.WriteLine("Tiempo de Procesamiento de Fórmulas:" + info.MsFormulas);
            Debug.WriteLine("Tiempo de Transformación:" + info.MsTransformacion);



            foreach (var dd in instancia.DtsDocumentoInstancia)
            {
                Debug.WriteLine(dd.HRef);
            }

            foreach (var Idhecho in instancia.HechosPorIdConcepto["ifrs-mc_ManagementCommentaryExplanatory"])
            {
                var hecho = instancia.HechosPorId[Idhecho];
                Debug.WriteLine(hecho.IdConcepto + " : " + hecho.IdContexto + ":" + hecho.Valor);
            }

            var sw = Stopwatch.StartNew();

            var streamSalid = serv.GenerarDocumentoInstanciaXbrl(instancia, cache);

            sw.Stop();
            Debug.WriteLine("Creación doc:" + sw.ElapsedMilliseconds);

            var salida = File.Create("C:\\temp\\load\\salida.xbrl");

            streamSalid.CopyTo(salida);
            salida.Close();
            streamSalid.Close();



            foreach (var err in errores)
            {
                Debug.WriteLine(err.Mensaje);
            }

            /* foreach (var rol in taxo.RolesPresentacion)
             * {
             *   Debug.WriteLine(rol.Uri);
             * }*/
        }