New file |
0,0 → 1,208 |
<?php |
class GttCtrlActionAdminProjet extends aControlleurAction { |
|
public function __construct(Registre $Registre) |
{ |
$Registre->ajouterEspace('AdminProjet', 'admin_projet'); |
$Registre->setTitre('Administrer les projets'); |
} |
|
public function executer() |
{ |
$aso_admin_projet = array(); |
|
// Récupération des projet |
$Projet = new Projet(); |
|
// Ajout du projet par défaut |
$aso_admin_projet['Projet'] = $Projet; |
|
// Récupération des catégories |
$ProjetCategorie = new ProjetCategorie(); |
$aso_admin_projet['categories'] = $ProjetCategorie->consulter(ProjetCategorie::GPC_TOUS); |
|
// Récupération des projets |
$tab_p = $Projet->consulter(Projet::GP_TOUS); |
if (false == $tab_p) { |
$aso_admin_projet['projets'] = false; |
} else { |
foreach ($tab_p as $Pr) { |
$aso_projet['id'] = $Pr->getIdProjet(); |
$aso_projet['nom'] = $Pr->getNom(); |
$aso_admin_projet['projets'][] = $aso_projet; |
} |
} |
|
// Modification des titres, légendes et bouton |
$aso_admin_projet['form_legend'] = 'Ajouter un projet'; |
$aso_admin_projet['form_bouton_value'] = 'Ajouter'; |
$aso_admin_projet['form_bouton_id'] = 'btn_projet_ajouter'; |
$aso_admin_projet['form_url'] = 'index.php?action=admin-projet_valider-ajouter'; |
|
//echo '<pre>'.print_r($aso_admin_projet, true).'</pre>'; |
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
} |
|
public function executerEditer() |
{ |
if (isset($_POST['btn_projet_modifier'])) { |
// Récupération des données du projet à modifier |
$Projet = new Projet(); |
$Projet->consulter(Projet::GP_ID, $_POST['prsu_id'], true); |
$aso_admin_projet['Projet'] = $Projet; |
// Récupération des catégories |
$ProjetCategorie = new ProjetCategorie(); |
$aso_admin_projet['categories'] = $ProjetCategorie->consulter(ProjetCategorie::GPC_TOUS); |
|
// Ajout de la catégorie par défaut |
$ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie(), true); |
$aso_admin_projet['CategorieDefaut'] = $ProjetCategorie; |
//echo '<hr>'.print_r($aso_admin_projet['CategorieDefaut'],true); |
// Modification des titres, légendes et bouton |
$aso_admin_projet['form_legend'] = 'Modifier une projet'; |
$aso_admin_projet['form_bouton_value'] = 'Modifier'; |
$aso_admin_projet['form_bouton_id'] = 'btn_projet_modifier'; |
$aso_admin_projet['form_url'] = 'index.php?action=admin-projet_valider-modifier'; |
|
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
} else if (isset($_POST['btn_projet_supprimer'])) { |
// Action suivante |
$this->setSuivant('ValiderSupprimer'); |
} |
} |
|
public function executerValiderModifier() |
{ |
if (isset($_POST['btn_utilisateur_annuler'])) { |
// Action suivante |
$this->setSuivant('__defaut__'); |
} else if (isset($_POST['btn_projet_modifier'])) { |
$aso_admin_projet = array(); |
$bool_modifier = true; |
$this->verifierChampsCommuns($aso_admin_projet, $bool_modifier); |
if ($bool_modifier) { |
// Action suivante |
$this->setSuivant('modifier'); |
} else { |
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
} |
} |
|
public function executerModifier() |
{ |
$Projet = new Projet(); |
//$Projet->setIdCategorie($_POST['caaj_id_categorie']); |
$Projet->setIdProjet($_POST['praj_id_projet']); |
$Projet->setCeCategorie($_POST['praj_ce_categorie']); |
$Projet->setNom($_POST['praj_nom']); |
$Projet->setDescription($_POST['praj_description']); |
$Projet->setDateDebut($_POST['praj_date_debut']); |
$Projet->setDateFin($_POST['praj_date_fin']); |
$Projet->setDureePrevue($_POST['praj_duree_prevue']); |
$Projet->setDureeFinance($_POST['praj_duree_finance']); |
$Projet->setAvancement($_POST['praj_avancement']); |
if ($Projet->modifier()) { |
$aso_admin_projet['messages'][] = "Le projet ${_POST['praj_nom']} a été modifié."; |
} |
// Ajout du message d'information |
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
|
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
|
public function executerValiderAjouter() |
{ |
$aso_admin_projet = array(); |
if (isset($_POST['btn_projet_annuler'])) { |
// Action suivante |
$this->setSuivant('__defaut__'); |
} else if (isset($_POST['btn_projet_ajouter'])) { |
$bool_ajouter = true; |
// Vérification de l'existance d'un projet avec le même nom |
$Projet = new Projet(); |
$bool_existe = $Projet->consulter(Projet::GP_NOM, array($_POST['praj_nom'])); |
if (true == $bool_existe) { |
$aso_admin_projet['messages'][] = "Un projet avec un nom identique existe déjà !"; |
$bool_ajouter = false; |
} |
$this->verifierChampsCommuns($aso_admin_projet, $bool_ajouter); |
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
if ($bool_ajouter) { |
// Action suivante |
$this->setSuivant('ajouter'); |
} else { |
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
} |
} |
|
public function executerAjouter() |
{ |
$aso_admin_projet = array(); |
$Projet = new Projet(); |
$Projet->setCeCategorie($_POST['praj_ce_categorie']); |
$Projet->setNom($_POST['praj_nom']); |
$Projet->setDescription($_POST['praj_description']); |
$Projet->setDateDebut($_POST['praj_date_debut']); |
$Projet->setDateFin($_POST['praj_date_fin']); |
$Projet->setDureePrevue($_POST['praj_duree_prevue']); |
$Projet->setDureeFinance($_POST['praj_duree_finance']); |
$Projet->setAvancement($_POST['praj_avancement']); |
if ($Projet->ajouter()) { |
$aso_admin_projet['messages'][] = "Le projet ${_POST['praj_nom']} a été ajouté."; |
} |
|
// Ajout du message d'information |
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
|
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
|
public function verifierChampsCommuns(&$aso_admin_projet, &$bool) |
{ |
if (empty($_POST['praj_nom'])) { |
$aso_admin_projet['messages'][] = 'Le nom du projet ne doit pas être vide !'; |
$bool = false; |
} |
} |
|
public function executerValiderSupprimer() |
{ |
$aso_admin_projet = array(); |
// Vérif des utilisateur_a_projets |
$UtilisateurAProjet = new UtilisateurAProjet(); |
$bool_existe = $UtilisateurAProjet->consulter(UtilisateurAProjet::GUAP_PROJET, array($_POST['prsu_id'])); |
if ($bool_existe == false) { |
trigger_error('UtilisateurAProjet -> OK', E_USER_NOTICE); |
// Vérif des travail_projets |
$TravailProjet = new TravailProjet(); |
$bool_existe = $TravailProjet->consulter(TravailProjet::GTP_PROJET, array($_POST['prsu_id'])); |
if ($bool_existe == false) { |
trigger_error('TravailProjet -> OK', E_USER_NOTICE); |
// Suppression du projet |
$Projet = new Projet(); |
$Projet->setIdProjet($_POST['prsu_id']); |
if ($Projet->supprimer()) { |
$aso_admin_projet['messages'][] = "Le projet a été supprimé."; |
} |
} |
} |
// Message d'erreur si le projet contient des données |
if ($bool_existe != false) { |
$aso_admin_projet['messages'][] = "Il n'est pas possible de supprimer un projet contenant des données!"; |
} |
|
// Enregistrement du message |
$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet); |
|
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
} |
?> |