public void TestPresentarEstructuraTaxoPresentacion() { TaxonomiaXBRL taxonomiaXBRL = new TaxonomiaXBRL(); IManejadorErroresXBRL manejadorErrores = new ManejadorErroresCargaTaxonomia(); taxonomiaXBRL.ManejadorErrores = manejadorErrores; //Boolean correcto = taxonomiaXBRL.ProcesarDefinicionDeEsquemaRef("C:\\workspaces\\memoria_xbrl\\Ejercicio Práctico\\taxonomia1-2012-07-01-core.xsd"); //Boolean correcto = taxonomiaXBRL.ProcesarDefinicionDeEsquemaRef("C:\\dotNet\\AbaxXBRL_1\\AbaxXBRL\\XBRL-CONF-CR5-2012-01-24\\Common\\100-schema\\155-TypeExtension-Valid.xsd"); taxonomiaXBRL.ProcesarDefinicionDeEsquema(@"http://emisnet.bmv.com.mx/taxonomy/mx-ifrs-ics-2012-04-01/All/ifrs-mx-ics-entryPoint-all-2012-04-01.xsd"); taxonomiaXBRL.CrearArbolDeRelaciones(); XbrlViewerService serv = new XbrlViewerService(); var taxDt = serv.CrearTaxonomiaAPartirDeDefinicionXbrl(taxonomiaXBRL); foreach (var rolDto in taxDt.RolesPresentacion) { Debug.WriteLine(rolDto.Nombre); foreach (var estructura in rolDto.Estructuras) { ImprimirEstructura(estructura, 0, taxDt); } } }
public void TestCargaTaxonomia() { TaxonomiaXBRL taxonomiaXBRL = new TaxonomiaXBRL(); IManejadorErroresXBRL manejadorErrores = new ManejadorErroresCargaTaxonomia(); taxonomiaXBRL.ManejadorErrores = manejadorErrores; //Boolean correcto = taxonomiaXBRL.ProcesarDefinicionDeEsquemaRef("C:\\workspaces\\memoria_xbrl\\Ejercicio Práctico\\taxonomia1-2012-07-01-core.xsd"); //Boolean correcto = taxonomiaXBRL.ProcesarDefinicionDeEsquemaRef("C:\\dotNet\\AbaxXBRL_1\\AbaxXBRL\\XBRL-CONF-CR5-2012-01-24\\Common\\100-schema\\155-TypeExtension-Valid.xsd"); taxonomiaXBRL.ProcesarDefinicionDeEsquema(@"C:\taxonomy\mx-ifrs-2014-12-05\full_ifrs_mc_mx_ics_entry_point_2014-12-05.xsd"); taxonomiaXBRL.CrearArbolDeRelaciones(); XbrlViewerService serv = new XbrlViewerService(); var taxDt = serv.CrearTaxonomiaAPartirDeDefinicionXbrl(taxonomiaXBRL); var docServ = new DocumentoInstanciaService(); docServ.PerteneceConceptoAHipercuboEnRol("ifrs-full_ProfitLoss", taxDt, "http://bmv.com.mx/role/ifrs/ias_1_2014-03-05_role-610000"); foreach (RoleType tipoRol in taxonomiaXBRL.RolesTaxonomia.Values) { ArbolLinkbase arbolPresentation = taxonomiaXBRL.ConjuntoArbolesLinkbase[tipoRol.RolURI.ToString()][LinkbasePresentacion.RolePresentacionLinkbaseRef]; NodoLinkbase nodo = arbolPresentation.NodoRaiz; ImprimirNodo(0, nodo); Debug.WriteLine("________________________________________"); if (tipoRol.Linkbases.ContainsKey(LinkbaseReferencia.RoleReferenceLinkbaseRef)) { LinkbaseReferencia linkbase = (LinkbaseReferencia)tipoRol.Linkbases[LinkbaseReferencia.RoleReferenceLinkbaseRef]; foreach (Arco arco in linkbase.Arcos) { foreach (ElementoLocalizable elementoDesde in arco.ElementoDesde) { Concept conceptoDesde = (Concept)((Localizador)elementoDesde).Destino; foreach (ElementoLocalizable elementoHacia in arco.ElementoHacia) { Referencia referencia = (Referencia)elementoHacia.Destino; Debug.WriteLine(conceptoDesde.Elemento.Id + " Referencias: "); foreach (ReferenciaParte refPart in referencia.PartesReferencia) { Debug.WriteLine("\tReferencia:" + refPart.NombreLocal + " : " + refPart.Valor); } } } } } Debug.WriteLine("________________________________________"); if (tipoRol.Linkbases.ContainsKey(LinkbaseCalculo.RoleCalculoLinkbaseRef)) { LinkbaseCalculo linkbase = (LinkbaseCalculo)tipoRol.Linkbases[LinkbaseCalculo.RoleCalculoLinkbaseRef]; //Escribir los elementos que no tienen padre Debug.WriteLine(tipoRol.Id); IDictionary <string, string> impresos = new Dictionary <string, string>(); foreach (ArcoCalculo arco in linkbase.Arcos) { foreach (ElementoLocalizable elementoDesde in arco.ElementoDesde) { Concept conceptoDesde = (Concept)elementoDesde.Destino; if (!tienePadre(conceptoDesde, linkbase.Arcos)) { if (!impresos.ContainsKey(conceptoDesde.Elemento.Id)) { Debug.WriteLine(conceptoDesde.Elemento.Id); imprimirHijosCalculo(1, conceptoDesde.Elemento.Id, linkbase.Arcos, (LinkbaseCalculo)tipoRol.Linkbases[LinkbaseCalculo.RoleCalculoLinkbaseRef]); impresos[conceptoDesde.Elemento.Id] = conceptoDesde.Elemento.Id; } } } } } } Assert.IsTrue(true); }
public void TestCargaInstancia() { TaxonomiaXBRL taxonomiaXBRL = new TaxonomiaXBRL(); IManejadorErroresXBRL manejadorErroresTax = new ManejadorErroresCargaTaxonomia(); Debug.WriteLine(DateTime.Now); taxonomiaXBRL.ManejadorErrores = manejadorErroresTax; taxonomiaXBRL.ProcesarDefinicionDeEsquema("http://emisnet.bmv.com.mx/taxonomy/mx-ifrs-ics-2012-04-01/All/ifrs-mx-ics-entryPoint-all-2012-04-01.xsd"); taxonomiaXBRL.CrearArbolDeRelaciones(); taxonomiaXBRL.CrearRelacionesDimensionales(); Debug.WriteLine(DateTime.Now); DocumentoInstanciaXBRL inst = new DocumentoInstanciaXBRL(); ManejadorErroresCargaTaxonomia manejadorErrores = new ManejadorErroresCargaTaxonomia(); IGrupoValidadoresTaxonomia valTax = new GrupoValidadoresTaxonomia(); valTax.ManejadorErrores = manejadorErroresTax; valTax.Taxonomia = taxonomiaXBRL; valTax.AgregarValidador(new ValidadorTaxonomia()); valTax.AgregarValidador(new ValidadorTaxonomiaDinemsional()); valTax.ValidarDocumento(); inst.Taxonomia = taxonomiaXBRL; inst.ManejadorErrores = manejadorErrores; FileStream archivo = new FileStream("C:\\workspace_abax\\AbaxXBRL\\ifrsxbrl_AC_2014-2.xbrl", FileMode.Open); inst.Cargar(archivo); IGrupoValidadoresTaxonomia grupoValidadores = new GrupoValidadoresTaxonomia(); IValidadorDocumentoInstancia validador = new ValidadorDocumentoInstancia(); grupoValidadores.ManejadorErrores = inst.ManejadorErrores; grupoValidadores.DocumentoInstancia = inst; grupoValidadores.AgregarValidador(validador); validador = new ValidadorDimensionesDocumentoInstancia(); validador.DocumentoInstancia = inst; grupoValidadores.AgregarValidador(validador); grupoValidadores.ValidarDocumento(); FactItem hechoItem = null; //carga de contextos y hechos var instanciaDto = new AbaxXBRLCore.Viewer.Application.Dto.Angular.DocumentoInstanciaDto(); if (manejadorErrores.PuedeContinuar()) { foreach (Fact hecho in inst.Hechos) { //Verificar si el contexto existe if (hecho is FactItem) { hechoItem = (FactItem)hecho; } } } Assert.IsTrue(true); }