function createAndSaveScenario(EiProjet $ei_project, EiNode $root_node) { //On crée le noeud du scénario avant de créer le scénario en soit $ei_node = new EiNode(); $ei_scenario = new EiScenario(); $ei_node->setIsRoot(false); $ei_node->setProjectId($ei_project->getProjectId()); $ei_node->setProjectRef($ei_project->getRefId()); $ei_node->setName('testNomScenario'); $ei_node->setPosition(Doctrine_Core::getTable('EiNode')->getLastPositionInNode($ei_project->getProjectId(), $ei_project->getRefId(), $root_node->getId())); $ei_node->setType('EiScenario'); $ei_node->setRootId($root_node->getId()); $ei_scenario->project_id = $ei_project->getProjectId(); $ei_scenario->project_ref = $ei_project->getRefId(); $ei_scenario->setNomScenario('testNomScenario'); $ei_scenario->setEiNode($ei_node); $ei_scenario->save(); $ei_node->setObjId($ei_scenario->getId()); $ei_node->save(); return $ei_scenario; }
public function createCopie($new_name, $conn = null) { //Récupération de la variable de connexion pour éffectuer les transactions if ($conn == null) { $conn = Doctrine_Manager::connection(); } //Récupération du noeud associé au scénario try { $conn->beginTransaction(); $copie = new EiScenario(); $copie->setProjectId($this->getProjectId()); $copie->setProjectRef($this->getProjectRef()); $copie->setNomScenario($new_name); $copie->setNbJoue(0); $copie->setDescription($this->getDescription()); $this->createNodeCopie($copie, $conn); $this->createEiVersionsCopies($copie, $conn); $this->createProfilScenarioForClone($copie, $conn); $conn->commit(); //return $copie; } catch (Exception $e) { $conn->rollback(); throw $e; } return $copie; }