mTache.setResteAPasser(rps) ;
mTache.setListe("resteAPasser", new Double(rps)) ; mTache.setListe("dateFinReelle", mTache.getDateFinReelle()) ;
    public String traiter () throws ServletException    {        try      {        Date dateFinChrono = new Date () ;        // dclaration d'un calendrier        GregorianCalendar calendrierFinChrono = new GregorianCalendar();        // initialise le calendrier  la valeur calendrierFinChrono        calendrierFinChrono.setTime(dateFinChrono);                switch(idBoutonClique){                    // cas ou on appuie sur le bouton commencer          case 1 :             // si la tache tait dans l'tat non dmarr              if (mTache.getEtat() == 0)             {                // on met l etat de la tache  'commenc' et on retient la date de dbut                // on met la date de fin restime (i.e relle)  la date de fin prvue                // on retient la date courante                mTache.setEtat(1) ;                 mTache.setDateDebutReelle(new Date()) ;                                 //si la date de dbut relle est diffrente de celle prvue ; on modifie la date de fin restime                if(mTache.getDateDebutPrevue() != mTache.getDateDebutReelle())                {                  long ecartDate = mTache.getDateFinPrevue().getTime() + mTache.getDateDebutReelle().getTime() - mTache.getDateDebutPrevue().getTime();	                  mTache.setDateFinReelle(new Date(ecartDate)) ;                 }                else                {                  mTache.setDateFinReelle(mTache.getDateFinPrevue()) ;                }                                mTache.setDateDebutChrono(new Date().getTime()) ;                // Le collaborateur a maintenant une tche en cours                mCollaborateur.setTacheEnCours(mTache.getId()) ;            }               // si la tache tait dans l'tat suspendu            if (mTache.getEtat() == 2)             {              // on met l etat de la tache  'commenc' et on retient la date de dbut              mTache.setEtat(1) ;               mTache.setDateDebutChrono(new Date().getTime()) ;              // Le collaborateur a maintenant une tche en cours              mCollaborateur.setTacheEnCours(mTache.getId()) ;            }             // Met  jour l'tat de la tche dans la base de donnes            getBaseDonnees ().begin () ;            getBaseDonnees ().update (mTache) ;            getBaseDonnees ().update (mCollaborateur) ;            getBaseDonnees ().commit () ;             // Transmet les donnes  la JSP d'affichage.            return "ListeTacheVisu" ;                        // cas ou on appuie sur le bouton suspendre           case 2 :             // on met l etat de la tache  'suspendu'            mTache.setEtat(2) ;             // calcul du temps pass                        // temps pass = date de fin du chrono - date de dbut du chrono            long difftps = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();            // conversion du temps en minutes            int tps = (int)(difftps/(60*1000.0));            mTache.setTempsPasse(mTache.getTempsPasse() + tps) ;                        // calcul du reste  passer = Reste  passer - temps pass            double rps = mTache.getResteAPasser() - tps ;            // le reste  passer ne peut pas tre ngatif            if ( rps < 0 ) rps = 0 ;            mTache.setResteAPasser(rps) ;                        // Transmet les donnes  la JSP d'affichage.            getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ;            return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;            // cas ou on appuie sur le bouton terminer          case 3 :              // on met l etat de la tache  'termin'            mTache.setEtat(3) ;             // on met le reste  passer  0 et la date de fin restime  la date courante            mTache.setResteAPasser(0);            mTache.setDateFinReelle(new Date()) ;                        // calcul du temps pass                        // temps pass = date de fin du chrono - date de dbut du chrono            long difftps2 = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();            // conversion du temps en minutes            int tps2 = (int)(difftps2/(60*1000.0));            mTache.setTempsPasse(mTache.getTempsPasse() + tps2) ;                        // Transmet les donnes  la JSP d'affichage.            getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ;            return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;                      default :             // Transmet les donnes  la JSP d'affichage.            return "ListeTacheVisu" ;        }      }      catch (Exception eException)      {        eException.printStackTrace () ;        throw new ServletException (CConstante.EXC_TRAITEMENT) ;      }      // Ferme la connexion  la base de donnes.      finally      {        try        {          getBaseDonnees ().close () ;        }        catch (PersistenceException eException)        {          eException.printStackTrace () ;          throw new ServletException (CConstante.EXC_DECONNEXION) ;        }      }    }