예제 #1
0
  @Override
  public List<TldGrupo> listaGruposUtilizados(String oidUsuario, boolean dejaSoloAsociadas)
      throws Exception {
    List<TldGrupo> resul = new ArrayList<TldGrupo>();
    // Primero añado las 3 por defecto
    if (!dejaSoloAsociadas) {
      TldGrupo grup1 = new TldGrupo();
      grup1.setNombre(bibliotecaI18n.traduce("mensajes.TEXTOS_TODAS_EN_LISTAS"));
      grup1.setOid(VALOR_TODAS_EN_LISTAS);
      resul.add(grup1);
      TldGrupo grupo2 = new TldGrupo();
      grupo2.setNombre(bibliotecaI18n.traduce("mensajes.TEXTOS_NO_ASOCIADAS_EN_LISTAS"));
      grupo2.setOid(VALOR_NO_ASOCIADAS_EN_LISTAS);
      resul.add(grupo2);
    }
    TldGrupo grupo3 = new TldGrupo();
    grupo3.setNombre(bibliotecaI18n.traduce("mensajes.TEXTOS_ASOCIADAS_EN_LISTAS"));
    grupo3.setOid(VALOR_ASOCIADAS_EN_LISTAS);
    resul.add(grupo3);

    List<TldGrupo> gruposBD = grupoDao.findAllUtilizados(oidUsuario);
    // Añado el resto
    for (TldGrupo grupoBD : gruposBD) {
      TldGrupo grupo = new TldGrupo();
      grupo.setOid(grupoBD.getOid());
      grupo.setNombre(grupoBD.getNombre());
      grupo.setDescripcion(grupoBD.getDescripcion());

      resul.add(grupo);
    }

    return resul;
  }
예제 #2
0
  @Override
  public void vinculaUsuariosGrupo(String oidGrupo, List<String> listOidUsuarios)
      throws TimeLapseException {
    TimeLapseException errores = new TimeLapseException();
    // Compurebo que existen los grupos y usuarios
    TldGrupo grupo = grupoDao.find(oidGrupo);
    List<TldUsuario> listaUsuariosAAsociar = new ArrayList<TldUsuario>();
    if (grupo == null) {
      String cadIdGrupo = bibliotecaI18n.traduce("mensajes.Identificador_Grupo");
      Mensaje mensaje =
          factoriaMens.getMensaje(ConstantesException.grupoInexistente, cadIdGrupo + oidGrupo);
      errores.addMensaje(mensaje);
    } else {
      // Recorro los identificadores de usuarios a vincular
      for (String oidUsuarioIterado : listOidUsuarios) {
        TldUsuario usuarioIterado = usuarioDao.findById(oidUsuarioIterado);
        if (usuarioIterado == null) {
          String cadIdUsuario = bibliotecaI18n.traduce("mensajes.Identificador_Usuario");
          Mensaje mensaje =
              factoriaMens.getMensaje(
                  ConstantesException.usuarioInexistente, cadIdUsuario + oidUsuarioIterado);
          errores.addMensaje(mensaje);
        } else {
          listaUsuariosAAsociar.add(usuarioIterado);
        }
      }
      // Si no se han producido errores todavía
      if (errores.isEmpty()) {
        // Luego compruebo que no existan alguna de las relaciones que voy a crear
        List<TlrUsuarioGrupo> relacionesYaExistentes =
            usuarioGrupoDao.findAll(grupo, listaUsuariosAAsociar);
        /*
         * Si ya existen relaciones existentes elevo la excepción pertinente, ya que no se pueden crera
         * más de una relación entre el mismo grupo y usuario
         */
        if (!relacionesYaExistentes.isEmpty()) {

          String cadIdGrupo = bibliotecaI18n.traduce("mensajes.Identificador_Grupo");
          Mensaje mensaje =
              factoriaMens.getMensaje(
                  ConstantesException.relacionUsuarioGrupoYaExistente,
                  cadIdGrupo + relacionesYaExistentes.get(0).getTldGrupo().getNombre());
          errores.addMensaje(mensaje);

        } else {
          // Hago persistentes las relaciones
          usuarioGrupoDao.vinculaUsuarioGrupo(grupo, listaUsuariosAAsociar);
        }
      }
    }

    // Si se produce un error, elebo la excepción
    if (!errores.isEmpty()) {
      throw errores;
    }
  }
예제 #3
0
  public TldGrupo elimina(String oid) throws Exception {
    TldGrupo grupoEliminado = null;

    try {
      grupoEliminado = grupoDao.remove(oid);
    } catch (DataIntegrityViolationException e) {
      Mensaje men = factoriaMens.getMensaje(ConstantesException.noSePuedeEliminarGruposConTareas);
      throw new TimeLapseException(men);
    }

    return grupoEliminado;
  }
예제 #4
0
  public List<TldGrupo> listaGruposCreados(String oidUsuario) throws Exception {
    List<TldGrupo> resul = new ArrayList<TldGrupo>();
    List<TldGrupo> gruposBD = grupoDao.findAllCreados(oidUsuario);

    for (TldGrupo grupoBD : gruposBD) {

      TldGrupo grupo = new TldGrupo();
      grupo.setOid(grupoBD.getOid());
      grupo.setNombre(grupoBD.getNombre());
      grupo.setDescripcion(grupoBD.getDescripcion());

      resul.add(grupo);
    }
    return resul;
  }
예제 #5
0
  @Override
  public void desvinculaUsuarioGrupo(String oidGrupo, List<String> listOidUsuarios)
      throws TimeLapseException {
    TimeLapseException errores = new TimeLapseException();
    // Compruebo que exitan tanto el grupo como los usuarios
    TldGrupo grupo = grupoDao.find(oidGrupo);
    List<TldUsuario> listaUsuariosADesasociar = new ArrayList<TldUsuario>();

    if (grupo == null) {
      String cadIdGrupo = bibliotecaI18n.traduce("mensajes.Identificador_Grupo");
      Mensaje mensaje =
          factoriaMens.getMensaje(ConstantesException.grupoInexistente, cadIdGrupo + oidGrupo);
      errores.addMensaje(mensaje);
    } else {
      // Recorro los identificadores de usuarios a vincular
      for (String oidUsuarioIterado : listOidUsuarios) {
        TldUsuario usuarioIterado = usuarioDao.findById(oidUsuarioIterado);
        if (usuarioIterado == null) {
          String cadIdUsuario = bibliotecaI18n.traduce("mensajes.Identificador_Usuario");
          Mensaje mensaje =
              factoriaMens.getMensaje(
                  ConstantesException.usuarioInexistente, cadIdUsuario + oidUsuarioIterado);
          errores.addMensaje(mensaje);
        } else {
          listaUsuariosADesasociar.add(usuarioIterado);
        }
      }
      // Si no se han producido errores todavía
      if (errores.isEmpty()) {
        // Desvinculo las tareas asociadas a esa persona ya que va a dejar de estar en el grupo
        tareaDao.desvinculaTareasUsuariosDelGrupoADesvinculado(grupo, listaUsuariosADesasociar);
        // Llamo a la función que se encarga de desvincular las tareas vinculadas con el grupo al
        // que pertenece
        tareaDao.desvinculaTareasGrupoDesvinculado(grupo, listaUsuariosADesasociar);

        // Llamo al método que se encarga de eliminarlos de forma transaccional
        usuarioGrupoDao.desvinculaUsuarioGrupo(grupo, listaUsuariosADesasociar);
      }
    }
    // Si se ha producido alguna excepción, informo de ello elebando la misma
    if (!errores.isEmpty()) {
      throw errores;
    }
  }
예제 #6
0
 public void actualiza(TldGrupo grupo) throws Exception {
   grupoDao.save(grupo);
 }
예제 #7
0
  @Override
  public TldGrupo encuentra(String oid) throws Exception {

    return grupoDao.find(oid);
  }