public List <EstadoDocumento> DocumentoObtenerEstados(string idDocumento, string idVersion) { Documento documento = this.Obtener(idDocumento); DocumentoVersion version = documento.ObtenerVersion(idVersion.ConvertirInt()); TipoDocumentoFlujo flujo = documento.TipoDocumento.ObtenerFlujoDefault(); DocumentoVersionEstado estadoActual = version.ObtenerVersionEstado(); EstadoDocumento estado = estadoActual == null ? null : estadoActual.Estado; return(flujo.ObtenerEstados(estado)); }
public void GrabarDocumentoVersionParticipantes(string idDocumento, string idVersion, string participantes, Usuario usuarioLogin) { ServicioEquipos servEquipo = new ServicioEquipos(); Documento documento = this.Obtener(idDocumento); DocumentoVersion version = documento.ObtenerVersion(idVersion.ConvertirInt()); DocumentoVersionEstado versionEstado = version.ObtenerVersionEstado(); this.ActualizarDocumentoVersion(documento, version.Id.ToString(), version.Descripcion, version.FechaToString, version.AprobadoANMAT.ToString(), version.FechaAprobadoANMATToString, versionEstado.FechaToString, versionEstado.Estado.Id.ToString(), participantes, usuarioLogin); this.Grabar(documento); }
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); }
public void GrabarDocumentoVersionEstado(DocumentoVersion version, EstadoDocumento estado, bool actualizarEstadoFinal, Usuario usuarioLogin) { if (estado == null && !actualizarEstadoFinal) { return; } ServicioParametricas servParametricas = new ServicioParametricas(); DocumentoVersionEstado versionEstadoActual = version.ObtenerVersionEstado(); if (versionEstadoActual != null && versionEstadoActual.Estado != null) { //para no duplicar el estado, si ya lo tiene no hce nada if (versionEstadoActual.Estado == estado) { return; } //si ya tiene un estado final y no se está actualizando estado final, se quita primero para que quede un solo estado final if (versionEstadoActual.EstadoFinal.HasValue && versionEstadoActual.EstadoFinal.Value) { if (actualizarEstadoFinal) { return; } else { version.EliminarVersionEstado(versionEstadoActual.Id); } } } EstadoDocumento estadoAprobadoExistente = null; EstadoDocumento estadoTomaConocimientoExistente = null; EstadoDocumento nuevoEstado = null; if (actualizarEstadoFinal) { List <EstadoDocumento> listEstados = version.Documento.TipoDocumento.ObtenerFlujoDefault().ObtenerEstados(versionEstadoActual.Estado); Parametro parmsEstado = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_APROBADO"); string idEstadoAprobado = (parmsEstado != null) ? parmsEstado.Valor : null; estadoAprobadoExistente = listEstados.Find(delegate(EstadoDocumento match) { return(match.Id == idEstadoAprobado.ConvertirInt()); }); parmsEstado = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_TOMA_CONOCIMIENTO"); string idEstadoTomaConocimiento = (parmsEstado != null) ? parmsEstado.Valor : null; estadoTomaConocimientoExistente = listEstados.Find(delegate(EstadoDocumento match) { return(match.Id == idEstadoTomaConocimiento.ConvertirInt()); }); if (estadoAprobadoExistente == null && estadoTomaConocimientoExistente == null) { return; } nuevoEstado = (estadoAprobadoExistente != null) ? estadoAprobadoExistente : estadoTomaConocimientoExistente; } else { nuevoEstado = estado; } DocumentoVersionEstado versionEstado = new DocumentoVersionEstado(); versionEstado.Fecha = DateTime.Now; versionEstado.Estado = nuevoEstado; versionEstado.Usuario = usuarioLogin; versionEstado.Observaciones = string.Empty; TipoDocumentoFlujoEstado flujoEstado = version.Documento.TipoDocumento.ObtenerFlujoDefault().ObtenerFlujoEstado(nuevoEstado); if (flujoEstado != null) { versionEstado.EstadoFinal = flujoEstado.Final; } else { versionEstado.EstadoFinal = false; } versionEstado.Validar(); version.AgregarVersionEstado(versionEstado); }
public void GrabarDocumentoVersionEstado(string idEstudio, string idDocumento, string idVersion, string idVersionEstado, string idEstado, string fecha, string idProfesionalAutor, string idProfesionalPresenta, string idProfesionalResponsable, Usuario usuarioLogin) { ServicioParametricas servParametricas = new ServicioParametricas(); ServicioEquipos servEquipo = new ServicioEquipos(); Documento documento = this.Obtener(idDocumento); DocumentoVersion version = documento.ObtenerVersion(idVersion.ConvertirInt()); DocumentoVersionEstado versionEstadoActual = version.ObtenerVersionEstado(); if (versionEstadoActual != null && versionEstadoActual.Estado != null) { //para no duplicar el estado, si ya lo tiene no hce nada if (versionEstadoActual.Estado.Id == idEstado.ConvertirInt()) { return; } //si ya tiene un estado final se quita primero, para que quede un solo estado final if (versionEstadoActual.EstadoFinal.HasValue && versionEstadoActual.EstadoFinal.Value) { version.EliminarVersionEstado(versionEstadoActual.Id); } } DocumentoVersionEstado versionEstado = null; int _idVersionEstado = idVersionEstado.ConvertirInt(); if (_idVersionEstado == -1) { versionEstado = new DocumentoVersionEstado(); } else { versionEstado = version.ObtenerVersionEstado(_idVersionEstado); } versionEstado.Fecha = string.IsNullOrEmpty(fecha) ? DateTime.MinValue : DateTime.Parse(fecha); EstadoDocumento nuevoEstado = null; nuevoEstado = servParametricas.EstadoDocumentoObtener(idEstado.ConvertirInt()); versionEstado.Estado = nuevoEstado; versionEstado.Usuario = usuarioLogin; versionEstado.ProfesionalAutor = servEquipo.ProfesionalObtener(idProfesionalAutor.ConvertirInt()); versionEstado.ProfesionalPresenta = servEquipo.ProfesionalObtener(idProfesionalPresenta.ConvertirInt()); versionEstado.ProfesionalResponsable = servEquipo.ProfesionalObtener(idProfesionalResponsable.ConvertirInt()); versionEstado.Observaciones = string.Empty; TipoDocumentoFlujoEstado flujoEstado = documento.TipoDocumento.ObtenerFlujoDefault().ObtenerFlujoEstado(nuevoEstado); if (flujoEstado != null) { versionEstado.EstadoFinal = flujoEstado.Final; } else { versionEstado.EstadoFinal = false; } versionEstado.Validar(); if (_idVersionEstado == -1) { version.AgregarVersionEstado(versionEstado); } this.Grabar(documento); }