Ejemplo n.º 1
0
            /// <summary>
            /// Inicializa el diccionario de unidades por concepto.
            /// </summary>
            public void InicializaUnidadesConceptos()
            {
                foreach (var concepto in DiccionarioConceptosPorColumna.Values)
                {
                    UnidadDto unidad = ObtenUniadConcepto(concepto);
                    if (unidad != null)
                    {
                        DiccionarioUnidadesPorIdConcepto[concepto.Id] = unidad;
                    }
                }
                var fehchaMaxima = PlantillaDocumento.ObtenMaximaFechaReporte(Instancia);

                FechaDefault = Common.Util.DateUtil.ToFormatString(fehchaMaxima, Common.Util.DateUtil.YMDateFormat);
            }
Ejemplo n.º 2
0
            /// <summary>
            /// Retorna la unidad que aplica para el concepto indicado.
            /// </summary>
            /// <param name="concepto">Concepto a evaluar.</param>
            /// <param name="instancia">Documento de instancia a evaluar.</param>
            /// <param name="plantillaDocumento">Plantilla del documento.</param>
            /// <returns>Unidad que aplica al concepto.</returns>
            public UnidadDto ObtenUniadConcepto(ConceptoDto concepto)
            {
                UnidadDto unidadDestino = null;

                if (concepto.EsTipoDatoNumerico)
                {
                    //Si es moentario
                    var listaMedidas = new List <MedidaDto>();

                    if (concepto.TipoDatoXbrl.Contains(TiposDatoXBRL.MonetaryItemType))
                    {
                        listaMedidas.Add(new MedidaDto()
                        {
                            EspacioNombres = PlantillaDocumento.ObtenerVariablePorId("medida_http___www_xbrl_org_2003_iso4217"),
                            Nombre         = PlantillaDocumento.ObtenerVariablePorId("medida_MXN")
                        });
                        DiccionarioDecimalesPorIdConcepto[concepto.Id] = "-3";
                    }
                    else
                    {
                        //Unidad pure
                        listaMedidas.Add(new MedidaDto()
                        {
                            EspacioNombres = PlantillaDocumento.ObtenerVariablePorId("medida_http___www_xbrl_org_2003_instance"),
                            Nombre         = PlantillaDocumento.ObtenerVariablePorId("medida_pure")
                        });
                        DiccionarioDecimalesPorIdConcepto[concepto.Id] = "0";
                    }

                    var unidades = Instancia.BuscarUnidades(Unit.Medida, listaMedidas, null);
                    if (unidades == null || unidades.Count == 0)
                    {
                        unidadDestino = new UnidadDto()
                        {
                            Id      = "U" + Guid.NewGuid().ToString(),
                            Tipo    = Unit.Medida,
                            Medidas = listaMedidas
                        };
                        Instancia.UnidadesPorId.Add(unidadDestino.Id, unidadDestino);
                    }
                    else
                    {
                        unidadDestino = unidades[0];
                    }
                }
                return(unidadDestino);
            }