示例#1
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);
             });
         }
     }
 }
示例#2
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);
        }
示例#3
0
        public void GrabarParticipantes(string idActa, string participantes)
        {
            ServicioEquipos      servEquipo       = new ServicioEquipos();
            ServicioParametricas servParametricas = new ServicioParametricas();

            Acta acta = this.Obtener(idActa);

            acta.EliminarParticipantes();
            if (participantes.Trim().Length > 0)
            {
                string[] actaParticipantes = participantes.Substring(1).Split(ServiciosHelpers.ID_SEP);

                foreach (string participante in actaParticipantes)
                {
                    string[]    infoParticipante = participante.Split(',');
                    Profesional profesional      = servEquipo.ProfesionalObtener(infoParticipante[0].ConvertirInt());
                    RolComite   rolComite        = servParametricas.ObtenerObjeto <RolComite>(infoParticipante[1].ConvertirInt());

                    this.AgregarParticipante(acta, profesional, rolComite);
                }
            }

            if (acta.ComentarioInicialFijo.Trim().Length > 0)
            {
                acta.ComentarioInicialFijo = this.ArmarComentarioInicialFijo(acta);
            }

            this.Grabar(acta);
        }
示例#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);
            }
        }
示例#5
0
        public void InicializarParticipantes(Acta acta)
        {
            ServicioEquipos servEquipos = new ServicioEquipos();

            List <Profesional> participantes = servEquipos.ProfesionalObtenerVigentes(Constantes.TipoProfesional_MiembroComite);

            participantes.ForEach(delegate(Profesional profesional)
            {
                this.AgregarParticipante(acta, profesional, profesional.RolComite);
            });
        }
示例#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
        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);
        }
示例#8
0
        public void GrabarParticipante(string idEstudio, string idParticipante, string idProfesional, string idRol, string desde, string hasta)
        {
            ServicioEquipos servEquipo  = new ServicioEquipos();
            Profesional     profesional = servEquipo.ProfesionalObtener(idProfesional.ConvertirInt());
            Rol             rol         = servEquipo.RolObtener(idRol.ConvertirInt());


            Estudio             estudio      = this.Obtener(idEstudio);
            EstudioParticipante participante = null;

            int _idParticipante = idParticipante.ConvertirInt();

            if (_idParticipante == -1)
            {
                participante = new EstudioParticipante();
            }
            else
            {
                participante = estudio.ObtenerParticipante(_idParticipante);
            }

            participante.Profesional = profesional;
            participante.Rol         = rol;
            if (!string.IsNullOrEmpty(desde))
            {
                participante.Desde = DateTime.Parse(desde);
            }
            if (!string.IsNullOrEmpty(hasta))
            {
                participante.Hasta = DateTime.Parse(hasta);
            }

            participante.Validar();

            if (_idParticipante == -1)
            {
                estudio.AgregarParticipante(participante);
            }

            this.Grabar(estudio);
        }
示例#9
0
        public void GrabarNuevaNota(string idActa, string imprimeAlFinal, string idNota, string idEstudio, string descripion, string fecha, string idAutor, string texto)
        {
            RepositoryGenerico <Nota> notaRepository = new RepositoryGenerico <Nota>();
            ServicioEquipos           servEquipo     = new ServicioEquipos();

            /*
             * ActasRepository actaRepository = new ActasRepository();
             * Nota nota = acta.Notas.ToList<Nota>().Find(item => item.IdEstudio == idEstudio.ConvertirInt() && item.ActaImprimeAlFinal == _imprimeAlFinal);
             * List<Nota> notas = actaRepository.ObtenerActaNota_Estudio(idActa.ConvertirInt(), idEstudio.ConvertirInt()).ToList<Nota>();
             * Nota nota = notas.Find(item => item.IdEstudio == idEstudio.ConvertirInt() && item.ActaImprimeAlFinal == _imprimeAlFinal);
             */
            Nota nota;

            if (idNota.ConvertirInt() != -1)
            {
                nota = notaRepository.Obtener(idNota.ConvertirInt());
            }
            else
            {
                nota    = new Nota();
                nota.Id = -1;
            }
            nota.IdActa             = idActa.ConvertirInt();
            nota.IdEstudio          = idEstudio.ConvertirInt();
            nota.ActaImprimeAlFinal = string.IsNullOrEmpty(imprimeAlFinal) ? false : (imprimeAlFinal.Equals("1") ? true : false);
            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.RequiereRespuesta = false;
            nota.Texto             = texto;

            nota.Vigente = true;

            nota.Validar();

            notaRepository.Actualizar(nota);
        }
示例#10
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);
        }
示例#11
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);
        }
示例#12
0
        public int Grabar(string idActa, string descripcion, string fecha, string hora, string comentarioInicialFijo, string comentarioInicial, string comentarioFinal, string cerrada, string participantes)
        {
            ServicioEstudios     servEstudio      = new ServicioEstudios();
            ServicioEquipos      servEquipo       = new ServicioEquipos();
            ServicioParametricas servParametricas = new ServicioParametricas();

            Acta acta = null;

            int _idActa = idActa.ConvertirInt();

            descripcion = string.IsNullOrEmpty(descripcion) ? string.Empty : descripcion;

            if (descripcion.StartsWith("DOSSIER"))
            {
                descripcion = string.Format("{0} - Acta número: {1} - {2}", descripcion, idActa.ToString(), DateTime.Now.ToString("dd/mm/yyyy"));
            }

            if (_idActa == -1)
            {
                List <Acta> actasMismaDescripcion = repository.ObtenerTodosVigentes(descripcion).ToList <Acta>();
                if (actasMismaDescripcion.Count > 0)
                {
                    throw new ApplicationException(string.Format(@"Ya existe una Acta con la Descripcion {0}", descripcion));
                }

                acta = new Acta();

                this.InicializarParticipantes(acta);
            }
            else
            {
                acta = this.Obtener(idActa);

                string[] actaParticipantes = participantes.Split(';');
                foreach (string participante in actaParticipantes)
                {
                    if (participante.Trim().Length > 0)
                    {
                        string[]    infoParticipante   = participante.Split(',');
                        int         idActaParticipante = infoParticipante[0].ConvertirInt();
                        Profesional profesional        = servEquipo.ProfesionalObtener(infoParticipante[1].ConvertirInt());
                        RolComite   rolComite          = servParametricas.ObtenerObjeto <RolComite>(infoParticipante[2].ConvertirInt());

                        acta.ActualizarParticipanteRolcomite(idActaParticipante, rolComite);
                    }
                }
            }
            acta.Descripcion = descripcion.ConvertirString();
            acta.Fecha       = fecha.ConvertirDateTime();
            acta.Hora        = hora;

            acta.ComentarioInicialFijo = comentarioInicialFijo;
            acta.ComentarioInicial     = comentarioInicial.ConvertirString();
            acta.ComentarioInicial     = comentarioInicial.ConvertirString();
            acta.ComentarioFinal       = comentarioFinal.ConvertirString();
            acta.Cerrada = cerrada.ConvertirBool();

            acta.Vigente = true;

            return(this.Grabar(acta));
        }