public void GrabarEstudioTiposDocumentosSemaforo(string idEstudio, string tiposDocumento) { ServicioDocumentos servDocumentos = new ServicioDocumentos(); RepositoryGenerico <EstudioTipoDocumento> repositoryETD = new RepositoryGenerico <EstudioTipoDocumento>(); EstudioTipoDocumento estudioTipoDoc = null; Estudio estudio = Obtener(idEstudio); if (estudio == null) { throw new ApplicationException("No existe estudio"); } repositoryETD.EliminarRegistros("EstudioTiposDocumento", "(IdEstudio = " + estudio.Id + ")"); dynamic tiposDocs = ServiciosHelpers.DeserializarGenerico(tiposDocumento); foreach (var tipo in tiposDocs) { estudioTipoDoc = new EstudioTipoDocumento(); estudioTipoDoc.Estudio = estudio; string _aux = string.Format("{0}", tipo.Id); estudioTipoDoc.TipoDocumento = servDocumentos.TipoDocumentoObtener(_aux.ConvertirInt()); repositoryETD.Actualizar(estudioTipoDoc); } this.GrabarEstudioSemaforo(idEstudio); }
public void GrabarDocumentoComentarioEstado(string idActaDocumento, string comentario, string idEstadoDocumento, string actualizarEstadoFinal, string imprimirCarta, string setearSaltoLinea, Usuario usuarioLogin) { ServicioParametricas servParametricas = new ServicioParametricas(); ServicioDocumentos servDocumento = new ServicioDocumentos(); int _idActaDocumento = idActaDocumento.ConvertirInt(); if (_idActaDocumento == -1) { return; } RepositoryGenerico <ActaDocumento> repository = new RepositoryGenerico <ActaDocumento>(); ActaDocumento actaDocumento = repository.Obtener(_idActaDocumento); actaDocumento.Descripcion = comentario; actaDocumento.ImprimirCarta = imprimirCarta.ConvertirBool(); actaDocumento.SetearSaltosLinea = setearSaltoLinea.ConvertirBoolNulleable(); EstadoDocumento estado = servParametricas.EstadoDocumentoObtener(idEstadoDocumento.ConvertirInt()); DocumentoVersion docVersion = actaDocumento.DocumentoVersion; servDocumento.GrabarDocumentoVersionEstado(docVersion, estado, actualizarEstadoFinal.ConvertirBool(), usuarioLogin); repository.Actualizar(actaDocumento); }
public void GrabarDocumento(Acta acta, string idActaDocumento, string idDocumento, string idDocumentoVersion, string comentario, string idResponsableComite, string imprimirCarta, Usuario usuarioLogin) { ServicioDocumentos servDocumento = new ServicioDocumentos(); ServicioEquipos servEquipo = new ServicioEquipos(); ActaDocumento actaDocumento = null; int _idDocumentoVersion = idDocumentoVersion.ConvertirInt(); if (_idDocumentoVersion == -1) { throw new ApplicationException("Debe seleccionar documento y versión a comentar"); } int _idActaDocumento = idActaDocumento.ConvertirInt(); if (_idActaDocumento == -1) { actaDocumento = new ActaDocumento(); } else { actaDocumento = acta.ObtenerDocumento(_idActaDocumento); } DocumentoVersion docVersion = servDocumento.Obtener(idDocumento) .ObtenerVersion(_idDocumentoVersion); actaDocumento.DocumentoVersion = docVersion; actaDocumento.Descripcion = comentario; actaDocumento.ResponsableComite = servEquipo.ProfesionalObtener(idResponsableComite.ConvertirInt()); actaDocumento.OrdenEstudio = acta.ObtenerOrdenEstudio(docVersion.Documento.Estudio.Id); actaDocumento.OrdenDocumento = acta.ObtenerOrdenUltimoDocumentoDelEstudio(docVersion.Documento.Estudio.Id); actaDocumento.ImprimirCarta = imprimirCarta.ConvertirBool(); if (_idActaDocumento == -1) { ServicioParametricas servParametricas = new ServicioParametricas(); Parametro parmsEstado = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_EN_EVALUACION"); string _idEstado = (parmsEstado != null) ? parmsEstado.Valor : null; EstadoDocumento estado = servParametricas.EstadoDocumentoObtener(_idEstado.ConvertirInt()); servDocumento.GrabarDocumentoVersionEstado(docVersion, estado, false, usuarioLogin); } actaDocumento.Validar(); if (_idActaDocumento == -1) { /*Si el estudio al cual pertenece el documento no existe en el acta, * se crea automaticamente notas al pie y al continuacion de los documentos tratados*/ if (!acta.EstudioTieneNotas(docVersion.Documento.IdEstudio)) { string descripcionNota = string.Format("{0} - ESTUDIO {1}", acta.Descripcion, docVersion.Documento.NombreEstudio); this.GrabarNuevaNota(acta.Id.ToString(), "0", "-1", docVersion.Documento.Estudio.Id.ToString(), string.Format("{0} - INICIO", descripcionNota), DateTime.Now.ToString(), null, string.Empty); this.GrabarNuevaNota(acta.Id.ToString(), "1", "-1", docVersion.Documento.Estudio.Id.ToString(), string.Format("{0} - FINAL", descripcionNota), DateTime.Now.ToString(), null, string.Empty); } acta.AgregarDocumento(actaDocumento); } }
public void ProcesarEstudiosFinalizados(Usuario usuarioLogin) { ServicioDocumentos servDocs = new ServicioDocumentos(); ServicioParametricas servParams = new ServicioParametricas(); List <EstudioDTO> estudios = this.repository.ListarEstudiosDTO(4).ToList <EstudioDTO>().ToList <EstudioDTO>(); List <Documento> docsEstudio = new List <Documento>(); estudios.ForEach(delegate(EstudioDTO dto) { docsEstudio = this.ObtenerDocumentos(dto.Id.ToString()); docsEstudio.ForEach(delegate(Documento doc) { try { if (doc.TipoDocumento.Vigente) { doc.Versiones.ToList <DocumentoVersion>().ForEach(delegate(DocumentoVersion dv) { EstadoDocumento proximoEstado = null; DocumentoVersionEstado estadoDoc = dv.ObtenerVersionEstado(); if (!estadoDoc.EstadoFinal.Value) { /* * IdEstado Descripcion * 1 INGRESADO * 2 EN EVALUACION * 3 APROBADO * 4 PEDIDO DE CAMBIOS * 5 TOMA CONOCIMIENTO */ switch (estadoDoc.Estado.Id) { case 1: // proximoEstado = servParams.EstadoDocumentoObtener(2); servDocs.GrabarDocumentoVersionEstado(dv, proximoEstado, false, usuarioLogin); //grabamos en evaluacion servDocs.Grabar(doc); servDocs.GrabarDocumentoVersionEstado(dv, null, true, usuarioLogin); //grabamos estado final servDocs.Grabar(doc); break; case 2: // servDocs.GrabarDocumentoVersionEstado(dv, null, true, usuarioLogin); //grabamos estado final servDocs.Grabar(doc); break; } } }); } } catch { //servDocs.Sincronizar(); } }); }); }
public void EliminarDocumento(string idActa, string idActaDocumento) { int _idActaDocumento = idActaDocumento.ConvertirInt(); if (_idActaDocumento == -1) { throw new ApplicationException("No seleccionó documento que desea eliminar"); } Acta acta = this.Obtener(idActa); ActaDocumento actaDocumento = acta.ObtenerDocumento(_idActaDocumento); int idEstudio = actaDocumento.IdEstudio; //verifico si el ultimo estado es EN EVALUACION, se elimina ServicioParametricas servParametricas = new ServicioParametricas(); Parametro parmsEstado = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_EN_EVALUACION"); string idEstado = (parmsEstado != null) ? parmsEstado.Valor : null; DocumentoVersion docVersion = actaDocumento.DocumentoVersion; if (docVersion.ObtenerVersionEstado().Id.Equals(idEstado.ConvertirInt())) { ServicioDocumentos servDocumentos = new ServicioDocumentos(); //Refactorizar para no tener que enviarle todos los parametros cada vez que se invoque, enviar solo docVersion servDocumentos.EliminarDocumentoVersionEstado(docVersion.Documento.IdEstudio.ToString(), docVersion.Documento.Id.ToString(), docVersion.Id.ToString(), docVersion.ObtenerVersionEstado().Id.ToString(), idEstado); } acta.EliminarDocumento(actaDocumento); //Si el estudio quedo sin documentos y sin notas, se debe eliminar el estudio del acta ActaEstudios y Notas por IdEstudio bool estudioConDocumentos = acta.Documentos.ToList <ActaDocumento>() .FindAll(item => item.IdEstudio == idEstudio).Count > 0; bool estudioConNotas = acta.Notas.ToList <Nota>() .FindAll(item => item.IdEstudio == idEstudio && item.Texto.Trim().Length > 0) .Count > 0; if (!estudioConDocumentos && !estudioConNotas) { acta.EliminarEstudio(idEstudio); acta.Notas.ToList <Nota>() .FindAll(item => item.IdEstudio == idEstudio) .ForEach(delegate(Nota nota) { acta.EliminarNota(nota); }); } this.Grabar(acta); }
private List <Documento> ObtenerDocumentos(string idEstudio) { ServicioDocumentos servDocumentos = new ServicioDocumentos(); return(servDocumentos.ListarDocumentos(idEstudio)); }
public List <string> ImprimirCartaRespuesta(string idActa, string idEstudio, bool exportarWord) { ServicioParametricas servParametricas = new ServicioParametricas(); ServicioDocumentos servDocumentos = new ServicioDocumentos(); string idEstadoPedidoCambio = servParametricas.ParametroObtener("ESTADO_DOC_PEDIDO_CAMBIO"); string idEstadoAprobado = servParametricas.ParametroObtener("ESTADO_DOC_APROBADO"); ServicioActas servicio = new ServicioActas(); Acta acta = servicio.Obtener(idActa); List <ActaDocumento> actaDocs = acta.Documentos.ToList <ActaDocumento>() .FindAll(item => item.DocumentoVersion.Documento.Estudio.Id == idEstudio.ConvertirInt()); //&& item.ImprimirCarta); if (actaDocs == null || actaDocs.Count == 0) { return(new List <string>()); } ProcesadorPlantillaCarta procesador = new ProcesadorPlantillaCarta(); procesador.IdEstadoPedidoCambio = idEstadoPedidoCambio.ConvertirInt(); procesador.IdEstadoAprobado = idEstadoAprobado.ConvertirInt(); procesador.ComiteNombreCompleto = servParametricas.ParametroObtener("COMITE_NOMBRE_COMPLETO"); procesador.ComiteIniciales = servParametricas.ParametroObtener("COMITE_INICIALES"); procesador.Vocales = acta.Vocales; procesador.PresidenteComite = acta.PresidenteComite != null ? acta.PresidenteComite.NombreYApellido : string.Empty; procesador.LeyendaPresidenteComite = acta.ObtenerRolComiteParticipantes(acta.PresidenteComite) != null?acta.ObtenerRolComiteParticipantes(acta.PresidenteComite).Descripcion : "Presidente"; procesador.FechaActa = acta.Fecha; //ProcesadorHelpers ActaEstudio actaEstudio = acta.ObtenerEstudio(idEstudio.ConvertirInt()); if (actaEstudio.Estudio.IdTipoEstudio.HasValue) { actaEstudio.Estudio.TipoEstudio = servParametricas.TipoEstudioObtener(actaEstudio.Estudio.IdTipoEstudio.Value); } procesador.actaEstudio = actaEstudio; if (actaEstudio.Estudio.CentroHabilitado != null) { procesador.CentrosInternacion = servParametricas.CentroObtenerCentrosInternacion(actaEstudio.Estudio.CentroHabilitado.Id); } procesador.TiposDocumentosTratados = servDocumentos.TiposDocumentoObtenerListarCartaRespuesta(-1); procesador.TiposDocumentosEvaluados = servDocumentos.TiposDocumentoObtenerListarCartaRespuesta((int)TIPO_DOCUMENTO_GRUPO.SE_EVALUA); if (actaEstudio.CartaRespuestaModelo.IncluirTodosDocumentosEstudio) { actaDocs = servicio.ListarDocumentoTratadosXEstudio(idEstudio); } procesador.plantillasTexto = servParametricas.PlantillaObtenerVigentes((int)TIPOS_PLANTILLA.APROBACION_ESTUDIO); //procesador.NombrePlantilla = "AprobacionEstudioModelo.html"; procesador.NombrePlantilla = string.Format("{0}{1}.html", actaEstudio.CartaRespuestaModelo.NombrePlantilla, (exportarWord ? "Word" : string.Empty)); procesador.ProcesarCartaRespuesta(actaDocs); return(procesador.HTMLProcesado); }