private function getConnection($connectionString, $connectionType)
 {
     $connectionQuery = '';
     if ($connectionString) {
         $connectionQuery .= 'connexion LIKE "' . $connectionString . '%"';
     } else {
         $connectionQuery .= 'connexion IS NULL ';
     }
     $igoConnexionType = IgoConnexionType::findFirst("connexion_type = '{$connectionType}'");
     if (!$igoConnexionType) {
         die("Type de connection inconnu: " . $connectionType);
     }
     $connexionTypeId = $igoConnexionType->id;
     $connexionTypeNom = $igoConnexionType->nom;
     if ($igoConnexionType) {
         $connectionQuery .= ' AND connexion_type_id=' . $connexionTypeId;
     }
     //If connection doesn't exist, create it
     $igoConnection = IgoConnexion::findFirst($connectionQuery);
     if (!$igoConnection) {
         $igoConnection = new IgoConnexion();
         // $igoConnection->setTransaction($transaction);
         $igoConnection->connexion = $connectionString;
         $igoConnection->connexion_type_id = $connexionTypeId;
         if ($igoConnection->save(false) == false) {
             foreach ($igoConnection->getMessages() as $message) {
                 throw new Exception($message);
             }
             //$transaction->rollback();
             $this->db->rollback();
         } else {
             $igoConnection->nom = $connexionTypeNom . ' ' . $igoConnection->id;
             $igoConnection->save(false);
         }
     } else {
         if ($igoConnection->nom == "" || $igoConnection->nom == null) {
             //  $igoConnection->setTransaction($transaction);
             $igoConnection->nom = $connexionTypeNom . ' ' . $igoConnection->id;
             $igoConnection->connexion_type_id = $connexionTypeId;
             $igoConnection->save(false);
         }
     }
     return $igoConnection;
 }
Exemple #2
0
 private function getConnection($connectionString, $connectionType)
 {
     $connectionQuery = '';
     if ($connectionString) {
         $connectionQuery .= 'connexion LIKE "' . $connectionString . '%"';
     } else {
         $connectionQuery .= 'connexion IS NULL ';
     }
     $igoConnexionType = IgoConnexionType::findFirst("connexion_type = '{$connectionType}'");
     if (!$igoConnexionType) {
         die("Type de connection inconnu: " . $connectionType);
     }
     $connexionTypeId = $igoConnexionType->id;
     $connexionTypeNom = $igoConnexionType->nom;
     if ($igoConnexionType) {
         $connectionQuery .= ' AND connexion_type_id=' . $connexionTypeId;
     }
     //If connection doesn't exist, create it
     $igoConnexion = IgoConnexion::findFirst($connectionQuery);
     if (!$igoConnexion) {
         $igoConnexion = new IgoConnexion();
         $igoConnexion->connexion = $connectionString;
         $igoConnexion->connexion_type_id = $connexionTypeId;
         $this->igoConnexionSave($igoConnexion);
         $igoConnexion->nom = $connexionTypeNom . ' ' . $igoConnexion->id;
         $igoConnexion->save(false);
     } else {
         if (!$igoConnexion->nom) {
             $igoConnexion->nom = $connexionTypeNom . ' ' . $igoConnexion->id;
             $igoConnexion->connexion_type_id = $connexionTypeId;
             $igoConnexion->save(false);
         }
     }
     return $igoConnexion;
 }
 public function createAction($r_controller = null, $r_action = null, $r_id = null)
 {
     if (!$this->request->isPost()) {
         return $this->dispatcher->forward(array("controller" => $this->ctlName, "action" => "index"));
     }
     $this->tag->setDefault('vue-avancee', $this->request->getPost('vue-avancee'));
     try {
         $msg_succes = array();
         $manager = new Phalcon\Mvc\Model\Transaction\Manager();
         $transaction = $manager->get();
         $igo_geometrie = new IgoGeometrie();
         $igo_geometrie->setTransaction($transaction);
         $this->assigneFromPost($igo_geometrie);
         if (!$igo_geometrie->save()) {
             $transaction->rollback(implode('<br> ', $igo_geometrie->getMessages()));
         }
         $msg_succes[] = "Géométrie " . $igo_geometrie->id . " créée avec succès";
         //TODO le code qui suit devrait être dans le model. Il faudra l'ajuster quand on saura quoi faire avec l'Inclusion des attributs
         $igo_connexion = IgoConnexion::findFirstById(intval($this->request->getPost("connexion_id")));
         if ($igo_connexion) {
             $msg_succes[] = "Connexion " . $igo_connexion->id . " réutilisée";
         } else {
             //Ajouter la connexion qu'on va utiliser
             $igo_connexion = new IgoConnexion();
             $igo_connexion->setTransaction($transaction);
             $this->assigneFromPost($igo_connexion);
             $connexion_type_id = intval($this->request->getPost("connexion_type_id"));
             if ($connexion_type_id) {
                 $connexion_type = IgoConnexionType::findFirstById($connexion_type_id);
                 $igo_connexion->connexion_type_id = $connexion_type->id;
                 $igo_connexion->nom = $connexion_type->nom;
                 //TODO à synchroniser avec la rétro
             }
             if (!$igo_connexion->save()) {
                 $transaction->rollback(implode('<br> ', $igo_connexion->getMessages()));
             }
             $msg_succes[] = "Connexion " . $igo_connexion->id . " créée avec succès";
         }
         $igo_couche = new IgoCouche();
         $igo_couche->setTransaction($transaction);
         $this->assigneFromPost($igo_couche);
         $igo_couche->geometrie_id = $igo_geometrie->id;
         if (!$igo_couche->save()) {
             $transaction->rollback(implode('<br> ', $igo_couche->getMessages()));
         }
         $msg_succes[] = "Couche " . $igo_couche->id . " créée avec succès";
         $igo_classe = new IgoClasse();
         $igo_classe->setTransaction($transaction);
         $this->assigneFromPost($igo_classe);
         if ($igo_classe->mf_class_def) {
             $igo_classe->couche_id = $igo_couche->id;
             if (!$igo_classe->save()) {
                 $transaction->rollback(implode('<br> ', $igo_classe->getMessages()));
             }
             $msg_succes[] = "Classe " . $igo_classe->id . " créée avec succès";
         }
         $transaction->commit();
         foreach ($msg_succes as $msg) {
             $this->flash->success($msg);
         }
         return;
     } catch (\Exception $e) {
         $this->flash->error($e->getMessage());
         return $this->dispatcher->forward(array("controller" => "gestion_couche", "action" => "traiteMapfile"));
     }
 }