@POST
  @Path("progressSMD")
  public String setProgressSMD(
      @FormParam("nameSMD") String nameSMD,
      @FormParam("id_progress") long idProgress,
      @FormParam("title") String title,
      @FormParam("value") double valueProgress) {

    OperationInformationResources.logger.log(
        Level.INFO,
        "NAME: "
            + nameSMD
            + " Progress with (id = "
            + idProgress
            + ", etat = "
            + valueProgress
            + ")  \n contenu "
            + title);

    String result = "Progress with (id = " + idProgress + ", etat = " + valueProgress + ")";
    Session connect = HibernateUtil.getSessionFactory().openSession();

    if (idProgress < 0) {
      result += "   PROBLEM ID <0";
    } else {

      if (valueProgress < 0) {

        SiteSMD site = SiteSMD.findByName(connect, nameSMD);
        site.setHave_a_probleme(true);
        connect.beginTransaction();
        connect.saveOrUpdate(site);
        connect.getTransaction().commit();
      }

      ProgressData getProgress = ProgressData.findById(connect, idProgress);
      if (getProgress != null) {

        // remplire DATA
        getProgress.setTitle(title);
        getProgress.setValue(valueProgress);
        getProgress.setLast_date(Calendar.getInstance().getTime());
        if (valueProgress == 100) {
          getProgress.setFinished(true);
        }

        connect.beginTransaction();
        connect.saveOrUpdate(getProgress);
        connect.getTransaction().commit();

        result = "Status is updated";
      } else {
        // remplire DATA
        SiteSMD site = SiteSMD.findByName(connect, nameSMD);
        if (site == null) {
          result = "SMD Not Found";
        } else {
          getProgress = new ProgressData();
          getProgress.setId(idProgress);
          getProgress.setTitle(title);
          getProgress.setValue(valueProgress);
          getProgress.setLast_date(Calendar.getInstance().getTime());
          if (valueProgress == 100) {
            getProgress.setFinished(true);
          }
          getProgress.setSmd(site);

          connect.beginTransaction();
          connect.save(getProgress);
          connect.getTransaction().commit();
          result = "Status is updated";
        }
      }
    }
    connect.close();
    OperationInformationResources.logger.log(Level.FINEST, "Returned Value " + result);
    return result;
  }