Subversion Repositories Applications.referentiel

Rev

Rev 30 | Rev 38 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 30 Rev 33
Line 20... Line 20...
20
	public function getElement($params_url = array()) {
20
	public function getElement($params_url = array()) {
21
		// Initialisation des variables
21
		// Initialisation des variables
22
		$info = array();
22
		$info = array();
Line 23... Line 23...
23
				
23
				
24
		// Nour recherchons le type de requête demandé
24
		// Nour recherchons le type de requête demandé
25
		$p = $this->traiterParametresUrl(array('type', 'projet'), $params_url, false);
-
 
26
		
25
		$p = $this->traiterParametresUrl(array('type'), $params_url, false);
27
		$type = $p['type'];
-
 
Line 28... Line 26...
28
		$projet = $p['projet'];
26
		extract($p);
29
		
-
 
30
		if (!is_null($type)) {
27
		
31
			if (!is_null($projet)) {
28
		if (!is_null($type)) {
32
				$methode = 'getElement'.$type;
29
			$methode = 'getElement'.$type;
33
				if (method_exists($this, $methode)) {
30
			if (method_exists($this, $methode)) {
34
					//array_shift($param);
31
				array_shift($params_url);
35
					$info = $this->$methode($projet);
32
				$info = $this->$methode($params_url);
36
				} else {
33
			} else {
37
					$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
-
 
38
				}
-
 
39
				
-
 
40
			} else {
-
 
41
				$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
34
				$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
42
			}
35
			}
43
		} else {
36
		} else {
Line 44... Line 37...
44
			$this->messages[] = "Veuillez préciser le type de requête.";
37
			$this->messages[] = "Veuillez préciser le type de requête.";
45
		}
38
		}
46
		
39
		
Line -... Line 40...
-
 
40
		// Envoie sur la sortie standard
-
 
41
		$this->envoyer($info);
-
 
42
	}
-
 
43
	
-
 
44
	/** Méthode pour récupérer les infos d'un traitement.
-
 
45
	* Appelée avec les paramêtres d'url suivant :
-
 
46
	* /Traitement/Info/id_traitement
-
 
47
	* 
-
 
48
	* @return mixed les infos du traitement ou false en cas d'échec. 
-
 
49
	*/
-
 
50
	public function getElementInfo($params_url) {
-
 
51
		$p = $this->traiterParametresUrl(array('id'), $params_url);
-
 
52
		extract($p);
-
 
53
		
-
 
54
		$infos = false;
-
 
55
		if (!is_null($id)) {
-
 
56
			$requete =	'SELECT * '.
-
 
57
						"FROM ref_traitement ".
-
 
58
						"WHERE id_traitement = $id ";
-
 
59
			// Récupération des résultats
-
 
60
			try {
-
 
61
				$infos = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);
-
 
62
				if ($infos === false) {
-
 
63
					$this->messages[] = "La requête a retourné aucun résultat.";
-
 
64
				}
-
 
65
			} catch (PDOException $e) {
-
 
66
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
67
			}
-
 
68
		} else {
-
 
69
			$this->messages[] = "Veuillez préciser l'identifinat du traitement comme premier paramêtre (ex. : 38).";
-
 
70
		}
47
		// Envoie sur la sortie standard
71
		
48
		$this->envoyer($info);
72
		return $infos;
49
	}
73
	}
50
	
74
	
-
 
75
	/**
-
 
76
	 * Retourne les infos sur la dernière demande de traitement pour un projet donné.
-
 
77
	 */
-
 
78
	public function getElementDerniereDemande($params_url) {
51
	/**
79
		$p = $this->traiterParametresUrl(array('projet'), $params_url);
52
	 * Retourne les infos sur la dernière demande de traitement pour un projet donné.
80
		extract($p);
53
	 */
81
		
54
	public function getElementDerniereDemande($projet) {
82
		$donnees = false;
55
		$projet = $this->bdd->quote($projet);
83
		if (!is_null($projet)) {
56
		$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
84
			$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
Line 69... Line 97...
69
				$this->messages[] = "La requête a retourné aucun résultat.";
97
					$this->messages[] = "La requête a retourné aucun résultat.";
70
			}
98
				}
71
		} catch (PDOException $e) {
99
			} catch (PDOException $e) {
72
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
100
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
73
		}
101
			}
-
 
102
		} else {
-
 
103
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
-
 
104
		}
-
 
105
		
74
		return $donnees;
106
		return $donnees;
75
	}
107
	}
Line 76... Line 108...
76
	
108
	
77
	/**
109
	/**
78
	 * Retourne les infos sur les traitements en cours ou en attentes.
110
	 * Retourne les infos sur les traitements en cours.
79
	 */
111
	 */
-
 
112
	public function getElementEnCours($params_url) {
-
 
113
		$p = $this->traiterParametresUrl(array('projet'), $params_url);
-
 
114
		extract($p);
-
 
115
		
80
	public function getElementEnCours($projet) {
116
		$donnees = false;
81
		$projet = $this->bdd->quote($projet);
117
		if (!is_null($projet)) {
82
		$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
118
			$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
83
					'FROM ref_traitement '.
119
						'FROM ref_traitement '.
84
					"WHERE referentiel_code = $projet ".
120
						"WHERE referentiel_code = $projet ".
85
					'	AND date_debut IS NOT NULL '.
121
						'	AND date_debut IS NOT NULL '.
86
					'	AND date_fin IS NULL '.
122
						'	AND date_fin IS NULL '.
87
					'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'meta_date_creation  DESC').' ';
-
 
Line 88... Line 123...
88
		$this->debug[] = $requete;
123
						'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'meta_date_creation  DESC').' ';
89
		
124
			
90
		// Récupération des résultats
125
			// Récupération des résultats
91
		try {
126
			try {
92
			$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
127
				$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
93
			if ($donnees === false) {
128
				if ($donnees === false) {
94
				$this->messages[] = "La requête a retourné aucun résultat.";
129
					$this->messages[] = "La requête a retourné aucun résultat.";
95
			}
130
				}
96
		} catch (PDOException $e) {
131
			} catch (PDOException $e) {
-
 
132
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
133
			}
-
 
134
		} else {
-
 
135
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
97
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
136
		}
98
		}
137
		
Line 99... Line 138...
99
		return $donnees;
138
		return $donnees;
100
	}
139
	}
101
	
140
	
102
	/**
141
	/**
-
 
142
	 * Retourne les id des demandes de traitements obsolètes.
-
 
143
	 */
-
 
144
	public function getElementObsolete($params_url) {
-
 
145
		$p = $this->traiterParametresUrl(array('projet'), $params_url);
103
	 * Retourne les id des demandes de traitements obsolètes.
146
		extract($p);
104
	 */
147
		
105
	public function getElementObsolete($projet) {
148
		$sortie = false;
106
		$projet = $this->bdd->quote($projet);
149
		if (!is_null($projet)) {
107
		try {
150
			try {
108
			$requete =	'SELECT MAX(date_debut) '.
151
				$requete =	'SELECT MAX(date_debut) '.
Line 135... Line 178...
135
		if ($donnees != false) {
178
			if ($donnees != false) {
136
			foreach ($donnees as $donnee) {
179
				foreach ($donnees as $donnee) {
137
				$sortie[] = $donnee['id_traitement'];
180
					$sortie[] = $donnee['id_traitement'];
138
			}
181
				}
139
		}
182
			}
-
 
183
		} else {
-
 
184
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
-
 
185
		}
-
 
186
		
140
		return $sortie;
187
		return $sortie;
141
	}
188
	}
Line 142... Line 189...
142
	
189
	
-
 
190
	/**
-
 
191
	 * Retourne les infos sur les traitements terminés.
-
 
192
	 */
-
 
193
	public function getElementTermines($params_url) {
-
 
194
		$p = $this->traiterParametresUrl(array('projet'), $params_url);
-
 
195
		extract($p);
-
 
196
		
-
 
197
		$donnees = false;
-
 
198
		if (!is_null($projet)) {
-
 
199
			$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
-
 
200
						'FROM ref_traitement '.
-
 
201
						"WHERE referentiel_code = $projet ".
-
 
202
						'	AND date_debut IS NOT NULL '.
-
 
203
						'	AND date_fin IS NOT NULL '.
-
 
204
						'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'meta_date_creation  DESC').' ';
-
 
205
			
-
 
206
			// Récupération des résultats
-
 
207
			try {
-
 
208
				$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
-
 
209
				if ($donnees === false) {
-
 
210
					$this->messages[] = "La requête a retourné aucun résultat.";
-
 
211
				}
-
 
212
			} catch (PDOException $e) {
-
 
213
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
214
			}
-
 
215
		} else {
-
 
216
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
-
 
217
		}
-
 
218
		
-
 
219
		return $donnees;
-
 
220
	}
-
 
221
	
143
	/**
222
	/**
144
	 * Méthode appelée pour ajouter un traitement.
223
	 * Méthode appelée pour ajouter un traitement.
145
	 * Retour l'id du nouvel enregistrement ou false!
224
	 * Retour l'id du nouvel enregistrement ou false!
146
	 */
225
	 */
147
	public function createElement($params_post) {
226
	public function createElement($params_post) {
Line 227... Line 306...
227
	 */
306
	 */
228
	public function updateElementTerminer($id, $params_post) {
307
	public function updateElementTerminer($id, $params_post) {
229
		$ok = true;
308
		$ok = true;
230
		try {
309
		try {
231
			$requete = 	'UPDATE ref_traitement '.
310
			$requete = 	'UPDATE ref_traitement '.
232
						'SET date_fin = NOW() '.
311
						'SET date_fin = NOW(), duree = TIMEDIFF(NOW(), date_debut) '.
233
						"WHERE id_traitement = $id ";
312
						"WHERE id_traitement = $id ";
234
			$this->debug[] = "$requete";
313
			$this->debug[] = "$requete";
235
			$resultat = $this->bdd->exec($requete);
314
			$resultat = $this->bdd->exec($requete);
236
			if ($resultat === false) {
315
			if ($resultat === false) {
237
				$ok = false;
316
				$ok = false;