/// <inheritdoc/> public ResultadoOperacionDto ObtenerSobreXbrl(string rutaArchivo) { ResultadoOperacionDto resultadoOperacionDto = new ResultadoOperacionDto { Resultado = false }; ResultadoRecepcionSobreXBRLDTO resultadoRecepcionSobreXBRLDTO = new ResultadoRecepcionSobreXBRLDTO(); using (StreamReader streamReader = new StreamReader(rutaArchivo)) { string json = streamReader.ReadToEnd(); resultadoRecepcionSobreXBRLDTO = JsonConvert.DeserializeObject <ResultadoRecepcionSobreXBRLDTO>(json); resultadoOperacionDto.Resultado = true; resultadoOperacionDto.InformacionExtra = resultadoRecepcionSobreXBRLDTO; } return(resultadoOperacionDto); }
/// <inheritdoc/> public ResultadoOperacionDto ProcesarXbrlSobre(string rutaArchivo, string cvePizarra) { ResultadoOperacionDto resultadoOperacionDto = new ResultadoOperacionDto { Resultado = false }; ResultadoRecepcionSobreXBRLDTO resultadoRecepcionSobreXBRLDTO = new ResultadoRecepcionSobreXBRLDTO(); var pathXbrlAdjunto = ""; var parametros = new Dictionary <string, string>(); parametros.Add("cvePizarra", cvePizarra); //Se obtiene el objeto ResultadoRecepcionSobreXBRLDTO de la ubicación especificada. resultadoOperacionDto = ObtenerSobreXbrl(rutaArchivo); if (resultadoOperacionDto.Resultado) { resultadoRecepcionSobreXBRLDTO = (ResultadoRecepcionSobreXBRLDTO)resultadoOperacionDto.InformacionExtra; } if (resultadoRecepcionSobreXBRLDTO != null) { //Llamamos al servicio para obtener el xbrl adjunto. resultadoOperacionDto = AlmacenarDocumentoInstanciaService.ObtenerPathTemporalXBRLAdjunto(resultadoRecepcionSobreXBRLDTO); pathXbrlAdjunto = (String)resultadoOperacionDto.InformacionExtra; } if (resultadoOperacionDto.Resultado) { resultadoOperacionDto = EmpresaService.ValidarTickersXbrlSobre(cvePizarra, resultadoRecepcionSobreXBRLDTO.claveCotizacion); if (resultadoOperacionDto.Resultado) { parametros.Add("cveFideicomitente", resultadoRecepcionSobreXBRLDTO.claveCotizacion); ResultadoOperacionDto resultadoOperacionObtenerPeriodicidadDto = new ResultadoOperacionDto(); resultadoOperacionObtenerPeriodicidadDto = DocumentoInstanciaService.ObtenerPeriodicidadReportePorEspacioNombresPrincipal(resultadoRecepcionSobreXBRLDTO.espacioNombresArchivoAdjunto); //Revisar que periodicidad es la taxonomia para asignar valorPeroiodo o fechaTrimestre según sea el caso. if (resultadoOperacionDto.Resultado) { PeriodicidadReporte periodicidadReporte = (PeriodicidadReporte)resultadoOperacionObtenerPeriodicidadDto.InformacionExtra; switch (periodicidadReporte.Nombre) { case "Anual": //para anual el validador solo verifica que sea un año. parametros.Add("valorPeroiodo", resultadoRecepcionSobreXBRLDTO.anioReportado.ToString()); break; case "Mensual": //para anexto T solo se verifica que el periodo sea de un año y mes válido. if (resultadoRecepcionSobreXBRLDTO.mesReportado != null && resultadoRecepcionSobreXBRLDTO.mesReportado.ToString().Count() > 0) { string mesReportado = resultadoRecepcionSobreXBRLDTO.mesReportado.ToString().Count() == 1 ? "0" + resultadoRecepcionSobreXBRLDTO.mesReportado.ToString() : resultadoRecepcionSobreXBRLDTO.mesReportado.ToString(); parametros.Add("valorPeroiodo", resultadoRecepcionSobreXBRLDTO.anioReportado.ToString() + "-" + mesReportado + "-01"); } break; case "Trimestral": //para trimestrales se válida la fecha fin de periodo. parametros.Add("fechaTrimestre", UtilAbax.obtenerFechaTrimestre(resultadoRecepcionSobreXBRLDTO.anioReportado.Value, resultadoRecepcionSobreXBRLDTO.trimestreReportado)); break; default: break; } } if (!pathXbrlAdjunto.Equals("")) { resultadoOperacionDto = ValidarDocumentoInstanciaService.ValidarDocumentoInstanciaXBRL(null, pathXbrlAdjunto, resultadoRecepcionSobreXBRLDTO.nombreArchivoAdjunto, parametros); if (resultadoOperacionDto.Resultado) { resultadoOperacionDto = AlmacenarDocumentoInstanciaService.GuardarDocumentoInstanciaXBRL(null, pathXbrlAdjunto, resultadoRecepcionSobreXBRLDTO.nombreArchivoAdjunto, parametros); //Se mandan los mensajes de distribucion a la cola. /*if (resultado.Resultado) * { * var identificadorDocNuevo = resultado.InformacionExtra as long[]; * * var idDocmentoInstancia = identificadorDocNuevo[0]; * var idVersionDocumento = identificadorDocNuevo[1]; * if (USAR_QUEUE) * { * var envioMensajes = (ProcesarDocumentoXBRLEmsGateway)ServiceLocator.ObtenerFabricaSpring().GetObject("ProcesarDocumentoXBRLGateway"); * envioMensajes.EnviarSolicitudProcesarXBRL(idDocmentoInstancia, idVersionDocumento); * } * }*/ } } } } return(resultadoOperacionDto); }