Subversion Repositories Applications.gtt

Rev

Rev 108 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
71 jpm 1
<?php
2
class GttCtrlActionAdminProjet extends aControlleurAction {
3
 
4
	public function __construct(Registre $Registre)
5
	{
6
		$Registre->ajouterEspace('AdminProjet', 'admin_projet');
7
		$Registre->setTitre('Administrer les projets');
8
	}
9
 
10
	public function executer()
11
    {
12
    	$aso_admin_projet = array();
13
 
103 jpm 14
		// Récupération des projet
71 jpm 15
		$Projet = new Projet();
16
 
103 jpm 17
		// Ajout du projet par défaut
71 jpm 18
		$aso_admin_projet['Projet'] = $Projet;
19
 
103 jpm 20
		// Récupération des catégories
75 jpm 21
		$ProjetCategorie = new ProjetCategorie();
22
		$aso_admin_projet['categories'] = $ProjetCategorie->consulter(ProjetCategorie::GPC_TOUS);
23
 
103 jpm 24
		// Récupération des projets
71 jpm 25
    	$tab_p = $Projet->consulter(Projet::GP_TOUS);
95 jpm 26
    	if (false == $tab_p) {
27
    		$aso_admin_projet['projets'] = false;
28
    	} else {
29
			foreach ($tab_p as $Pr) {
30
	    			$aso_projet['id'] = $Pr->getIdProjet();
31
	    			$aso_projet['nom'] = $Pr->getNom();
32
	    			$aso_admin_projet['projets'][] = $aso_projet;
33
	    	}
71 jpm 34
    	}
35
 
103 jpm 36
		// Modification des titres, légendes et bouton
71 jpm 37
		$aso_admin_projet['form_legend'] = 'Ajouter un projet';
38
		$aso_admin_projet['form_bouton_value'] = 'Ajouter';
39
		$aso_admin_projet['form_bouton_id'] = 'btn_projet_ajouter';
40
		$aso_admin_projet['form_url'] = 'index.php?action=admin-projet_valider-ajouter';
41
 
42
    	//echo '<pre>'.print_r($aso_admin_projet, true).'</pre>';
43
		$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet);
44
    }
45
 
46
	public function executerEditer()
47
    {
48
		if (isset($_POST['btn_projet_modifier'])) {
103 jpm 49
			// Récupération des données du projet à modifier
71 jpm 50
			$Projet = new Projet();
51
			$Projet->consulter(Projet::GP_ID, $_POST['prsu_id'], true);
52
			$aso_admin_projet['Projet'] = $Projet;
103 jpm 53
			// Récupération des catégories
75 jpm 54
			$ProjetCategorie = new ProjetCategorie();
55
			$aso_admin_projet['categories'] = $ProjetCategorie->consulter(ProjetCategorie::GPC_TOUS);
71 jpm 56
 
103 jpm 57
			// Ajout de la catégorie par défaut
75 jpm 58
			$ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie(), true);
59
			$aso_admin_projet['CategorieDefaut'] = $ProjetCategorie;
60
			//echo '<hr>'.print_r($aso_admin_projet['CategorieDefaut'],true);
103 jpm 61
			// Modification des titres, légendes et bouton
71 jpm 62
			$aso_admin_projet['form_legend'] = 'Modifier une projet';
63
			$aso_admin_projet['form_bouton_value'] = 'Modifier';
64
			$aso_admin_projet['form_bouton_id'] = 'btn_projet_modifier';
65
			$aso_admin_projet['form_url'] = 'index.php?action=admin-projet_valider-modifier';
66
 
67
			$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet);
68
		} else if (isset($_POST['btn_projet_supprimer'])) {
69
			// Action suivante
70
    		$this->setSuivant('ValiderSupprimer');
71
		}
72
    }
73
 
74
	public function executerValiderModifier()
75
	{
80 jpm 76
		if (isset($_POST['btn_projet_modifier'])) {
71 jpm 77
			$Projet = new Projet();
78
			//$Projet->setIdCategorie($_POST['caaj_id_categorie']);
79
			$Projet->setIdProjet($_POST['praj_id_projet']);
75 jpm 80
			$Projet->setCeCategorie($_POST['praj_ce_categorie']);
82 jpm 81
			$Projet->setNom($_POST['praj_nom']);
71 jpm 82
			$Projet->setDescription($_POST['praj_description']);
83
			$Projet->setDateDebut($_POST['praj_date_debut']);
88 jpm 84
			$Projet->setDateFin($_POST['praj_date_fin']);
71 jpm 85
			$Projet->setDureePrevue($_POST['praj_duree_prevue']);
108 jpm 86
			$Projet->setDureeFinance($_POST['praj_duree_finance']);
71 jpm 87
			$Projet->setAvancement($_POST['praj_avancement']);
88
	    	$Projet->modifier();
89
		}
80 jpm 90
		// Action suivante
91
	    $this->setSuivant('__defaut__');
71 jpm 92
	}
93
 
94
    public function executerValiderAjouter()
95
    {
96
		$aso_admin_projet = array();
103 jpm 97
		// Nous vérifions que le bouton annuler n'a pas été pressé
71 jpm 98
		if (!isset($_POST['btn_projet_annuler']) && isset($_POST['btn_projet_ajouter'])) {
99
			// Ajout du projet
100
			$Projet = new Projet();
101
			$bool_existe = $Projet->consulter(Projet::GP_NOM, array($_POST['praj_nom']));
102
			if ($bool_existe == false) {
75 jpm 103
				$Projet->setCeCategorie($_POST['praj_ce_categorie']);
82 jpm 104
				$Projet->setNom($_POST['praj_nom']);
71 jpm 105
				$Projet->setDescription($_POST['praj_description']);
75 jpm 106
				$Projet->setDateDebut($_POST['praj_date_debut']);
88 jpm 107
				$Projet->setDateFin($_POST['praj_date_fin']);
75 jpm 108
				$Projet->setDureePrevue($_POST['praj_duree_prevue']);
108 jpm 109
				$Projet->setDureeFinance($_POST['praj_duree_finance']);
75 jpm 110
				$Projet->setAvancement($_POST['praj_avancement']);
71 jpm 111
	    		if ($Projet->ajouter()) {
103 jpm 112
	    			$aso_admin_projet['message'] = "Le projet ${_POST['praj_nom']} a été ajouté.";
71 jpm 113
	    		}
114
			} else {
103 jpm 115
				$aso_admin_projet['message'] = "Un projet avec un nom identique existe déjà !";
71 jpm 116
 
117
			}
118
		}
119
 
120
		// Ajout du message d'information
121
		$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet);
122
 
123
		// Action suivante
124
    	$this->setSuivant('__defaut__');
125
    }
126
 
127
    public function executerValiderSupprimer()
128
    {
129
		$aso_admin_projet = array();
103 jpm 130
		// Vérif des utilisateur_a_projets
71 jpm 131
		$UtilisateurAProjet = new UtilisateurAProjet();
132
		$bool_existe = $UtilisateurAProjet->consulter(UtilisateurAProjet::GUAP_PROJET, array($_POST['prsu_id']));
133
		if ($bool_existe == false) {
134
			trigger_error('UtilisateurAProjet -> OK', E_USER_NOTICE);
103 jpm 135
			// Vérif des travail_projets
71 jpm 136
			$TravailProjet = new TravailProjet();
137
			$bool_existe = $TravailProjet->consulter(TravailProjet::GTP_PROJET, array($_POST['prsu_id']));
138
			if ($bool_existe == false) {
139
				trigger_error('TravailProjet -> OK', E_USER_NOTICE);
95 jpm 140
				// Suppression du projet
141
				$Projet = new Projet();
142
				$Projet->setIdProjet($_POST['prsu_id']);
143
		    	if ($Projet->supprimer()) {
103 jpm 144
		    		$aso_admin_projet['message'] = "Le projet a été supprimé.";
95 jpm 145
		    	}
71 jpm 146
			}
147
		}
103 jpm 148
		// Message d'erreur si le projet contient des données
71 jpm 149
		if ($bool_existe != false) {
103 jpm 150
			$aso_admin_projet['message'] = "Il n'est pas possible de supprimer un projet contenant des données!";
71 jpm 151
		}
152
 
153
		// Enregistrement du message
154
		$this->getRegistre()->ajouterDonnee('admin_projet', $aso_admin_projet);
155
 
156
		// Action suivante
157
    	$this->setSuivant('__defaut__');
158
    }
159
}
160
?>