case 2 :  mTache.setEtat(2) ;    long difftps = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps = (int)(difftps/(60*1000.0)); mTache.setTempsPasse(mTache.getTempsPasse() + tps) ;   double rps = mTache.getResteAPasser() - tps ;  if ( rps < 0 ) rps = 0 ; mTache.setResteAPasser(rps) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;   case 3 :  mTache.setEtat(3) ;  mTache.setResteAPasser(0); mTache.setDateFinReelle(new Date()) ;     long difftps2 = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps2 = (int)(difftps2/(60*1000.0)); mTache.setTempsPasse(mTache.getTempsPasse() + tps2) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  default :  return "ListeTacheVisu" ;
long difftps = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps = (int)(difftps/(60*1000.0)); mTache.setTempsPasse(mTache.getTempsPasse() + tps) ;   double rps = mTache.getResteAPasser() - tps ;  if ( rps < 0 ) rps = 0 ; mTache.setResteAPasser(rps) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;   case 3 :  mTache.setEtat(3) ;  mTache.setResteAPasser(0); mTache.setDateFinReelle(new Date()) ;     long difftps2 = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps2 = (int)(difftps2/(60*1000.0)); mTache.setTempsPasse(mTache.getTempsPasse() + tps2) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  default :  return "ListeTacheVisu" ; } } catch (Exception eException) { eException.printStackTrace () ; throw new ServletException (CConstante.EXC_TRAITEMENT) ; }  finally { try { getBaseDonnees ().close () ; } catch (PersistenceException eException) { eException.printStackTrace () ; throw new ServletException (CConstante.EXC_DECONNEXION) ; }
    public String traiter () throws ServletException    {        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()) ;          }                     try          {            // Met  jour l'tat de la tche dans la base de donnes            getBaseDonnees ().begin () ;            getBaseDonnees ().update (mTache) ;            getBaseDonnees ().update (mCollaborateur) ;            getBaseDonnees ().commit () ;           }          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) ;            }          }                    // 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" ;      }    }