Gestion complète niveau et du formulaire téléphonique
This commit is contained in:
parent
75d9ec964d
commit
5e6861d9ad
|
@ -27,9 +27,9 @@
|
|||
|
||||
"category": [
|
||||
"getAll",
|
||||
"getById",
|
||||
"getByIntitule",
|
||||
"create",
|
||||
"remove"
|
||||
"getOrCreate"
|
||||
],
|
||||
|
||||
"Personnes": [
|
||||
|
|
|
@ -129,12 +129,11 @@
|
|||
// Pour chaque relation avec le contact actuel (s'il y en a)
|
||||
if( isset($matrice[$A]) && is_array($matrice[$A]) ){
|
||||
foreach($matrice[$A] as $B){
|
||||
$relation_request = new Repo('subject/link', array( $A, $B, null ));
|
||||
$relation_request = new Repo('subject/link', array( $closest_id[$A], $closest_id[$B], '' ));
|
||||
|
||||
$relation_response = $relation_request->answer();
|
||||
|
||||
// Si erreur de création de relation
|
||||
return array( 'ModuleError' => $relation_response );
|
||||
if( $relation_response === false )
|
||||
return array( 'ModuleError' => ManagerError::ModuleError );
|
||||
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
namespace manager\repo;
|
||||
use \manager\Database;
|
||||
use \manager\sessionManager;
|
||||
|
||||
class category extends parentRepo{
|
||||
|
||||
protected static function table_name(){ static $table_name = 'categories'; return $table_name; }
|
||||
|
||||
|
||||
/* CREATION D'UNE NOUVELLE CATEGORIE SI AUCUNE AVEC CE NOM N'EXISTE DEJA, SINON RENVOIE L'ID
|
||||
*
|
||||
* @intitule<String> Nom de la catégorie
|
||||
*
|
||||
* @return id<int> Retourne l'id de la catégorie crée, FALSE si erreur
|
||||
*
|
||||
*/
|
||||
public static function getOrCreate($intitule){
|
||||
/* [0] Vérification des INPUT
|
||||
=========================================================*/
|
||||
// Si erreur de type de paramètre, on retourne FALSE
|
||||
if( !Database::check('varchar(0,40)', $intitule) )
|
||||
return false;
|
||||
|
||||
/* [1] Vérification qu'aucune n'a cet intitulé
|
||||
=========================================================*/
|
||||
$existing = self::getByIntitule($intitule);
|
||||
|
||||
/* (1) Si existe déja avec cet intitulé, on récupère l'id */
|
||||
if( is_array($existing) && count($existing) > 0 )
|
||||
return $existing[0]['idCategorie'];
|
||||
|
||||
|
||||
/* [2] Création si l'intitulé n'est pas déja utilisé
|
||||
=========================================================*/
|
||||
$create_r = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule)
|
||||
VALUES(DEFAULT, :intitule)");
|
||||
$create_r_status = $create_r->execute( array( ':intitule' => $intitule ) );
|
||||
|
||||
// Si erreur de requête
|
||||
if( $create_r_status === false )
|
||||
return false;
|
||||
|
||||
|
||||
/* [3] On vérifie et renvoie l'id
|
||||
=========================================================*/
|
||||
$created = self::getByIntitule($intitule);
|
||||
|
||||
/* (1) Si existe déja avec cet intitulé, on récupère l'id */
|
||||
if( is_array($created) && count($created) > 0 )
|
||||
return $created[0]['idCategorie'];
|
||||
|
||||
// Sinon, c'est qu'il y a une erreur
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
|
@ -9,8 +9,64 @@
|
|||
protected static function table_name(){ static $table_name = 'relations'; return $table_name; }
|
||||
|
||||
|
||||
public static function create(){
|
||||
/* CREATION D'UNE RELATION ENTRE @A ET @B DE TYPE @category
|
||||
*
|
||||
* @A<int> UID du sujet A
|
||||
* @B<int> UID du sujet B
|
||||
* @category<int> UID de la categorie en question
|
||||
*
|
||||
* @return status<Boolean> On retourne TRUE si tout s'est bien passé, sinon FALSE si erreur
|
||||
*
|
||||
*/
|
||||
public static function create($A, $B, $category){
|
||||
/* [0] Vérification des INPUT
|
||||
=========================================================*/
|
||||
$checkInput = Database::check('id', $A);
|
||||
$checkInput = $checkInput && Database::check('id', $B);
|
||||
$checkInput = $checkInput && Database::check('id', $category);
|
||||
|
||||
// Si erreur de type de paramètre, on retourne FALSE
|
||||
if( !$checkInput )
|
||||
return false;
|
||||
|
||||
|
||||
|
||||
/* [1] On vérifie que la relation n'existe pas déja
|
||||
=========================================================*/
|
||||
$exists = self::getById($A, $B, $category);
|
||||
|
||||
// Si la relation existe, on retourne TRUE
|
||||
if( is_array($exists) && count($exists) > 0 )
|
||||
return true;
|
||||
|
||||
|
||||
/* [2] Création de la relation
|
||||
=========================================================*/
|
||||
$create_relation = Database::getPDO()->prepare("INSERT INTO relations(idPersonneA, idPersonneB, idCategorie)
|
||||
VALUES(:A, :B, :category)");
|
||||
$create_rel_status = $create_relation->execute( array(
|
||||
':A' => $A,
|
||||
':B' => $B,
|
||||
':category' => $category
|
||||
));
|
||||
|
||||
|
||||
// Si erreur de requête -> FALSE
|
||||
if( $create_rel_status === false )
|
||||
return false;
|
||||
|
||||
|
||||
/* [3] On vérifie que la relation est crée
|
||||
=========================================================*/
|
||||
$get_relation = self::getById($A, $B, $category);
|
||||
|
||||
// Si la relation n'existe pas, on renvoie une erreur
|
||||
if( !is_array($get_relation) || is_array($get_relation) && count($get_relation) == 0 )
|
||||
return false;
|
||||
|
||||
|
||||
// Si tout s'est bien passé, on retourne TRUE
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace manager\repo;
|
||||
use \manager\Database;
|
||||
use \manager\sessionManager;
|
||||
use \manager\Repo;
|
||||
|
||||
class subject extends parentRepo{
|
||||
|
||||
|
@ -192,105 +193,29 @@
|
|||
=========================================================*/
|
||||
$checkInput = Database::check('id', $A);
|
||||
$checkInput = $checkInput && Database::check('id', $B);
|
||||
$checkInput = $checkInput && ( Database::check('varchar(0,40)', $category) || is_null($category) );
|
||||
$checkInput = $checkInput && Database::check('varchar(0,40)', $category);
|
||||
|
||||
// Si erreur de type de paramètre, on retourne FALSE
|
||||
if( !$checkInput )
|
||||
return false;
|
||||
|
||||
$nullCat = is_null($category);
|
||||
|
||||
/* [1] On vérifie l'existence de la catégorie
|
||||
/* [1] On récupère ou crée la catégorie
|
||||
=========================================================*/
|
||||
$category_exists_req = Database::getPDO()->prepare("SELECT idCategorie as id
|
||||
FROM categories
|
||||
WHERE intitule ".
|
||||
( $nullCat ? "is NULL" : "= :category" )
|
||||
);
|
||||
$cat_ex_status = $category_exists_req->execute( ($nullCat) ? null : array( ':category' => $category ) );
|
||||
$category_id_req = new Repo('category/getOrCreate', array($category));
|
||||
$category_id = $category_id_req->answer();
|
||||
|
||||
// Si erreur de requête -> FALSE
|
||||
if( $cat_ex_status === false )
|
||||
return false;
|
||||
|
||||
// On récupère l'id de la catégorie, sinon NULL
|
||||
$category_id = is_array($category_exists_req->fetch()) ? $category_exists_req->fetch()['id'] : null;
|
||||
|
||||
|
||||
/* [2] On crée la catégorie si elle n'existe pas
|
||||
=========================================================*/
|
||||
if( $category_id === null ){
|
||||
|
||||
$create_category_req = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule)
|
||||
VALUES(DEFAULT, ".
|
||||
( $nullCat ? "NULL" : ":category" )
|
||||
.")");
|
||||
$create_cat_status = $create_category_req->execute( ($nullCat) ? null : array( ':category' => $category ) );
|
||||
|
||||
// Si erreur de requête -> FALSE
|
||||
if( $create_cat_status === false )
|
||||
return false;
|
||||
|
||||
// On récupère l'id de la catégorie
|
||||
$get_category_id = Database::getPDO()->prepare("SELECT idCategorie as id
|
||||
FROM categories
|
||||
WHERE intitule ".
|
||||
( $nullCat ? "is NULL" : "= :category" )
|
||||
);
|
||||
$get_cat_status = $get_category_id->execute( ($nullCat) ? null : array( ':category' => $category ) );
|
||||
|
||||
// Si erreur de requête -> FALSE
|
||||
if( $get_cat_status === false )
|
||||
return false;
|
||||
|
||||
// Si on a toujours rien, on retourne FALSE
|
||||
if( !is_array($get_category_id->fetch()) )
|
||||
return false;
|
||||
|
||||
// On récupère l'id de la catégorie
|
||||
$category_id = $get_category_id->fetch()['id'];
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* [3] On crée la relation
|
||||
=========================================================*/
|
||||
$create_relation = Database::getPDO()->prepare("INSERT INTO relations(idPersonneA, idPersonneB, idCategorie)
|
||||
VALUES(:A, :B, :category)");
|
||||
$create_rel_status = $create_relation->execute( array(
|
||||
':A' => $A,
|
||||
':B' => $B,
|
||||
':category' => $category_id
|
||||
));
|
||||
|
||||
return $B;
|
||||
|
||||
// Si erreur de requête -> FALSE
|
||||
if( $create_rel_status === false )
|
||||
// Si erreur -> FALSE
|
||||
if( $category_id === false )
|
||||
return false;
|
||||
|
||||
|
||||
/* [4] On vérifie que la relation est crée
|
||||
/* [2] On crée la relation
|
||||
=========================================================*/
|
||||
$check_relation = Database::getPDO()->prepare("SELECT idPersonneA, idPersonneB, idCategorie
|
||||
FROM relations
|
||||
WHERE idPersonneA = :A
|
||||
AND idPersonneB = :B
|
||||
AND idCategorie = :category");
|
||||
$relation_req = new Repo('relation/create', array($A, $B, $category_id));
|
||||
$relation = $relation_req->answer();
|
||||
|
||||
$check_rel_status = $check_relation->execute( array(
|
||||
':A' => $A,
|
||||
':B' => $B,
|
||||
':category' => $category_id
|
||||
));
|
||||
|
||||
// Si erreur de requête -> FALSE
|
||||
if( $check_rel_status === false )
|
||||
return false;
|
||||
|
||||
|
||||
// Si on ne trouve pas, on retourne une erreur
|
||||
if( $check_relation->fetch() === false )
|
||||
// Si erreur de création -> FALSE
|
||||
if( $relation === false )
|
||||
return false;
|
||||
|
||||
// Si tout s'est bien passé, on retourne TRUE
|
||||
|
|
Loading…
Reference in New Issue