/// <summary> /// Elimina los hechos definidos en la hoja de importación. /// </summary> /// <param name="hojaPlantilla">Definición de la hoja.</param> /// <param name="instancia">Documento de instancia donde se eliminaran los hechos.</param> private void EliminarHechos(ISheet hojaPlantilla, DocumentoInstanciaXbrlDto instancia) { var listaIdsConceptosEliminar = new List <String>(); for (var indexRow = hojaPlantilla.FirstRowNum; indexRow <= hojaPlantilla.LastRowNum; indexRow++) { var rowPlantilla = hojaPlantilla.GetRow(indexRow); var primerCelda = rowPlantilla.FirstCellNum; if (primerCelda == -1) { primerCelda = 0; } var celdaConcepto = rowPlantilla.GetCell(primerCelda); if (celdaConcepto == null || !celdaConcepto.CellType.Equals(CellType.String) || String.IsNullOrWhiteSpace(celdaConcepto.StringCellValue) || !celdaConcepto.StringCellValue.Contains("idConcepto")) { continue; } var elementosCelda = celdaConcepto.StringCellValue.Split(';'); var idConcepto = elementosCelda[1]; listaIdsConceptosEliminar.Add(idConcepto); } ReporteXBRLUtil.EliminarHechosConceptos(listaIdsConceptosEliminar, instancia); }
/// <summary> /// Inicializa el diccionario de unidades, elimina los hechos que aplican para el hipercubo. /// </summary> public void InicializaImportacion() { if (!ElementosImportacionInicializados) { InicializaUnidadesConceptos(); var listaIdsConceptosEliminar = ObtenIdsConceptosReporte(); ReporteXBRLUtil.EliminarHechosConceptos(listaIdsConceptosEliminar, Instancia); ElementosImportacionInicializados = true; } }
/// <summary> /// Procesa un renglón de la tabla de personas responsables importando su contenido /// </summary> /// <returns></returns> private int ImportarRenglonFigura(int numRow, string idMiembroFiguraActual, ISheet hojaAImportar, DocumentoInstanciaXbrlDto instancia, IDefinicionPlantillaXbrl plantillaDocumento, ResumenProcesoImportacionExcelDto resumenImportacion) { var institucionesActuales = new Dictionary <string, int>(); DateTime fechaInicio = DateTime.MinValue; DateTime fechaFin = DateTime.MinValue; if (XmlUtil.ParsearUnionDateTime(plantillaDocumento.ObtenerVariablePorId("fecha_2014_12_31"), out fechaFin) && XmlUtil.ParsearUnionDateTime(plantillaDocumento.ObtenerVariablePorId("fecha_2014_12_31"), out fechaInicio)) { //Si inicia un tipo de figura int lastRowNum = hojaAImportar.LastRowNum; //Mientras no se termine el documento o no se encuentre el inicio de otra figura while (numRow <= lastRowNum) { var valorCelda = ExcelUtil.ObtenerValorCelda(hojaAImportar, numRow, COL_CONCEPTO_FIGURA); if (valorCelda != null && _mapeoMiembrosDimension.ContainsKey(valorCelda.Trim())) { break; } var valorInstitucion = ExcelUtil.ObtenerValorCelda(hojaAImportar, numRow, COL_CONCEPTO_INSTITUCION); var valorLeyenda = ExcelUtil.ObtenerValorCelda(hojaAImportar, numRow, COL_CONCEPTO_LEYENDA); var valorNombre = ExcelUtil.ObtenerValorCelda(hojaAImportar, numRow, COL_CONCEPTO_NOMBRE); var valorCargo = ExcelUtil.ObtenerValorCelda(hojaAImportar, numRow, COL_CONCEPTO_CARGO); if (!String.IsNullOrEmpty(valorInstitucion) && !String.IsNullOrEmpty(valorNombre) && !String.IsNullOrEmpty(valorCargo)) { if (!valoresAnterioresBorrados) { ReporteXBRLUtil.EliminarHechosConceptos(ID_CONCEPTO_PERSONAS, instancia); ReporteXBRLUtil.EliminarHechosConceptos(ID_CONCEPTO_INSTITUCION, instancia); valoresAnterioresBorrados = true; } var dimensionFigura = new DimensionInfoDto() { Explicita = true, IdDimension = ID_DIMENSION_FIGURA, QNameDimension = ObtenerQNameConcepto(instancia.Taxonomia.ConceptosPorId[ID_DIMENSION_FIGURA]), IdItemMiembro = idMiembroFiguraActual, QNameItemMiembro = ObtenerQNameConcepto(instancia.Taxonomia.ConceptosPorId[idMiembroFiguraActual]) }; var dimensionInstitucion = new DimensionInfoDto() { Explicita = false, IdDimension = ID_DIMENSION_TYPED_INSTITUCION, QNameDimension = ObtenerQNameConcepto(instancia.Taxonomia.ConceptosPorId[ID_DIMENSION_TYPED_INSTITUCION]) }; var dimensionPersona = new DimensionInfoDto() { Explicita = false, IdDimension = ID_DIMENSION_TYPED_PERSONA, QNameDimension = ObtenerQNameConcepto(instancia.Taxonomia.ConceptosPorId[ID_DIMENSION_TYPED_PERSONA]) }; if (!institucionesActuales.ContainsKey(valorInstitucion)) { //Agregar hechos de institución y leyenda dimensionInstitucion.ElementoMiembroTipificado = String.Format(_templateTypedMemeberInstitucion, secuenciaInstitucion); institucionesActuales[valorInstitucion] = secuenciaInstitucion; secuenciaInstitucion++; ActualizarValorHecho(instancia.Taxonomia.ConceptosPorId[ID_CONCEPTO_INSTITUCION[0]], valorInstitucion, new List <DimensionInfoDto>() { dimensionFigura, dimensionInstitucion }, fechaInicio, fechaFin, plantillaDocumento.ObtenerVariablePorId("esquemaEntidad") + ":" + plantillaDocumento.ObtenerVariablePorId("nombreEntidad"), instancia, plantillaDocumento, resumenImportacion, hojaAImportar, numRow, COL_CONCEPTO_INSTITUCION); ActualizarValorHecho(instancia.Taxonomia.ConceptosPorId[ID_CONCEPTO_INSTITUCION[1]], valorLeyenda, new List <DimensionInfoDto>() { dimensionFigura, dimensionInstitucion }, fechaInicio, fechaFin, plantillaDocumento.ObtenerVariablePorId("esquemaEntidad") + ":" + plantillaDocumento.ObtenerVariablePorId("nombreEntidad"), instancia, plantillaDocumento, resumenImportacion, hojaAImportar, numRow, COL_CONCEPTO_LEYENDA); } else { dimensionInstitucion.ElementoMiembroTipificado = String.Format(_templateTypedMemeberInstitucion, institucionesActuales[valorInstitucion]); } //Agregar hechos de nombre y cargo dimensionPersona.ElementoMiembroTipificado = String.Format(_templateTypedMemeberPerson, secuenciaPersona++); ActualizarValorHecho(instancia.Taxonomia.ConceptosPorId[ID_CONCEPTO_PERSONAS[0]], valorNombre, new List <DimensionInfoDto>() { dimensionFigura, dimensionInstitucion, dimensionPersona }, fechaInicio, fechaFin, plantillaDocumento.ObtenerVariablePorId("esquemaEntidad") + ":" + plantillaDocumento.ObtenerVariablePorId("nombreEntidad"), instancia, plantillaDocumento, resumenImportacion, hojaAImportar, numRow, COL_CONCEPTO_NOMBRE); ActualizarValorHecho(instancia.Taxonomia.ConceptosPorId[ID_CONCEPTO_PERSONAS[1]], valorCargo, new List <DimensionInfoDto>() { dimensionFigura, dimensionInstitucion, dimensionPersona }, fechaInicio, fechaFin, plantillaDocumento.ObtenerVariablePorId("esquemaEntidad") + ":" + plantillaDocumento.ObtenerVariablePorId("nombreEntidad"), instancia, plantillaDocumento, resumenImportacion, hojaAImportar, numRow, COL_CONCEPTO_CARGO); } numRow++; } } return(numRow); }