Rev 122 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?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__');
}
}
?>