/// <summary> /// Crea un hecho y lo inyecta al documento de instancia y a la tupla padre /// </summary> /// <param name="hechoEnTupla"></param> /// <param name="idConcepto"></param> /// <param name="instancia"></param> /// <returns></returns> private AbaxXBRLCore.Viewer.Application.Dto.HechoDto CrearHechoEnTupla(AbaxXBRLCore.Viewer.Application.Dto.HechoDto tupla, string idConcepto, DocumentoInstanciaXbrlDto instancia, Model.IDefinicionPlantillaXbrl plantillaDocumento, string idContextoGeneral) { var idHecho = "INV_H_" + Guid.NewGuid().ToString(); var concepto = instancia.Taxonomia.ConceptosPorId[idConcepto]; List <MedidaDto> listaMedidas = null; string idUnidad = null; var decimales = ""; if (concepto.TipoDatoXbrl.Contains(TiposDatoXBRL.MonetaryItemType)) { idUnidad = "moneda_reporte"; decimales = "2"; } else if (concepto.EsTipoDatoNumerico) { idUnidad = "pure"; decimales = "2"; } var hechoNuevo = instancia.CrearHecho(idConcepto, idUnidad, idContextoGeneral, idHecho); hechoNuevo.Decimales = decimales; plantillaDocumento.InyectaHechoADocumentoInstancia(hechoNuevo); tupla.Hechos.Add(hechoNuevo.Id); return(hechoNuevo); }
public void ImportarDatosDeHojaExcel(NPOI.SS.UserModel.ISheet hojaAImportar, NPOI.SS.UserModel.ISheet hojaPlantilla, Dto.DocumentoInstanciaXbrlDto instancia, string rol, AbaxXBRLCore.Common.Dtos.ResumenProcesoImportacionExcelDto resumenImportacion, Model.IDefinicionPlantillaXbrl plantillaDocumento) { //var idiomaDefault = instancia.Taxonomia != null && instancia.Taxonomia.IdiomasTaxonomia != null && instancia.Taxonomia.IdiomasTaxonomia.Keys.Count > 0 ? // instancia.Taxonomia.IdiomasTaxonomia.Keys.First() : String.Empty; // string idContextoGeneral = instancia.ContextosPorId.First().Value.Id; var numRenglones = hojaAImportar.LastRowNum; for (var iRenglon = _renglonInicioHechos; iRenglon <= numRenglones; iRenglon++) { var numColumnas = hojaAImportar.GetRow(iRenglon).LastCellNum; if (numColumnas > _columnaInicioHechos) { var valorConsecutivo = ExcelUtil.ObtenerValorCelda(hojaAImportar, iRenglon, _columnaInicioHechos); if (!String.IsNullOrEmpty(valorConsecutivo)) { //Localizar tupla //Crear tupla var hechoTupla = instancia.CrearHecho(_idConceptoRegistroCartera, null, null, "INV" + Guid.NewGuid().ToString()); plantillaDocumento.InyectaHechoADocumentoInstancia(hechoTupla); hechoTupla.Hechos = new List <String>(); for (int iCol = _columnaInicioHechos; iCol <= numColumnas; iCol++) { var valorCelda = ExcelUtil.ObtenerValorCelda(hojaAImportar, iRenglon, iCol); if (!String.IsNullOrEmpty(valorCelda)) { var idConcepto = ExcelUtil.ObtenerValorCelda(hojaPlantilla, _renglonIdConceptos, iCol); if (!String.IsNullOrEmpty(idConcepto)) { //buscar el hecho dentro de la tupla, si no existe, crearlo var hechoEnTupla = CrearHechoEnTupla(hechoTupla, idConcepto, instancia, plantillaDocumento, idContextoGeneral); hechoEnTupla.Valor = valorCelda; //hechoEnTupla.NotasAlPie = ExcelUtil.ObtenerComentariosCelda(hojaAImportar.GetRow(iRenglon), iCol, idiomaDefault); } } } } } } }