Subversion Repositories Applications.gtt

Rev

Rev 122 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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