Subversion Repositories Applications.referentiel

Rev

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

Rev 344 Rev 388
1
<?php
1
<?php
2
/**
2
/**
3
 * Service fournissant des données sur les résultats d'un traitement.
3
 * Service fournissant des données sur les résultats d'un traitement.
4
 * Encodage en entrée : utf8
4
 * Encodage en entrée : utf8
5
 * Encodage en sortie : utf8
5
 * Encodage en sortie : utf8
6
 *
6
 *
7
 * @category	Php 5.2
7
 * @category	Php 5.2
8
 * @package		Referentiel
8
 * @package		Referentiel
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @license		GPL v3 <http://www.gnu.org/licenses/gpl.txt>
10
 * @license		GPL v3 <http://www.gnu.org/licenses/gpl.txt>
11
 * @license		CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
11
 * @license		CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
12
 * @copyright	2010 Tela-Botanica
12
 * @copyright	2010 Tela-Botanica
13
 * @version		$Id$
13
 * @version		$Id$
14
 */
14
 */
15
class Resultat extends Ref {
15
class Resultat extends Ref {
16
	/**
16
	/**
17
	 * Méthode principale appelée avec une requête de type GET.
17
	 * Méthode principale appelée avec une requête de type GET.
18
	 */
18
	 */
19
	public function getElement($params_url = array()) {
19
	public function getElement($params_url = array()) {
20
		// Initialisation des variables
20
		// Initialisation des variables
21
		$info = array();
21
		$info = array();
22
				
22
				
23
		// Nour recherchons le type de requête demandé
23
		// Nour recherchons le type de requête demandé
24
		$p = $this->traiterParametresUrl(array('type'), $params_url, false);
24
		$p = $this->traiterParametresUrl(array('type'), $params_url, false);
25
		extract($p);
25
		extract($p);
26
		
26
		
27
		if (!is_null($type)) {
27
		if (!is_null($type)) {
28
			$methode = 'getElement'.$type;
28
			$methode = 'getElement'.$type;
29
			if (method_exists($this, $methode)) {
29
			if (method_exists($this, $methode)) {
30
				array_shift($params_url);
30
				array_shift($params_url);
31
				$info = $this->$methode($params_url);
31
				$info = $this->$methode($params_url);
32
			} else {
32
			} else {
33
				$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
33
				$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
34
			}
34
			}
35
		} else {
35
		} else {
36
			$this->messages[] = "Veuillez préciser le type de requête.";
36
			$this->messages[] = "Veuillez préciser le type de requête.";
37
		}
37
		}
38
		
38
		
39
		// Envoie sur la sortie standard
39
		// Envoie sur la sortie standard
40
		$this->envoyer($info);
40
		$this->envoyer($info);
41
	}
41
	}
42
	
42
	
43
	/** Méthode pour récupérer le nombre de résultat d'un traitement donné.
43
	/** Méthode pour récupérer le nombre de résultat d'un traitement donné.
44
	* Appelée avec les paramêtres d'url suivant :
44
	* Appelée avec les paramêtres d'url suivant :
45
	* /Resultat/Nombre/id_traitement
45
	* /Resultat/Nombre/id_traitement
46
	* 
46
	* 
47
	* @return mixed le nombre de résultat ou false en cas d'échec. 
47
	* @return mixed le nombre de résultat ou false en cas d'échec. 
48
	*/
48
	*/
49
	public function getElementNombre($params_url) {
49
	public function getElementNombre($params_url) {
50
		$p = $this->traiterParametresUrl(array('id'), $params_url);
50
		$p = $this->traiterParametresUrl(array('id'), $params_url);
51
		extract($p);
51
		extract($p);
52
		$requete =	'SELECT COUNT(*) AS nbre '.
52
		$requete =	'SELECT COUNT(*) AS nbre '.
53
					"FROM ref_resultat ".
53
					"FROM ref_resultat ".
54
					"WHERE ce_traitement = $id ";
54
					"WHERE ce_traitement = $id ";
55
		// Récupération des résultats
55
		// Récupération des résultats
56
		try {
56
		try {
57
			$nbre = $this->bdd->query($requete)->fetchColumn();
57
			$nbre = $this->bdd->query($requete)->fetchColumn();
58
			if ($nbre === false) {
58
			if ($nbre === false) {
59
				$this->messages[] = "La requête a retourné aucun résultat.";
59
				$this->messages[] = "La requête a retourné aucun résultat.";
60
			}
60
			}
61
		} catch (PDOException $e) {
61
		} catch (PDOException $e) {
62
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
62
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
63
		}
63
		}
64
		return $nbre;
64
		return $nbre;
65
	}
65
	}
66
	
66
	
67
	/** Méthode pour récupérer les infos d'un résultat.
67
	/** Méthode pour récupérer les infos d'un résultat.
68
	* Appelée avec les paramêtres d'url suivant :
68
	* Appelée avec les paramêtres d'url suivant :
69
	* /Resultat/Info/id_resultat
69
	* /Resultat/Info/id_resultat
70
	* 
70
	* 
71
	* @return mixed les infos du résultat ou false en cas d'échec. 
71
	* @return mixed les infos du résultat ou false en cas d'échec. 
72
	*/
72
	*/
73
	public function getElementInfo($params_url) {
73
	public function getElementInfo($params_url) {
74
		$p = $this->traiterParametresUrl(array('id'), $params_url);
74
		$p = $this->traiterParametresUrl(array('id'), $params_url);
75
		extract($p);
75
		extract($p);
76
		$requete =	'SELECT * '.
76
		$requete =	'SELECT * '.
77
					"FROM ref_resultat ".
77
					"FROM ref_resultat ".
78
					"WHERE id_resultat = $id ";
78
					"WHERE id_resultat = $id ";
79
		// Récupération des résultats
79
		// Récupération des résultats
80
		try {
80
		try {
81
			$infos = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);
81
			$infos = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC);
82
			if ($infos === false) {
82
			if ($infos === false) {
83
				$this->messages[] = "La requête a retourné aucun résultat.";
83
				$this->messages[] = "La requête a retourné aucun résultat.";
84
			}
84
			}
85
		} catch (PDOException $e) {
85
		} catch (PDOException $e) {
86
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
86
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
87
		}
87
		}
88
		return $infos;
88
		return $infos;
89
	}
89
	}
90
	
90
	
91
	/** Méthode pour récupérer des infos partielles (id, nom, resultat) des résultats d'un traitement.
91
	/** Méthode pour récupérer des infos partielles (id, nom, resultat) des résultats d'un traitement.
92
	* Appelée avec les paramêtres d'url suivant :
92
	* Appelée avec les paramêtres d'url suivant :
93
	* /Resultat/Traitement/id_traitement
93
	* /Resultat/Traitement/id_traitement
94
	* 
94
	* 
95
	* @return mixed le tableau de tableau d'infos ou false en cas d'échec. 
95
	* @return mixed le tableau de tableau d'infos ou false en cas d'échec. 
96
	*/
96
	*/
97
	public function getElementTraitement($params_url) {
97
	public function getElementTraitement($params_url) {
98
		$p = $this->traiterParametresUrl(array('id'), $params_url);
98
		$p = $this->traiterParametresUrl(array('id'), $params_url);
99
		extract($p);
99
		extract($p);
100
		$requete =	'SELECT * '.
100
		$requete =	'SELECT * '.
101
					"FROM ref_resultat ".
101
					"FROM ref_resultat ".
102
					"WHERE ce_traitement = $id ";
102
					"WHERE ce_traitement = $id order by id_resultat ";
103
		// Récupération des résultats
103
		// Récupération des résultats
104
		try {
104
		try {
105
			$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
105
			$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
106
			if ($infos === false) {
106
			if ($infos === false) {
107
				$this->messages[] = "La requête a retourné aucun résultat.";
107
				$this->messages[] = "La requête a retourné aucun résultat.";
108
			}
108
			}
109
		} catch (PDOException $e) {
109
		} catch (PDOException $e) {
110
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
110
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
111
		}
111
		}
112
		return $infos;
112
		return $infos;
113
	}
113
	}
114
	
114
	
115
	/**
115
	/**
116
	 * Méthode appelée pour ajouter un traitement.
116
	 * Méthode appelée pour ajouter un traitement.
117
	 * 
117
	 * 
118
	 * @return mixed l'id du nouvel enregistrement ou false!
118
	 * @return mixed l'id du nouvel enregistrement ou false!
119
	 */
119
	 */
120
	public function createElement($params_post) {
120
	public function createElement($params_post) {
121
		$params_proteges = $this->traiterParametresPost(array('id_traitement', 'nom', 'description', 'resultat', 'message'), $params_post);
121
		$params_proteges = $this->traiterParametresPost(array('id_traitement', 'nom', 'description', 'resultat', 'message'), $params_post);
122
		extract($params_proteges);
122
		extract($params_proteges);
123
		$meta_date_creation = $this->bdd->quote(date ("Y-m-d H:i:s"));
123
		$meta_date_creation = $this->bdd->quote(date ("Y-m-d H:i:s"));
124
		
124
		
125
		try {
125
		try {
126
			$requete = 	"INSERT INTO ref_resultat ".
126
			$requete = 	"INSERT INTO ref_resultat ".
127
   						' (ce_traitement, nom, description, resultat, message, meta_date_creation) '.
127
   						' (ce_traitement, nom, description, resultat, message, meta_date_creation) '.
128
						" VALUES ($id_traitement, $nom, $description, $resultat, $message, $meta_date_creation) ";
128
						" VALUES ($id_traitement, $nom, $description, $resultat, $message, $meta_date_creation) ";
129
			$resultat = $this->bdd->exec($requete);
129
			$resultat = $this->bdd->exec($requete);
130
			if ($resultat === false) {
130
			if ($resultat === false) {
131
				$id = false;
131
				$id = false;
132
				$this->debug[] = "Résultat NON ajouté.";
132
				$this->debug[] = "Résultat NON ajouté.";
133
			} else {
133
			} else {
134
				$id = $this->bdd->lastInsertId();
134
				$id = $this->bdd->lastInsertId();
135
			}
135
			}
136
		} catch (PDOException $e) {
136
		} catch (PDOException $e) {
137
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
137
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
138
		}
138
		}
139
	   	
139
	   	
140
	   	$this->envoyer($id);
140
	   	$this->envoyer($id);
141
	}
141
	}
142
}
142
}
143
?>
-
 
144
143
?>
-
 
144