@Util
  public static void prepararParaFirmarFuncionarioHabilitadoFormPreparar(Long idSolicitud) {
    play.Logger.info("Preparamos para firmar por el funcionario Habilitado (no hace nada aún)");
    prepararParaFirmarFormPreparar(idSolicitud);
    Solicitud dbSolicitud = PaginaFirmaController.getSolicitud(idSolicitud);

    if (!Messages.hasErrors()) {
      // Borra firmantes anteriores
      List<Firmante> firmantesBack = new ArrayList<Firmante>(dbSolicitud.registro.firmantes);
      dbSolicitud.registro.firmantes.clear();
      dbSolicitud.registro.save();
      FirmaUtils.borrarFirmantes(firmantesBack);

      // Calcula quién puede firmar la solicitud (los funcionarios habilitados)
      dbSolicitud.registro.firmantes = FuncionariosHabilitados.getFirmantes();

      dbSolicitud.registro.save();

      play.Logger.info("FIRMANTES");
      for (Firmante f : dbSolicitud.registro.firmantes) {
        play.Logger.info(f.toString());
      }
      dbSolicitud.solicitante.autorizaFuncionario = true;
      dbSolicitud.registro.fasesRegistro.setFase(FaseRegistroEnum.preparadaFuncionario);
      dbSolicitud.save();
      // Debemos comprobar que el documento con el tipo de URI haya sido añadido a la documentación
      Messages.ok("Preparado para firmar por el funcionario correctamente");
    }
  }
  @Util
  public static void prepararParaFirmarFormPreparar(Long idSolicitud) {
    // Sobreescribir este método para asignar una acción
    Solicitud dbSolicitud = PaginaFirmaController.getSolicitud(idSolicitud);

    play.Logger.info("Preparamos para firmar");
    FirmaService firmaService = InjectorConfig.getInjector().getInstance(FirmaService.class);

    FirmaUtils.generarOficial(dbSolicitud);

    if (!Messages.hasErrors()) {
      dbSolicitud.registro.fasesRegistro.borrador = true;
      dbSolicitud.solicitante.autorizaFuncionario = false;
      dbSolicitud.registro.fasesRegistro.setFase(FaseRegistroEnum.preparada);
      dbSolicitud.save();

      // Borra firmantes anteriores
      List<Firmante> firmantesBack = new ArrayList<Firmante>(dbSolicitud.registro.firmantes);
      dbSolicitud.registro.firmantes.clear();
      dbSolicitud.registro.save();
      FirmaUtils.borrarFirmantes(firmantesBack);

      // Calcula quién puede firmar la solicitud
      dbSolicitud.registro.firmantes = dbSolicitud.solicitante.calcularFirmantes();

      // dbSolicitud.solicitante.autorizaFuncionario = true;
      dbSolicitud.registro.save();

      play.Logger.info("FIRMANTES");
      for (Firmante f : dbSolicitud.registro.firmantes) {
        play.Logger.info(f.toString());
      }
    }

    if (!Messages.hasErrors()) Messages.ok("Solicitud preparada para firmar");
  }