/** * Récupère les paramètres passés au controleur. * * @throws ServletException - * @see owep.controle.CControleurBase#initialiserParametres() */ public void initialiserParametres() throws ServletException { OQLQuery lRequete; // Requête à réaliser sur la base QueryResults lResultat; // Résultat de la requête sur la base try { lListeTaches = new ArrayList(); lListeTachesImprevues = new ArrayList(); if (mSession.getIteration() != null) { // pour chaque tache for (int i = 0; i < mCollaborateur.getNbTaches(); i++) { // on regarde si toutes les conditions pour que la tache soit prete sont vérifiées MTache lTache = mCollaborateur.getTache(i); int lIdTache = lTache.getId(); // Récupère la liste des tâches du collaborateur. lRequete = getBaseDonnees() .getOQLQuery( "select TACHE from owep.modele.execution.MTache TACHE where mId = $1"); lRequete.bind(lIdTache); lResultat = lRequete.execute(); lTache = (MTache) lResultat.next(); // on vérifie la tâche verifierTache(lTache); } // pour chaque tâche imprévue for (int i = 0; i < mCollaborateur.getNbTachesImprevues(); i++) { // on regarde si toutes les conditions pour que la tache imprévue soit prete sont // vérifiées MTacheImprevue lTacheImprevue = mCollaborateur.getTacheImprevue(i); int lIdTacheImprevue = lTacheImprevue.getId(); // Récupère la liste des tâches du collaborateur. lRequete = getBaseDonnees() .getOQLQuery( "select TACHEIMPREVUE from owep.modele.execution.MTacheImprevue TACHEIMPREVUE where mId = $1"); lRequete.bind(lIdTacheImprevue); lResultat = lRequete.execute(); lTacheImprevue = (MTacheImprevue) lResultat.next(); // Si la tache correspond à l'itération sélectionnée if (lTacheImprevue.getIteration().getId() == mSession.getIteration().getId()) { lListeTachesImprevues.add(lTacheImprevue); } } mCollaborateur.setListe(new Integer(0), lListeTaches); mCollaborateur.setListe(new Integer(1), lListeTachesImprevues); } } catch (Exception eException) { eException.printStackTrace(); throw new ServletException(CConstante.EXC_TRAITEMENT); } }
/** * Vérifie si la tâche passée en paramètre appartient bien à l'itération en cours Vérifie si la * tâche passée en paramètre peut passer à l'état prête Ajoute la tâche à la liste des tâches à * afficher si elle appartient à l'itération en cours * * @throws ServletException - */ public void verifierTache(MTache pTache) throws ServletException { int cond; // booléen de validité de la condition int ltacheSansCondition; // booléen pour savoir si on est sur une tache sans condition try { // initialisation du booléen de validité de la condition cond = 1; // par defaut on est sur une tache sans conditions ltacheSansCondition = 1; // Si la tache correspond à l'itération sélectionnée if (pTache.getIteration().getId() == mSession.getIteration().getId()) { // si la tache n'est pas encore prete on verifie si on ne peut pas la faire passer a // prete if (pTache.getEtat() == -1) { // pour chaque condition for (int j = 0; j < pTache.getNbConditions(); j++) { ltacheSansCondition = 0; // on est sur une tache avec condition MCondition lCondition = pTache.getCondition(j); // si la condition est fausse if (lCondition.getTachePrecedente().getEtat() < lCondition.getEtat()) { cond = 0; } } } if (ltacheSansCondition == 0) { // si les conditions sont vérifiées, on met l'état à prêt if (cond == 1) pTache.setEtat(0); else pTache.setEtat(-1); } lListeTaches.add(pTache); } } catch (Exception eException) { eException.printStackTrace(); throw new ServletException(CConstante.EXC_TRAITEMENT); } }