Code de la machine * @name Nom de la machine * * @return id_machine Renvoie l'UID de la machine cree * Renvoie FALSE si une erreur occure * */ public static function create($code, $name){ /* [1] Verification de l'unicite de code+name =========================================================*/ $check_unique = ( self::getByCode($code) === false ); $check_unique = $check_unique && ( self::getByName($name) === false ); // Si une machine a deja ce code/nom, on renvoie une erreur if( !$check_unique ) return false; /* [2] Creation de la machine =========================================================*/ $insert_machine = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name) VALUES(DEFAULT, :code, :name)"); $insert_machine->execute(array( ':code' => $code, ':name' => $name )); /* [3] On retourne l'id_machine ou FALSE si erreur =========================================================*/ $check_machine = self::getByCode($code); // Si n'existe pas on retourne FALSE if( $check_machine === false ) return false; // Sinon, on retourne son id return $check_machine['id_machine']; } /* RENVOIE UNE LISTE DE MACHINE EN FONCTION D'UN MOT CLE * * @keyword Element de recherche * * @return machines Retourne les machines trouvees * */ public static function search($keyword){ // On recupere les donnees $searchmachines = Database::getPDO()->query("SELECT * FROM machine WHERE code LIKE '%".$keyword."%' OR name LIKE '%".$keyword."%' "); return Database::delNumeric( $searchmachines->fetchAll() ); } /* RENVOIE LA LISTE DE TOUTES LES MACHINES * * @return machine Liste des machines de la BDD * */ public static function getAll(){ // On ecrit la requete $request = Database::getPDO()->query("SELECT * FROM machine ORDER BY name"); // On recupere le resultat $answer = $request->fetchAll(); // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer ); } /* RENVOIE LA MACHINE D'ID DONNE * * @id Id de la machine en question * * @return machine Renvoie la machine d'id donne si existe * @return error Retourne FALSE si aucun resultat * */ public static function getById($id){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM machine WHERE id_machine = :id"); // On execute la requete $request->execute(array( ':id' => $id )); // On recupere 1 seule machine $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) return false; // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer, true ); } /* RENVOIE LA MACHINE DE CODE DONNE * * @code Code de la machine en question * * @return machine Renvoie la machine de code donne si existe * @return error Retourne FALSE si aucun resultat * */ public static function getByCode($code){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM machine WHERE code = :code"); // On execute la requete $request->execute(array( ':code' => $code )); // On recupere 1 seule machine $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) return false; // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer, true ); } /* RENVOIE LA MACHINE DE NOM DONNE * * @name Nom de la machine en question * * @return machine Renvoie la machine de nom donne si existe * @return error Retourne FALSE si aucun resultat * */ public static function getByName($name){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM machine WHERE name = :name"); // On execute la requete $request->execute(array( ':name' => $name )); // On recupere 1 seule machine $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) return false; // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer, true ); } /* RENVOIE LES GROUPES AUQUEL APPARTIENT UNE MACHINE DONNEE * * @id_machine UID de la machine en question * * @return clusters Retourne la liste des groupes auquel appartient la machine * */ public static function getClusters($id_machine){ /* [1] On redige/execute la requete =========================================================*/ $get_clusters = Database::getPDO()->prepare("SELECT c.* FROM cluster as c, cluster_merge as cm WHERE cm.id_cluster = c.id_cluster AND cm.id_entity = :id_machine AND cm.class = :class ORDER BY c.id_cluster"); $get_clusters->execute(array( ':id_machine' => $id_machine, ':class' => clusterRepo::MACHINE_CLASS )); /* [2] On retourne la liste des groupes =========================================================*/ return Database::delNumeric( $get_clusters->fetchAll() ); } /* MODIFICATION D'UNE MACHINE DONNEE * * @id_machine UID de la machine * @code Code RFID de la machine * @name Identifiant l'utilisateur * * @return status Renvoie si oui ou non tout s'est bien passe * */ public static function edit($id_machine=null, $code=null, $name=null){ /* [1] Verification de l'unicite de code+name (si differents) =========================================================*/ // On recupere les machine ayant le meme code ou name (si existent) $getbycode = self::getByCode($code); $getbyname = self::getByName($name); $check_unique = is_array($getbycode) && $getbycode['id_machine'] == $id_machine || !is_array($getbycode); $check_unique = $check_unique && is_array($getbyname) && $getbyname['id_machine'] == $id_machine || !is_array($getbyname); // Si un utilisateur a deja ce code ou ce name (sauf lui), on renvoie une erreur if( !$check_unique ) return false; /* [2] Modification de la machine =========================================================*/ $edit_machine = Database::getPDO()->prepare("UPDATE machine SET code = :code, name = :name WHERE id_machine = :id_machine"); $edit_machine->execute(array( ':code' => $code, ':name' => $name, ':id_machine' => $id_machine )); /* [3] On retourne si tout a ete modifie, si erreur =========================================================*/ $check_machine = self::getById($id_machine); $checker = $check_machine['id_machine'] == $id_machine; $checker = $checker && $check_machine['code'] == $code; $checker = $checker && $check_machine['name'] == $name; // On retourne l'etat de la modification return $checker; } /* SUPPRIME UNE MACHINE DONNE * * @id_machine UID de la machine en question * * @return status Retourne si oui ou non la machine a bien ete supprime * */ public static function delete($id_machine){ /* [1] On redige/execute la requete =========================================================*/ $delete_machine = Database::getPDO()->prepare("DELETE FROM machine WHERE id_machine = :id_machine"); $delete_machine->execute(array( ':id_machine' => $id_machine )); /* [2] On verifie que la machine n'existe plus =========================================================*/ return ( self::getById($id_machine) === false ); } } ?>