Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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;
     }
 }
Ejemplo n.º 3
0
        /// <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);
        }