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 IHttpActionResult DescargarEjecucionConsultaParametrizada() { var serializerSettings = new JsonSerializerSettings(); String consultaAnalisis = getFormKeyValue("consulta"); var resultado = new ResultadoOperacionDto() { Resultado = true, Mensaje = "Ok" }; var consultaAnalisisDto = (ConsultaAnalisisDto)JsonConvert.DeserializeObject(consultaAnalisis, typeof(ConsultaAnalisisDto), serializerSettings); try { resultado = DocumentoInstanciaService.ObtenerVersionesDocumentosPorConfiguracionConsulta(consultaAnalisisDto); if (resultado.Resultado) { var resultadoOperacionTaxonomia = DocumentoInstanciaService.ObtenerTaxonomiaBdPorId(consultaAnalisisDto.IdTaxonomiaXbrl); if (resultadoOperacionTaxonomia.Resultado) { var taxonomia = (TaxonomiaXbrl)resultadoOperacionTaxonomia.InformacionExtra; var listaDts = DocumentoInstanciaXbrlDtoConverter.ConvertirDTSDocumentoInstancia(taxonomia.ArchivoTaxonomiaXbrl); var taxoDto = _cacheTaxonomiaXbrl.ObtenerTaxonomia(listaDts); var estructuraDocumento = ConsultaAnalisisService.ObtenerInformacionConsultaDocumentos(consultaAnalisisDto, (List <DocumentoInstanciaXbrlDto>)resultado.InformacionExtra, taxoDto); return(this.ExportDatosEstructuraDocumento("Index", estructuraDocumento, "estructuraDocumento.xls", consultaAnalisisDto)); } } } catch (Exception ex) { resultado.Resultado = false; resultado.InformacionExtra = ex; resultado.Mensaje = "Ocurrio un error al obtener informacion de una configuracion de una consulta de analisis: " + ex.Message; return(Json(resultado)); } return(Json(resultado)); }
/// <summary> /// Retorna la definición de la taxonomía por el identificador. /// </summary> /// <param name="idTaxonomia">Identificador de la taxonomía.</param> /// <returns>Resultado con la definición de la taxonomía.</returns> private ResultadoOperacionDto ObtenerDefinicionTaxonomiaPorId(long idTaxonomia) { var resultado = DocumentoInstanciaService.ObtenerTaxonomiaBdPorId(idTaxonomia); var errores = new List <ErrorCargaTaxonomiaDto>(); if (resultado.Resultado && resultado.InformacionExtra != null) { //Cargar la taxonomía var taxoBd = resultado.InformacionExtra as TaxonomiaXbrl; var listaDts = DocumentoInstanciaXbrlDtoConverter.ConvertirDTSDocumentoInstancia(taxoBd.ArchivoTaxonomiaXbrl); var taxoDto = _cacheTaxonomiaXbrl.ObtenerTaxonomia(listaDts); if (taxoDto == null) { var resultadoTaxonomia = DocumentoInstanciaService.ObtenerTaxonomiaXbrlProcesada(idTaxonomia, errores); var taxonomia = resultadoTaxonomia.InformacionExtra as ITaxonomiaXBRL; taxoDto = XbrlViewerService.CrearTaxonomiaAPartirDeDefinicionXbrl(taxonomia); if (taxonomia.ManejadorErrores.PuedeContinuar()) { _cacheTaxonomiaXbrl.AgregarTaxonomia(listaDts, taxoDto); _estrategiaCacheTaxonomia.AgregarTaxonomia(DocumentoInstanciaXbrlDtoConverter.ConvertirArchivoTaxonomiaXbrl(taxoBd.ArchivoTaxonomiaXbrl) , taxonomia); } else { resultado.Resultado = false; resultado.InformacionExtra = taxonomia.ManejadorErrores.GetErroresTaxonomia(); } } } if (errores.Count() > 0) { LogUtil.Error(errores); } return(resultado); }