Exemple #1
0
        public void testUnidadesRepetidas()
        {
            XbrlViewerService serv = new XbrlViewerService();

            var docInst = new DocumentoInstanciaXBRL();

            docInst.Cargar(@"C:\temp\Prueba GNM BMV 7 10 abril 15.xbrl");

            var docDto = serv.PreparaDocumentoParaVisor(docInst, null);

            serv.EliminarElementosDuplicados(docDto);

            serv.CrearDocumentoInstanciaXbrl(docInst.Taxonomia, docDto).GenerarDocumentoXbrl().Save(@"C:\temp\Prueba GNM BMV 7 10 abril 15 salida.xbrl");
        }
Exemple #2
0
        public void TestObtenerXBRLBMV2015DeBaseDeDatos()
        {
            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()
            };
            var viewService = new XbrlViewerService();
            var resultado   = service.ObtenerModeloDocumentoInstanciaXbrl(251, 3);
            var modeloDto   = resultado.InformacionExtra as DocumentoInstanciaXbrlDto;
            var taxo        = new TaxonomiaXBRL();

            taxo.ManejadorErrores = new ManejadorErroresCargaTaxonomia();
            taxo.ProcesarDefinicionDeEsquema(modeloDto.DtsDocumentoInstancia.First(x => x.Tipo == DtsDocumentoInstanciaDto.SCHEMA_REF).HRef);

            var nuevoXbrl = viewService.CrearDocumentoInstanciaXbrl(taxo, modeloDto);

            var xmlDoc = nuevoXbrl.GenerarDocumentoXbrl();

            var settings = new XmlWriterSettings
            {
                CloseOutput       = true,
                Indent            = true,
                NamespaceHandling = NamespaceHandling.OmitDuplicates,
                NewLineHandling   = NewLineHandling.Entitize,
                Encoding          = Encoding.UTF8
            };
            string res = null;

            using (var memStream = new MemoryStream())
            {
                using (XmlWriter xmlWriterDebug = XmlWriter.Create(memStream, settings))
                {
                    xmlDoc.Save(xmlWriterDebug);
                    res = Encoding.UTF8.GetString(memStream.ToArray());
                }
            }
            Debug.WriteLine(res);
        }
Exemple #3
0
        public void TestObtenerXBRLBMV2015()
        {
            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 documentoInstancia = new DocumentoInstanciaXBRL();

            documentoInstancia.Cargar(new FileStream(@"C:\workspace_abax\AbaxXBRL\mx_taxonomy\Complete_sample_data_instance_notes.xbrl", FileMode.Open));

            // documentoInstancia.Cargar(@"C:\workspace_abax\AbaxXBRL\XBRL-CONF-CR5-2012-01-24\Common\100-schema\104-02-TupleExampleAnyOrder.xml");



            if (documentoInstancia.ManejadorErrores.PuedeContinuar())
            {
                IGrupoValidadoresTaxonomia grupoValidadores = new GrupoValidadoresTaxonomia();
                grupoValidadores.ManejadorErrores   = documentoInstancia.ManejadorErrores;
                grupoValidadores.DocumentoInstancia = documentoInstancia;
                grupoValidadores.AgregarValidador(new ValidadorDocumentoInstancia());
                grupoValidadores.AgregarValidador(new ValidadorDimensionesDocumentoInstancia());
                grupoValidadores.ValidarDocumento();
            }

            var viewService = new XbrlViewerService();

            var instanciaDto = viewService.PreparaDocumentoParaVisor(documentoInstancia, null);

            instanciaDto.IdEmpresa = 1;
            var resultado = service.GuardarDocumentoInstanciaXbrl(instanciaDto, 3);
            var idDoc     = instanciaDto.IdDocumentoInstancia;

            Debug.WriteLine("Nuevo Id:" + idDoc);

            resultado = service.ObtenerModeloDocumentoInstanciaXbrl(idDoc.Value, 3);

            var nuevoXbrl = viewService.CrearDocumentoInstanciaXbrl(documentoInstancia.Taxonomia, resultado.InformacionExtra as DocumentoInstanciaXbrlDto);

            var xmlDoc = nuevoXbrl.GenerarDocumentoXbrl();

            var settings = new XmlWriterSettings
            {
                CloseOutput       = true,
                Indent            = true,
                NamespaceHandling = NamespaceHandling.OmitDuplicates,
                NewLineHandling   = NewLineHandling.Entitize,
                Encoding          = Encoding.UTF8
            };
            string res = null;

            using (var memStream = new MemoryStream())
            {
                using (XmlWriter xmlWriterDebug = XmlWriter.Create(memStream, settings))
                {
                    xmlDoc.Save(xmlWriterDebug);
                    res = Encoding.UTF8.GetString(memStream.ToArray());
                }
            }
            Debug.WriteLine(res);
        }
        public void TestDocumentoInstanciaCompleto()
        {
            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()
            };

            DocumentoInstanciaXbrlDto instanciaDto = null;

            using (var reader = new StreamReader(@"doinstTest.json"))
            {
                instanciaDto = JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(reader.ReadToEnd());
            }

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

            foreach (var hecho in instanciaDto.HechosPorId.Values)
            {
                Debug.WriteLine(hecho.IdConcepto + " = " + hecho.Valor);
            }


            instanciaDto.IdEmpresa = 1;

            var tax = new TaxonomiaXBRL();

            tax.ManejadorErrores = new ManejadorErroresCargaTaxonomia();
            tax.ProcesarDefinicionDeEsquema("http://www.2hsoftware.com.mx/mx_taxonomy/mx_taxonomy/full_ifrs_mc_mx_ics_entry_point_2014-12-05.xsd");

            var viewer = new XbrlViewerService();

            var documentoInstanciaXbrl = viewer.CrearDocumentoInstanciaXbrl(tax, instanciaDto);

            var xbrl = documentoInstanciaXbrl.GenerarDocumentoXbrl();

            var settings = new XmlWriterSettings();

            settings.CloseOutput       = true;
            settings.Indent            = true;
            settings.NamespaceHandling = NamespaceHandling.OmitDuplicates;
            settings.NewLineHandling   = NewLineHandling.Entitize;
            settings.Encoding          = Encoding.ASCII;
            var txtWriter      = new StringWriter();
            var xmlWriterDebug = XmlWriter.Create(txtWriter, settings);

            xbrl.Save(xmlWriterDebug);
            String archivoFinal = txtWriter.ToString().Replace("utf-16", "ISO-8859-1");

            var stream = new MemoryStream();
            var writer = new StreamWriter(stream);

            writer.Write(archivoFinal);
            writer.Flush();
            stream.Position = 0;

            using (var fileStream = new FileStream(@"C:\Users\Emigdio\Desktop\salida.xbrl", FileMode.Create))
            {
                xbrl.Save(fileStream);
            }
        }