/** * Tranfère l'unité vers un autre qg * @param Qg $qg * @return void */ public function transfert(Qg $qg) { /* * Transfert de l'unité */ $qgSource = $this->getQg(); $this->setIdQg($this->getId()); $this->save(); $qg->resetCacheUnites(); $qgSource->resetCacheUnites(); /* * Transfert des compétences du Qg si le Qg source disparaît */ if ($qgSource->getUnites()->count() == 0) { if ($qgSource->getNiveau() > $qg->getNiveau()) { $qg->setNiveau($qgSource->getNiveau()); $qg->save(); } $qgSource->delete(); } }