/**
  * @param EiDataSet $jdd
  * @return int
  */
 public function getCountMappingFromJdd($jdd)
 {
     $count = 0;
     if ($jdd != null && $jdd->getId() != "") {
         /** @var EiDataLine $line */
         foreach ($jdd->getEiDataLine() as $line) {
             if ($line->getEiDataSetStructureId() == $this->getEiDatasetStructureId()) {
                 $count++;
             }
         }
     }
     return $count;
 }
 public function getDataSetScenario(EiDataSet $ei_data_set)
 {
     $ei_node = $ei_data_set->getEiNode();
     $data_set_scenario = null;
     $k = 0;
     while ($data_set_scenario == null && $k < 1000) {
         $ei_node = Doctrine_Core::getTable('EiNode')->findOneById($ei_node->getRootId());
         if ($ei_node->getType() == 'EiScenario') {
             $data_set_scenario = Doctrine_Core::getTable('EiScenario')->findOneById($ei_node->getObjId());
         }
         $k++;
         //Incrémentation de k pour éviter des boucles infinies
     }
     return $data_set_scenario;
 }
 /**
  * Méthode permettant de vérifier que tous les paramètres relatifs à une ligne d'un jeu de données concordent.
  *
  * A savoir :
  *    - jeu de données/ligne -> la ligne doit être un élément du jeu de données.
  *
  * @param sfWebRequest $request
  * @param EiDataSet $dataset
  */
 public function checkEiDataLine(sfWebRequest $request, EiDataSet $dataset)
 {
     $this->ei_data_line_id = $request->getParameter("ei_data_line_id");
     // On vérifie que la ligne a bien été renseignée dans l'URL.
     if ($this->ei_data_line_id != null) {
         // Puis, on récupère la ligne dans la base.
         $this->ei_data_line = Doctrine_Core::getTable("EiDataLine")->findOneByIdAndEiDataSetId($this->ei_data_line_id, $dataset->getId());
         // Si l'on a rien récupéré, c'est qu'il y a une incohérence entre le JDD & la ligne.
         if ($this->ei_data_line == null) {
             $this->forward404("Data line not found");
         }
     } else {
         $this->forward404('Missing data line parameters');
     }
 }
Exemple #4
0
 /**
  * @param sfWebRequest $request
  * @return EiDataSet|null
  */
 private function processCreateEmpty(sfWebRequest $request)
 {
     // Déclaration de la connexion SQL.
     $connection = Doctrine_Manager::connection();
     // Instanciation du logger.
     $this->logger = sfContext::getInstance()->getLogger();
     $this->logger->info("----------------------------------------------------------");
     $this->logger->info("---   DEBUT SAUVEGARDE DATA SET (CREATE EMPTY)");
     try {
         // On débute la transaction.
         $connection->beginTransaction();
         $ei_user = $this->getUser()->getGuardUser()->getEiUser();
         $nom = $request->getParameter("name");
         $desc = $request->getParameter("description");
         // Déclaration du template.
         $ei_data_set_template = null;
         $ei_node_template = null;
         // Récupération du jeu de données de base si enregistrement.
         $dataSetSourceId = $request->getParameter("dataSetSource");
         // On récupère le data set template source (si enregistrement).
         $dataSetTemplateSourceId = $request->getParameter("dataSetTemplateSource");
         // On récupère le dossier où enregistrer le JDD.
         $dataSetDirId = $request->getPostParameter("dataSetDir");
         // LOGS
         $this->logger->info("-- JDD SOURCE ID : " . $dataSetSourceId);
         $this->logger->info("-- JDD TEMPLATE SOURCE ID : " . $dataSetTemplateSourceId);
         $this->logger->info("-- JDD DIR ID : " . $dataSetDirId);
         if ($dataSetSourceId != null) {
             // LOGS
             $this->logger->info("-- DATA SET SOURCE ID NOT NULL ");
             /** @var EiDataSet $dataSetSource Récupération du jeu de données source. */
             $dataSetSource = Doctrine_Core::getTable("EiDataSet")->find($dataSetSourceId);
             if ($dataSetSource != null && $dataSetSource->getEiDataSetTemplate() != null) {
                 // LOGS
                 $this->logger->info("-- DATA SET SOURCE (" . $dataSetSource->getId() . ") ET TEMPLATE (" . $dataSetSource->getEiDataSetTemplate()->getId() . ") NOT NULL ");
                 $ei_data_set_template = $dataSetSource->getEiDataSetTemplate();
                 $ei_node_template = $ei_data_set_template->getEiNode();
                 // On modifie le nom et la description.
                 $nom = $ei_data_set_template->getName();
                 $desc = $ei_data_set_template->getDescription() . " V" . ($ei_data_set_template->getEiDataSets()->count() + 1);
             } else {
                 $dataSetSource = Doctrine_Core::getTable("EiDataSetTemplate")->find($dataSetSourceId);
                 if ($dataSetSource != null) {
                     // LOGS
                     $this->logger->info("-- DATA SET SOURCE (" . $dataSetSource->getId() . ") ET TEMPLATE (" . $dataSetSource->getEiDataSetTemplate()->getId() . ") NOT NULL ");
                     $ei_data_set_template = $dataSetSource;
                     $ei_node_template = $ei_data_set_template->getEiNode();
                     // On modifie le nom et la description.
                     $nom = $ei_data_set_template->getName();
                     $desc = $ei_data_set_template->getDescription() . " V" . ($ei_data_set_template->getEiDataSets()->count() + 1);
                 }
             }
         } elseif ($dataSetTemplateSourceId != null) {
             /** @var EiDataSetTemplate $dataSetSource */
             $dataSetSource = Doctrine_Core::getTable("EiDataSetTemplate")->find($dataSetTemplateSourceId);
             if ($dataSetSource != null) {
                 // LOGS
                 $this->logger->info("-- DATA SET SOURCE (" . $dataSetSource->getEiDataSetRefId() . ") ET TEMPLATE (" . $dataSetSource->getId() . ") NOT NULL ");
                 $ei_data_set_template = $dataSetSource;
                 $ei_node_template = $ei_data_set_template->getEiNode();
                 // On modifie le nom et la description.
                 $nom = $ei_data_set_template->getName();
                 $desc = $ei_data_set_template->getDescription() . " V" . ($ei_data_set_template->getEiDataSets()->count() + 1);
             }
         }
         if ($ei_data_set_template == null) {
             // LOGS
             $this->logger->info("-- CREATION D'UN NOUVEAU TEMPLATE");
             // Création du template.
             //=> NODE
             $ei_node_template = new EiNode();
             $ei_node_template->createEmpty($request->getParameter("ei_node_parent_id"), $this->ei_project, $request->getParameter("name"));
             //=> TEMPLATE.
             $ei_data_set_template = new EiDataSetTemplate();
             $ei_data_set_template->createEmpty($nom, $desc, $ei_node_template, $ei_user);
             // Sauvegarde du template.
             $ei_data_set_template->save($connection);
         }
         $this->logger->info("----------------------------------------------------------");
         $this->logger->info("---   FIN SAUVEGARDE DATA SET (CREATE EMPTY)");
         $this->logger->info("----------------------------------------------------------");
         // Création du jeu de données.
         //=> NODE
         $ei_node = new EiNode();
         $ei_node->createEmpty($ei_node_template->getId(), $this->ei_project, $request->getParameter("name"));
         //=> JEU DE DONNEES
         $ei_data_set = new EiDataSet();
         if ($this->getUser() !== null) {
             $ei_data_set->user_id = $ei_user->getUserId();
             $ei_data_set->user_ref = $ei_user->getRefId();
         }
         //=> Création à vide.
         $ei_data_set->createEmpty($nom, $desc, $ei_node, $this->ei_scenario);
         //=> Affectation du template.
         $ei_data_set->setEiDataSetTemplate($ei_data_set_template);
         //=> SAUVEGARDE
         $ei_data_set->save($connection);
         // Affectation du jeu de données au template.
         $ei_data_set_template->setEiDataSet($ei_data_set);
         $ei_data_set_template->save($connection);
         // Création des lignes du jeu de données.
         $ei_data_set->createRootDataLine();
         $connection->commit();
     } catch (Exception $e) {
         $connection->rollback();
         return null;
     }
     return $ei_data_set;
 }