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