public static function createOrUpdateDistantParams(EiProjet $ei_project, EiProfil $ei_profile, KalFunction $kal_function, $data, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     try {
         $conn->beginTransaction();
         //Début de la transaction
         //Appel du webservice
         $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "/serviceweb/project/parameter/createOrUpdate.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'profile_id' => $ei_profile->getProfileId(), 'profile_ref' => $ei_profile->getProfileRef(), 'function_id' => $kal_function->getFunctionId(), 'function_ref' => $kal_function->getFunctionRef(), 'data' => $data));
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération du paramètre pour traitement
         if (count($array_result) == 0) {
             return false;
         }
         if (array_key_exists("error", $array_result)) {
             return false;
         }
         if (!$array_result[0]) {
             return false;
         }
         //Rechargement d'un paramètre
         self::reload($array_result, $conn);
         $conn->commit();
         return $array_result[0]['fp_id'];
     } catch (Exception $e) {
         $conn->rollback();
         return false;
         throw $e;
     }
 }
Esempio n. 2
0
 public function getScriptsForProfile(KalFunction $function, EiProfil $profile)
 {
     if ($function == null || $profile == null) {
         return null;
     }
     return $this->getInstance()->createQuery('s')->select('s.script_id')->where('KalFunction.function_id=s.function_id And KalFunction.function_ref=s.function_ref')->AndWhere('KalFunction.function_id=? And KalFunction.function_ref=? ', array($function->getFunctionId(), $function->getFunctionRef()))->AndWhere('EiScriptVersion.script_id=s.script_id And EiScriptVersion.profile_id=? And EiScriptVersion.profile_ref=?', array($profile->getProfileId(), $profile->getProfileRef()))->AndWhere('EiFunctionHasCommande.script_id=s.script_id')->fetchArray();
 }
 public function createItem(KalFunction $kal_function, EiDelivery $ei_delivery, EiTicket $ei_ticket, sfGuardUser $guard_user, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $stmt = $conn->prepare("INSERT INTO ei_package_function_conflict (function_id, function_ref,delivery_id,package_id, package_ref,resolved_date,resolved_author,created_at,updated_at) " . "VALUES (:function_id, :function_ref,:delivery_id,:package_id, :package_ref,:resolved_date,:resolved_author,:created_at,:updated_at) " . "ON DUPLICATE KEY UPDATE function_id=function_id, function_ref=function_ref , delivery_id=delivery_id, package_id=:package_id, package_ref=:package_ref");
     $stmt->bindValue("function_id", $kal_function->getFunctionId());
     $stmt->bindValue("function_ref", $kal_function->getFunctionRef());
     $stmt->bindValue("delivery_id", $ei_delivery->getId());
     $stmt->bindValue("package_id", $ei_ticket->getTicketId());
     $stmt->bindValue("package_ref", $ei_ticket->getTicketRef());
     $stmt->bindValue("resolved_date", date('Y-m-d H:i:s'));
     $stmt->bindValue("resolved_author", $guard_user->getId());
     $stmt->bindValue("created_at", date('Y-m-d H:i:s'));
     $stmt->bindValue("updated_at", date('Y-m-d H:i:s'));
     $stmt->execute(array());
 }
 public function generateXMLForPHP(EiFonction $ei_fonction, KalFunction $kal_function, EiProfil $ei_profile, $ei_params, $profileParams, $request)
 {
     //reccupération du prefixe d'url suivant l'environnement
     $prefix = MyFunction::getPrefixPath();
     if ($ei_fonction == null || $ei_profile == null || $kal_function == null) {
         return null;
     }
     //         $urlxsl = "http://" . $prefix . "eifonction/genererXSL/" . $kal_function->getFunctionId() . "/" .
     //                 $kal_function->getFunctionRef() . "/" . $ei_profile->getProfileId() . "/" . $ei_profile->getProfileRef() . ".xml";
     // On définit le document.
     $dom = new DomDocument("1.0", "utf-8");
     $dom->formatOutput = true;
     //Génération de l'url du xsl associé à la fonction
     $user = $dom->createElement('user');
     //$user->setAttribute("xsl", $urlxsl);
     $dom->appendChild($user);
     // Ajout du nom de la fonction
     $nom_balise_fonction = $dom->createElement('fonction-' . $kal_function->getFunctionId() . '_' . $kal_function->getFunctionRef());
     $nom_balise_fonction->setAttribute("name", $kal_function);
     $user->appendChild($nom_balise_fonction);
     // Ajout des paramètres de fonctions au xml
     if ($ei_params->getFirst()) {
         //creation du bloc de balise pour paramètres
         foreach ($ei_params as $ei_param) {
             $nom_balise_param = $dom->createElement($ei_param->getKalParam()->getName());
             $param_value = $dom->createTextNode($ei_param->getValeur());
             $nom_balise_param->appendChild($param_value);
             $nom_balise_fonction->appendChild($nom_balise_param);
         }
     }
     // Ajout des paramètres de profil au xml
     if ($profileParams->getFirst()) {
         //creation du bloc de balise pour paramètres
         foreach ($profileParams as $profileParam) {
             $nom_balise_param = $dom->createElement($profileParam->getStringName());
             $param_value = $dom->createTextNode($profileParam->getValue());
             $nom_balise_param->appendChild($param_value);
             $nom_balise_fonction->appendChild($nom_balise_param);
         }
     }
     $dom->normalizeDocument();
     // Afficher le document XML
     return $dom->saveXML();
 }
Esempio n. 5
0
 public static function getScriptUpdateResult(EiProjet $ei_project, EiProfil $kal_profil, EiTicket $ei_ticket, $json_string, KalFunction $kal_function, EiUser $ei_user, $script_id = 0, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $ei_subject = Doctrine_Core::getTable("EiSubject")->findOneByPackageIdAndPackageRef($ei_ticket->getTicketId(), $ei_ticket->getTicketRef());
     if ($ei_subject == null) {
         return array("success" => false, "message" => "Intervention not found ... ");
     }
     //Intervention non trouvée
     //Appel du webservice
     $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "serviceweb/project/script/update.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'ticket_id' => $ei_ticket->getTicketId(), 'ticket_ref' => $ei_ticket->getTicketRef(), 'profile_id' => $kal_profil->getProfileId(), 'profile_ref' => $kal_profil->getProfileRef(), 'function_id' => $kal_function->getFunctionId(), 'function_ref' => $kal_function->getFunctionRef(), 'script_id' => $script_id, 'user_id' => $ei_user->getUserId(), 'user_ref' => $ei_user->getRefId(), 'package_name' => "Package_S" . $ei_subject->getId(), 'json_string' => rawurlencode($json_string)));
     //Récupération du projet pour traitement
     //        if ($result_update == null) return null;
     //        $result_file->loadXML($result_update);
     //        $result_file->save('result_update.xml'); /* sauvegarde du fichier pour vérifier le bon fonctionnement du web service */
     //        $result_item=$result_file->documentElement;
     //        if ($result_item->getElementsByTagName("error")->item(0)):
     //            return -1;
     //        endif;
     //        if ($result_item->getElementsByTagName("process_error")->item(0)):
     //            return 0;
     //        endif;
     //        if ($result_item->getElementsByTagName("process_ok")->item(0)):
     //            return 1;
     //        endif;
     try {
         $conn->beginTransaction();
         //Récupération du ticket pour traitement
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération du projet pour traitement
         if (count($array_result) == 0) {
             return array("success" => false, "message" => "Error on transaction");
         }
         if (array_key_exists("error", $array_result)) {
             return array("success" => false, "message" => $array_result["error"]);
         }
         if (array_key_exists("process_error", $array_result)) {
             return array("success" => false, "message" => $array_result["process_error"]);
         }
         if (!$array_result[0]) {
             return array("success" => false, "message" => "Empty result content");
         }
         self::reload($array_result, $conn);
         $conn->commit();
         return array("success" => true, "message" => "Transaction maded successfully");
     } catch (Exception $e) {
         throw new Exception($e);
         $conn->rollback();
         return array("success" => false, "message" => "Error on reload process ...");
     }
 }
 public function getModifyAndExecDelFunctions(EiDelivery $ei_delivery = null, EiSubject $ei_subject = null, KalFunction $kal_function = null, $executed = true, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $q = "select COUNT(DISTINCT(lf.ei_scenario_id)) as nbScenario ,COUNT(DISTINCT(fc.campaign_id)) as nbCamp, MAX(tsf.date_debut) as last_ex,\n            df.* , tsf.* from ei_delivery_impacted_functions_vw df \n            left join ei_test_set_function tsf on tsf.function_id=df.t_obj_id and tsf.function_ref=df.t_ref_obj\n            left join eifunction_campaigns fc on fc.function_id=df.t_obj_id  and fc.function_ref=df.t_ref_obj\n            left join ei_log_function lf on lf.ei_test_set_function_id = tsf.id ";
     /* On vérifie que la livraison est renseignée et on ajoute le critère de sélection*/
     if ($ei_delivery != null) {
         $q .= " where (df.s_delivery_id = " . $ei_delivery->getId() . " or df.s2_delivery_id = " . $ei_delivery->getId() . ") ";
         /*Si on recherche les fonctions modifiées et non executées */
         if (!$executed) {
             $q .= " And tsf.id IS NULL";
         } else {
             $q .= " And tsf.id IS NOT NULL";
         }
     }
     /* Si on recherche les fonctions pour un bug , alors :*/
     if ($ei_subject != null) {
         $q .= " where ( (df.s_id=" . $ei_subject->getId() . ") or  (df.s2_id=" . $ei_subject->getId() . ")) ";
     }
     /* Si on a spécifié la fonction concernée , alors on rajoute le critère */
     if ($ei_subject != null && $kal_function != null) {
         $q .= " and df.t_obj_id=" . $kal_function->getFunctionId() . " and df.t_ref_obj=" . $kal_function->getFunctionRef();
     }
     /* On complète la requête */
     $q .= " group by df.t_id order by tsf.date_debut desc  ";
     //throw new Exception($q);
     return $conn->fetchAll($q);
 }
 public function setKalFunction(KalFunction $kal_function)
 {
     $this->setFunctionId($kal_function->getFunctionId());
     $this->setFunctionRef($kal_function->getFunctionRef());
 }
Esempio n. 8
0
 protected function processForm(sfWebRequest $request, sfForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->isValid()) {
         $this->html = $request->getParameter($form->getName());
         //Si les données sont valides, on envoi en format json la fonction et ses éventuels paramètres pour insertion.
         /* On recherche le package par défaut de l'utilisateur qu'on envoi dans la requête à la plate forme centrale */
         if (!$form->getObject()->isNew()) {
             $this->ei_parent_tree = null;
         }
         $this->result = KalFunction::createDistantFunction($this->ei_project, json_encode($this->html), $this->defPack, $this->ei_parent_tree);
         $this->success = $this->result;
     } else {
         // Echec du bind .
         $this->success = false;
         if ($form->getObject()->isNew()) {
             $this->html = $this->getPartial('kalfonction/form', array('form' => $form, 'ei_parent_tree' => $this->ei_parent_tree, 'ei_project' => $this->ei_project, 'ei_profile' => $this->ei_profile));
         } else {
             $this->html = $this->getPartial('kalfonction/form', array('form' => $form, 'ei_project' => $this->ei_project, 'ei_profile' => $this->ei_profile));
         }
     }
 }
 public function getActiveProfilesForVersion(Eiprojet $ei_project, KalFunction $kal_function, $vn_id, $notice_id, $notice_ref, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     return $conn->fetchAll(" select pr.*,np1.version_notice_id from  \n            (select * from ei_profil p where p.project_id=" . $ei_project->getProjectId() . " and p.project_ref=" . $ei_project->getRefId() . ") as pr\n            left join \n            (select np.profile_id , np.profile_ref , vn.version_notice_id ,vn.name from ei_notice_profil np  \n            inner join (select * from ei_version_notice where version_notice_id=" . $vn_id . " and notice_id=" . $notice_id . " and notice_ref=" . $notice_ref . " group by version_notice_id,notice_id,notice_ref ) vn  on vn.version_notice_id=np.version_notice_id and vn.notice_id=np.notice_id and vn.notice_ref=np.notice_ref \n            inner join ei_notice n on n.notice_id=vn.notice_id and n.notice_ref=vn.notice_ref and n.function_id=" . $kal_function->getFunctionId() . " and n.function_ref=" . $kal_function->getFunctionRef() . "  \n            ) as np1\n\n            on pr.profile_id=np1.profile_id and pr.profile_ref=np1.profile_ref");
 }
Esempio n. 10
0
 public static function createDistantFunction(EiProjet $ei_project, $data, EiUserDefaultPackage $defPack, EiTree $ei_parent_tree = null, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     try {
         $conn->beginTransaction();
         //Début de la transaction
         //$result_file = new DOMDocument();
         $ei_subject = Doctrine_Core::getTable("EiSubject")->findOneByPackageIdAndPackageRef($defPack->getTicketId(), $defPack->getTicketRef());
         if ($ei_subject == null) {
             return false;
         }
         $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "serviceweb/project/function/create.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'ticket_id' => $defPack->getTicketId(), 'ticket_ref' => $defPack->getTicketRef(), 'package_name' => "Package_S" . $ei_subject->getId(), 'parent_id' => $ei_parent_tree != null ? $ei_parent_tree->getId() : null, 'user_id' => $defPack->getUserId(), 'user_ref' => $defPack->getUserRef(), 'data' => $data));
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération du projet pour traitement
         if (count($array_result) == 0) {
             return false;
         }
         if (array_key_exists("error", $array_result)) {
             return false;
         }
         if (!$array_result[0]) {
             return false;
         }
         //Rechargement d'une fonction
         KalFunction::reload($array_result, $conn);
         $conn->commit();
         return true;
     } catch (Exception $e) {
         $conn->rollback();
         //return false;
         throw $e;
     }
 }
 public function deleteAssociatedCmd(KalFunction $kal_function, Doctrine_Connection $conn = null)
 {
     if ($kal_function == null) {
         return null;
     }
     Doctrine_Query::create()->delete()->from('EiFunctionHasCommande c')->where('c.function_ref=? And c.function_id=? ', array($kal_function->getFunctionRef(), $kal_function->getFunctionId()))->execute();
 }
Esempio n. 12
0
 public function migrateBugFunction(EiTicket $ei_ticket, EiProjet $ei_project, EiProfil $ei_profile, KalFunction $ei_function, sfGuardUser $guard)
 {
     $result_file = new DOMDocument();
     //Appel du webservice
     $result_update = self::loadResultOfWebServiceForMigration(MyFunction::getPrefixPath(null) . "/serviceweb/bug/migrateOne.xml", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'ticket_id' => $ei_ticket->getTicketId(), 'ticket_ref' => $ei_ticket->getTicketRef(), 'profile_id' => $ei_profile->getProfileId(), 'profile_ref' => $ei_profile->getProfileRef(), 'function_id' => $ei_function->getFunctionId(), 'function_ref' => $ei_function->getFunctionRef(), 'guard_id' => $guard->getId()));
     //Récupération du projet pour traitement
     if ($result_update == null) {
         return null;
     }
     $result_file->loadXML($result_update);
     $result_file->save('result_migrate_bug.xml');
     /* sauvegarde du fichier pour vérifier le bon fonctionnement du web service */
     $result_item = $result_file->documentElement;
     if ($result_item->getElementsByTagName("error")->item(0)) {
         return -1;
     }
     if ($result_item->getElementsByTagName("process_error")->item(0)) {
         return 0;
     }
     if ($result_item->getElementsByTagName("process_ok")->item(0)) {
         return true;
     }
 }