/// <summary> /// Imprime el contenido de la celda con firma. /// </summary> /// <param name="miembro">Miembro a pintar.</param> /// <param name="docBuilder">Constructor del documento.</param> /// <param name="widthPercent">Porcentaje en ancho.</param> private void ImprimeCeldaFirmas(PersonaResponsableMiembro431000DTO miembro, DocumentBuilder docBuilder, double widthPercent) { docBuilder.InsertCell(); docBuilder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(widthPercent); docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center; docBuilder.ParagraphFormat.Borders.Top.Color = Color.Black; docBuilder.ParagraphFormat.Borders.Top.LineStyle = LineStyle.Single; docBuilder.ParagraphFormat.Borders.Top.LineWidth = 1; docBuilder.Font.Bold = true; docBuilder.Writeln(miembro.Nombre); docBuilder.Font.Bold = false; docBuilder.Writeln(miembro.Cargo); }
/// <summary> /// Genera un diccionaro con la información de las personas responsables. /// </summary> /// <param name="estructuraReporte">Estructura del reporte.</param> /// <returns>Diccionario con la información de las personas responsables.</returns> private IDictionary <String, IList <PersonaResponsable431000DTO> > GeneraDiccionarioPersonasResponsables(ReporteXBRLDTO estructuraReporte) { var documentoInstancia = estructuraReporte.Instancia; var consultaUtil = new ConsultaDocumentoInstanciaUtil(documentoInstancia, estructuraReporte.Plantilla); var diccionario = new Dictionary <String, IList <PersonaResponsable431000DTO> >(); var filtroHechos = new FiltroHechosDto() { IdConcepto = new List <String>() { "ar_pros_ResponsiblePersonName", "ar_pros_ResponsiblePersonPosition", "ar_pros_ResponsiblePersonInstitution", "ar_pros_ResponsiblePersonLegend", "ar_pros_SignIssuanceUnderArt13OfTheCUE", "ar_pros_ResponsiblePersonInstitutionExternalAuditor", "ar_pros_OtherInstitutionExternalAuditor", "ar_pros_ResponsiblePersonInstitutionBacherlorOfLaws", "ar_pros_OtherInstitutionBacherlorOfLaws", } }; var diccionarioPersonasResponsables = new Dictionary <String, IList <PersonaResponsable431000DTO> >(); var idsHechosConceptos = consultaUtil.BuscaHechosPorFiltro(filtroHechos); var idsContextos = consultaUtil.ObtenIdsContextosHechos(idsHechosConceptos); var contextosPorFiguraResponsable = consultaUtil.AgrupaContextosPorMiembro("http://www.cnbv.gob.mx/2016-08-22/ar_prospectus:TypeOfResponsibleFigureAxis", idsContextos); foreach (var idItemMiembroFiguraResponsable in contextosPorFiguraResponsable.Keys) { var listaContextosPorFiguraResponsable = contextosPorFiguraResponsable[idItemMiembroFiguraResponsable]; var contextosPorEntidad = consultaUtil.AgrupaContextosPorMiembro("http://www.cnbv.gob.mx/2016-08-22/ar_prospectus:ResponsiblePersonsInstitutionSequenceTypedAxis", listaContextosPorFiguraResponsable); IList <PersonaResponsable431000DTO> listaPersonasResponsablesMiembro; if (!diccionario.TryGetValue(idItemMiembroFiguraResponsable, out listaPersonasResponsablesMiembro)) { listaPersonasResponsablesMiembro = new List <PersonaResponsable431000DTO>(); diccionario.Add(idItemMiembroFiguraResponsable, listaPersonasResponsablesMiembro); } foreach (var miembroTipificadoInstitucion in contextosPorEntidad.Keys) { var personaResponsableDto = new PersonaResponsable431000DTO() { Miembros = new List <PersonaResponsableMiembro431000DTO>() }; listaPersonasResponsablesMiembro.Add(personaResponsableDto); var listaContextosPorInstitucion = contextosPorEntidad[miembroTipificadoInstitucion]; var listaIdsHechosInstitucion = consultaUtil.BuscaHechosPorFiltro(new FiltroHechosDto() { IdConcepto = new List <String>() { "ar_pros_ResponsiblePersonInstitution", "ar_pros_ResponsiblePersonLegend", "ar_pros_ResponsiblePersonInstitutionExternalAuditor", "ar_pros_OtherInstitutionExternalAuditor", "ar_pros_ResponsiblePersonInstitutionBacherlorOfLaws", "ar_pros_OtherInstitutionBacherlorOfLaws" }, IdContexto = listaContextosPorInstitucion }); String otraInstitucion = String.Empty; foreach (var idHechoInstitucion in listaIdsHechosInstitucion) { HechoDto hechoInsititucionLeyenda; if (documentoInstancia.HechosPorId.TryGetValue(idHechoInstitucion, out hechoInsititucionLeyenda)) { if (hechoInsititucionLeyenda.IdConcepto.Equals("ar_pros_ResponsiblePersonInstitution")) { personaResponsableDto.Institucion = hechoInsititucionLeyenda.Valor; } if (hechoInsititucionLeyenda.IdConcepto.Equals("ar_pros_ResponsiblePersonInstitutionExternalAuditor") || hechoInsititucionLeyenda.IdConcepto.Equals("ar_pros_ResponsiblePersonInstitutionBacherlorOfLaws")) { personaResponsableDto.Institucion = hechoInsititucionLeyenda.Valor; } if (hechoInsititucionLeyenda.IdConcepto.Equals("ar_pros_OtherInstitutionExternalAuditor") || hechoInsititucionLeyenda.IdConcepto.Equals("ar_pros_OtherInstitutionBacherlorOfLaws")) { otraInstitucion = hechoInsititucionLeyenda.Valor; } if (hechoInsititucionLeyenda.IdConcepto.Equals("ar_pros_ResponsiblePersonLegend")) { personaResponsableDto.Leyenda = hechoInsititucionLeyenda.Valor; } } } if (!String.IsNullOrEmpty(otraInstitucion) && personaResponsableDto.Institucion.Equals("Otro")) { personaResponsableDto.Institucion = otraInstitucion; } var diccionarioMiembrosPersonasResponsables = consultaUtil.AgrupaContextosPorMiembro("http://www.cnbv.gob.mx/2016-08-22/ar_prospectus:ResponsiblePersonsSequenceTypedAxis", listaContextosPorInstitucion); foreach (var idMiembroResponsable in diccionarioMiembrosPersonasResponsables.Keys) { var listaContextosPersonaResponsable = diccionarioMiembrosPersonasResponsables[idMiembroResponsable]; var idPrimerContexto = listaContextosPersonaResponsable.First(); IList <String> listaIdsHechosPersonaResponsable; if (documentoInstancia.HechosPorIdContexto.TryGetValue(idPrimerContexto, out listaIdsHechosPersonaResponsable)) { var miembroPresonaResponsable = new PersonaResponsableMiembro431000DTO(); for (var indexHechoPresona = 0; indexHechoPresona < listaIdsHechosPersonaResponsable.Count; indexHechoPresona++) { var idHechoPersona = listaIdsHechosPersonaResponsable[indexHechoPresona]; HechoDto hechoPersonaResponsable; if (documentoInstancia.HechosPorId.TryGetValue(idHechoPersona, out hechoPersonaResponsable)) { if (hechoPersonaResponsable.IdConcepto.Equals("ar_pros_ResponsiblePersonName")) { miembroPresonaResponsable.Nombre = hechoPersonaResponsable.Valor; } if (hechoPersonaResponsable.IdConcepto.Equals("ar_pros_ResponsiblePersonPosition")) { miembroPresonaResponsable.Cargo = hechoPersonaResponsable.Valor; } if (hechoPersonaResponsable.IdConcepto.Equals("ar_pros_SignIssuanceUnderArt13OfTheCUE")) { miembroPresonaResponsable.FirmaArticulo13 = hechoPersonaResponsable.Valor.Equals("SI"); if (miembroPresonaResponsable.FirmaArticulo13) { personaResponsableDto.ContieneFirmasLeyendaArt13 = true; } } } } if (!String.IsNullOrEmpty(miembroPresonaResponsable.Nombre)) { personaResponsableDto.Miembros.Add(miembroPresonaResponsable); } } } } } return(diccionario); }