lArtefactSortie.getTacheEntree ().supprimerArtefactEntree (lArtefactSortie) ; lArtefactSortie.setTacheEntree (null) ;
if (lArtefactSortie.getTacheEntree () != null) { lArtefactSortie.getTacheEntree ().supprimerArtefactEntree (lArtefactSortie) ; lArtefactSortie.setTacheEntree (null) ; }
  public void initialiserParametres () throws ServletException  {    // Modification d'une itration.    if (getRequete ().getParameter (CConstante.PAR_MODIFIER) != null)    {      // Rcupre l'itration  modifier et la met dans la session.      int lIdIteration = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_ITERATION)) ;            int lIndiceIteration = 0 ;      while (mProjet.getIteration (lIndiceIteration).getId () != lIdIteration)      {        lIndiceIteration ++ ;      }      getRequete ().getSession ().setAttribute (CConstante.SES_ITERATION, mProjet.getIteration (lIndiceIteration)) ;    }    else    // Ajout d'une nouvelle itration.    if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_VIDE))    {      // Initialise une nouvelle itration.      mIteration = new MIteration () ;      mIteration.setNom ("") ;      mIteration.setNumero (mProjet.getNbIterations () + 1) ;      mIteration.setProjet (mProjet) ;      getRequete ().getSession ().setAttribute (CConstante.SES_ITERATION, mIteration) ;    }    else    {      // Projet ouvert par l'utilisateur.      mIteration      = (MIteration) getRequete ().getSession ().getAttribute (CConstante.SES_ITERATION) ;      MProjet lProjet = mIteration.getProjet () ;            // Ajout d'une tche.      if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITAJOUTER))      {        MTache lTache = new MTache () ;        MCollaborateur lCollaborateur = null;        MActivite      lActivite = null ;                int lIdCollaborateur = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTECOLLABORATEURS)) ;        int lIdActivite      = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEACTIVITES)) ;                // TODO : faire une mthode de recherche avec classe de base contenant getId        for (int i = 0 ; i < lProjet.getNbCollaborateurs () ; i ++)         {          if (lProjet.getCollaborateur (i).getId () == lIdCollaborateur)          {            lCollaborateur = lProjet.getCollaborateur (i) ;          }          }          // TODO : fin        // TODO : idem        MProcessus lProcessus = lProjet.getProcessus () ;         for (int i = 0 ; i <  lProcessus.getNbComposants () ; i++)        {          MComposant lComposant = lProcessus.getComposant (i) ;          for (int j = 0 ; j < lComposant.getNbDefinitionsTravail (); j++)          {            MDefinitionTravail lDefTrav = lComposant.getDefinitionTravail (j) ;            for (int k = 0 ; k < lDefTrav.getNbActivites (); k++)            {              if (lDefTrav.getActivite(k).getId() == lIdActivite)              {                lActivite = lDefTrav.getActivite(k) ;              }              }          }          }          // TODO : idem fin                VTransfert.transferer (getRequete (), mIteration, CConstante.PAR_ARBREITERATION) ;        VTransfert.transferer (getRequete (), lTache, CConstante.PAR_ARBRETACHES) ;                // Met  jour le modle.        lTache.setIteration (mIteration) ;        lTache.setCollaborateur (lCollaborateur) ;        lTache.setActivite (lActivite) ;        mIteration.addTache (lTache) ;        lCollaborateur.addTache (lTache) ;        lActivite.addTache (lTache) ;      }      // Modification d'une tche si on la modifie directement ou si on ajoute, modifie ou supprime un artefact.      else if ((VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITMODIFIER)) ||        (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITAJOUTER_ARTSORTIES)) ||        (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITMODIFIER_ARTSORTIES)) ||        (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITSUPPRIMER_ARTSORTIES)))      {        MTache lTacheTmp    = new MTache () ;                MCollaborateur lCollaborateur = null ;        MActivite      lActivite = null ;                int lIdCollaborateur = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTECOLLABORATEURS)) ;        int lIdActivite      = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEACTIVITES)) ;                // TODO : faire une mthode de recherche avec classe de base contenant getId        // TODO : ne faire le parcours que si l'activit ou le collaborateur a chang        for (int i = 0 ; i < lProjet.getNbCollaborateurs() ; i ++)         {          if (lProjet.getCollaborateur (i).getId () == lIdCollaborateur)          {            lCollaborateur = lProjet.getCollaborateur (i) ;          }          }          // TODO : fin        // TODO : idem        MProcessus lProcessus = lProjet.getProcessus () ;         for (int i = 0 ; i <  lProcessus.getNbComposants () ; i++)        {          MComposant lComposant = lProcessus.getComposant (i) ;          for (int j = 0 ; j < lComposant.getNbDefinitionsTravail (); j++)          {            MDefinitionTravail lDefTrav = lComposant.getDefinitionTravail (j) ;            for (int k = 0 ; k < lDefTrav.getNbActivites (); k++)            {              if (lDefTrav.getActivite(k).getId() == lIdActivite)              {                lActivite = lDefTrav.getActivite(k) ;              }              }          }          }          // TODO : idem fin        // Indice de la tche et de l'artefact dans leur liste respective.        int lIndiceTache     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;                VTransfert.transferer (getRequete (), mIteration, CConstante.PAR_ARBREITERATION) ;        VTransfert.transferer (getRequete (), lTacheTmp, CConstante.PAR_ARBRETACHES) ;                // Met  jour le modle.        // Remarque : On ne met pas  jour la liste des artefacts car l'activit ne peut tre        // modifie si un artefact est prsent (cf. FIterationModif.jsp)        MTache lTache = mIteration.getTache (lIndiceTache) ;        lTache.setNom (lTacheTmp.getNom ()) ;        lTache.setChargeInitiale (lTacheTmp.getChargeInitiale ()) ;        lTache.setDescription (lTacheTmp.getDescription ()) ;        lTache.setDateDebutPrevue (lTacheTmp.getDateDebutPrevue ()) ;        lTache.setDateFinPrevue (lTacheTmp.getDateDebutPrevue ()) ;                lTache.getCollaborateur ().supprimerTache (lTache) ;        lTache.setCollaborateur (lCollaborateur) ;        lCollaborateur.addTache (lTache) ;        lTache.getActivite ().supprimerTache (lTache) ;        lTache.setActivite (lActivite) ;        lActivite.addTache (lTache) ;      }      // Supprimer une tche.      else if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITSUPPRIMER))      {        // Indice de la tche et de l'artefact dans leur liste respective.        int lIndiceTache     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;                VTransfert.transferer (getRequete (), mIteration, CConstante.PAR_ARBREITERATION) ;        MTache lTache = mIteration.getTache (lIndiceTache) ;                // Met  jour le modle.        mIteration.supprimerTache (lIndiceTache) ;        lTache.getCollaborateur ().supprimerTache (lTache) ;        lTache.getActivite ().supprimerTache (lTache) ;                // Supprime la liste des artefacts en entres.        for (int i = 0; i < lTache.getNbArtefactsEntrees (); i ++)        {          MArtefact lArtefactEntree = lTache.getArtefactEntree (i) ;          lTache.supprimerArtefactEntree (i) ;          lArtefactEntree.setTacheEntree (null) ;        }        // Supprime la liste des artefacts en sorties.        for (int i = 0; i < lTache.getNbArtefactsSorties (); i ++)        {          MArtefact lArtefactSortie = lTache.getArtefactSortie (i) ;                    lTache.supprimerArtefactSortie (i) ;          lArtefactSortie.setTacheSortie (null) ;          lArtefactSortie.getTacheEntree ().supprimerArtefactEntree (lArtefactSortie) ;          lArtefactSortie.setTacheEntree (null) ;          lArtefactSortie.getProduit ().supprimerArtefact (lArtefactSortie) ;          lArtefactSortie.setProduit (null) ;          lArtefactSortie.getResponsable ().supprimerArtefact (lArtefactSortie) ;          lArtefactSortie.setResponsable (null) ;          lArtefactSortie.getProjet ().supprimerArtefact (lArtefactSortie) ;          lArtefactSortie.setProjet (null) ;        }      }                  // Ajout d'un artefact.      if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITAJOUTER_ARTSORTIES))      {        MArtefact lArtefactSortie = new MArtefact () ;        VTransfert.transferer (getRequete (), lArtefactSortie, CConstante.PAR_ARBREARTEFACTSORTIES) ;                // Indice de la tche et de l'artefact dans leur liste respective.        int lIndiceTache       = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;        int lIndiceProduit     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEPRODUITS)) ;        int lIndiceResponsable = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTERESPONSABLES)) ;                MTache         lTache       = mIteration.getTache (lIndiceTache) ;        MActivite      lActivite    = lTache.getActivite () ;        MProduit       lProduit     = lActivite.getProduitSortie (lIndiceProduit) ;        MCollaborateur lResponsable = lProduit.getResponsable ().getCollaborateur (lIndiceResponsable) ;                // Mise  jour du modle.        lArtefactSortie.setTacheSortie (lTache) ;        lTache.addArtefactSortie (lArtefactSortie) ;        lArtefactSortie.setProjet (lProjet) ;        lProjet.addArtefact (lArtefactSortie) ;        lArtefactSortie.setProduit (lProduit) ;        lProduit.addArtefact (lArtefactSortie) ;        lArtefactSortie.setResponsable (lResponsable) ;        lResponsable.addArtefact (lArtefactSortie) ;      }      // Modification d'un artefact.      else if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITMODIFIER_ARTSORTIES))      {        // Indice de la tche et de l'artefact dans leur liste respective.        int lIndiceTache     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;        int lIndiceArtSortie = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEARTEFACTSSORTIES)) ;        int lIndiceProduit     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEPRODUITS)) ;        int lIndiceResponsable = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTERESPONSABLES)) ;                MArtefact lArtefactSortieTmp = new MArtefact () ;        MArtefact lArtefactSortie = mIteration.getTache (lIndiceTache).getArtefactSortie (lIndiceArtSortie) ;                VTransfert.transferer (getRequete (), lArtefactSortieTmp, CConstante.PAR_ARBREARTEFACTSORTIES) ;                MTache         lTache       = mIteration.getTache (lIndiceTache) ;        MActivite      lActivite    = lTache.getActivite () ;        MProduit       lProduit     = lActivite.getProduitSortie (lIndiceProduit) ;        MCollaborateur lResponsable = lProduit.getResponsable ().getCollaborateur (lIndiceResponsable) ;                lArtefactSortie.setNom (lArtefactSortieTmp.getNom ()) ;        lArtefactSortie.setDescription (lArtefactSortieTmp.getDescription ()) ;        lArtefactSortie.setProduit (lActivite.getProduitSortie (lIndiceProduit)) ;        lArtefactSortie.setResponsable (lProduit.getResponsable ().getCollaborateur (lIndiceResponsable)) ;                // Mise  jour du modle.        lArtefactSortie.getTacheSortie ().supprimerArtefactSortie (lArtefactSortie) ;        lArtefactSortie.setTacheSortie (lTache) ;        lTache.addArtefactSortie (lArtefactSortie) ;        lArtefactSortie.getProduit ().supprimerArtefact (lArtefactSortie) ;        lArtefactSortie.setProduit (lProduit) ;        lProduit.addArtefact (lArtefactSortie) ;        lArtefactSortie.getResponsable ().supprimerArtefact (lArtefactSortie) ;        lArtefactSortie.setResponsable (lResponsable) ;        lResponsable.addArtefact (lArtefactSortie) ;      }      // Supprimer un artefact en sortie.      else if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITSUPPRIMER_ARTSORTIES))      {        // Indice de la tche et de l'artefact dans leur liste respective.        int lIndiceTache     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;        int lIndiceArtSortie = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEARTEFACTSSORTIES)) ;                mIteration.getTache (lIndiceTache).supprimerArtefactSortie (lIndiceArtSortie) ;        MArtefact lArtefactSortie = mIteration.getTache (lIndiceTache).getArtefactSortie (lIndiceArtSortie) ;                // Mise  jour du modle.        lArtefactSortie.getTacheSortie ().supprimerArtefactSortie (lArtefactSortie) ;        lArtefactSortie.setTacheSortie (null) ;        lArtefactSortie.getTacheEntree ().supprimerArtefactEntree (lArtefactSortie) ;        lArtefactSortie.setTacheEntree (null) ;        lArtefactSortie.getProduit ().supprimerArtefact (lArtefactSortie) ;        lArtefactSortie.setProduit (null) ;        lArtefactSortie.getResponsable ().supprimerArtefact (lArtefactSortie) ;        lArtefactSortie.setResponsable (null) ;        lArtefactSortie.getProjet ().supprimerArtefact (lArtefactSortie) ;        lArtefactSortie.setProjet (null) ;      }      // Ajouter un artefact en entre      else if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITAJOUTER_ARTENTREES))      {               int lIndiceTache = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;        int lIdArtEntree = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEARTEFACTSPOSSIBLES)) ;                MTache    lTache          = mIteration.getTache (lIndiceTache) ;        MActivite lActivite = lTache.getActivite () ;        MArtefact lArtEntree = null;                for (int i = 0; i <  lActivite.getNbProduitsEntrees() ; i ++)        {          MProduit lProduitEntree = lActivite.getProduitEntree(i) ;          for (int j = 0; j < lProduitEntree.getNbActivitesEntrees (); j ++)           {                        if (lProduitEntree.getArtefact (j).getId () == lIdArtEntree)             {              lArtEntree = lProduitEntree.getArtefact (j) ;               }          }        }        lTache.addArtefactEntrees (lArtEntree) ;        lArtEntree.setTacheEntree (lTache) ;      }      // Supprimer un artefact en entre      else if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMITSUPPRIMER_ARTENTREES))       {        int lIndiceTache     = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTETACHES)) ;        int lIdArtEntree = Integer.parseInt (getRequete ().getParameter (CConstante.PAR_LISTEARTEFACTSENTREES)) ;                for (int i = 0; i < mIteration.getTache (lIndiceTache).getNbArtefactsEntrees (); i++)        {          MArtefact lArtEntTmp =  mIteration.getTache (lIndiceTache).getArtefactEntree (i) ;          if (lArtEntTmp.getId () == lIdArtEntree)           {            mIteration.getTache (lIndiceTache).supprimerArtefactEntree (i) ;            lArtEntTmp.setTacheEntree (null) ;          }        }      }      // Validation de l'itration.      else if (VTransfert.getValeurTransmise (getRequete (), CConstante.PAR_SUBMIT))      {        VTransfert.transferer (getRequete (), mIteration, CConstante.PAR_ARBREITERATION) ;      }    }  }