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; }
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")); } }