Exemplo n.º 1
0
        public void GrabarEstudioTiposDocumentosSemaforo(string idEstudio, string tiposDocumento)
        {
            ServicioDocumentos servDocumentos = new ServicioDocumentos();
            RepositoryGenerico <EstudioTipoDocumento> repositoryETD = new RepositoryGenerico <EstudioTipoDocumento>();

            EstudioTipoDocumento estudioTipoDoc = null;
            Estudio estudio = Obtener(idEstudio);

            if (estudio == null)
            {
                throw new ApplicationException("No existe estudio");
            }

            repositoryETD.EliminarRegistros("EstudioTiposDocumento", "(IdEstudio = " + estudio.Id + ")");

            dynamic tiposDocs = ServiciosHelpers.DeserializarGenerico(tiposDocumento);

            foreach (var tipo in tiposDocs)
            {
                estudioTipoDoc         = new EstudioTipoDocumento();
                estudioTipoDoc.Estudio = estudio;
                string _aux = string.Format("{0}", tipo.Id);
                estudioTipoDoc.TipoDocumento = servDocumentos.TipoDocumentoObtener(_aux.ConvertirInt());
                repositoryETD.Actualizar(estudioTipoDoc);
            }
            this.GrabarEstudioSemaforo(idEstudio);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
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);
            }
        }
Exemplo n.º 4
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();
                    }
                });
            });
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
        private List <Documento> ObtenerDocumentos(string idEstudio)
        {
            ServicioDocumentos servDocumentos = new ServicioDocumentos();

            return(servDocumentos.ListarDocumentos(idEstudio));
        }
Exemplo n.º 7
0
        public List <string> ImprimirCartaRespuesta(string idActa, string idEstudio, bool exportarWord)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();
            ServicioDocumentos   servDocumentos   = new ServicioDocumentos();

            string idEstadoPedidoCambio = servParametricas.ParametroObtener("ESTADO_DOC_PEDIDO_CAMBIO");
            string idEstadoAprobado     = servParametricas.ParametroObtener("ESTADO_DOC_APROBADO");

            ServicioActas servicio = new ServicioActas();
            Acta          acta     = servicio.Obtener(idActa);

            List <ActaDocumento> actaDocs = acta.Documentos.ToList <ActaDocumento>()
                                            .FindAll(item => item.DocumentoVersion.Documento.Estudio.Id == idEstudio.ConvertirInt());

            //&& item.ImprimirCarta);

            if (actaDocs == null || actaDocs.Count == 0)
            {
                return(new List <string>());
            }

            ProcesadorPlantillaCarta procesador = new ProcesadorPlantillaCarta();

            procesador.IdEstadoPedidoCambio = idEstadoPedidoCambio.ConvertirInt();
            procesador.IdEstadoAprobado     = idEstadoAprobado.ConvertirInt();

            procesador.ComiteNombreCompleto = servParametricas.ParametroObtener("COMITE_NOMBRE_COMPLETO");
            procesador.ComiteIniciales      = servParametricas.ParametroObtener("COMITE_INICIALES");
            procesador.Vocales                 = acta.Vocales;
            procesador.PresidenteComite        = acta.PresidenteComite != null ? acta.PresidenteComite.NombreYApellido : string.Empty;
            procesador.LeyendaPresidenteComite = acta.ObtenerRolComiteParticipantes(acta.PresidenteComite) != null?acta.ObtenerRolComiteParticipantes(acta.PresidenteComite).Descripcion : "Presidente";

            procesador.FechaActa = acta.Fecha;
            //ProcesadorHelpers

            ActaEstudio actaEstudio = acta.ObtenerEstudio(idEstudio.ConvertirInt());

            if (actaEstudio.Estudio.IdTipoEstudio.HasValue)
            {
                actaEstudio.Estudio.TipoEstudio = servParametricas.TipoEstudioObtener(actaEstudio.Estudio.IdTipoEstudio.Value);
            }
            procesador.actaEstudio = actaEstudio;

            if (actaEstudio.Estudio.CentroHabilitado != null)
            {
                procesador.CentrosInternacion = servParametricas.CentroObtenerCentrosInternacion(actaEstudio.Estudio.CentroHabilitado.Id);
            }

            procesador.TiposDocumentosTratados  = servDocumentos.TiposDocumentoObtenerListarCartaRespuesta(-1);
            procesador.TiposDocumentosEvaluados = servDocumentos.TiposDocumentoObtenerListarCartaRespuesta((int)TIPO_DOCUMENTO_GRUPO.SE_EVALUA);

            if (actaEstudio.CartaRespuestaModelo.IncluirTodosDocumentosEstudio)
            {
                actaDocs = servicio.ListarDocumentoTratadosXEstudio(idEstudio);
            }

            procesador.plantillasTexto = servParametricas.PlantillaObtenerVigentes((int)TIPOS_PLANTILLA.APROBACION_ESTUDIO);

            //procesador.NombrePlantilla = "AprobacionEstudioModelo.html";
            procesador.NombrePlantilla = string.Format("{0}{1}.html", actaEstudio.CartaRespuestaModelo.NombrePlantilla, (exportarWord ? "Word" : string.Empty));

            procesador.ProcesarCartaRespuesta(actaDocs);

            return(procesador.HTMLProcesado);
        }