Ejemplo n.º 1
0
 public static function createDistantNoticeLang($version_notice_id, $notice_id, $notice_ref, $lang, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     try {
         $conn->beginTransaction();
         //Début de la transaction
         //Appel du webservice
         $result_service = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "serviceweb/createNoticeVersion.json", array('version_notice_id' => $version_notice_id, 'notice_id' => $notice_id, 'notice_ref' => $notice_ref, 'lang' => $lang));
         //Récupération de la nouvelle langue de notice pour traitement
         $array_result = json_decode(html_entity_decode($result_service), true);
         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_result[0]) {
             return array("success" => false, "message" => "Empty result content");
         }
         self::reload($array_result, $conn);
         $conn->commit();
         return Doctrine_Core::getTable("EiVersionNotice")->findOneByVersionNoticeIdAndNoticeIdAndNoticeRefAndLang($version_notice_id, $notice_id, $notice_ref, $lang);
     } catch (Exception $e) {
         $conn->rollback();
         throw $e;
         return false;
     }
 }
Ejemplo n.º 2
0
 public static function createDistantView(EiProjet $ei_project, EiTree $ei_parent_tree, $data, Doctrine_Connection $conn = null)
 {
     $result_file = new DOMDocument();
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     try {
         $conn->beginTransaction();
         //Début de la transaction
         //$result_file = new DOMDocument();
         //Appel du webservice
         $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "/serviceweb/project/view/create.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'parent_id' => $ei_parent_tree->getId(), 'data' => $data));
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération de la vue  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 vuew
         EiView::reload($array_result, $conn);
         $conn->commit();
         return true;
     } catch (Exception $e) {
         $conn->rollback();
         //return false;
         throw $e;
     }
 }
 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;
     }
 }
Ejemplo n.º 4
0
 public static function createDistantPackage(EiProjet $ei_project, $data, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     try {
         $conn->beginTransaction();
         //Début de la transaction
         $result_file = new DOMDocument();
         //Appel du webservice
         $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "serviceweb/project/package/create.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'data' => $data));
         //Récupération du ticket pour traitement
         $array_result = json_decode(html_entity_decode($result_update), true);
         //throw new Exception(html_entity_decode($result_update));
         //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;
         }
         EiTicket::reload($array_result, $conn);
         $conn->commit();
         return array('package_id' => $array_result[0]['t_id'], 'package_ref' => $array_result[0]['t_ref']);
     } catch (Exception $e) {
         $conn->rollback();
         throw $e;
         return false;
     }
 }
Ejemplo n.º 5
0
 public function downloadKalFonctions($request = null)
 {
     $syst_domain = str_replace('.', '___', sfConfig::get('project_system_uri'));
     return ServicesWeb::loadResultOfWebService(MyFunction::getPrefixPath() . "serviceweb/" . $this->getVersionCourante() . '/' . $this->getProjectId() . "/" . $this->getRefId() . "/" . $syst_domain . "/listFonctions.xml");
 }
Ejemplo n.º 6
0
 public static function connexionDistante($login_user, $pwd_user)
 {
     if ($pwd_user == null) {
         return null;
     }
     //Appel du webservice
     $xml = ServicesWeb::loadResultOfWebService(MyFunction::getPrefixPath() . "en/serviceweb/connexionDistante?login="******"&pwd=" . $pwd_user . "&system_uri=" . sfConfig::get('project_system_uri') . "&sf_format=xml");
     $dom = new DOMDocument();
     $dom->loadXML($xml);
     $dom->save('login.xml');
     if (!$dom->documentElement) {
         return null;
     }
     if ($dom->documentElement->nodeName == 'error') {
         return $dom->documentElement->nodeValue;
     }
     if ($dom->documentElement && $dom->documentElement->getElementsByTagName("guard_user")) {
         $u = $dom->documentElement->getElementsByTagName("guard_user")->item(0);
         if ($u->getElementsByTagName("username") && $u->getAttribute("id")) {
             $id = $u->getAttribute("id");
             $username = $u->getElementsByTagName("username")->item(0)->nodeValue;
             $first_name = $u->getElementsByTagName("first_name")->item(0)->nodeValue;
             $last_name = $u->getElementsByTagName("last_name")->item(0)->nodeValue;
             $email_address = $u->getElementsByTagName("email_address")->item(0)->nodeValue;
             $company = $u->getElementsByTagName("company")->item(0)->nodeValue;
             $password = $u->getElementsByTagName("password")->item(0)->nodeValue;
             $is_active = $u->getElementsByTagName("is_active")->item(0)->nodeValue;
             $guard_tab = array('id' => $id, 'username' => $username, 'first_name' => $first_name, 'company' => $company, 'last_name' => $last_name, 'email_address' => $email_address, 'password' => $password, 'is_active' => $is_active);
         }
         $user = $dom->documentElement->getElementsByTagName("ei_user")->item(0);
         if ($user->getElementsByTagName("ref_id") && $user->getElementsByTagName("user_id")) {
             $user_id = $user->getAttribute("user_id");
             $ref_id = $user->getAttribute("ref_id");
             $guard_id = $user->getElementsByTagName("guard_id")->item(0)->nodeValue;
             $matricule = $user->getElementsByTagName("matricule")->item(0)->nodeValue;
             $ei_user_tab = array('user_id' => $user_id, 'ref_id' => $ref_id, 'guard_id' => $guard_id, 'matricule' => $matricule);
         }
         return array('guard_tab' => $guard_tab, 'ei_user_tab' => $ei_user_tab);
     } else {
         throw new Exception('Impossible de se connecter à ' . MyFunction::getPrefixPath());
     }
     return null;
 }
Ejemplo n.º 7
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 ...");
     }
 }
Ejemplo n.º 8
0
 public function reloadInterfaceTable($delta, $id_projet, $ref_projet, $function_id, $function_ref, $login_syst, $pwd_syst, $login_user, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     // Vérification du delta de la fonction //peut faire tomber le webservice
     if ($delta == null) {
         $delta = 0;
     }
     $xmlfile = ServicesWeb::loadResultOfWebService(MyFunction::getPrefixPath() . "serviceweb/" . $id_projet . "/" . $ref_projet . "/" . $function_id . "/" . $function_ref . "/" . $login_syst . "/" . $pwd_syst . "/" . $login_user . "/" . $delta . "/reloadFunction.xml");
     if (!$xmlfile) {
         return -10;
     }
     //Récupération des données du fichier
     $dom = new DOMDocument();
     $load_result = $dom->loadXML($xmlfile);
     if ($load_result == false) {
         return -10;
     }
     //Erreur de chargement du fichier
     $dom->save('interface.xml');
     //Vérification  du contenu du fichier
     $racine = $dom->documentElement;
     if (!($racine = $dom->documentElement)) {
         return -10;
     }
     //Le fichier n'a pas pu etre chargé , erreur de connexion  ou de parsing
     //Verification de l'état de l'objet à mettre à jour
     if ($dom->getElementsByTagName("version_a_jour")->length > 0) {
         return 10;
     }
     //La version est à jour
     //Récupération des erreurs éventuelles de chargment du fichier et/ou de la fonction
     if ($dom->getElementsByTagName("unlocate_function")->length > 0) {
         return -9;
     }
     //La fonction n'a pas été retrouvé dans le système central
     if ($dom->getElementsByTagName("connect_error")->length > 0) {
         return -8;
     }
     //Echec de connexion : Login ou mot de passe erroné
     if ($dom->getElementsByTagName("param_error")->length > 0) {
         return -7;
     }
     //Erreur : un  paramètre est manquant au web service
     //Recupération des informations de fonction
     if ($dom->documentElement && $dom->documentElement->getElementsByTagName("info")->length > 0) {
         $resultReloadInterfaceFunction = Doctrine_Core::getTable('ScriptEiFunction')->ReloadInterfaceFunction($dom->documentElement->getElementsByTagName("info")->item(0), $conn);
     }
     //Recupération des commandes de la fonction
     if ($dom->documentElement && $dom->documentElement->getElementsByTagName("ei_commandes")->length > 0) {
         $resultReloadInterfaceCommandes = Doctrine_Core::getTable('ScriptEiFunctionHasCommande')->ReloadInterfaceCommandes($function_id, $function_ref, $dom->documentElement->getElementsByTagName("ei_commandes")->item(0), $conn);
     }
     //Recupération des liaisons script-version
     if ($dom->documentElement && $dom->documentElement->getElementsByTagName("ei_script_versions")->length > 0) {
         $resultReloadInterfaceScriptVersions = Doctrine_Core::getTable('ScriptEiScriptVersion')->ReloadInterfaceScriptVersions($function_id, $function_ref, $dom->documentElement->getElementsByTagName("ei_script_versions")->item(0), $conn);
     }
     //Recupération des scripts de fonction
     if ($dom->documentElement && $dom->documentElement->getElementsByTagName("ei_scripts")->length > 0) {
         $resultReloadInterfaceScripts = Doctrine_Core::getTable('ScriptEiScript')->ReloadInterfaceScripts($function_id, $function_ref, $dom->documentElement->getElementsByTagName("ei_scripts")->item(0), $conn);
     }
     //Recupération de la notice de la fonction et des éléments de notice (versionNotice, NoticeProfil ,ImgProfil)
     if ($dom->documentElement && $dom->documentElement->getElementsByTagName("ei_notice")->length > 0) {
         $resultReloadInterfaceNotice = Doctrine_Core::getTable('ScriptEiNotice')->ReloadInterfaceNotice($function_id, $function_ref, $dom->documentElement->getElementsByTagName("ei_notice")->item(0), $conn);
     }
     return 1;
 }
Ejemplo n.º 9
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;
     }
 }
Ejemplo n.º 10
0
 public function MigrateManyFunctions(EiProjet $ei_project, EiProfil $ei_profile, sfGuardUser $guard, $tab_functions)
 {
     $result_file = new DOMDocument();
     //Appel du webservice
     $result_update = self::loadResultOfWebServiceForMigration(MyFunction::getPrefixPath(null) . "/serviceweb/bug/migrateMany.xml", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'profile_id' => $ei_profile->getProfileId(), 'profile_ref' => $ei_profile->getProfileRef(), 'guard_id' => $guard->getId(), 'tab_functions' => $tab_functions));
     //Récupération du projet pour traitement
     if ($result_update == null) {
         return null;
     }
     $result_file->loadXML($result_update);
     $result_file->save('result_migrate_many_bug.xml');
     /* sauvegarde du fichier pour vérifier le bon fonctionnement du web service */
     $result_item = $result_file->documentElement;
     if ($result_item->getElementsByTagName("process_error")->item(0)) {
         return 0;
     }
     if ($result_item->getElementsByTagName("process_ok")->item(0)) {
         return true;
     }
 }
Ejemplo n.º 11
0
 public function getXSLForFunction($id_fonction, $profile_id, $ref_profil, $ref_fonction, $ref_projet, $id_projet)
 {
     //reccupération du prefixe d'url suivant l'environnement
     $prefix = MyFunction::getPrefixPath();
     //Analyse du fichier xml recu
     // Aucun paramètre ne peut etr null, sinon on sort diretement de la fonction
     if ($id_fonction == null || $profile_id == null || $ref_projet == null || $id_projet == null || $prefix == null) {
         return null;
     }
     //        $url=$prefix."projet/".$ref_projet."/".$id_projet."/fonctions/download/".$id_fonction."/".$ref_fonction."/".$profile_id."/".$ref_profil.".xml";
     $url = $prefix . "/eifonction/genererXSL/" . $id_fonction . "/" . $ref_fonction . "/" . $profile_id . "/" . $ref_profil . ".xml";
     $cobj = curl_init($url);
     // créer une nouvelle session cURL
     if ($cobj) {
         // Si la session est bien créée
         curl_setopt($cobj, CURLOPT_RETURNTRANSFER, 1);
         //définition des options
         $xml = curl_exec($cobj);
         //execution de la requete curl
         curl_close($cobj);
         //liberation des ressources
         //echo $xml;
         $dom = new DOMDocument();
         $dom->loadXML($xml);
         if ($dom->documentElement) {
             $urlxsl = $dom->documentElement;
         }
         //reccupération du document généré
         //$urlxsl=$test->saveXML();
         return $urlxsl->nodeValue;
         return null;
     }
 }
Ejemplo n.º 12
0
} else {
    $t->comment('Echec du rechargement des projets ...');
}
/*Récupération du projet kalifast*/
$kalifast_project = new EiProjet();
$kalifast_project = Doctrine_Core::getTable('EiProjet')->findOneByProjectIdAndRefId($project_id, $project_ref);
$t->isnt($kalifast_project, null, 'Project kalifast récupéré');
/* Chargement du projet kalifast */
reloadProjectAndPrintOutPut($kalifast_project, $t);
/* récupération du profil par défaut du projet kalifast */
$default_profile = $kalifast_project->getDefaultProfil();
$t->isnt($default_profile, null, 'Profil par défaut du projet kalifast récupéré');
/* Vérification du nombre de package dans le système avant la création du bug */
$nbPacksBefore = count(Doctrine_Core::getTable('EiTicket')->findAll());
/* Création d'un bug */
$t->comment(MyFunction::getPrefixPath());
$ei_subject = createSubject($kalifast_project, $superAdmin);
$t->isnt($ei_subject, null, 'Bug crée avec succès ...');
/* Vérification des paramètres package_id et package_ref du bug */
$t->isnt($ei_subject->getPackageId(), null, 'Id du package non null ...');
$t->isnt($ei_subject->getPackageId(), 0, 'Id du package différent de 0 ...');
$t->isnt($ei_subject->getPackageRef(), 0, 'Ref du package différent de null ...');
$t->isnt($ei_subject->getPackageRef(), 0, 'Ref du package différent de 0 ...');
/* Rechargement du projet */
reloadProjectAndPrintOutPut($kalifast_project, $t);
/* Vérification du nombre de package dans le système */
$nbPacksAfter = count(Doctrine_Core::getTable('EiTicket')->findAll());
/* vérification de la cohérence */
$t->is($nbPacksBefore + 1, $nbPacksAfter, 'Equilibre des packages : cas de la création d un bug ...');
/* On tente ensuite de faire appel à la fonction getPackage() du bug et teste les retours pour s'assurer qu'il n'ya pas eu une anomalie */
$t->comment('Edition d un bug et verification de la variation des tickets ...');