public void ProcesarPlantilla() { IDictionary datos = new Hashtable(); datos.Add("Logo", string.Format(@"{0}/LogoActa.png", ProcesadorHelpers.UrlDirectorioImagenes)); datos.Add("Estudio", estudio.NombreCompleto); datos.Add("CodigoEstudio", estudio.Codigo); datos.Add("PatrocinadoPor", ProcesadorHelpers.ConcatenarPatrocinadores(estudio)); datos.Add("TextoPiePagina", modeloCarta.PlantillaPiePagina.Texto.Replace("\n", Constantes.SaldoLinea)); INVelocity fileEngine = NVelocityFactory.CreateNVelocityFileEngine(ProcesadorHelpers.DirectorioPlantillas, true); HTMLProcesado = fileEngine.Process(datos, NombrePlantilla); }
private List <TipoDocumentoTratado> ProcesarDocumentosTratados(List <TipoDocumento> tipoDocsProcesar, List <ActaDocumento> actaDocumentos) { List <TipoDocumentoTratado> documentosTratados = new List <TipoDocumentoTratado>(); TipoDocumentoTratado tipoDoc; //generamos la coleccion de tipos de documentos con sus documentos para las cartas de Aprobacion de Estudios tipoDocsProcesar.ForEach(delegate(TipoDocumento tipo) { tipoDoc = new TipoDocumentoTratado(); tipoDoc.TipoDocumento = tipo.Descripcion; tipoDoc.ListarDocumentos = tipo.ListarDocsCartaRespuesta ? "SI" : "NO"; tipoDoc.Orden = 1; if (documentosTratados.Find(item => item.TipoDocumento == tipo.Descripcion) == null) { List <ActaDocumento> actaDocs = actaDocumentos.FindAll(item => item.DocumentoVersion.Documento.TipoDocumento.Descripcion.Equals(tipo.Descripcion)).ToList <ActaDocumento>(); actaDocs.ForEach(delegate(ActaDocumento actaDoc) { tipoDoc.Documentos.Add(ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false)); }); } if (tipoDoc.Documentos.Count == 0) { tipoDoc.TipoDocumento = string.Concat(tipoDoc.TipoDocumento, ": NO APLICA"); } else if (tipo.ListarDocsCartaRespuesta) { tipoDoc.TipoDocumento = string.Concat(tipo.Descripcion, ":"); } documentosTratados.Add(tipoDoc); }); return(documentosTratados); }
private void ProcesarDocumentos(List <ActaDocumento> actaDocumentos) { if (actaDocumentos == null || actaDocumentos.Count == 0) { return; } CartaRespuestaModelo modeloCarta = actaEstudio.CartaRespuestaModelo; estudioTratado = ProcesadorHelpers.ObtenerDatosEstudioTratado(actaEstudio.Estudio); List <DocumentoTratado> documentosEvaluados = new List <DocumentoTratado>(); List <DocumentoTratado> documentosTomaConocimiento = new List <DocumentoTratado>(); List <DocumentoTratado> documentosPedidoCambio = new List <DocumentoTratado>(); DocumentoTratado documentoTratado = new DocumentoTratado(); int documentosEvaluadosAprobados = 0; actaDocumentos.OrderBy(item => item.OrdenGrupoTipoDocumento) .ToList <ActaDocumento>() .ForEach(delegate(ActaDocumento actaDoc) { if (actaDoc.DocumentoVersion.Documento.TipoDocumento.ListarCartaRespuesta) { if (actaDoc.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo == null) { throw new ApplicationException("Debe asignar Grupo para " + actaDoc.DocumentoVersion.Documento.TipoDocumento.Descripcion); } if (actaDoc.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.SeEvalua()) { if (actaDoc.DocumentoVersion.Documento.IdEstadoActual.Equals(IdEstadoAprobado)) { documentosEvaluadosAprobados++; } documentoTratado = ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false); documentoTratado.Orden = string.Format("{0}{1}{2}", actaDoc.Acta.Fecha.ToString("yyyyMMdd"), actaDoc.OrdenGrupoTipoDocumento.ToString(), actaDoc.OrdenDocumento.ToString("00")); documentosEvaluados.Add(documentoTratado); } if (actaDoc.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.SeTomaConocimiento()) { documentoTratado = ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false); documentoTratado.Orden = string.Format("{0}{1}{2}", actaDoc.Acta.Fecha.ToString("yyyyMMdd"), actaDoc.OrdenGrupoTipoDocumento.ToString(), actaDoc.OrdenDocumento.ToString("00")); documentosTomaConocimiento.Add(documentoTratado); } EstadoDocumento estadoDocumento = actaDoc.DocumentoVersion.ObtenerVersionEstado().Estado; if (estadoDocumento.Id.Equals(this.IdEstadoPedidoCambio)) { documentoTratado = ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false); documentoTratado.Orden = string.Format("{0}{1}{2}", actaDoc.Acta.Fecha.ToString("yyyyMMdd"), actaDoc.OrdenGrupoTipoDocumento.ToString(), actaDoc.OrdenDocumento.ToString("00")); documentosPedidoCambio.Add(documentoTratado); } } }); List <TipoDocumentoTratado> documentosTratados = ProcesarDocumentosTratados(TiposDocumentosTratados, actaDocumentos); List <TipoDocumentoTratado> documentosTratadosEvaluados = ProcesarDocumentosTratados(TiposDocumentosEvaluados, actaDocumentos); List <string> vocalesImprime = new List <string>(); Vocales.ForEach(delegate(Profesional profesional) { vocalesImprime.Add(string.Format("{0} ({1})", profesional.NombreYApellido, (profesional.RolComite != null) ? profesional.RolComite.Descripcion : string.Empty)); }); IDictionary datos; if (this.NombrePlantilla.Contains("PlantillaAprobacionEstudio")) { datos = ObtenerDatosPlantillaAprobacionEstudio(modeloCarta, documentosTratados, documentosTratadosEvaluados, vocalesImprime); } else { datos = ObtenerDatosPlantilla(modeloCarta, documentosEvaluados, documentosTomaConocimiento, documentosPedidoCambio, vocalesImprime); } INVelocity fileEngine = NVelocityFactory.CreateNVelocityFileEngine(ProcesadorHelpers.DirectorioPlantillas, true); HTMLProcesado.Add(fileEngine.Process(datos, NombrePlantilla)); }
public string PorcesarActa(Acta acta) { List <EstudioTratado> estudiosTratados = new List <EstudioTratado>(); EstudioTratado estudioTratado = null; DocumentoTratado documentoTratado; Estudio estudio = null; int orden = 0; int ordenDocumento = 0; int ordenGrupo = -1; int ordenGrupoImprime = 0; List <ActaDocumento> documentosTratadosActa = acta.Documentos.ToList <ActaDocumento>() .OrderBy(Item => Item.Orden) .ToList <ActaDocumento>(); documentosTratadosActa.ForEach(delegate(ActaDocumento actaDocumento) { try { if (estudio == null || estudio != actaDocumento.DocumentoVersion.Documento.Estudio) { if (orden > 0) { estudiosTratados.Add(estudioTratado); } estudio = actaDocumento.DocumentoVersion.Documento.Estudio; estudioTratado = ProcesadorHelpers.ObtenerDatosEstudioTratado(estudio); orden++; estudioTratado.Orden = orden; ordenDocumento = 0; ordenGrupo = 0; ordenGrupoImprime = 0; } if (actaDocumento.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo == null) { throw new ApplicationException(string.Format("Para el tipo de documento {0} debe configurar el Tratamiento en Acta", actaDocumento.DocumentoVersion.Documento.TipoDocumento.Descripcion)); } if (ordenGrupo != actaDocumento.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.Orden) { ordenGrupo = actaDocumento.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.Orden; ordenGrupoImprime++; ordenDocumento = 0; } documentoTratado = ProcesadorHelpers.ObtenerDocumentoTratado(actaDocumento, true); documentoTratado.Grupo = string.Format("{0} - {1}", ordenGrupoImprime.ToString(), actaDocumento.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.TextoActa.Trim()); ordenDocumento++; documentoTratado.Orden = string.Format("{0}.{1}.{2}", estudioTratado.Orden.ToString(), ordenGrupoImprime.ToString(), ordenDocumento.ToString()); estudioTratado.Documentos.Add(documentoTratado); } catch (Exception ex) { Logger.LogError("ProcesadorPlantillaActa", ex); throw; } }); if (estudioTratado != null) { estudiosTratados.Add(estudioTratado); } List <Nota> notasTratadas = acta.Notas.OrderBy(item => item.NombreEstudio) .ToList <Nota>(); notasTratadas.ForEach(delegate(Nota nota) { estudioTratado = null; estudioTratado = estudiosTratados.Find(delegate(EstudioTratado estTratado) { return(estTratado.Codigo == nota.Estudio.NombreEstudioListados); }); bool agregar = false; if (estudioTratado == null) { estudioTratado = ProcesadorHelpers.ObtenerDatosEstudioTratado(nota.Estudio); estudioTratado.Orden = ++orden; agregar = true; } if (!nota.ActaImprimeAlFinal) { estudioTratado.NotasInicio.Add(ProcesadorHelpers.QuitarTagP(nota.Texto.Replace("\n", Constantes.SaldoLinea))); } else { estudioTratado.NotasFinal.Add(ProcesadorHelpers.QuitarTagP(nota.Texto.Replace("\n", Constantes.SaldoLinea))); } if (agregar) { estudiosTratados.Add(estudioTratado); } }); IDictionary datos = new Hashtable(); datos.Add("ConFormato", ProcesarConFormato ? 1 : 0); datos.Add("Logo", string.Format(@"{0}\LogoActa.png", ProcesadorHelpers.DirectorioImagenes)); datos.Add("Titulo", acta.Descripcion); datos.Add("ComentarioInicialFijo", acta.ComentarioInicialFijo == null ? string.Empty : acta.ComentarioInicialFijo.Replace("\n", Constantes.SaldoLinea)); datos.Add("ComentarioInicial", acta.ComentarioInicial == null ? string.Empty : acta.ComentarioInicial.Replace("\n", Constantes.SaldoLinea)); datos.Add("ComentarioFinal", acta.ComentarioFinal == null ? string.Empty : acta.ComentarioFinal.Replace("\n", Constantes.SaldoLinea)); datos.Add("EstudiosTratados", estudiosTratados); INVelocity fileEngine = NVelocityFactory.CreateNVelocityFileEngine(ProcesadorHelpers.DirectorioPlantillas, true); return(fileEngine.Process(datos, nombrePlantilla)); }