Example #1
0
 public function getDefaultInterventionWithScenarioVersion(EiProjet $ei_project, EiVersion $ei_version, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     return $conn->fetchRow("select s.id as subject_id,s.name as subject_name,sp.ei_version_id as sp_ei_version_id, s.package_id,s.package_ref ,t.name as ticket_name  from ei_subject s " . " inner join ei_ticket t on s.package_id=t.ticket_id and s.package_ref=t.ticket_ref " . " Left join ei_scenario_package sp on sp.package_id=t.ticket_id and sp.package_ref=t.ticket_ref and sp.ei_scenario_id=" . $ei_version->getEiScenarioId() . " inner join ei_user_default_package udp on t.ticket_id=udp.ticket_id and t.ticket_ref=udp.ticket_ref " . " where udp.user_id=" . $this->getUserId() . " and udp.user_ref=" . $this->getRefId() . " and s.project_id=" . $ei_project->getProjectId() . " and s.project_ref=" . $ei_project->getRefId());
 }
 public function getDefaultInterventionWithScenarioVersion(EiProjet $ei_project, EiVersion $ei_version, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     return $conn->fetchRow("select sp.*, s.id as subject_id ,s.name as subject_name from ei_scenario_package sp\n                                inner join ei_subject s on sp.package_id= s.package_id and sp.package_ref=s.package_ref\n                                where sp.ei_scenario_id= " . $ei_version->getEiScenarioId() . " and sp.ei_version_id=" . $ei_version->getId() . " and s.project_id=" . $ei_project->getProjectId() . " and s.project_ref=" . $ei_project->getRefId());
 }
Example #3
0
 /**
  * Créer la version par defaut pour le scénario en cours de création et 
  * en retourne son identifiant.
  * 
  * @return integer
  */
 public function createDefaultVersion(EiUserDefaultPackage $ei_user_default_package = null, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     //creation de la version par defaut du scénario
     $def_version = new EiVersion();
     $def_version->ei_scenario_id = $this->getId();
     $def_version->libelle = 'S' . $this->getId() . '-version1';
     $def_version->save($conn);
     if ($ei_user_default_package != null) {
         //Création de la relation entre la version du scénario et le package
         $ei_scenario_package = new EiScenarioPackage();
         $ei_scenario_package->setEiScenarioId($this->getId());
         $ei_scenario_package->setPackageId($ei_user_default_package->getTicketId());
         $ei_scenario_package->setPackageRef($ei_user_default_package->getTicketRef());
         $ei_scenario_package->setEiVersionId($def_version->getId());
         $ei_scenario_package->save($conn);
     }
     $ei_version_structure = new EiVersionStructure();
     $ei_version_structure->setName("Root");
     $ei_version_structure->setEiVersion($def_version);
     $ei_version_structure->setType(EiVersionStructure::$TYPE_BLOCK);
     $ei_version_structure->save($conn);
     $treeObject = Doctrine_Core::getTable('EiVersionStructure')->getTree();
     $treeObject->createRoot($ei_version_structure);
     return $def_version->getId();
 }
Example #4
0
 /**
  * Méthode permettant de créer une copie de la version.
  *
  * @param $new_name
  * @param Doctrine_Connection $conn
  * @param null $ei_scenario_id
  * @return EiVersion|null
  * @throws Exception
  */
 public function createCopie($new_name, Doctrine_Connection $conn = null, $ei_scenario_id = null)
 {
     // Déclaration de la variable représentant l'instance de la version.
     /** @var EiVersion $copie */
     $copie = null;
     /** @var sfLogger $logger */
     $logger = sfContext::getInstance()->getLogger();
     try {
         if ($conn == null) {
             $conn = Doctrine_Manager::connection();
         }
         //Debut de la transaction
         $conn->beginTransaction();
         //********************************************************//
         //**********          CREATION VERSION          **********//
         //********************************************************//
         $logger->info("----------------------------------------------");
         $logger->info("----------     CREATION VERSION     ----------");
         $logger->info("----------------------------------------------");
         // Instanciation de la version
         $copie = new EiVersion();
         // Affectation de son libellé.
         $copie->setLibelle($new_name);
         // On stocke l'identifiant du scénario.
         if ($ei_scenario_id) {
             $copie->setEiScenarioId($ei_scenario_id);
         } else {
             $copie->setEiScenarioId($this->getEiScenarioId());
         }
         // La description
         $copie->setDescription($this->getDescription());
         $this->createStructureCopy($copie, $conn, $ei_scenario_id);
         // Fin de la transaction. Tout s'est bien déroulé, on enregistre.
         $conn->commit();
     } catch (Exception $e) {
         // En cas d'erreur, on annule l'ensemble de la transaction.
         $conn->rollback();
         throw $e;
     }
     return $copie;
 }
Example #5
0
 public function executeCreate(sfWebRequest $request)
 {
     $this->checkProject($request);
     $this->checkProfile($request, $this->ei_project);
     $this->checkEiScenario($request, $this->ei_project);
     /* On recherche le package par défaut. S'il n'est pas définit , on le spécifie à l'utilisateur au lieu  de lui retourner le formulaire */
     $this->searchDefPackAndRedirect();
     if (!($request->isMethod(sfRequest::POST) || $request->isXmlHttpRequest())) {
         $this->forward404("Request error ...");
     }
     //vérification des paramètres.
     $this->getUrlParameters($request);
     $this->ei_block_root = Doctrine_Core::getTable('EiBlock')->getEiBlockRoot($this->ei_scenario_id);
     if (!$this->ei_block_root) {
         return $this->createJSONErrorResponse("The version could not be created. Scenario's root block not found.");
     }
     $ei_blocks = Doctrine_Core::getTable('EiVersionStructure')->getEiBlocksTree($this->ei_block_root->getId(), EiVersionStructure::getBlockTypes());
     //création de la version
     $ei_version = new EiVersion();
     $ei_version->setEiScenarioId($this->ei_scenario_id);
     $ei_version->setEiScenarioBlocks($ei_blocks);
     $ei_version->setOldVersionId($this->ei_block_root->getEiVersionId());
     $this->form = new EiVersionForm($ei_version, array('ei_scenario_package' => new EiScenarioPackage()));
     $ei_scenario_package_form = $request->getParameter($this->form->getName());
     $ei_scenario_package_datas = $ei_scenario_package_form['ei_scenario_package'];
     if ($ei_scenario_package_datas['package_id'] != null && $ei_scenario_package_datas['package_ref'] != null) {
         $this->ei_package = Doctrine_core::getTable('EiTicket')->findOneByTicketIdAndTicketRef($ei_scenario_package_datas['package_id'], $ei_scenario_package_datas['package_ref']);
         /* On recherche si pour le package par défaut et le scénario , il existe une  version */
         $this->ei_scenario_package = Doctrine_Core::getTable('EiScenarioPackage')->findOneByEiScenarioIdAndPackageIdAndPackageRef($this->ei_scenario_id, $ei_scenario_package_datas['package_id'], $ei_scenario_package_datas['package_ref']);
     } else {
         //Erreur dû au fait qu'on ne permet pas la création d'une version sans spécification de package
         throw new Exception('No package set for version !');
     }
     $this->processForm($request, $this->form);
     $this->setTemplate('new');
 }