Subversion Repositories Applications.referentiel

Rev

Rev 39 | Rev 49 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 39 Rev 45
Line 74... Line 74...
74
	
74
	
75
	/**
75
	/**
76
	 * Retourne les infos sur la dernière demande de traitement pour un projet donné.
76
	 * Retourne les infos sur la dernière demande de traitement pour un projet donné.
77
	 */
77
	 */
78
	public function getElementDerniereDemande($params_url) {
78
	public function getElementDerniereDemande($params_url) {
79
		$p = $this->traiterParametresUrl(array('projet'), $params_url);
79
		$p = $this->traiterParametresUrl(array('projet', 'script'), $params_url);
Line 80... Line 80...
80
		extract($p);
80
		extract($p);
81
		
81
		
82
		$donnees = false;
82
		$donnees = false;
83
		if (!is_null($projet)) {
83
		if (isset($projet) && isset($script)) {
84
			$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
84
			$requete =	($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
-
 
85
						'FROM ref_traitement '.
85
						'FROM ref_traitement '.
86
						"WHERE referentiel_code = $projet ".
86
						"WHERE referentiel_code = $projet ".
87
						"	AND script = $script ".
87
						'	AND date_fin IS NULL '.
88
						'	AND date_fin IS NULL '.
Line 88... Line -...
88
						'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'meta_date_creation  DESC').' '.
-
 
89
						'LIMIT 0,1 ';
-
 
90
			
89
						'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'meta_date_creation  DESC').' '.
91
			$this->debug[] = $requete;
90
						'LIMIT 0,1 ';
92
			
91
			
93
			// Récupération des résultats
92
			// Récupération des résultats
94
			try {
93
			try {
Line 100... Line 99...
100
				}
99
				}
101
			} catch (PDOException $e) {
100
			} catch (PDOException $e) {
102
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
101
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
103
			}
102
			}
104
		} else {
103
		} else {
105
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
104
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff) ".
-
 
105
				"et le code du script à lancer comme second paramêtre (ex. : tests ou versionnage).";
106
		}
106
		}
Line 107... Line 107...
107
		
107
		
108
		return $donnees;
108
		return $donnees;
Line 182... Line 182...
182
	
182
	
183
	/**
183
	/**
184
	 * Retourne les id des demandes de traitements obsolètes.
184
	 * Retourne les id des demandes de traitements obsolètes.
185
	 */
185
	 */
186
	public function getElementObsolete($params_url) {
186
	public function getElementObsolete($params_url) {
187
		$p = $this->traiterParametresUrl(array('projet'), $params_url);
187
		$p = $this->traiterParametresUrl(array('projet', 'script'), $params_url);
Line 188... Line 188...
188
		extract($p);
188
		extract($p);
189
		
189
		
190
		$sortie = false;
190
		$sortie = null;
191
		if (!is_null($projet)) {
191
		if (isset($projet) && isset($script)) {
192
			try {
192
			try {
193
				$requete =	'SELECT MAX(date_debut) '.
193
				$requete =	'SELECT MAX(date_debut) '.
-
 
194
							'FROM ref_traitement '.
194
							'FROM ref_traitement '.
195
							"WHERE referentiel_code = $projet ".
195
							"WHERE referentiel_code = $projet ".
196
							"	AND script = $script ".
Line 196... Line 197...
196
							'	AND date_debut IS NOT NULL '.
197
							'	AND date_debut IS NOT NULL '.
197
							'GROUP BY referentiel_code ';
198
							'GROUP BY referentiel_code ';
Line 202... Line 203...
202
				} else {
203
				} else {
203
					$date_max = $this->bdd->quote($date_max);
204
					$date_max = $this->bdd->quote($date_max);
204
					$requete = 	'SELECT id_traitement '.
205
					$requete = 	'SELECT id_traitement '.
205
								'FROM ref_traitement '.
206
								'FROM ref_traitement '.
206
								"WHERE referentiel_code = $projet ".
207
								"WHERE referentiel_code = $projet ".
-
 
208
								"	AND script = $script ".
207
								'	AND date_debut IS NULL '.
209
								'	AND date_debut IS NULL '.
208
								'	AND date_fin IS NULL '.
210
								'	AND date_fin IS NULL '.
209
								"	AND meta_date_creation < $date_max ";
211
								"	AND meta_date_creation < $date_max ";
210
					$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
212
					$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
211
					if ($donnees === false) {
213
					if ($donnees === false) {
Line 214... Line 216...
214
				}
216
				}
215
			} catch (PDOException $e) {
217
			} catch (PDOException $e) {
216
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
218
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
217
			}
219
			}
218
			// Pos-traitement
220
			// Pos-traitement
219
			$sortie = array();
-
 
-
 
221
 
220
			if ($donnees != false) {
222
			if ($donnees != false) {
221
				foreach ($donnees as $donnee) {
223
				foreach ($donnees as $donnee) {
222
					$sortie[] = $donnee['id_traitement'];
224
					$sortie[] = $donnee['id_traitement'];
223
				}
225
				}
224
			}
226
			}
225
		} else {
227
		} else {
226
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff).";
228
			$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff) ".
-
 
229
				"et le code du script à lancer comme second paramêtre (ex. : tests ou versionnage).";
227
		}
230
		}
Line 228... Line 231...
228
		
231
		
229
		return $sortie;
232
		return $sortie;