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)); }
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 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); }
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); } }
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 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)); }