public async Task <IHttpActionResult> ImportarDocumentoInstanciaExcel()
        {
            var resultado = new ResultadoOperacionDto();

            if (!Request.Content.IsMimeMultipartContent("form-data"))
            {
                throw new HttpResponseException
                          (Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
            }

            var root     = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/uploads");
            var provider = new MultipartFormDataStreamProvider(root);
            await Request.Content.ReadAsMultipartAsync(provider);

            string archivo             = provider.FileData.Select(x => x.LocalFileName).FirstOrDefault();
            var    sDocumentoInstancia = provider.FormData["documentoInstancia"];

            if (archivo != null && sDocumentoInstancia != null)
            {
                var documentoInstancia = (DocumentoInstanciaXbrlDto)JsonConvert.DeserializeObject(sDocumentoInstancia, typeof(DocumentoInstanciaXbrlDto));
                using (var archivoStream = new FileStream(archivo, FileMode.Open, FileAccess.Read))
                {
                    resultado = DocumentoInstanciaService.ImportarFormatoExcel(archivoStream, documentoInstancia, IdUsuarioExec);
                }
            }
            else
            {
                resultado.Resultado = false;
                resultado.Mensaje   = "Faltan parámetros en la invocación";
            }
            var jsonResult = this.Json(resultado);

            return(jsonResult);
        }
        public void TestContextosPorRol()
        {
            var entity  = new AbaxDbEntities();
            var service = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),

                UsuarioRepository = new UsuarioRepository()
            };

            var doc = new DocumentoInstanciaXBRL();

            doc.Cargar("file:///C:/workspace_abax/AbaxXBRL/ifrsxbrl_AC_2014-2.xbrl");

            if (doc.ManejadorErrores.PuedeContinuar())
            {
                var keyValRol = doc.Taxonomia.ConjuntoArbolesLinkbase.Where(x => x.Value.Count > 0).ToList();
                foreach (var rolType in keyValRol)
                {
                    Debug.WriteLine("__________________________________________");
                    Debug.WriteLine(doc.Taxonomia.RolesTaxonomia[rolType.Key].Id);
                    foreach (var ctx in doc.ObtenerContextosDeRol(rolType.Key))
                    {
                        Debug.WriteLine(ctx.Periodo.ToString());
                    }
                }
            }
        }
        public void TestConsultarDocumentoInstancia()
        {
            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(342, 3);

            //var taxonomia = service.ObtenerTaxonomiaIFRS_BMV();

            var inst = resultado.InformacionExtra as DocumentoInstanciaXbrlDto;

            //inst.Taxonomia = viewService.CrearTaxonomiaAPartirDeDefinicionXbrl(taxonomia);



            Debug.WriteLine(resultado.InformacionExtra);
        }
        public IHttpActionResult ActualizarUsuariosAsignadosDocumentoInstancia(long idDocumentoInstancia, string usuariosAsignadosJSON)
        {
            var usuariosAsignados = (IList <UsuarioDocumentoInstancia>)JsonConvert.DeserializeObject(usuariosAsignadosJSON, typeof(List <UsuarioDocumentoInstancia>));

            ResultadoOperacionDto resultadoOperacion = DocumentoInstanciaService.ActualizarUsuariosDeDocumentoInstancia(idDocumentoInstancia, IdEmpresa, usuariosAsignados, IdUsuarioExec);

            if (resultadoOperacion.Resultado)
            {
                bool puedeEscribir = false;
                bool esDueno       = false;
                foreach (var usuario in usuariosAsignados)
                {
                    if (usuario.IdUsuario == IdUsuarioExec)
                    {
                        puedeEscribir = usuario.PuedeEscribir;
                        esDueno       = usuario.EsDueno;
                    }
                }

                var datosUsuario = new Dictionary <string, object>();

                datosUsuario.Add("PuedeEscribir", puedeEscribir);
                datosUsuario.Add("EsDueno", esDueno);
                resultadoOperacion.InformacionExtra = datosUsuario;
            }

            return(this.Json(resultadoOperacion));
        }
        public void TestWordImport()
        {
            var wordPath = "F:\\Workspace\\SUBVERSION\\AbaxXbrl\\word\\notasXbrlDocumentoInstancia1.docx";
            var entity   = new AbaxDbEntities();
            var service  = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),

                UsuarioRepository = new UsuarioRepository()
            };

            var archivo = new FileStream(wordPath, FileMode.Open);

            var notasRes = service.ImportarDocumentoWord(archivo);

            if (notasRes.Resultado)
            {
                Debug.WriteLine(notasRes.InformacionExtra);
            }
            else
            {
                Debug.WriteLine(notasRes.Mensaje);
            }
        }
        public void TestCrearEstructuraDocumentoInstancia()
        {
            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");

            service.CrearEstructuraDocumento(instanciaDto);
        }
        public IHttpActionResult ObtenerVersionesDocumentoInstancia(long idDocumentoInstancia)
        {
            var listaResultados = new List <IDictionary <string, object> >();

            ResultadoOperacionDto resultado = DocumentoInstanciaService.ObtenerVersionesDocumentoInstancia(idDocumentoInstancia);

            foreach (var version in (IList <VersionDocumentoInstancia>)resultado.InformacionExtra)
            {
                var datosVersion = new Dictionary <string, object>();

                datosVersion.Add("IdDocumentoInstancia", version.IdDocumentoInstancia);
                datosVersion.Add("IdVersionDocumentoInstancia", version.IdVersionDocumentoInstancia);
                datosVersion.Add("Fecha", version.Fecha.ToString("dd/MM/yyyy HH:mm"));
                datosVersion.Add("NombreUsuario", version.Usuario.Nombre + " " + version.Usuario.ApellidoPaterno);
                datosVersion.Add("Version", version.Version);
                datosVersion.Add("Comentarios", version.Comentarios);
                datosVersion.Add("EsCorrecto", version.EsCorrecto);

                listaResultados.Add(datosVersion);
            }

            resultado.InformacionExtra = listaResultados;

            return(this.Json(resultado));
        }
示例#8
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);
            }
        }
示例#9
0
        public void TestNotasWordImport()
        {
            var wordPath = "F:\\Workspace\\SUBVERSION\\AbaxXbrl\\word\\importInfoXbrl.docx";
            var entity   = new AbaxDbEntities();
            var service  = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),
                UsuarioRepository = new UsuarioRepository()
            };

            var archivo = new FileStream(wordPath, FileMode.Open);

            var resultadoOperacion = service.ImportarNotasDeDocumentoWord(archivo, "ASPOSE");

            if (resultadoOperacion.Resultado)
            {
                Debug.WriteLine(resultadoOperacion.InformacionExtra);
            }
            else
            {
                Debug.WriteLine(resultadoOperacion.Mensaje);
            }
        }
        public IHttpActionResult GuardarDocumentoInstanciaXbrl(string documentoInstanciaJSON)
        {
            var documentoInstanciaDto =
                (DocumentoInstanciaXbrlDto)
                JsonConvert.DeserializeObject(documentoInstanciaJSON, typeof(DocumentoInstanciaXbrlDto));

            XbrlViewerService.AjustarIdentificadoresDimensioneConQname(documentoInstanciaDto);

            var jsonResult = this.Json(DocumentoInstanciaService.GuardarDocumentoInstanciaXbrl(documentoInstanciaDto, IdUsuarioExec));

            return(jsonResult);
        }
        public IHttpActionResult BuscarUsuariosParaCompartir(long idDocumentoInstancia)
        {
            ResultadoOperacionDto resultado          = UsuarioService.ObtenerUsuariosPorEmisorayNombre(IdEmpresa, null);
            ResultadoOperacionDto resultadoAsignados = DocumentoInstanciaService.ObtenerUsuariosDeDocumentoInstancia(idDocumentoInstancia, IdEmpresa, IdUsuarioExec);

            var resultados      = new Dictionary <string, List <IDictionary <string, object> > >();
            var listaPorAsignar = new List <IDictionary <string, object> >();
            var listaAsignados  = new List <IDictionary <string, object> >();

            IList <UsuarioDocumentoInstancia> usuariosAsignados = (IList <UsuarioDocumentoInstancia>)resultadoAsignados.InformacionExtra;

            foreach (var usuario in ((DbQuery <Usuario>)resultado.InformacionExtra).ToList())
            {
                UsuarioDocumentoInstancia datosUsuarioAsignado = null;
                foreach (var usuarioAsignado in usuariosAsignados)
                {
                    if (usuarioAsignado.IdUsuario.Equals(usuario.IdUsuario))
                    {
                        datosUsuarioAsignado = usuarioAsignado;
                        break;
                    }
                }

                var datosUsuario = new Dictionary <string, object>();
                datosUsuario.Add("IdDocumentoInstancia", idDocumentoInstancia);

                if (datosUsuarioAsignado != null)
                {
                    datosUsuario.Add("NombreCompleto", datosUsuarioAsignado.Usuario.NombreCompleto());
                    datosUsuario.Add("IdUsuario", datosUsuarioAsignado.Usuario.IdUsuario);
                    datosUsuario.Add("EsDueno", datosUsuarioAsignado.EsDueno);
                    datosUsuario.Add("PuedeEscribir", datosUsuarioAsignado.PuedeEscribir);

                    datosUsuario.Add("PuedeLeer", datosUsuarioAsignado.PuedeLeer);
                    listaAsignados.Add(datosUsuario);
                }
                else
                {
                    datosUsuario.Add("NombreCompleto", usuario.NombreCompleto());
                    datosUsuario.Add("IdUsuario", usuario.IdUsuario);
                    listaPorAsignar.Add(datosUsuario);
                }
            }

            resultados.Add("UsuariosPorAsignar", listaPorAsignar);
            resultados.Add("UsuariosAsignados", listaAsignados);

            resultado.InformacionExtra = resultados;
            resultado.Resultado        = true;
            return(this.Json(resultado));
        }
        public IHttpActionResult CargarDocumentoInstanciaXbrl(long?idDocumentoInstancia, int?numeroVersion)
        {
            var viewerService      = new XbrlViewerService();
            var resultadoOperacion = new ResultadoOperacionDto();

            if (idDocumentoInstancia != null)
            {
                if (numeroVersion != null)
                {
                    resultadoOperacion = DocumentoInstanciaService.ObtenerVersionModeloDocumentoInstanciaXbrl(idDocumentoInstancia.Value, numeroVersion.Value, IdUsuarioExec);
                }
                else
                {
                    resultadoOperacion = DocumentoInstanciaService.ObtenerModeloDocumentoInstanciaXbrl(idDocumentoInstancia.Value, IdUsuarioExec);
                }

                var instanciaDto = (resultadoOperacion.InformacionExtra as DocumentoInstanciaXbrlDto);

                if (instanciaDto != null)
                {
                    var taxonomiaDto = CacheTaxonomia.ObtenerTaxonomia(instanciaDto.DtsDocumentoInstancia);
                    if (taxonomiaDto == null)
                    {
                        var taxo = new TaxonomiaXBRL {
                            ManejadorErrores = new ManejadorErroresCargaTaxonomia()
                        };
                        foreach (var dts in instanciaDto.DtsDocumentoInstancia)
                        {
                            if (dts.Tipo == DtsDocumentoInstanciaDto.SCHEMA_REF)
                            {
                                taxo.ProcesarDefinicionDeEsquema(dts.HRef);
                            }
                        }
                        taxo.CrearArbolDeRelaciones();
                        taxonomiaDto = viewerService.CrearTaxonomiaAPartirDeDefinicionXbrl(taxo);
                        CacheTaxonomia.AgregarTaxonomia(instanciaDto.DtsDocumentoInstancia, taxonomiaDto);
                        EstrategiaCacheTaxonomia.AgregarTaxonomia(DocumentoInstanciaXbrlDtoConverter.ConvertirDtsDocumentoInstancia(instanciaDto.DtsDocumentoInstancia), taxo);
                    }
                    (resultadoOperacion.InformacionExtra as DocumentoInstanciaXbrlDto).Taxonomia = taxonomiaDto;
                }
            }
            else
            {
                resultadoOperacion.Resultado = false;
                resultadoOperacion.Mensaje   = "El identificador del documento de instancia es requerido";
            }
            var jsonResult = this.Json(resultadoOperacion);

            return(jsonResult);
        }
示例#13
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);
        }
        public void TestAgrupacionGruposContextosPorRol()
        {
            var entity  = new AbaxDbEntities();
            var service = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),

                UsuarioRepository = new UsuarioRepository()
            };

            var doc = new DocumentoInstanciaXBRL();

            doc.Cargar("file:///C:/workspace_abax/AbaxXBRL/ifrsxbrl_AC_2014-2.xbrl");

            if (doc.ManejadorErrores.PuedeContinuar())
            {
                var keyValRol = doc.Taxonomia.ConjuntoArbolesLinkbase.Where(x => x.Value.Count > 0).ToList();
                foreach (var rolType in keyValRol)
                {
                    Debug.WriteLine("__________________________________________");
                    Debug.WriteLine(doc.Taxonomia.RolesTaxonomia[rolType.Key].Id);
                    int iCtx = 1;

                    foreach (var identificador in doc.ObtenerOpcionesParaGruposDeContextos(rolType.Key))
                    {
                        Debug.WriteLine(identificador.Key);
                        foreach (var periodo in identificador.Value)
                        {
                            Debug.WriteLine("\t" + periodo.Key);
                            foreach (var dimension in periodo.Value)
                            {
                                Debug.WriteLine("\t\t" + dimension.Key);
                                foreach (var ctx in dimension.Value)
                                {
                                    Debug.WriteLine("\t\t\t" + ctx.Id);
                                }
                            }
                        }
                    }
                }
            }
        }
        public void TestConsultaRepositorio()
        {
            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 res = service.ObtenerHechosPorFiltro(new string[] { "ifrs-full_Assets" }, 3, 2);

            Debug.WriteLine(res.Resultado);
        }
        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);
        }
 public IHttpActionResult BloquearLiberarDocumentoInstancia(long idDocumentoInstancia, bool bloquear)
 {
     return(this.Json(DocumentoInstanciaService.BloquearLiberarDocumentoInstancia(idDocumentoInstancia, bloquear, IdUsuarioExec)));
 }
        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 TestActualizarModeloVistaDocumentoInstancia()
        {
            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 instancia = new DocumentoInstanciaXbrlDto {
                IdDocumentoInstancia = 160, EsCorrecto = true, IdEmpresa = 1, NombreArchivo = "Titulo1", Titulo = "Titulo1", UnidadesPorId = new Dictionary <string, UnidadDto>()
            };

            var unidad = new UnidadDto
            {
                Id      = "MXN",
                Tipo    = Unit.Medida,
                Medidas =
                    new List <MedidaDto>
                {
                    new MedidaDto
                    {
                        EspacioNombres = "http://www.xbrl.org/2003/iso4217", Nombre = "MXN"
                    }
                }
            };

            instancia.UnidadesPorId.Add(unidad.Id, unidad);

            //Contextos
            var contexto = new AbaxXBRLCore.Viewer.Application.Dto.ContextoDto()
            {
                ContieneInformacionDimensional = false,
                Escenario = null,
                Id        = "ctx1",
                Entidad   = new EntidadDto
                {
                    EsquemaId = "http://2hsoftware.com",
                    Id        = "e1",
                    Segmento  = null
                },
                Periodo = new PeriodoDto
                {
                    Tipo          = Period.Instante,
                    FechaInstante = AbaxXBRLCore.Common.Util.DateUtil.ParseStandarDate("01/03/2014")
                }
            };

            instancia.ContextosPorId = new Dictionary <string, AbaxXBRLCore.Viewer.Application.Dto.ContextoDto>();
            instancia.ContextosPorId.Add(contexto.Id, contexto);

            instancia.DtsDocumentoInstancia = new List <DtsDocumentoInstanciaDto>();
            instancia.DtsDocumentoInstancia.Add(new DtsDocumentoInstanciaDto
            {
                Tipo = DtsDocumentoInstanciaDto.SCHEMA_REF,
                HRef = "ifrsxbrl2014.xsd"
            });

            var hecho = new AbaxXBRLCore.Viewer.Application.Dto.HechoDto
            {
                IdConcepto   = "http://xbrl.ifrs.org/taxonomy/2011-03-25/ifrs:NameOfReportingEntityOrOtherMeansOfIdentification",
                EsFraccion   = false,
                EsNumerico   = false,
                NoEsNumerico = true,
                EsTupla      = false,
                IdContexto   = "ctx1",
                IdUnidad     = "MXN",
                Tipo         = Concept.Item,
                EsValorNil   = false,
                Valor        = "ALCON",
                TipoDato     = "stringItemType"
            };

            instancia.HechosPorIdConcepto = new Dictionary <string, IList <string> >();
            instancia.HechosPorId         = new Dictionary <string, AbaxXBRLCore.Viewer.Application.Dto.HechoDto>();
            instancia.HechosPorIdConcepto[hecho.IdConcepto] = new List <string>();
            instancia.HechosPorIdConcepto[hecho.IdConcepto].Add(hecho.Id);
            instancia.HechosPorId.Add(hecho.Id, hecho);

            instancia.DtsDocumentoInstancia = new List <DtsDocumentoInstanciaDto>();

            instancia.DtsDocumentoInstancia.Add(new DtsDocumentoInstanciaDto {
                Tipo = DtsDocumentoInstanciaDto.SCHEMA_REF,
                HRef = "http://emisnet.bmv.com.mx/taxonomy/mx-ifrs-ics-2012-04-01/All/ifrs-mx-ics-entryPoint-all-2012-04-01.xsd"
            });

            var viewService = new XbrlViewerService();
        }
        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);
            }
        }
示例#21
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);
        }
示例#22
0
 public override Common.Dtos.ResultadoOperacionDto EjecutarDistribucion(Viewer.Application.Dto.DocumentoInstanciaXbrlDto instancia, IDictionary <string, object> parametros)
 {
     LogUtil.Info("Registrando hechos con archivo adjunto, del Documento:" + instancia.IdDocumentoInstancia + " Version :" + instancia.Version);
     return(DocumentoInstanciaService.RegistrarArchivosHechosDocumentoInstancia(instancia));
 }