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