示例#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 List <Documento> ListarDocumentosDelEstudiosDelActa(string idActa, string idEstudio)
        {
            ServicioEstudios servEstudios = new ServicioEstudios();

            List <Documento> documentosReturn = new List <Documento>();
            Documento        documento        = null;
            //DocumentoVersion documentoVersion = null;

            Acta acta       = this.Obtener(idActa);
            int  _idEstudio = idEstudio.ConvertirInt();

            if (_idEstudio != -1)
            {
                acta.Documentos.ToList <ActaDocumento>().ForEach(delegate(ActaDocumento actaDocumento)
                {
                    if (actaDocumento.DocumentoVersion.Documento.Estudio.Id == _idEstudio)
                    {
                        documento               = new Documento();
                        documento.Id            = actaDocumento.DocumentoVersion.Documento.Id;
                        documento.Descripcion   = actaDocumento.DocumentoVersion.Documento.Descripcion;
                        documento.TipoDocumento = actaDocumento.DocumentoVersion.Documento.TipoDocumento;
                        documento.Limitante     = false;
                        documento.Estudio       = actaDocumento.DocumentoVersion.Documento.Estudio;

                        documento.AgregarVersion(actaDocumento.DocumentoVersion);

                        documentosReturn.Add(documento);
                    }
                });
            }

            return(documentosReturn);
        }
示例#3
0
        //metodo que se invoca al agregar documentos
        public void GrabarEstudioActa(Acta acta, string idEstudio)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();
            ServicioEstudios     servEstudios     = new ServicioEstudios();

            ActaEstudio actaEstudio = null;
            Estudio     estudio     = null;

            if (acta.Estudios.Count > 0)
            {
                actaEstudio = acta.ObtenerEstudio(idEstudio.ConvertirInt());
            }

            if (actaEstudio == null)
            {
                estudio = servEstudios.Obtener(idEstudio);

                actaEstudio               = new ActaEstudio();
                actaEstudio.Estudio       = estudio;
                actaEstudio.EstadoEstudio = estudio.Estado;
                actaEstudio.OrdenEstudio  = acta.ObtenerOrdenEstudio(estudio.Id);

                acta.AgregarEstudio(actaEstudio);
            }
        }
示例#4
0
        public List <ActaEstudioDTO> ListarEstudiosDelActa(Acta acta)
        {
            ServicioEstudios servEstudios = new ServicioEstudios();

            List <ActaEstudioDTO> estudiosReturn = new List <ActaEstudioDTO>();

            acta.Documentos.ToList <ActaDocumento>().ForEach(delegate(ActaDocumento actaDocumento)
            {
                ActaEstudioDTO estudioDTO = estudiosReturn.Find(delegate(ActaEstudioDTO estudio)
                {
                    return(estudio.Id == actaDocumento.DocumentoVersion.Documento.Estudio.Id);
                });
                if (estudioDTO == null)
                {
                    ActaEstudioDTO dto = servEstudios.DameActaEstudioDTO(actaDocumento.DocumentoVersion.Documento.Estudio, actaDocumento);
                    //dto.DocumentosTratados = ListarDocumentosDelActa(acta, dto.Id);
                    estudiosReturn.Add(dto);
                }
            });

            acta.Notas.ToList <Nota>().ForEach(delegate(Nota nota)
            {
                ActaEstudioDTO estudioDTO = estudiosReturn.Find(delegate(ActaEstudioDTO estudio)
                {
                    return(estudio.Id == nota.IdEstudio);
                });
                if (estudioDTO == null)
                {
                    Estudio estudio = servEstudios.Obtener(nota.IdEstudio.ToString());
                    estudiosReturn.Add(servEstudios.DameActaEstudioDTO(estudio));
                }
            });

            return(estudiosReturn);
        }
示例#5
0
        public List <ActaEstudioDTO> ListarEstudiosDelActa(string idActa)
        {
            ServicioEstudios servEstudios = new ServicioEstudios();

            Acta acta = this.Obtener(idActa);

            return(ListarEstudiosDelActa(acta));
        }
示例#6
0
        public int Grabar(Documento documento)
        {
            documento.Validar();
            repository.Actualizar(documento);

            ServicioEstudios servEstudio = new ServicioEstudios();

            servEstudio.GrabarEstudioSemaforo(documento.IdEstudio.ToString());

            return(documento.Id);
        }
示例#7
0
        //metodo que se invoca cuando setea estados, modelo carta de respuesta, texto desde el acta
        public void GrabarDatosEstudio(string idActa, string datosActaEstudio)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();
            ServicioEstudios     servEstudios     = new ServicioEstudios();

            Acta acta = this.Obtener(idActa);

            ActaEstudio actaEstudio = null;

            dynamic datosAux = ServiciosHelpers.DeserializarGenerico(datosActaEstudio);

            int idEstudio = datosAux.IdEstudio;

            actaEstudio = acta.ObtenerEstudio(idEstudio);

            if (actaEstudio == null)
            {
                actaEstudio              = new ActaEstudio();
                actaEstudio.Estudio      = servEstudios.Obtener(idEstudio.ToString());
                actaEstudio.OrdenEstudio = acta.ObtenerOrdenEstudio(idEstudio);
            }

            actaEstudio.EstadoEstudio            = servParametricas.EstadoEstudioObtener(datosAux.IdEstadoEstudio);
            actaEstudio.CartaRespuestaModelo     = this.CartaRespuestaModeloObtener(datosAux.IdCartaRespuestaModelo);
            actaEstudio.TextoLibreCartaRespuesta = datosAux.TextoLibreCartaRespuesta;

            acta.AgregarEstudio(actaEstudio);

            this.Grabar(acta);

            /*actualizamos las notas del estudio*/
            RepositoryGenerico <Nota> notaRepository = new RepositoryGenerico <Nota>();
            Nota nota = null;

            int idNotaAntesDocumentos = acta.Notas.ToList <Nota>().Find(item => item.IdEstudio == idEstudio && !item.ActaImprimeAlFinal).Id;

            nota       = notaRepository.Obtener(idNotaAntesDocumentos);
            nota.Texto = string.Format("{0}", datosAux.ComentarioAntesDocumentos);
            notaRepository.Actualizar(nota);

            nota = null;
            int idNotaDespuesDocumentos = acta.Notas.ToList <Nota>().Find(item => item.IdEstudio == idEstudio && item.ActaImprimeAlFinal).Id;

            nota       = notaRepository.Obtener(idNotaDespuesDocumentos);
            nota.Texto = string.Format("{0}", datosAux.ComentarioDespuesDocumentos);
            notaRepository.Actualizar(nota);


            if (!acta.Cerrada && actaEstudio.EstadoEstudio != null)
            {
                servEstudios.GrabarEstado(actaEstudio.Estudio.Id.ToString(), actaEstudio.EstadoEstudio.Id.ToString());
            }
        }
示例#8
0
        public void GrabarNota(string idActa, string idNota, string imprimeAlFinal)
        {
            ServicioEstudios servEstudio = new ServicioEstudios();

            Acta acta = this.Obtener(idActa);
            Nota nota = servEstudio.ObtenerNota(idNota);

            nota.ActaImprimeAlFinal = string.IsNullOrEmpty(imprimeAlFinal) ? false : (imprimeAlFinal.Equals("1") ? true : false);

            acta.AgregarNota(nota);

            this.Grabar(acta);
        }
示例#9
0
        public Documento Obtener(string idDocumento)
        {
            ServicioEstudios servEstudio = new ServicioEstudios();
            Documento        documento   = null;

            int _idDocumento = idDocumento.ConvertirInt();

            if (_idDocumento != -1)
            {
                documento         = repository.Obtener(_idDocumento);
                documento.Estudio = servEstudio.Obtener(documento.IdEstudio.ToString());
                this.ObtenerRecordatoriosAlertas(documento);
            }

            return(documento);
        }
示例#10
0
        public Acta Obtener(string idActa)
        {
            ServicioEstudios servEstudio = new ServicioEstudios();
            Acta             acta        = null;

            if (idActa.ConvertirInt() != -1)
            {
                acta = repository.Obtener(idActa.ConvertirInt());
                acta.ComentarioInicialFijo = ServiciosHelpers.ObtenerTextoPlano(acta.ComentarioInicialFijo);
                acta.ComentarioInicial     = ServiciosHelpers.ObtenerTextoPlano(acta.ComentarioInicial);
                acta.ComentarioFinal       = ServiciosHelpers.ObtenerTextoPlano(acta.ComentarioFinal);
                //TODO: Para optimizar performance si quitamos del hbm el mapeo de documentos y notas, se deberian modificar todos las grabaciones de estos objetos
                //acta.Documentos = repository.ObtenerActaDocumentosTratados(idActa.ConvertirInt());
                acta.Notas = repository.ObtenerActaNotas(idActa.ConvertirInt());
            }

            if (acta != null)
            {
                acta.Documentos.ToList <ActaDocumento>().ForEach(delegate(ActaDocumento actaDoc)
                {
                    actaDoc.DocumentoVersion.Documento.Estudio = servEstudio.ObtenerSoloEstudio(actaDoc.DocumentoVersion.Documento.IdEstudio.ToString());
                    actaDoc.Descripcion = ServiciosHelpers.ObtenerTextoPlano(actaDoc.ComentarioDocumento);
                    acta.Notas.ToList <Nota>().FindAll(item => item.IdEstudio == actaDoc.IdEstudio)
                    .ForEach(delegate(Nota nota)
                    {
                        nota.ActaOrden = actaDoc.OrdenEstudio;
                    });
                });
                List <Nota> listNotas = acta.Notas.ToList <Nota>()
                                        .OrderBy(item => item.ActaOrden)
                                        .ToList <Nota>();

                listNotas.ForEach(delegate(Nota nota)
                {
                    nota.Estudio = servEstudio.ObtenerSoloEstudio(nota.IdEstudio.ToString());
                    nota.Texto   = ServiciosHelpers.ObtenerTextoPlano(nota.Texto);
                });

                acta.Notas.Clear();
                acta.Notas = listNotas;
                // .OrderBy(item => (item.ActaImprimeAlFinal ? 0 : 1)
            }

            return(acta);
        }
示例#11
0
        public void EliminarNota(string idActa, string idNota)
        {
            ServicioEstudios servEstudio = new ServicioEstudios();

            int _idNota = idNota.ConvertirInt();

            if (_idNota == -1)
            {
                throw new ApplicationException("No seleccionó nota que desea eliminar");
            }

            Acta acta = this.Obtener(idActa);
            Nota nota = servEstudio.ObtenerNota(idNota);

            acta.EliminarNota(nota);

            this.Grabar(acta);
        }
示例#12
0
        public Documento ObtenerDocumento(string idEstudio, string idDocumento)
        {
            ServicioEstudios servEstudio = new ServicioEstudios();
            Estudio          estudio     = servEstudio.Obtener(idEstudio);
            Documento        documento   = null;

            int _idDocumento = idDocumento.ConvertirInt();

            if (_idDocumento == -1)
            {
                documento = new Documento();
            }
            else
            {
                documento = estudio.ObtenerDocumento(_idDocumento);
                this.ObtenerRecordatoriosAlertas(documento);
            }
            documento.Estudio = estudio;

            return(documento);
        }
示例#13
0
        public void EliminarDocumento(string idEstudio, string idDocumento)
        {
            ServicioEstudios servEstudio = new ServicioEstudios();
            Estudio          estudio     = servEstudio.Obtener(idEstudio);
            Documento        documento   = null;

            int _idDocumento = idDocumento.ConvertirInt();

            if (estudio != null && _idDocumento != -1)
            {
                documento = estudio.ObtenerDocumento(_idDocumento);
            }

            if (documento == null)
            {
                throw new ApplicationException("No existe el documento que desea eliminar");
            }

            estudio.EliminarDocumento(documento);
            servEstudio.Grabar(estudio);
        }
示例#14
0
        public ActaDTO ObtenerActaDTO(string idActa)
        {
            ServicioEstudios servEstudios = new ServicioEstudios();

            Acta acta = this.Obtener(idActa);

            ActaDTO actaReturn = new ActaDTO();

            actaReturn.IdActa                = acta.Id;
            actaReturn.Descripcion           = acta.Descripcion;
            actaReturn.FechaActa             = acta.Fecha;
            actaReturn.Hora                  = acta.Hora;
            actaReturn.Cerrada               = acta.Cerrada;
            actaReturn.ComentarioInicialFijo = acta.ComentarioInicialFijo;
            actaReturn.ComentarioInicial     = acta.ComentarioInicial;
            actaReturn.ComentarioFinal       = acta.ComentarioFinal;

            actaReturn.EstudiosTratados = ListarEstudiosDelActa(acta);

            actaReturn.Participantes = acta.Participantes;

            return(actaReturn);
        }
示例#15
0
        public void Grabar(string id, string datos, string fechaAlta, string fechaActivacion, string idEstudio, string documentos)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();

            Recordatorio recordatorio    = null;
            Recordatorio recordatorioAux = serializer.Deserialize <Recordatorio>(datos);

            if (id.ConvertirInt() == -1)
            {
                recordatorio           = new Recordatorio();
                recordatorio.FechaAlta = DateTime.Now;
            }
            else
            {
                recordatorio = this.Obtener(id);
            }

            recordatorio.Descripcion        = recordatorioAux.Descripcion == null ? string.Empty : recordatorioAux.Descripcion;
            recordatorio.Vigente            = true;
            recordatorio.TipoRecordatorio   = this.TipoRecordatorioObtener(recordatorioAux.TipoRecordatorio.Id);
            recordatorio.EstadoRecordatorio = this.EstadoRecordatorioObtener(recordatorioAux.EstadoRecordatorio.Id);
            if (fechaActivacion.ConvertirDateTime() != DateTime.MinValue)
            {
                recordatorio.FechaActivacion = fechaActivacion.ConvertirDateTime();
            }
            recordatorio.AvisoMail       = recordatorioAux.AvisoMail.HasValue ? recordatorioAux.AvisoMail : false;
            recordatorio.AvisoPopup      = recordatorioAux.AvisoPopup.HasValue ? recordatorioAux.AvisoPopup : false;
            recordatorio.Color           = recordatorioAux.Color;
            recordatorio.Texto           = recordatorioAux.Texto;
            recordatorio.Destinatarios   = recordatorioAux.Destinatarios;
            recordatorio.DestinatariosCC = recordatorioAux.DestinatariosCC;
            recordatorio.Asunto          = recordatorioAux.Asunto;
            recordatorio.TextoMail       = recordatorioAux.TextoMail;
            recordatorio.EstadoMail      = recordatorioAux.EstadoMail;

            ServicioEstudios servEstudio = new ServicioEstudios();

            recordatorio.Estudio = servEstudio.Obtener(idEstudio);

            decimal mesesAlerta = -1;

            if (recordatorio.FechaActivacion.HasValue)
            {
                mesesAlerta = Math.Abs((DateTime.Now.Month - recordatorio.FechaActivacion.Value.Month) + 12 * (DateTime.Now.Year - recordatorio.FechaActivacion.Value.Year));
            }

            string[] recordatorioDocumentos = documentos.Split(';');
            foreach (string documento in recordatorioDocumentos)
            {
                if (documento.ConvertirInt() > 0)
                {
                    Documento docAgregar = recordatorio.Estudio.Documentos.ToList <Documento>().Find(delegate(Documento doc)
                    {
                        return(doc.Id == documento.ConvertirInt());
                    });

                    if (docAgregar != null)
                    {
                        recordatorio.AgregarDocumento(docAgregar, int.Parse(mesesAlerta.ToString()));
                    }
                }
            }

            recordatorio.Validar();
            repository.Actualizar(recordatorio);
        }
示例#16
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));
        }