コード例 #1
0
        public List <EstudioTipoDocumento> ObtenerTiposDocumentoSemaforo(Estudio estudio)
        {
            List <EstudioTipoDocumento> listReturn = repository.ObtenerTiposEstudioSemaforo(estudio.Id).ToList <EstudioTipoDocumento>();
            List <Documento>            docs       = new List <Documento>();

            listReturn.ForEach(delegate(EstudioTipoDocumento etd)
            {
                docs = estudio.Documentos.ToList <Documento>().FindAll(item => item.TipoDocumento == etd.TipoDocumento);
                //empieza el analisis del semaforo
                if (docs.Count == 0)
                {
                    //no existen documentos del tipo en el Estudio, es ROJO
                    etd.EstadoSemaforo = (int)ESTADO_SEMAFORO.ROJO;
                }
                else
                {
                    //existen documentos, verificamos si estan con el estado final, es VERDE, caso contrario AMARILLO
                    int cantDocsEstadoFinal = 0;
                    docs.ToList <Documento>().ForEach(delegate(Documento doc)
                    {
                        if (doc.VersionActual != null)
                        {
                            DocumentoVersionEstado versionEstado = doc.VersionActual.ObtenerVersionEstado();
                            if (versionEstado != null && versionEstado.EstadoFinal.Value)
                            {
                                cantDocsEstadoFinal++;
                            }
                        }
                    });
                    etd.EstadoSemaforo = (docs.Count == cantDocsEstadoFinal) ? (int)ESTADO_SEMAFORO.VERDE : (int)ESTADO_SEMAFORO.AMARILLO;
                }
            });

            return(listReturn);
        }
コード例 #2
0
        public DocumentoVersionEstado CrearDocumentoVersionEstado(TipoDocumento tipoDocumento, string idEstado, string fechaEstado, Usuario usuarioLogin)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();

            DocumentoVersionEstado versionEstado = new DocumentoVersionEstado();

            versionEstado.Fecha = fechaEstado.ConvertirDateTime();

            EstadoDocumento estadoActual = servParametricas.EstadoDocumentoObtener(idEstado.ConvertirInt());

            versionEstado.Estado = estadoActual;

            versionEstado.Usuario                = usuarioLogin;
            versionEstado.ProfesionalAutor       = null;
            versionEstado.ProfesionalPresenta    = null;
            versionEstado.ProfesionalResponsable = null;
            versionEstado.Observaciones          = string.Empty;

            TipoDocumentoFlujoEstado flujoEstado = tipoDocumento.ObtenerFlujoDefault().ObtenerFlujoEstado(estadoActual);

            if (flujoEstado != null)
            {
                versionEstado.EstadoFinal = flujoEstado.Final;
            }
            else
            {
                versionEstado.EstadoFinal = false;
            }

            versionEstado.Validar();

            return(versionEstado);
        }
コード例 #3
0
        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();
                    }
                });
            });
        }
コード例 #4
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));
        }
コード例 #5
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));
        }
コード例 #6
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);
        }
コード例 #7
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);
            }
        }
コード例 #8
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);
        }
コード例 #9
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);
        }