public IHttpActionResult ObtenerModeloVisorXbrl(string documentoUrl)
        {
            var documentoInstancia = new DocumentoInstanciaXBRL();
            var manejadorErrores   = new ManejadorErroresCargaTaxonomia();

            var resultadoOperacion = new ResultadoOperacionDto();

            documentoInstancia.ManejadorErrores = manejadorErrores;
            //documentoInstancia.Taxonomia = DocumentoInstanciaService.ObtenerTaxonomiaIFRS_BMV();
            documentoInstancia.Cargar(documentoUrl);

            /*if (manejadorErrores.PuedeContinuar())
             * {*/
            IGrupoValidadoresTaxonomia   grupoValidadores = new GrupoValidadoresTaxonomia();
            IValidadorDocumentoInstancia validador        = new ValidadorDocumentoInstancia();

            grupoValidadores.ManejadorErrores   = manejadorErrores;
            grupoValidadores.DocumentoInstancia = documentoInstancia;
            grupoValidadores.AgregarValidador(validador);
            grupoValidadores.ValidarDocumento();

            var xbrlViewerService = new XbrlViewerService();

            resultadoOperacion.Resultado        = true;
            resultadoOperacion.InformacionExtra = xbrlViewerService.PreparaDocumentoParaVisor(documentoInstancia);
            (resultadoOperacion.InformacionExtra as DocumentoInstanciaXbrlDto).IdEmpresa = IdEmpresa;

            /*}*/

            var jsonResult = this.Json(resultadoOperacion);

            //jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
        public void PrepararDocumentoParaVisorTest()
        {
            IDocumentoInstanciaXBRL documentoInstancia = new DocumentoInstanciaXBRL();

            ManejadorErroresCargaTaxonomia manejadorErrores = new ManejadorErroresCargaTaxonomia();

            documentoInstancia.ManejadorErrores = manejadorErrores;
            //documentoInstancia.Cargar("C:\\Users\\Antonio\\Desktop\\example1_2014-03-05\\xbrl_example1_2014-03-05.xbrl");
            //documentoInstancia.Cargar("C:\\Users\\Antonio\\Downloads\\example2_2014-03-05\\xbrl_example2_2014-03-05.xbrl");
            documentoInstancia.Cargar(@"C:\workspace_abax\AbaxXBRL\DocumentosInstancia\ifrs2014_t3_primer_anio_2.xbrl");
            if (manejadorErrores.PuedeContinuar())
            {
                IGrupoValidadoresTaxonomia   grupoValidadores = new GrupoValidadoresTaxonomia();
                IValidadorDocumentoInstancia validador        = new ValidadorDocumentoInstancia();
                grupoValidadores.ManejadorErrores   = manejadorErrores;
                grupoValidadores.DocumentoInstancia = documentoInstancia;
                grupoValidadores.AgregarValidador(validador);
                grupoValidadores.AgregarValidador(new ValidadorDimensionesDocumentoInstancia());
                grupoValidadores.ValidarDocumento();
                if (manejadorErrores.PuedeContinuar())
                {
                    IXbrlViewerService        xbrlViewerService = new XbrlViewerService();
                    DocumentoInstanciaXbrlDto dto = xbrlViewerService.PreparaDocumentoParaVisor(documentoInstancia, null);
                    Debug.WriteLine(dto);
                }
            }
        }
        public void GenerarPlantillaDeTaxonomia()
        {
            //var documentoUrl = "C:\\Users\\Antonio\\Desktop\\ifrsxbrl_COMERCI_2014-3.xbrl";
            var documentoUrl = @"C:\workspace_abax\AbaxXBRL\DocumentosInstancia\ifrs2014_t3_primer_anio_fibras.xbrl";
            //var documentoUrl = "C:\\Users\\Antonio\\Downloads\\taxonomia_millo\\ifrs2014_t3_primer_anio_2.xbrl";
            //var folderTaxonomia = "mx-ifrs-ics-es_2012-04-01";
            var folderTaxonomia = "ifrs_mx_20141205";

            var documentoInstancia = new DocumentoInstanciaXBRL();
            var manejadorErrores   = new ManejadorErroresCargaTaxonomia();
            var resultadoOperacion = new ResultadoOperacionDto();

            documentoInstancia.ManejadorErrores = manejadorErrores;
            documentoInstancia.Cargar(documentoUrl);
            if (manejadorErrores.PuedeContinuar())
            {
                IGrupoValidadoresTaxonomia   grupoValidadores = new GrupoValidadoresTaxonomia();
                IValidadorDocumentoInstancia validador        = new ValidadorDocumentoInstancia();
                grupoValidadores.ManejadorErrores   = manejadorErrores;
                grupoValidadores.DocumentoInstancia = documentoInstancia;
                grupoValidadores.AgregarValidador(validador);
                grupoValidadores.ValidarDocumento();
                if (manejadorErrores.PuedeContinuar())
                {
                    var xbrlViewerService     = new XbrlViewerService();
                    var documentoInstanciaDto = xbrlViewerService.PreparaDocumentoParaVisor(documentoInstancia, null);

                    IList <string> nombresVariablesPlantilla = new List <string>();

                    foreach (var rol in documentoInstanciaDto.Taxonomia.RolesPresentacion)
                    {
                        var resultadoGeneracion = GenerarPlantillaDeRol(rol, documentoInstanciaDto, nombresVariablesPlantilla);
                        if (resultadoGeneracion.Resultado)
                        {
                            string textoDefinicion = File.ReadAllText("PlantillasTs/DefinicionTaxonomia.txt");
                            if (textoDefinicion != null)
                            {
                                var uriEntryPoint        = documentoInstanciaDto.DtsDocumentoInstancia[0].HRef;
                                var nombreClase          = documentoInstanciaDto.DtsDocumentoInstancia[0].HRef.Replace(":", "_").Replace("/", "_").Replace(".", "_").Replace("-", "_");
                                var declaracionVariables = "";

                                foreach (var nombreVariable in nombresVariablesPlantilla)
                                {
                                    declaracionVariables += "this.VariablesDocumentoInstancia['" + nombreVariable + "'] = '';\n";
                                }

                                textoDefinicion = textoDefinicion.Replace("#uriEntryPoint", uriEntryPoint);
                                textoDefinicion = textoDefinicion.Replace("#nombreClase", nombreClase);
                                textoDefinicion = textoDefinicion.Replace("#declaracionVariables", declaracionVariables);
                                textoDefinicion = textoDefinicion.Replace("#folderTaxonomia", folderTaxonomia);

                                File.WriteAllText(documentoInstanciaDto.DtsDocumentoInstancia[0].HRef.Replace(":", "_").Replace("/", "_") + ".ts", textoDefinicion);
                            }
                        }
                    }
                }
            }
        }
Exemple #4
0
        public void testCargarTaxonomia()
        {
            TaxonomiaXBRL taxonomiaXBRL = new TaxonomiaXBRL();

            IManejadorErroresXBRL manejadorErrores = new ManejadorErroresCargaTaxonomia();

            taxonomiaXBRL.ManejadorErrores = manejadorErrores;

            taxonomiaXBRL.ProcesarDefinicionDeEsquema("http://superwas.supersociedades.gov.co/sirfin/xbrl/2015-03-04/sds_ifrs-inicio-plenas-individuales-2015-03-04.xsd");
            taxonomiaXBRL.CrearArbolDeRelaciones();
            IGrupoValidadoresTaxonomia valTax = new GrupoValidadoresTaxonomia();

            valTax.ManejadorErrores = manejadorErrores;
            valTax.Taxonomia        = taxonomiaXBRL;
            valTax.AgregarValidador(new ValidadorTaxonomia());
            valTax.AgregarValidador(new ValidadorTaxonomiaDinemsional());
            valTax.ValidarDocumento();

            XbrlViewerService serv = new XbrlViewerService();

            DocumentoInstanciaXBRL inst = new DocumentoInstanciaXBRL();

            inst.ManejadorErrores = manejadorErrores;

            inst.Cargar(@"C:\workspace_abax\XBRL Colombia\T01_E10_8190009868_2014-12-31.xbrl");

            valTax = new GrupoValidadoresTaxonomia();
            valTax.ManejadorErrores   = manejadorErrores;
            valTax.DocumentoInstancia = inst;
            valTax.AgregarValidador(new ValidadorDocumentoInstancia());
            valTax.AgregarValidador(new ValidadorDimensionesDocumentoInstancia());
            valTax.ValidarDocumento();
            foreach (var error in manejadorErrores.GetErroresTaxonomia())
            {
                Debug.WriteLine(error.Mensaje);
            }

            foreach (var hecho in inst.Hechos)
            {
                Debug.WriteLine(hecho.Concepto.Id + " = " + ((FactItem)hecho).Valor);
            }

            var taxDt = serv.CrearTaxonomiaAPartirDeDefinicionXbrl(taxonomiaXBRL);
        }
        public void TestCargarExcelGenerico()
        {
            var entity  = new AbaxDbEntities();
            var service = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),

                EmpresaRepository = new EmpresaRepository(),
                UsuarioRepository = new UsuarioRepository()
            };

            FileStream fs = File.Open(@"C:\workspace_abax\AbaxXBRL\AbaxXBRLWeb\formato_ifrs_smes_T1.xlsx", FileMode.Open, FileAccess.Read);

            var documentoInstancia = new DocumentoInstanciaXBRL();
            var manejadorErrores   = new ManejadorErroresCargaTaxonomia();
            var resultadoOperacion = new ResultadoOperacionDto();

            documentoInstancia.ManejadorErrores = manejadorErrores;
            documentoInstancia.Cargar("C:\\workspace_abax\\AbaxXBRL\\example1_2014-03-05\\xbrl_example1_2014-03-05.xbrl");
            if (manejadorErrores.PuedeContinuar())
            {
                IGrupoValidadoresTaxonomia   grupoValidadores = new GrupoValidadoresTaxonomia();
                IValidadorDocumentoInstancia validador        = new ValidadorDocumentoInstancia();
                grupoValidadores.ManejadorErrores   = manejadorErrores;
                grupoValidadores.DocumentoInstancia = documentoInstancia;
                grupoValidadores.AgregarValidador(validador);
                grupoValidadores.ValidarDocumento();
                var xbrlViewerService = new XbrlViewerService();

                resultadoOperacion.InformacionExtra = xbrlViewerService.PreparaDocumentoParaVisor(documentoInstancia, null);
                var inst = resultadoOperacion.InformacionExtra as DocumentoInstanciaXbrlDto;

                resultadoOperacion.Resultado = true;
            }


            fs.Close();
            Debug.WriteLine(resultadoOperacion);
        }
Exemple #6
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 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);
        }
        public void CargarDocumentoInstanciaXbrl()
        {
            var documentoInstanciaXbrl = new DocumentoInstanciaXBRL();

            IManejadorErroresXBRL manejadorErrores = new ManejadorErroresCargaTaxonomia();

            documentoInstanciaXbrl.ManejadorErrores = manejadorErrores;
            //documentoInstanciaXbrl.Cargar("C:\\workspaces\\memoria_xbrl\\Ejercicio Práctico\\instancia_taxonomia1.xml");
            //documentoInstanciaXBRL.Cargar("C:\\dotNet\\AbaxXBRL_1\\AbaxXBRL\\XBRL-CONF-CR5-2012-01-24\\Common\\300-instance\\304-18-sameOrderDivisionMeasuresValid.xml");
            //documentoInstanciaXBRL.Cargar("C:\\dotNet\\AbaxXBRL_1\\AbaxXBRL\\XBRL-CONF-CR5-2012-01-24\\Common\\100-schema\\104-04-TupleExampleComplextype.xml");
            documentoInstanciaXbrl.Cargar(@"c:\tmp\ifrsxbrl_BAFAR_2014-4.xbrl");

            IGrupoValidadoresTaxonomia grupoValidadores = new GrupoValidadoresTaxonomia();

            grupoValidadores.ManejadorErrores   = manejadorErrores;
            grupoValidadores.DocumentoInstancia = documentoInstanciaXbrl;
            grupoValidadores.AgregarValidador(new ValidadorDocumentoInstancia());
            grupoValidadores.AgregarValidador(new ValidadorDimensionesDocumentoInstancia());
            grupoValidadores.ValidarDocumento();

            foreach (var ctx in documentoInstanciaXbrl.Contextos.Values)
            {
                if (ctx.Entidad.Segmento != null && ctx.Entidad.Segmento.MiembrosDimension != null &&
                    ctx.Entidad.Segmento.MiembrosDimension.Count > 0)
                {
                    ctx.Escenario = new Scenario();
                    ctx.Escenario.MiembrosDimension = ctx.Entidad.Segmento.MiembrosDimension;
                    ctx.Entidad.Segmento            = null;
                }
            }

            var xbrl = documentoInstanciaXbrl.GenerarDocumentoXbrl();

            var encoding = Encoding.UTF8;

            foreach (var encActual in Encoding.GetEncodings())
            {
                if (encActual.Name.Equals("iso-8859-1"))
                {
                    encoding = encActual.GetEncoding();
                    break;
                }
            }


            var settings = new XmlWriterSettings();

            settings.CloseOutput       = true;
            settings.Indent            = true;
            settings.NamespaceHandling = NamespaceHandling.OmitDuplicates;
            settings.NewLineHandling   = NewLineHandling.Entitize;
            settings.Encoding          = encoding;
            var stream         = new MemoryStream();
            var txtWriter      = new StreamWriter(stream, encoding);
            var xmlWriterDebug = XmlWriter.Create(txtWriter, settings);

            xbrl.Save(xmlWriterDebug);
            String archivoFinal = encoding.GetString(stream.ToArray());

            Assert.IsTrue(manejadorErrores.PuedeContinuar());
        }