/**
  * Met les filtres sous forme string pour affichage
  *
  * @param filtreCriticite
  * @param filtreEtat
  * @param filtreDateDebut
  * @param filtreEnvironnement
  * @param filtreNom
  * @param listProfil
  * @param filtreNom2
  * @param filtrePrenom2
  * @param filtreLogin2
  * @param filtreEmail2
  * @param filtreProfil2
  */
 public static JSONObject filtreToString(
     String filtreNom,
     Integer filtreEnvironnement,
     String filtreDateDebut,
     Integer filtreEtat,
     Integer filtreCriticite) {
   StringBuffer buffer = new StringBuffer();
   if (filtreNom != null && !filtreNom.equals("")) {
     buffer.append(StringConverter.toJson("Nom", filtreNom));
   }
   if (filtreEnvironnement != null && filtreEnvironnement != -1) {
     Environnement env = EnvironmentDatabaseService.get(filtreEnvironnement);
     buffer.append(StringConverter.toJson("Environnement", env.getEnvironnement()));
   }
   if (filtreDateDebut != null && !filtreDateDebut.equals("")) {
     buffer.append(StringConverter.toJson("Date de début", filtreDateDebut));
   }
   if (filtreEtat != null && filtreEtat != -1) {
     Checklist_Etat etat = ChecklistEtatDatabaseService.get(filtreEtat);
     buffer.append(StringConverter.toJson("Etat", etat.getEtat()));
   }
   if (filtreCriticite != null && filtreCriticite != -1) {
     Checklist_Criticite criticite = ChecklistCriticiteDatabaseService.get(filtreCriticite);
     buffer.append(StringConverter.toJson("Criticité", criticite.getLibelle()));
   }
   if (buffer.length() != 0) {
     String result =
         "{" + buffer.substring(0, buffer.lastIndexOf(PilotageConstants.SEPARATEUR_3)) + "}";
     return JSONObject.fromObject(result);
   } else return null;
 }
  @Override
  protected String executeMetier() {
    // recuperation des taches suivant les filtres, le tri et la page
    if (page < 1) page = 1;
    else if (nrPages != 0 && page > nrPages) page = nrPages;
    if (nrPerPage == 0) nrPerPage = PilotageConstants.NB_TACHES_PER_PAGE;
    if (sens == null || "".equals(sens)) sens = "asc";
    if (sort == null || "".equals(sort)) sort = "tache";
    pagination = new Pagination<Checklist_Base>(page, nrPerPage);
    listCriticite = ChecklistCriticiteDatabaseService.getAll();
    listEnvironnement = EnvironmentDatabaseService.getAll();
    listEtat = ChecklistEtatDatabaseService.getAll();

    // gestion du filtre
    Users userLogged = (Users) session.get(PilotageConstants.USER_LOGGED);
    Integer userLoggedId = userLogged.getId();
    filtre = FiltreDatabaseService.getFiltre(userLoggedId, titrePage);

    if (filtre != null) {
      try {
        Integer filtreId = filtre.getId();
        reloadFiltreBase(filtre.getFiltreString());

        listeTaches =
            ChecklistBaseDatabaseService.getAll(
                pagination,
                sort,
                sens,
                filtreNom,
                filtreEnvironnement,
                filtreDateDebut,
                filtreEtat,
                filtreCriticite,
                filtreDemandes);

        filtreJson =
            ShowChecklistBaseAction.filtreToString(
                filtreNom, filtreEnvironnement, filtreDateDebut, filtreEtat, filtreCriticite);

        if (validForm == 1) {
          if (filtreNomBase != filtreNom
              || filtreEnvironnementBase != filtreEnvironnement
              || filtreDateDebutBase != filtreDateDebut
              || filtreEtatBase != filtreEtat
              || filtreCriticiteBase != filtreCriticite) {
            filtreJson =
                ShowChecklistBaseAction.filtreToString(
                    filtreNom, filtreEnvironnement, filtreDateDebut, filtreEtat, filtreCriticite);
            FiltreDatabaseService.update(
                filtreId, filtreJson != null ? filtreJson.toString() : null);
          }
        }
      } catch (Exception e) {
        error = getText("error.message.generique") + " : " + e.getMessage();
        erreurLogger.error("Update de filtre administration checklist", e);
      }
    } else {
      try {
        listeTaches =
            ChecklistBaseDatabaseService.getAll(
                pagination,
                sort,
                sens,
                filtreNom,
                filtreEnvironnement,
                filtreDateDebut,
                filtreEtat,
                filtreCriticite,
                filtreDemandes);
        filtreJson =
            ShowChecklistBaseAction.filtreToString(
                filtreNom, filtreEnvironnement, filtreDateDebut, filtreEtat, filtreCriticite);
        if (validForm == 1) {
          if (filtreNom != null
              || filtreEnvironnement != null
              || filtreDateDebut != null
              || filtreEtat != null
              || filtreCriticite != null) {
            FiltreDatabaseService.create(
                userLoggedId, titrePage, filtreJson != null ? filtreJson.toString() : null);
          }
        }
      } catch (Exception e) {
        error = getText("error.message.generique") + " : " + e.getMessage();
        erreurLogger.error("Creation de filtre administration checklist", e);
      }
    }
    return OK;
  }