Esempio n. 1
0
 public function save(Doctrine_Connection $conn = null, $is_clone = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $conn->beginTransaction();
     if ($this->isNew()) {
         if ($this->project_id != null) {
             $this->nb_joue = 0;
         }
         //mise à jour du projet
         try {
             $ret = parent::save($conn);
             $ei_project = $this->updateProject($conn);
             if ($is_clone == null) {
                 //Si ce n'est pas un clone alors on crée les versions par défaut
                 $ei_version_id = $this->createDefaultVersion($this->getEiUserDefaultPackage(), $conn);
                 $this->saveProfilsForVersions($ei_project, $ei_version_id, $conn);
                 $this->createDefaultEiDataSetFolder($conn);
                 // Création du bloc racine du jeu de données.
                 $rootDataSetStructure = new EiNodeDataSet();
                 $rootDataSetStructure->setName("Root");
                 $rootDataSetStructure->setEiScenario($this);
                 $rootDataSetStructure->setProjectId($this->project_id);
                 $rootDataSetStructure->setProjectRef($this->project_ref);
                 $rootDataSetStructure->save($conn);
                 $treeObject = Doctrine_Core::getTable("EiDataSetStructure")->getTree();
                 $treeObject->createRoot($rootDataSetStructure);
             }
             $conn->commit();
         } catch (Exception $e) {
             $conn->rollback();
             throw $e;
         }
     } else {
         try {
             $ret = parent::save($conn);
             $node = $this->getNode();
             $node->setName($this->getNomScenario());
             $node->save($conn);
             $this->ei_node_id = $node->getId();
             //$this->createDefaultEiDataSetFolder($conn);
             $conn->commit();
         } catch (Exception $e) {
             $conn->rollback();
             throw $e;
         }
     }
     return $ret;
 }