@RequestMapping(method = RequestMethod.PUT)
  public String update(
      @Valid @ModelAttribute("prueba") Prueba prueba,
      BindingResult result,
      ModelMap modelMap,
      SessionStatus status,
      HttpServletRequest request) {
    if (prueba == null) throw new IllegalArgumentException("A prueba is required");

    // Metodo para traer los usuario de la UAI de una institucion en
    // especifico
    Util util = new Util();
    Query query = Auditor.findAuditorsById_OrganismoEnte(util.traerIdRif());
    List<Auditor> todos = query.getResultList();
    List<Auditor> losQueSon = new LinkedList<Auditor>();
    for (Auditor a : todos) {
      List<Usuario> usuarios = Usuario.findUsuariosByLogin(a.getLogin()).getResultList();
      for (Usuario u : usuarios) {
        for (RolUsuario r : u.getRoles()) {
          if (r.getNombre().equals("ROLE_UNIDAD_COORDINADOR")) {
            losQueSon.add(a);
            break;
          } else if (r.getNombre().equals("ROLE_UNIDAD_AUDITOR")) {
            losQueSon.add(a);
            break;
          } else if (r.getNombre().equals("ROLE_UNIDAD_GERENTE")) {
            losQueSon.add(a);
            break;
          }
        }
      }
    }

    if (result.hasErrors()) {
      modelMap.addAttribute("prueba", prueba);
      // modelMap.addAttribute("actuacions",
      // Actuacion.findAllActuacions());
      modelMap.addAttribute("auditors", losQueSon);
      modelMap.addAttribute("documentoes", Documento.findAllDocumentoes());
      modelMap.addAttribute(
          "estadoactividadactuacions", EstadoActividadActuacion.findAllEstadoActividadActuacions());
      modelMap.addAttribute(
          "requerimientoes",
          Requerimiento.findRequerimientoesByActuacion(prueba.getCodigoActuacion())
              .getResultList());
      return "prueba/update";
    }

    prueba.merge();
    Util.registrarEntradaEnBitacora(prueba, "Se modificó la Prueba ", request.getRemoteAddr());
    status.setComplete();

    return "redirect:/prueba/" + prueba.getId();
  }
  @RequestMapping(value = "/prueba/{id}/form", method = RequestMethod.GET)
  public String updateForm(@PathVariable("id") Long id, ModelMap modelMap) {
    if (id == null) throw new IllegalArgumentException("An Identifier is required");

    Prueba laPrueba = Prueba.findPrueba(id);

    // Metodo para traer los usuario de la UAI de una institucion en
    // especifico
    Util util = new Util();
    Query query = Auditor.findAuditorsById_OrganismoEnte(util.traerIdRif());
    List<Auditor> todos = query.getResultList();
    List<Auditor> losQueSon = new LinkedList<Auditor>();
    for (Auditor a : todos) {
      List<Usuario> usuarios = Usuario.findUsuariosByLogin(a.getLogin()).getResultList();
      for (Usuario u : usuarios) {
        for (RolUsuario r : u.getRoles()) {
          if (r.getNombre().equals("ROLE_UNIDAD_COORDINADOR")) {
            losQueSon.add(a);
            break;
          } else if (r.getNombre().equals("ROLE_UNIDAD_AUDITOR")) {
            losQueSon.add(a);
            break;
          } else if (r.getNombre().equals("ROLE_UNIDAD_GERENTE")) {
            losQueSon.add(a);
            break;
          }
        }
      }
    }

    modelMap.addAttribute("prueba", laPrueba);
    modelMap.addAttribute("actuacion", laPrueba.getCodigoActuacion());
    // modelMap.addAttribute("actuacions", Actuacion.findAllActuacions());
    modelMap.addAttribute("auditors", losQueSon);
    modelMap.addAttribute("documentoes", Documento.findAllDocumentoes());
    modelMap.addAttribute(
        "estadoactividadactuacions", EstadoActividadActuacion.findAllEstadoActividadActuacions());

    Query queryObjetivos =
        ObjetivoEspecifico.findObjetivoEspecificoesByActuacion(laPrueba.getCodigoActuacion());
    List<ObjetivoEspecifico> objetivoespecificoes = queryObjetivos.getResultList();
    modelMap.addAttribute("objetivoespecificoes", objetivoespecificoes);

    modelMap.addAttribute(
        "requerimientoes",
        Requerimiento.findRequerimientoesByActuacion(laPrueba.getCodigoActuacion())
            .getResultList());

    return "prueba/update";
  }
  @RequestMapping(value = "/prueba/form", method = RequestMethod.GET)
  public String createForm(
      @RequestParam("idActuacion") long idActuacion, HttpServletRequest hsr, ModelMap modelMap) {

    // String idActividad = "";
    Prueba laPrueba = new Prueba();
    //
    if (hsr.getParameter("idActividad") != null) {
      // idActividad = hsr.getParameter("idActividad");
      // Entra aqui si tiene un padre
      ActividadActuacion miPadre =
          ActividadActuacion.findActividadActuacion(new Long(hsr.getParameter("idActividad")));
      laPrueba.setActividadActuacion(miPadre);
      if (miPadre instanceof ActividadGeneral) {
        // Si la actividad es hija de una ActividadGeneral entonces es
        // de tipo Tarea
        // y debo hacer set del objetivoAMitigar del padre porque será
        // el mismo
        ObjetivoEspecifico elObjetivoDeMiPadre = miPadre.getObjetivoAMitigar();
        laPrueba.setObjetivoAMitigar(elObjetivoDeMiPadre);
        modelMap.addAttribute("esActividadHija", "true");
        modelMap.addAttribute("objetivoAMitigar", elObjetivoDeMiPadre);
      }
    } else {
      modelMap.addAttribute("esActividadHija", "false");
    }

    // Metodo para traer los usuario de la UAI de una institucion en
    // especifico
    Util util = new Util();
    Query query = Auditor.findAuditorsById_OrganismoEnte(util.traerIdRif());
    List<Auditor> todos = query.getResultList();
    List<Auditor> losQueSon = new LinkedList<Auditor>();
    for (Auditor a : todos) {
      List<Usuario> usuarios = Usuario.findUsuariosByLogin(a.getLogin()).getResultList();
      for (Usuario u : usuarios) {
        for (RolUsuario r : u.getRoles()) {
          if (r.getNombre().equals("ROLE_UNIDAD_COORDINADOR")) {
            losQueSon.add(a);
            break;
          } else if (r.getNombre().equals("ROLE_UNIDAD_AUDITOR")) {
            losQueSon.add(a);
            break;
          } else if (r.getNombre().equals("ROLE_UNIDAD_GERENTE")) {
            losQueSon.add(a);
            break;
          }
        }
      }
    }

    Actuacion miActuacion = Actuacion.findActuacion(idActuacion);
    laPrueba.setCodigoActuacion(miActuacion);

    modelMap.addAttribute("prueba", laPrueba);
    modelMap.addAttribute("actuacion", miActuacion);
    // modelMap.addAttribute("actuacions", Actuacion.findAllActuacions());
    modelMap.addAttribute("auditors", losQueSon);
    modelMap.addAttribute("documentoes", Documento.findAllDocumentoes());
    modelMap.addAttribute(
        "estadoactividadactuacions", EstadoActividadActuacion.findAllEstadoActividadActuacions());

    Query queryObjetivos =
        ObjetivoEspecifico.findObjetivoEspecificoesByActuacion(
            Actuacion.findActuacion(idActuacion));
    List<ObjetivoEspecifico> objetivoespecificoes = queryObjetivos.getResultList();
    modelMap.addAttribute("objetivoespecificoes", objetivoespecificoes);

    modelMap.addAttribute(
        "requerimientoes",
        Requerimiento.findRequerimientoesByActuacion(miActuacion).getResultList());

    return "prueba/create";
  }