Exemple #1
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));
        }
Exemple #2
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);
        }
Exemple #3
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);
        }
Exemple #4
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);
        }
Exemple #5
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);
        }