Gestion complète niveau et du formulaire téléphonique
This commit is contained in:
parent
75d9ec964d
commit
5e6861d9ad
|
@ -27,9 +27,9 @@
|
||||||
|
|
||||||
"category": [
|
"category": [
|
||||||
"getAll",
|
"getAll",
|
||||||
|
"getById",
|
||||||
"getByIntitule",
|
"getByIntitule",
|
||||||
"create",
|
"getOrCreate"
|
||||||
"remove"
|
|
||||||
],
|
],
|
||||||
|
|
||||||
"Personnes": [
|
"Personnes": [
|
||||||
|
|
|
@ -129,12 +129,11 @@
|
||||||
// Pour chaque relation avec le contact actuel (s'il y en a)
|
// Pour chaque relation avec le contact actuel (s'il y en a)
|
||||||
if( isset($matrice[$A]) && is_array($matrice[$A]) ){
|
if( isset($matrice[$A]) && is_array($matrice[$A]) ){
|
||||||
foreach($matrice[$A] as $B){
|
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();
|
$relation_response = $relation_request->answer();
|
||||||
|
|
||||||
// Si erreur de création de relation
|
// Si erreur de création de relation
|
||||||
return array( 'ModuleError' => $relation_response );
|
|
||||||
if( $relation_response === false )
|
if( $relation_response === false )
|
||||||
return array( 'ModuleError' => ManagerError::ModuleError );
|
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; }
|
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;
|
namespace manager\repo;
|
||||||
use \manager\Database;
|
use \manager\Database;
|
||||||
use \manager\sessionManager;
|
use \manager\sessionManager;
|
||||||
|
use \manager\Repo;
|
||||||
|
|
||||||
class subject extends parentRepo{
|
class subject extends parentRepo{
|
||||||
|
|
||||||
|
@ -192,105 +193,29 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$checkInput = Database::check('id', $A);
|
$checkInput = Database::check('id', $A);
|
||||||
$checkInput = $checkInput && Database::check('id', $B);
|
$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
|
// Si erreur de type de paramètre, on retourne FALSE
|
||||||
if( !$checkInput )
|
if( !$checkInput )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$nullCat = is_null($category);
|
/* [1] On récupère ou crée la catégorie
|
||||||
|
|
||||||
/* [1] On vérifie l'existence de la catégorie
|
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$category_exists_req = Database::getPDO()->prepare("SELECT idCategorie as id
|
$category_id_req = new Repo('category/getOrCreate', array($category));
|
||||||
FROM categories
|
$category_id = $category_id_req->answer();
|
||||||
WHERE intitule ".
|
|
||||||
( $nullCat ? "is NULL" : "= :category" )
|
|
||||||
);
|
|
||||||
$cat_ex_status = $category_exists_req->execute( ($nullCat) ? null : array( ':category' => $category ) );
|
|
||||||
|
|
||||||
// Si erreur de requête -> FALSE
|
// Si erreur -> FALSE
|
||||||
if( $cat_ex_status === false )
|
if( $category_id === 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 )
|
|
||||||
return 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
|
$relation_req = new Repo('relation/create', array($A, $B, $category_id));
|
||||||
FROM relations
|
$relation = $relation_req->answer();
|
||||||
WHERE idPersonneA = :A
|
|
||||||
AND idPersonneB = :B
|
|
||||||
AND idCategorie = :category");
|
|
||||||
|
|
||||||
$check_rel_status = $check_relation->execute( array(
|
// Si erreur de création -> FALSE
|
||||||
':A' => $A,
|
if( $relation === false )
|
||||||
':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 )
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Si tout s'est bien passé, on retourne TRUE
|
// Si tout s'est bien passé, on retourne TRUE
|
||||||
|
|
Loading…
Reference in New Issue