/** * @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'); } }
/** * @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; }