Example #1
0
 function create(Etablissement $etablissement, Contrat $contrat)
 {
     $passage = new Passage();
     $passage->setEtablissement($etablissement);
     foreach ($contrat->getPrestations() as $prestationContrat) {
         $prestation = clone $prestationContrat;
         $prestation->setNbPassages(0);
         $passage->addPrestation($prestation);
     }
     $previousPassage = null;
     foreach ($contrat->getPassagesEtablissementNode($etablissement)->getPassagesSorted(true) as $p) {
         if ($p->getId() != $passage->getId() && count($p->getTechniciens())) {
             $previousPassage = $p;
             break;
         }
     }
     if ($previousPassage) {
         foreach ($previousPassage->getTechniciens() as $tech) {
             $passage->addTechnicien($tech);
         }
     } elseif ($contrat->getTechnicien()) {
         $passage->addTechnicien($contrat->getTechnicien());
     }
     foreach ($contrat->getProduits() as $produitContrat) {
         $produit = clone $produitContrat;
         $produit->setNbUtilisePassage(0);
         $passage->addProduit($produit);
     }
     $passage->setContrat($contrat);
     return $passage;
 }