Esempio n. 1
0
        public async Task OnGetAsync(int unidadId)
        {
            Unidad = await Mediator.Send(new UnidadGet.RequestModel()
            {
                Id = unidadId
            });

            Institucion = await Mediator.Send(new InstitucionGet.RequestModel()
            {
                Id = Unidad.InstitucionId
            });

            Input = new DisponibilidadCreateUpdate.RequestModel()
            {
                Id       = -1,
                UnidadId = unidadId,
                Fecha    = DateTime.UtcNow
            };
        }
Esempio n. 2
0
 /// <summary>
 /// Convierte los registros que representan a las uniades en un documento de instancia de base de datos
 /// a su representación en DTO
 /// </summary>
 /// <param name="instanciaDb">Documento de instancia de Base de datos</param>
 /// <param name="instanciaXbrlDto">Documento de instancia destino dto</param>
 private static void CargarUnidades(DocumentoInstancia instanciaDb, DocumentoInstanciaXbrlDto instanciaXbrlDto)
 {
     foreach (var unidadDb in instanciaDb.Unidad)
     {
         var unidadDto = new UnidadDto
         {
             Id   = unidadDb.IdRef,
             Tipo = unidadDb.EsFraccion ? Unit.Divisoria : Unit.Medida
         };
         if (unidadDto.Tipo == Unit.Medida)
         {
             unidadDto.Medidas = CrearMedidasDto(unidadDb.Medida);
         }
         else
         {
             unidadDto.MedidasNumerador   = CrearMedidasDto(unidadDb.Numerador);
             unidadDto.MedidasDenominador = CrearMedidasDto(unidadDb.Denominador);
         }
         if (!instanciaXbrlDto.UnidadesPorId.ContainsKey(unidadDto.Id))
         {
             instanciaXbrlDto.UnidadesPorId.Add(unidadDto.Id, unidadDto);
         }
     }
 }
        private void ActualizarValorHecho(ConceptoDto concepto, string valorCelda, List <DimensionInfoDto> dimensiones,
                                          DateTime fechaInicio, DateTime fechaFin, string qNameEntidad, DocumentoInstanciaXbrlDto instancia, IDefinicionPlantillaXbrl plantillaDocumento,
                                          AbaxXBRLCore.Common.Dtos.ResumenProcesoImportacionExcelDto resumenImportacion, ISheet hojaImportar, int iRenglon, int columna)
        {
            if (String.IsNullOrEmpty(valorCelda))
            {
                return;
            }

            var             fechaDefault      = plantillaDocumento.ObtenerVariablePorId("fecha_2015_01_01");
            List <HechoDto> hechosAActualizar = new List <HechoDto>();

            var hechos = instancia.BuscarHechos(concepto.Id, null, null, fechaInicio, fechaFin, dimensiones);

            if (hechos.Count > 0)
            {
                hechosAActualizar.AddRange(hechos);
            }
            else
            {
                var         qNameCompleto   = XmlUtil.ParsearQName(qNameEntidad);
                ContextoDto contextoDestino = null;
                var         tipoPeriodo     = concepto.TipoPeriodo.Equals(EtiquetasXBRLConstantes.Instant) ? Period.Instante : Period.Duracion;
                var         contextos       = instancia.BuscarContexto(qNameEntidad,
                                                                       tipoPeriodo, fechaInicio, fechaFin, dimensiones);
                if (contextos == null || contextos.Count == 0)
                {
                    contextoDestino = new ContextoDto()
                    {
                        Entidad = new EntidadDto()
                        {
                            ContieneInformacionDimensional = false,
                            EsquemaId = qNameCompleto.Namespace,
                            Id        = qNameCompleto.Name
                        },
                        ContieneInformacionDimensional = dimensiones.Count > 0,
                        ValoresDimension = dimensiones,
                        Periodo          = new PeriodoDto()
                        {
                            Tipo          = tipoPeriodo,
                            FechaInicio   = fechaInicio,
                            FechaFin      = fechaFin,
                            FechaInstante = fechaFin
                        },
                        Id = "C" + Guid.NewGuid().ToString()
                    };
                    plantillaDocumento.InyectarContextoADocumentoInstancia(contextoDestino);
                }
                else
                {
                    contextoDestino = contextos[0];
                }

                UnidadDto unidadDestino = null;
                if (concepto.EsTipoDatoNumerico)
                {
                    var listaMedidas = new List <MedidaDto>()
                    {
                        new MedidaDto()
                        {
                            EspacioNombres = plantillaDocumento.ObtenerVariablePorId("medida_http___www_xbrl_org_2003_iso4217"),
                            Nombre         = plantillaDocumento.ObtenerVariablePorId("medida_MXN")
                        }
                    };

                    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];
                    }
                }

                var hechoNuevo = instancia.CrearHecho(concepto.Id, unidadDestino != null ? unidadDestino.Id : null, contextoDestino.Id, "A" + Guid.NewGuid().ToString());
                if (concepto.EsTipoDatoNumerico)
                {
                    hechoNuevo.Valor     = "0";
                    hechoNuevo.Decimales = _valorDecimalesHechos;
                }
                hechosAActualizar.Add(hechoNuevo);

                plantillaDocumento.InyectaHechoADocumentoInstancia(hechoNuevo);
            }

            foreach (var hechoActualizar in hechosAActualizar)
            {
                var conceptoImportar = instancia.Taxonomia.ConceptosPorId[hechoActualizar.IdConcepto];
                if (!UtilAbax.ActualizarValorHecho(conceptoImportar, hechoActualizar, valorCelda, fechaDefault))
                {
                    resumenImportacion.AgregarErrorFormato(
                        UtilAbax.ObtenerEtiqueta(instancia.Taxonomia, conceptoImportar.Id),
                        hojaImportar.SheetName,
                        iRenglon.ToString(),
                        columna.ToString(),
                        valorCelda);
                }
                else
                {
                    resumenImportacion.TotalHechosImportados++;
                    var hechoImportado = new AbaxXBRLCore.Common.Dtos.InformacionHechoImportadoExcelDto()
                    {
                        IdConcepto     = hechoActualizar.IdConcepto,
                        IdHecho        = hechoActualizar.Id,
                        ValorImportado = valorCelda,
                        HojaExcel      = hojaImportar.SheetName,
                        Renglon        = iRenglon,
                        Columna        = columna
                    };

                    resumenImportacion.AgregarHechoImportado(hechoImportado, UtilAbax.ObtenerEtiqueta(instancia.Taxonomia, conceptoImportar.Id));
                }
            }
        }
        /// <summary>
        /// Pinta el encabezado de la tabla.
        /// </summary>
        /// <param name="listacontextos">Lista con los contextoos que se van a pintar.</param>
        /// <param name="docBuilder">Constructor del documento.</param>
        /// <param name="exportadorOrigen">Exportador origen.</param>
        /// <param name="unidad">Unidad en la que se reporta la información.</param>
        public void PintaEncabezadoTabla(IList <ContextoDto> listacontextos, DocumentBuilder docBuilder, ExportadorRolDocumentoBase exportadorOrigen, UnidadDto unidad)
        {
            Color  colorTitulo = exportadorOrigen.ObtenColorTitulo();
            String textoUnidad = exportadorOrigen.ObtenTextoUnidad(unidad);

            docBuilder.InsertCell();
            docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
            docBuilder.Font.Color = Color.White;
            docBuilder.Font.Size  = exportadorOrigen.TamanioLetraContenidoTabla;
            docBuilder.RowFormat.HeadingFormat   = true;
            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;

            docBuilder.Write("Concepto");

            foreach (var contexto in listacontextos)
            {
                var fechaPeriodo = contexto.Periodo.Tipo == PeriodoDto.Duracion ? contexto.Periodo.FechaFin : contexto.Periodo.FechaInstante;
                var textoFecha   = fechaPeriodo.ToString(DateUtil.DMYDateFormat);
                docBuilder.InsertCell();
                docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
                docBuilder.Writeln(textoFecha);
                docBuilder.Write(textoUnidad);
            }

            docBuilder.EndRow();
            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

            docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
            docBuilder.Font.Color = Color.Black;
            docBuilder.Bold       = false;
        }
Esempio n. 5
0
        /// <summary>
        /// Crea los datos de una unidad de base de datos en base a los datos del DTO de origen
        /// </summary>
        /// <param name="documentoOrigen"></param>
        /// <param name="unidadDTO"></param>
        /// <returns></returns>
        public static Unidad CrearUnidadDb(DocumentoInstanciaXbrlDto documentoOrigen, UnidadDto unidadDTO)
        {
            var unidadDb = new Unidad
            {
                EsFraccion = unidadDTO.Tipo == Unit.Divisoria,
                IdRef      = unidadDTO.Id
            };

            if (!unidadDb.EsFraccion)
            {
                //Obtener la lista de medidas
                string sMedidas = "";
                foreach (var medidaDTO in unidadDTO.Medidas)
                {
                    if (!String.IsNullOrEmpty(sMedidas))
                    {
                        sMedidas += ",";
                    }
                    sMedidas += medidaDTO.EspacioNombres + ":" + medidaDTO.Nombre;
                }
                unidadDb.Medida = sMedidas;
            }
            else
            {
                //Numerador
                string sMedidas = "";
                foreach (var medidaDTO in unidadDTO.MedidasNumerador)
                {
                    if (!String.IsNullOrEmpty(sMedidas))
                    {
                        sMedidas += ",";
                    }
                    sMedidas += medidaDTO.EspacioNombres + ":" + medidaDTO.Nombre;
                }
                unidadDb.Numerador = sMedidas;

                //Denominador

                sMedidas = "";
                foreach (var medidaDTO in unidadDTO.MedidasDenominador)
                {
                    if (!String.IsNullOrEmpty(sMedidas))
                    {
                        sMedidas += ",";
                    }
                    sMedidas += medidaDTO.EspacioNombres + ":" + medidaDTO.Nombre;
                }
                unidadDb.Denominador = sMedidas;
            }
            return(unidadDb);
        }
        public void TestActualizarModeloVistaDocumentoInstancia()
        {
            var service = new DocumentoInstanciaService
            {
                DocumentoInstanciaRepository        = new DocumentoInstanciaRepository(),
                UsuarioDocumentoInstanciaRepository = new UsuarioDocumentoInstanciaRepository(),
                VersionDocumentoInstanciaRepository = new VersionDocumentoInstanciaRepository(),

                EmpresaRepository  = new EmpresaRepository(),
                UsuarioRepository  = new UsuarioRepository(),
                UnidadRepository   = new UnidadRepository(),
                ContextoRepository = new ContextoRepository(),
                DtsDocumentoInstanciaRepository = new DtsDocumentoInstanciaRepository(),
                HechoRepository = new HechoRepository()
            };

            var instancia = new DocumentoInstanciaXbrlDto {
                IdDocumentoInstancia = 160, EsCorrecto = true, IdEmpresa = 1, NombreArchivo = "Titulo1", Titulo = "Titulo1", UnidadesPorId = new Dictionary <string, UnidadDto>()
            };

            var unidad = new UnidadDto
            {
                Id      = "MXN",
                Tipo    = Unit.Medida,
                Medidas =
                    new List <MedidaDto>
                {
                    new MedidaDto
                    {
                        EspacioNombres = "http://www.xbrl.org/2003/iso4217", Nombre = "MXN"
                    }
                }
            };

            instancia.UnidadesPorId.Add(unidad.Id, unidad);

            //Contextos
            var contexto = new AbaxXBRLCore.Viewer.Application.Dto.ContextoDto()
            {
                ContieneInformacionDimensional = false,
                Escenario = null,
                Id        = "ctx1",
                Entidad   = new EntidadDto
                {
                    EsquemaId = "http://2hsoftware.com",
                    Id        = "e1",
                    Segmento  = null
                },
                Periodo = new PeriodoDto
                {
                    Tipo          = Period.Instante,
                    FechaInstante = AbaxXBRLCore.Common.Util.DateUtil.ParseStandarDate("01/03/2014")
                }
            };

            instancia.ContextosPorId = new Dictionary <string, AbaxXBRLCore.Viewer.Application.Dto.ContextoDto>();
            instancia.ContextosPorId.Add(contexto.Id, contexto);

            instancia.DtsDocumentoInstancia = new List <DtsDocumentoInstanciaDto>();
            instancia.DtsDocumentoInstancia.Add(new DtsDocumentoInstanciaDto
            {
                Tipo = DtsDocumentoInstanciaDto.SCHEMA_REF,
                HRef = "ifrsxbrl2014.xsd"
            });

            var hecho = new AbaxXBRLCore.Viewer.Application.Dto.HechoDto
            {
                IdConcepto   = "http://xbrl.ifrs.org/taxonomy/2011-03-25/ifrs:NameOfReportingEntityOrOtherMeansOfIdentification",
                EsFraccion   = false,
                EsNumerico   = false,
                NoEsNumerico = true,
                EsTupla      = false,
                IdContexto   = "ctx1",
                IdUnidad     = "MXN",
                Tipo         = Concept.Item,
                EsValorNil   = false,
                Valor        = "ALCON",
                TipoDato     = "stringItemType"
            };

            instancia.HechosPorIdConcepto = new Dictionary <string, IList <string> >();
            instancia.HechosPorId         = new Dictionary <string, AbaxXBRLCore.Viewer.Application.Dto.HechoDto>();
            instancia.HechosPorIdConcepto[hecho.IdConcepto] = new List <string>();
            instancia.HechosPorIdConcepto[hecho.IdConcepto].Add(hecho.Id);
            instancia.HechosPorId.Add(hecho.Id, hecho);

            instancia.DtsDocumentoInstancia = new List <DtsDocumentoInstanciaDto>();

            instancia.DtsDocumentoInstancia.Add(new DtsDocumentoInstanciaDto {
                Tipo = DtsDocumentoInstanciaDto.SCHEMA_REF,
                HRef = "http://emisnet.bmv.com.mx/taxonomy/mx-ifrs-ics-2012-04-01/All/ifrs-mx-ics-entryPoint-all-2012-04-01.xsd"
            });

            var viewService = new XbrlViewerService();
        }