Ejemplo n.º 1
0
        public void GrabarDocumentoVersionComentario(string idEstudio, string idDocumento, string idVersion, string idVersionComentario, string fecha, string idProfesionalAutor, string observaciones)
        {
            ServicioEquipos servEquipo = new ServicioEquipos();

            Documento                  documento         = this.Obtener(idDocumento);
            DocumentoVersion           version           = documento.ObtenerVersion(idVersion.ConvertirInt());
            DocumentoVersionComentario versionComentario = null;

            int _idVersionComentario = idVersionComentario.ConvertirInt();

            if (_idVersionComentario == -1)
            {
                versionComentario = new DocumentoVersionComentario();
            }
            else
            {
                versionComentario = version.ObtenerVersionComentario(_idVersionComentario);
            }

            versionComentario.Fecha            = string.IsNullOrEmpty(fecha) ? DateTime.MinValue : DateTime.Parse(fecha);
            versionComentario.ProfesionalAutor = servEquipo.ProfesionalObtener(idProfesionalAutor.ConvertirInt());
            versionComentario.Observaciones    = observaciones;

            versionComentario.Validar();

            if (_idVersionComentario == -1)
            {
                version.AgregarVersionComentario(versionComentario);
            }

            this.Grabar(documento);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Si el parametro participantes es distinto a null se cargan estos participantes
 /// Si el documento no tiene ninguna version ingresada se setean los investigadores principales por dafult
 /// Si el documento ya tiene versiones se setean los investigadores de la ultima version
 /// Tiene que invocarse antes de agregar la version al documento
 /// </summary>
 /// <param name="version"></param>
 public void AgregarParticipantes(string participantes, Documento documento, DocumentoVersion version)
 {
     if (participantes != null && participantes.Trim().Length > 0)
     {
         ServicioEquipos servEquipo = new ServicioEquipos();
         if (participantes != null && participantes.Trim().Length > 0)
         {
             string[] idProfesionales = participantes.Substring(1).Split(ServiciosHelpers.ID_SEP);
             foreach (string idProf in idProfesionales)
             {
                 this.AgregarParticipante(version, servEquipo.ProfesionalObtener(idProf.ConvertirInt()));
             }
         }
     }
     else
     {
         if (documento.Versiones.Count > 0 && documento.VersionActual.Participantes.Count > 0)
         {
             documento.VersionActual.Participantes.ToList <DocumentoVersionParticipante>().ForEach(delegate(DocumentoVersionParticipante participante)
             {
                 this.AgregarParticipante(version, participante.Profesional);
             });
         }
         else
         {
             ServicioEstudios servEstudio = new ServicioEstudios();
             documento.Estudio = servEstudio.Obtener(documento.IdEstudio.ToString());
             documento.Estudio.InvestigadoresPrincipalesProfesional.ForEach(delegate(Profesional profesional)
             {
                 this.AgregarParticipante(version, profesional);
             });
         }
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        public void AgregarParticipante(DocumentoVersion documentoVersion, Profesional profesional)
        {
            DocumentoVersionParticipante docVersionParticipante = new DocumentoVersionParticipante();

            docVersionParticipante.DocumentoVersion = documentoVersion;
            docVersionParticipante.Profesional      = profesional;
            docVersionParticipante.Validar();
            documentoVersion.AgregarParticipante(docVersionParticipante);
        }
Ejemplo n.º 6
0
        public int GrabarDocumento(string idEstudio, string idDocumento, string descripion, string idTipoDocumento, string limitante, Usuario usuarioLogin,
                                   bool verificarVersion, string idVersion, string versionDescripion, string versionFecha, string versionAprobadoANMAT, string versionFechaAprobadoANMAT, string versionFechaEstado, string versionIdEstado, string participantes,
                                   string requiereAlertaInactividad, string mesesAlertaInactividad, string requiereAlertaInformeAvance, string mesesAlertaInformeAvance)
        {
            //ServiciosHelpers.ValidarClave(estudio);

            Documento documento = null;

            int _idDocumento = idDocumento.ConvertirInt();

            if (_idDocumento != -1)
            {
                documento = repository.Obtener(_idDocumento);
            }

            if (documento == null)
            {
                documento = new Documento();
            }

            documento.Descripcion   = string.IsNullOrEmpty(descripion) ? string.Empty : descripion;
            documento.TipoDocumento = this.TipoDocumentoObtener(idTipoDocumento.ConvertirInt());
            documento.Limitante     = limitante.ConvertirBool();
            documento.Vigente       = true;
            documento.IdEstudio     = idEstudio.ConvertirInt();

            documento.Validar();


            if (verificarVersion)
            {
                this.ActualizarDocumentoVersion(documento, idVersion, versionDescripion, versionFecha, versionAprobadoANMAT, versionFechaAprobadoANMAT, versionFechaEstado, versionIdEstado, participantes, usuarioLogin);
            }
            else if (documento.TipoDocumento != null && !documento.TipoDocumento.RequiereVersion && documento.Versiones.Count == 0)
            {
                ServicioParametricas servParametricas = new ServicioParametricas();
                DocumentoVersion     version          = new DocumentoVersion();
                version.Fecha       = null;
                version.Descripcion = string.Empty;

                Parametro parmsEstado = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_INGRESADO");
                string    idEstado    = (parmsEstado != null) ? parmsEstado.Valor : null;

                DocumentoVersionEstado versionEstado = this.CrearDocumentoVersionEstado(documento.TipoDocumento, idEstado, DateTime.Now.ToString(), usuarioLogin);
                version.AgregarVersionEstado(versionEstado);

                this.AgregarParticipantes(participantes, documento, version);

                documento.AgregarVersion(version);
            }


            return(this.Grabar(documento));
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        public void EliminarDocumentoVersionEstado(string idEstudio, string idDocumento, string idVersion, string idVersionEstado, string idEstado)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();
            ServicioEquipos      servEquipo       = new ServicioEquipos();

            Documento        documento = this.Obtener(idDocumento);
            DocumentoVersion version   = documento.ObtenerVersion(idVersion.ConvertirInt());

            version.EliminarVersionEstado(int.Parse(idVersionEstado));

            this.Grabar(documento);
        }
Ejemplo n.º 10
0
        public void GrabarDocumentoVersionArchivoAdjunto(string idEstudio, string idDocumento, string idVersion, string nombreArchivo)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();

            Documento documento = this.Obtener(idDocumento);

            DocumentoVersion version = version = documento.ObtenerVersion(idVersion.ConvertirInt());

            version.Archivo = nombreArchivo;

            this.Grabar(documento);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        private void ActualizarDocumentoVersion(Documento documento, string idVersion, string descripion, string fecha, string aprobadoANMAT, string fechaAprobadoANMAT, string fechaEstado, string idEstado, string participantes, Usuario usuarioLogin)
        {
            DocumentoVersion version = null;
            int _idVersion           = idVersion.ConvertirInt();

            if (_idVersion == -1)
            {
                if (!documento.PermitirCargarVersion())
                {
                    throw new ApplicationException("El documento NO requiere versión, deberá editar la versión actual.");
                }

                version = new DocumentoVersion();
            }
            else
            {
                version = documento.ObtenerVersion(_idVersion);
            }

            version.Descripcion = descripion.ConvertirString();
            if (!string.IsNullOrEmpty(fecha))
            {
                version.Fecha = fecha.ConvertirDateTime();
            }
            version.AprobadoANMAT = aprobadoANMAT.ConvertirBool();
            if (!string.IsNullOrEmpty(fechaAprobadoANMAT))
            {
                version.FechaAprobadoANMAT = fechaAprobadoANMAT.ConvertirDateTime();
            }

            version.EliminarParticipantes();
            this.AgregarParticipantes(participantes, documento, version);

            version.Validar();

            if (_idVersion == -1)
            {
                DocumentoVersionEstado versionEstado = this.CrearDocumentoVersionEstado(documento.TipoDocumento, idEstado, fechaEstado, usuarioLogin);
                version.AgregarVersionEstado(versionEstado);

                documento.AgregarVersion(version);
            }
        }
Ejemplo n.º 13
0
        public void ProcessRequest(HttpContext context)
        {
            string idEstudio   = (context.Request["idEstudio"] != null ? context.Request["idEstudio"].ToString() : "-1");
            int    idDocumento = int.Parse(context.Request["idDocumento"].ToString());
            int    idVersion   = int.Parse(context.Request["idVersion"].ToString());

            ServicioEstudios servicio = new ServicioEstudios();

            DocumentoVersion version = servicio.Obtener(idEstudio)
                                       .ObtenerDocumento(idDocumento)
                                       .ObtenerVersion(idVersion);

            string filePath = string.Format(@"{0}\{1}", UtilHelper.DirectorioArchivos, version.Archivo);

            context.Response.Clear();
            context.Response.ContentType = "application/octet-stream";
            context.Response.AddHeader("Content-Disposition", "attachment; filename=" + version.Archivo);
            context.Response.Flush();
            context.Response.WriteFile(filePath);
            context.Response.End();
        }
Ejemplo n.º 14
0
        public void GrabarNota(string idEstudio, string idNota, string descripion, string fecha, string idAutor, string nombreArchivo, string pathArchivo, string requiereRespuesta, string idDocumento, string idDocumentoVersion, string texto)
        {
            ServicioEquipos servEquipo = new ServicioEquipos();

            Estudio estudio = this.Obtener(idEstudio);
            Nota    nota    = null;

            int _idDocumento        = idDocumento.ConvertirInt();
            int _idDocumentoVersion = idDocumentoVersion.ConvertirInt();

            DocumentoVersion docVersion = null;

            if (_idDocumento != -1 && _idDocumentoVersion == -1)
            {
                throw new ApplicationException("Debe seleccionar Documento y Versión del mismo");
            }

            int _idNota = idNota.ConvertirInt();

            if (_idNota == -1)
            {
                nota = new Nota();
            }
            else
            {
                nota = estudio.ObtenerNota(_idNota);
            }

            nota.Descripcion   = string.IsNullOrEmpty(descripion) ? string.Empty : descripion;
            nota.Fecha         = string.IsNullOrEmpty(fecha) ? DateTime.MinValue : DateTime.Parse(fecha);
            nota.Autor         = servEquipo.ProfesionalObtener(idAutor.ConvertirInt());
            nota.NombreArchivo = nombreArchivo;
            nota.PathArchivo   = pathArchivo;
            bool _requiereRespuesta = false;

            if (bool.TryParse(requiereRespuesta, out _requiereRespuesta))
            {
                nota.RequiereRespuesta = _requiereRespuesta;
            }

            if (_idDocumento != -1 && _idDocumentoVersion != -1)
            {
                docVersion = estudio.ObtenerDocumento(_idDocumento)
                             .ObtenerVersion(_idDocumentoVersion);
            }
            nota.Texto = texto;

            if (docVersion != null)
            {
                nota.AgregarDocumento(docVersion);
            }

            nota.Vigente = true;

            nota.Validar();

            if (_idNota == -1)
            {
                estudio.AgregarNota(nota);
            }

            this.Grabar(estudio);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }