Subversion Repositories eFlore/Applications.cel

Rev

Rev 423 | Rev 738 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 423 Rev 605
1
<?php
1
<?php
2
 
2
 
3
 
3
 
4
// CRUD ligne d'inventaire :
4
// CRUD ligne d'inventaire :
5
// In get : utf8
5
// In get : utf8
6
// In post : utf8
6
// In post : utf8
7
// out : utf8
7
// out : utf8
8
 
8
 
9
Class Inventory extends DBAccessor {
9
Class Inventory extends DBAccessor {
10
 
10
 
11
 
11
 
12
	var $config;
12
	var $config;
13
 
13
 
14
	function Inventory($config) {
14
	function Inventory($config) {
15
 
15
 
16
		$this->config=$config;
16
		$this->config=$config;
17
	}
17
	}
18
 
18
 
19
 
19
 
20
	function getElement($uid){
20
	function getElement($uid){
21
 
21
 
22
		   // Controle detournement utilisateur
22
		   // Controle detournement utilisateur
23
		    session_start();
23
		    session_start();
24
		 	$this->controleUtilisateur($uid[0]);
24
		 	$this->controleUtilisateur($uid[0]);
25
 
25
 
26
			$value=array();
26
			$value=array();
27
			$DB=$this->connectDB($this->config,'database_cel');
27
			$DB=$this->connectDB($this->config,'database_cel');
28
 
28
 
29
			if (isset($uid[1])) {
29
			if (isset($uid[1])) {
30
	           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation, lieudit, station, milieu, commentaire, coord_x, coord_y FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND ordre =".$uid[1]." ORDER BY ordre";
30
	           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation, lieudit, station, milieu, commentaire, coord_x, coord_y FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND ordre =".$uid[1]." ORDER BY ordre";
31
			}
31
			}
32
			else {
32
			else {
33
				if (isset($uid[0])) {
33
				if (isset($uid[0])) {
34
		           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation, lieudit, station, milieu, commentaire, coord_x, coord_y FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' ORDER BY ordre";
34
		           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation, lieudit, station, milieu, commentaire, coord_x, coord_y FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' ORDER BY ordre";
35
				}
35
				}
36
			}
36
			}
37
 
37
 
38
		    $res =& $DB->query($query);
38
		    $res =& $DB->query($query);
39
 
39
 
40
 
40
 
41
	        if (DB::isError($res)) {
41
	        if (DB::isError($res)) {
42
	        	$this->logger("CEL_bugs","Erreur de listage des observations :".$res->getMessage()." ".$query);
42
	        	$this->logger("CEL_bugs","Erreur de listage des observations :".$res->getMessage()." ".$query);
43
        	}
43
        	}
44
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
44
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
45
	        	if ($row['date_observation']!="0000-00-00 00:00:00") {
45
	        	if ($row['date_observation']!="0000-00-00 00:00:00") {
46
	                list($year,$month,$day)= split ('-',$row['date_observation']);
46
	                list($year,$month,$day)= split ('-',$row['date_observation']);
47
    	            list($day)= split (' ',$day);
47
    	            list($day)= split (' ',$day);
48
	                $row['date_observation']=$day."/".$month."/".$year;
48
	                $row['date_observation']=$day."/".$month."/".$year;
49
	        	}
49
	        	}
50
 
50
 
51
		     	$value=array($row['nom_sel'],$row['num_nom_sel'],$row['nom_ret'],$row['num_nom_ret'],$row['num_taxon'],$row['famille'], $row['location'], $row['id_location'], $row['ordre'], $row['date_observation'],$row['lieudit'], $row['station'], $row['milieu'], $row['commentaire'], $row['coord_x'],$row['coord_y']);
51
		     	$value=array($row['nom_sel'],$row['num_nom_sel'],$row['nom_ret'],$row['num_nom_ret'],$row['num_taxon'],$row['famille'], $row['location'], $row['id_location'], $row['ordre'], $row['date_observation'],$row['lieudit'], $row['station'], $row['milieu'], $row['commentaire'], $row['coord_x'],$row['coord_y']);
52
    	    }
52
    	    }
53
 
53
 
54
			$output = json_encode($value);
54
			$output = json_encode($value);
55
			print($output);
55
			print($output);
56
 
56
 
57
			return true;
57
			return true;
58
 
58
 
59
 
59
 
60
	}
60
	}
61
 
61
 
62
	function getRessource(){
62
	function getRessource(){
63
 
63
 
64
 
64
 
65
	}
65
	}
66
 
66
 
67
 
67
 
68
	function updateElement($uid,$pairs) {
68
	function updateElement($uid,$pairs) {
69
 
69
 
70
		 // Controle detournement utilisateur
70
		 // Controle detournement utilisateur
71
			    session_start();
71
			    session_start();
72
			 	$this->controleUtilisateur($uid[0]);
72
			 	$this->controleUtilisateur($uid[0]);
73
 
73
 
74
				if ($pairs['num_nom_sel']!='') {
74
				if ($pairs['num_nom_sel']!='') {
75
 
75
 
76
 
76
 
77
 
77
 
78
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
78
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
79
					$complement=$this->rechercherInformationsComplementaires($pairs['num_nom_sel']);
79
					$complement=$this->rechercherInformationsComplementaires($pairs['num_nom_sel']);
80
 
80
 
81
 
81
 
82
			        $pairs['nom_ret']=$complement['Nom_Retenu'];
82
			        $pairs['nom_ret']=$complement['Nom_Retenu'];
83
			        $pairs['num_nom_ret']=$complement['Num_Nom_Retenu'];
83
			        $pairs['num_nom_ret']=$complement['Num_Nom_Retenu'];
84
			        $pairs['num_taxon']=$complement['Num_Taxon'];
84
			        $pairs['num_taxon']=$complement['Num_Taxon'];
85
			        $pairs['famille']=$complement['Famille'];
85
			        $pairs['famille']=$complement['Famille'];
86
 
86
 
87
				}
87
				}
88
 
88
 
89
 
89
 
90
 
90
 
91
 
91
 
92
				$DB=$this->connectDB($this->config,'database_cel');
92
				$DB=$this->connectDB($this->config,'database_cel');
93
 
93
 
94
                // Nullifiage ...
94
                // Nullifiage ...
95
 
95
 
96
				foreach($pairs as $k=>$v) {
96
				foreach($pairs as $k=>$v) {
97
					if (trim($v)=="") {
97
					if (trim($v)=="") {
98
						$pairs[$k]="null";
98
						$pairs[$k]="null";
99
					}
99
					}
100
 
100
 
101
				}
101
				}
102
 
102
 
103
				// Pour apparaitre le premier dans les tris ...
103
				// Pour apparaitre le premier dans les tris ...
104
                if ($pairs['location']=="null") $pairs['location']="000null";
104
                if ($pairs['location']=="null") $pairs['location']="000null";
105
 
105
 
106
 
106
 
107
				// Pour apparaitre le premier dans les tris ...
107
				// Pour apparaitre le premier dans les tris ...
108
                if ($pairs['lieudit']=="null") $pairs['lieudit']="000null";
108
                if ($pairs['lieudit']=="null") $pairs['lieudit']="000null";
109
 
109
 
110
 
110
 
111
				// Pour apparaitre le premier dans les tris ...
111
				// Pour apparaitre le premier dans les tris ...
-
 
112
                if ($pairs['id_location']=="null") {
-
 
113
                	$pairs['id_location']="000null";
-
 
114
                } else {
-
 
115
                	// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0
-
 
116
                	if (strlen($pairs['id_location']) == 1) {
112
                if ($pairs['id_location']=="null") $pairs['id_location']="000null";
117
                		$pairs['id_location'] = '0'.$pairs['id_location'];
-
 
118
                	}
-
 
119
                }
113
 
120
 
114
                // Pour apparaitre le premier dans les tris ...
121
                // Pour apparaitre le premier dans les tris ...
115
                if ($pairs['station']=="null") $pairs['station']="000null";
122
                if ($pairs['station']=="null") $pairs['station']="000null";
116
 
123
 
117
 
124
 
118
              	// Pour apparaitre le premier dans les tris ...
125
              	// Pour apparaitre le premier dans les tris ...
119
                if ($pairs['milieu']=="null") $pairs['milieu']="000null";
126
                if ($pairs['milieu']=="null") $pairs['milieu']="000null";
120
 
127
 
121
                // Pour supprimer les séparateurs de mots clés en trop
128
                // Pour supprimer les séparateurs de mots clés en trop
122
                if (isset($pairs['mot_cles'])) {
129
                if (isset($pairs['mot_cles'])) {
123
                	$pairs['mot_cles'] = str_replace(';;',';',$pairs['mot_cles']);
130
                	$pairs['mot_cles'] = str_replace(';;',';',$pairs['mot_cles']);
124
                }
131
                }
125
 
132
 
126
                // TODO : decouper avec les /
133
                // TODO : decouper avec les /
127
 
134
 
128
                if ($pairs['date_observation']!="null") {
135
                if ($pairs['date_observation']!="null") {
129
                	list($jour,$mois,$annee)=split("/",$pairs['date_observation']);
136
                	list($jour,$mois,$annee)=split("/",$pairs['date_observation']);
130
                	$pairs['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
137
                	$pairs['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
131
                }
138
                }
132
 
139
 
133
                if ($pairs['coord_x']=="null") {
140
                if ($pairs['coord_x']=="null") {
134
					$pairs['coord_x'] = "000null";
141
					$pairs['coord_x'] = "000null";
135
                }
142
                }
136
 
143
 
137
                if ($pairs['coord_y']=="null") {
144
                if ($pairs['coord_y']=="null") {
138
					$pairs['coord_y'] = "000null";
145
					$pairs['coord_y'] = "000null";
139
                }
146
                }
140
 
147
 
141
				$query="UPDATE cel_inventory SET nom_sel = '".$DB->escapeSimple($pairs['nom_sel'])."',".
148
				$query="UPDATE cel_inventory SET nom_sel = '".$DB->escapeSimple($pairs['nom_sel'])."',".
142
				"num_nom_sel = '".$DB->escapeSimple($pairs['num_nom_sel'])."',".
149
				"num_nom_sel = '".$DB->escapeSimple($pairs['num_nom_sel'])."',".
143
				"nom_ret = '".$DB->escapeSimple($pairs['nom_ret'])."',".
150
				"nom_ret = '".$DB->escapeSimple($pairs['nom_ret'])."',".
144
				"num_nom_ret = '".$DB->escapeSimple($pairs['num_nom_ret'])."',".
151
				"num_nom_ret = '".$DB->escapeSimple($pairs['num_nom_ret'])."',".
145
				"num_taxon = '".$DB->escapeSimple($pairs['num_taxon'])."',".
152
				"num_taxon = '".$DB->escapeSimple($pairs['num_taxon'])."',".
146
				"famille = '".$DB->escapeSimple($pairs['famille'])."',".
153
				"famille = '".$DB->escapeSimple($pairs['famille'])."',".
147
				"location = '".$DB->escapeSimple($pairs['location'])."',".
154
				"location = '".$DB->escapeSimple($pairs['location'])."',".
148
				"id_location = '".$DB->escapeSimple($pairs['id_location'])."',".
155
				"id_location = '".$DB->escapeSimple($pairs['id_location'])."',".
149
				"date_observation = '".$DB->escapeSimple($pairs['date_observation'])."',".
156
				"date_observation = '".$DB->escapeSimple($pairs['date_observation'])."',".
150
				"lieudit = '".$DB->escapeSimple($pairs['lieudit'])."',".
157
				"lieudit = '".$DB->escapeSimple($pairs['lieudit'])."',".
151
				"station = '".$DB->escapeSimple($pairs['station'])."',".
158
				"station = '".$DB->escapeSimple($pairs['station'])."',".
152
				"milieu = '".$DB->escapeSimple($pairs['milieu'])."',".
159
				"milieu = '".$DB->escapeSimple($pairs['milieu'])."',".
153
				"commentaire = '".$DB->escapeSimple($pairs['commentaire'])."',".
160
				"commentaire = '".$DB->escapeSimple($pairs['commentaire'])."',".
154
				"date_modification = now() ,".
161
				"date_modification = now() ,".
155
				"mots_cles = '".$DB->escapeSimple($pairs['mots_cles'])."',".
162
				"mots_cles = '".$DB->escapeSimple($pairs['mots_cles'])."',".
156
				"coord_x='".$DB->escapeSimple($pairs['coord_x'])."',".
163
				"coord_x='".$DB->escapeSimple($pairs['coord_x'])."',".
157
				"coord_y='".$DB->escapeSimple($pairs['coord_y'])."' ".
164
				"coord_y='".$DB->escapeSimple($pairs['coord_y'])."' ".
158
				"WHERE ordre = '".$DB->escapeSimple($uid[1])."' AND identifiant='".$DB->escapeSimple($uid[0])."'";
165
				"WHERE ordre = '".$DB->escapeSimple($uid[1])."' AND identifiant='".$DB->escapeSimple($uid[0])."'";
159
 
166
 
160
		    	$res =& $DB->query($query);
167
		    	$res =& $DB->query($query);
161
                if (PEAR::isError($res)) {
168
                if (PEAR::isError($res)) {
162
                	$this->logger("CEL_bugs","Erreur de modification d'une observation :".$res->getMessage()." ".$query);
169
                	$this->logger("CEL_bugs","Erreur de modification d'une observation :".$res->getMessage()." ".$query);
163
                }
170
                }
164
                return	true;
171
                return	true;
165
 
172
 
166
	}
173
	}
167
 
174
 
168
 
175
 
169
	function createElement($pairs){
176
	function createElement($pairs){
170
 
177
 
171
 
178
 
172
			 // Controle detournement utilisateur
179
			 // Controle detournement utilisateur
173
			    session_start();
180
			    session_start();
174
			 	$this->controleUtilisateur($pairs['identifiant']);
181
			 	$this->controleUtilisateur($pairs['identifiant']);
175
 
182
 
176
				if ($pairs['num_nom_sel']!='') {
183
				if ($pairs['num_nom_sel']!='') {
177
 
184
 
178
 
185
 
179
 
186
 
180
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
187
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
181
 
188
 
182
 
189
 
183
					$complement=$this->rechercherInformationsComplementaires($pairs['num_nom_sel']);
190
					$complement=$this->rechercherInformationsComplementaires($pairs['num_nom_sel']);
184
 
191
 
185
 
192
 
186
			        $pairs['nom_ret']=$complement['Nom_Retenu'];
193
			        $pairs['nom_ret']=$complement['Nom_Retenu'];
187
			        $pairs['num_nom_ret']=$complement['Num_Nom_Retenu'];
194
			        $pairs['num_nom_ret']=$complement['Num_Nom_Retenu'];
188
			        $pairs['num_taxon']=$complement['Num_Taxon'];
195
			        $pairs['num_taxon']=$complement['Num_Taxon'];
189
			        $pairs['famille']=$complement['Famille'];
196
			        $pairs['famille']=$complement['Famille'];
190
 
197
 
191
				}
198
				}
192
 
199
 
193
 
200
 
194
 
201
 
195
				// Dernier numero d'ordre utilise :
202
				// Dernier numero d'ordre utilise :
196
 
203
 
197
                $DB=$this->connectDB($this->config,'database_cel');
204
                $DB=$this->connectDB($this->config,'database_cel');
198
	           	$query="SELECT max(ordre) AS ordre FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($pairs['identifiant'])."' ";
205
	           	$query="SELECT max(ordre) AS ordre FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($pairs['identifiant'])."' ";
199
 
206
 
200
			    $res =& $DB->query($query);
207
			    $res =& $DB->query($query);
201
                if (DB::isError($res)) {
208
                if (DB::isError($res)) {
202
	    	        die($res->getMessage());
209
	    	        die($res->getMessage());
203
    	    	}
210
    	    	}
204
    	    	$row['ordre']=0;
211
    	    	$row['ordre']=0;
205
	    	    while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
212
	    	    while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
206
            	    $pairs['ordre']=$row['ordre']+1;
213
            	    $pairs['ordre']=$row['ordre']+1;
207
    	    	}
214
    	    	}
208
 
215
 
209
                // Nullifiage ...
216
                // Nullifiage ...
210
 
217
 
211
				foreach($pairs as $k=>$v) {
218
				foreach($pairs as $k=>$v) {
212
					if (trim($v)=="") {
219
					if (trim($v)=="") {
213
						$pairs[$k]="null";
220
						$pairs[$k]="null";
214
					}
221
					}
215
 
222
 
216
				}
223
				}
217
 
224
 
218
				// Pour apparaitre le premier dans les tris ...
225
				// Pour apparaitre le premier dans les tris ...
219
                if ($pairs['location']=="null") $pairs['location']="000null";
226
                if ($pairs['location']=="null") $pairs['location']="000null";
220
 
227
 
221
 
228
 
222
				// Pour apparaitre le premier dans les tris ...
229
				// Pour apparaitre le premier dans les tris ...
223
                if ($pairs['lieudit']=="null") $pairs['lieudit']="000null";
230
                if ($pairs['lieudit']=="null") $pairs['lieudit']="000null";
224
 
231
 
225
 
232
 
226
				// Pour apparaitre le premier dans les tris ...
233
				// Pour apparaitre le premier dans les tris ...
-
 
234
                if ($pairs['id_location']=="null") {
-
 
235
                	$pairs['id_location']="000null";
-
 
236
                } else {
-
 
237
                	// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0
-
 
238
                	if (strlen($pairs['id_location']) == 1) {
227
                if ($pairs['id_location']=="null") $pairs['id_location']="000null";
239
                		$pairs['id_location'] = '0'.$pairs['id_location'];
228
 
-
 
-
 
240
                	}
-
 
241
                }
229
 
242
 
230
				// Pour apparaitre le premier dans les tris ...
243
				// Pour apparaitre le premier dans les tris ...
231
                if ($pairs['station']=="null") $pairs['station']="000null";
244
                if ($pairs['station']=="null") $pairs['station']="000null";
232
 
245
 
233
 
246
 
234
				// Pour apparaitre le premier dans les tris ...
247
				// Pour apparaitre le premier dans les tris ...
235
                if ($pairs['milieu']=="null") $pairs['milieu']="000null";
248
                if ($pairs['milieu']=="null") $pairs['milieu']="000null";
236
 
249
 
237
 
250
 
238
                // TODO : decouper avec les /
251
                // TODO : decouper avec les /
239
 
252
 
240
                if ($pairs['date_observation']!="null") {
253
                if ($pairs['date_observation']!="null") {
241
 
254
 
242
                	list($jour,$mois,$annee)=split("/",$pairs['date_observation']);
255
                	list($jour,$mois,$annee)=split("/",$pairs['date_observation']);
243
                	$pairs['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
256
                	$pairs['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
244
 
257
 
245
                }
258
                }
246
 
259
 
247
                if ($pairs['coord_x']=="null") {
260
                if ($pairs['coord_x']=="null") {
248
					$pairs['coord_x'] = "000null";
261
					$pairs['coord_x'] = "000null";
249
                }
262
                }
250
 
263
 
251
                if ($pairs['coord_y']=="null") {
264
                if ($pairs['coord_y']=="null") {
252
					$pairs['coord_y'] = "000null";
265
					$pairs['coord_y'] = "000null";
253
                }
266
                }
254
 
267
 
255
                $query  = "INSERT INTO cel_inventory (identifiant,ordre,nom_sel,num_nom_sel,nom_ret,num_nom_ret,num_taxon,famille,location,id_location,date_observation,lieudit,station, milieu, commentaire, date_creation,date_modification,coord_x,coord_y) " .
268
                $query  = "INSERT INTO cel_inventory (identifiant,ordre,nom_sel,num_nom_sel,nom_ret,num_nom_ret,num_taxon,famille,location,id_location,date_observation,lieudit,station, milieu, commentaire, date_creation,date_modification,coord_x,coord_y) " .
256
                " VALUES('".$DB->escapeSimple($pairs['identifiant'])."','".
269
                " VALUES('".$DB->escapeSimple($pairs['identifiant'])."','".
257
                $DB->escapeSimple($pairs['ordre'])."','".
270
                $DB->escapeSimple($pairs['ordre'])."','".
258
                $DB->escapeSimple($pairs['nom_sel'])."','".
271
                $DB->escapeSimple($pairs['nom_sel'])."','".
259
                $DB->escapeSimple($pairs['num_nom_sel'])."','".
272
                $DB->escapeSimple($pairs['num_nom_sel'])."','".
260
                $DB->escapeSimple($pairs['nom_ret'])."','".
273
                $DB->escapeSimple($pairs['nom_ret'])."','".
261
                $DB->escapeSimple($pairs['num_nom_ret'])."','".
274
                $DB->escapeSimple($pairs['num_nom_ret'])."','".
262
                $DB->escapeSimple($pairs['num_taxon'])."','".
275
                $DB->escapeSimple($pairs['num_taxon'])."','".
263
                $DB->escapeSimple($pairs['famille'])."','".
276
                $DB->escapeSimple($pairs['famille'])."','".
264
                $DB->escapeSimple($pairs['location'])."','".
277
                $DB->escapeSimple($pairs['location'])."','".
265
                $DB->escapeSimple($pairs['id_location'])."','".
278
                $DB->escapeSimple($pairs['id_location'])."','".
266
                $DB->escapeSimple($pairs['date_observation'])."','".
279
                $DB->escapeSimple($pairs['date_observation'])."','".
267
                $DB->escapeSimple($pairs['lieudit'])."','".
280
                $DB->escapeSimple($pairs['lieudit'])."','".
268
                $DB->escapeSimple($pairs['station'])."','".
281
                $DB->escapeSimple($pairs['station'])."','".
269
                $DB->escapeSimple($pairs['milieu'])."','".
282
                $DB->escapeSimple($pairs['milieu'])."','".
270
                $DB->escapeSimple($pairs['commentaire'])."',".
283
                $DB->escapeSimple($pairs['commentaire'])."',".
271
                "now() , now(),'".
284
                "now() , now(),'".
272
				$DB->escapeSimple($pairs['coord_x'])."','".
285
				$DB->escapeSimple($pairs['coord_x'])."','".
273
				$DB->escapeSimple($pairs['coord_y'])."')";
286
				$DB->escapeSimple($pairs['coord_y'])."')";
274
		    	$res =& $DB->query($query);
287
		    	$res =& $DB->query($query);
275
 
288
 
276
                if (PEAR::isError($res)) {
289
                if (PEAR::isError($res)) {
277
                	$this->logger("CEL_bugs","Erreur de creation d'une observation :".$res->getMessage()." ".$query);
290
                	$this->logger("CEL_bugs","Erreur de creation d'une observation :".$res->getMessage()." ".$query);
278
                	return false;
291
                	return false;
279
                	//die($res->getMessage());
292
                	//die($res->getMessage());
280
                }
293
                }
281
 
294
 
282
                return	true;
295
                return	true;
283
 
296
 
284
	}
297
	}
285
 
298
 
286
 
299
 
287
	function deleteElement($uid){
300
	function deleteElement($uid){
288
 
301
 
289
	 // Controle detournement utilisateur
302
	 // Controle detournement utilisateur
290
	    session_start();
303
	    session_start();
291
     $this->controleUtilisateur($uid[0]);
304
     $this->controleUtilisateur($uid[0]);
292
 
305
 
293
		$value=array();
306
		$value=array();
294
		$DB=$this->connectDB($this->config,'database_cel');
307
		$DB=$this->connectDB($this->config,'database_cel');
295
 
308
 
296
		if (isset($uid[1])) {
309
		if (isset($uid[1])) {
297
	           	$query="DELETE FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND ordre in (".$DB->escapeSimple($uid[1]) .")";
310
	           	$query="DELETE FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND ordre in (".$DB->escapeSimple($uid[1]) .")";
298
		}
311
		}
299
 
312
 
300
    	$res =& $DB->query($query);
313
    	$res =& $DB->query($query);
301
 
314
 
302
        if (PEAR::isError($res)) {
315
        if (PEAR::isError($res)) {
303
        	$this->logger("CEL_bugs","Erreur de suppression d'une observation :".$res->getMessage()." ".$query);
316
        	$this->logger("CEL_bugs","Erreur de suppression d'une observation :".$res->getMessage()." ".$query);
304
        	return false;
317
        	return false;
305
        }
318
        }
306
        else {
319
        else {
307
        	echo "OK" ;
320
        	echo "OK" ;
308
        	exit() ;
321
        	exit() ;
309
        }
322
        }
310
 
323
 
311
        return true;
324
        return true;
312
 
325
 
313
 
326
 
314
	}
327
	}
315
 
328
 
316
 
329
 
317
	function rechercherInformationsComplementaires($numNom) {
330
	function rechercherInformationsComplementaires($numNom) {
318
 
331
 
319
		$DB=$this->connectDB($this->config);
332
		$DB=$this->connectDB($this->config);
320
 
333
 
321
		$query = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,".
334
		$query = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,".
322
			     	       			"   auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
335
			     	       			"   auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
323
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
336
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
324
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
337
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
325
        	       			" , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif ".
338
        	       			" , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif ".
326
			     " , en_epithete_espece, en_epithete_infra_specifique, enrg_abreviation_rang, b.esn_id_taxon, b.esn_id_nom" .
339
			     " , en_epithete_espece, en_epithete_infra_specifique, enrg_abreviation_rang, b.esn_id_taxon, b.esn_id_nom" .
327
			     " FROM eflore_nom, eflore_nom_rang," .
340
			     " FROM eflore_nom, eflore_nom_rang," .
328
			       			"  	  eflore_naturaliste_intitule_abreviation AS auteur_bex ".
341
			       			"  	  eflore_naturaliste_intitule_abreviation AS auteur_bex ".
329
        	       			"   , eflore_naturaliste_intitule_abreviation AS auteur_b ".
342
        	       			"   , eflore_naturaliste_intitule_abreviation AS auteur_b ".
330
        	       			"   , eflore_naturaliste_intitule_abreviation AS auteur_mex ".
343
        	       			"   , eflore_naturaliste_intitule_abreviation AS auteur_mex ".
331
        	       			"   , eflore_naturaliste_intitule_abreviation AS auteur_m ".
344
        	       			"   , eflore_naturaliste_intitule_abreviation AS auteur_m ".
332
			     " ,eflore_selection_nom a, eflore_selection_nom b".
345
			     " ,eflore_selection_nom a, eflore_selection_nom b".
333
			     " WHERE a.esn_id_nom= ".$numNom.
346
			     " WHERE a.esn_id_nom= ".$numNom.
334
			     " AND a.esn_id_version_projet_taxon = 25 ".
347
			     " AND a.esn_id_version_projet_taxon = 25 ".
335
			     " AND a.esn_id_taxon=b.esn_id_taxon ".
348
			     " AND a.esn_id_taxon=b.esn_id_taxon ".
336
			     " AND b.esn_ce_statut=3 ".
349
			     " AND b.esn_ce_statut=3 ".
337
			     " AND a.esn_id_version_projet_taxon=b.esn_id_version_projet_taxon" .
350
			     " AND a.esn_id_version_projet_taxon=b.esn_id_version_projet_taxon" .
338
			     " AND en_ce_rang = enrg_id_rang" .
351
			     " AND en_ce_rang = enrg_id_rang" .
339
			     " AND en_id_nom = b.esn_id_nom" .
352
			     " AND en_id_nom = b.esn_id_nom" .
340
			     " AND en_ce_auteur_basio_ex = auteur_bex.enaia_id_intitule_naturaliste_abrege ".
353
			     " AND en_ce_auteur_basio_ex = auteur_bex.enaia_id_intitule_naturaliste_abrege ".
341
       			 " AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege  ".
354
       			 " AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege  ".
342
       			 " AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ".
355
       			 " AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ".
343
        	     " AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
356
        	     " AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
344
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
357
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
345
 
358
 
346
 
359
 
347
	   $res =& $DB->query($query);
360
	   $res =& $DB->query($query);
348
 
361
 
349
 
362
 
350
        if (DB::isError($res)) {
363
        if (DB::isError($res)) {
351
	        die($res->getMessage());
364
	        die($res->getMessage());
352
    	}
365
    	}
353
 
366
 
354
    		// Nom retenu, Num Nomen nom retenu, Num Taxon,
367
    		// Nom retenu, Num Nomen nom retenu, Num Taxon,
355
										// Famille
368
										// Famille
356
 
369
 
357
		$value=array('Nom_Retenu'=>"",'Num_Nom_Retenu'=>"0",'Num_Taxon'=>"0",'Famille'=>"");
370
		$value=array('Nom_Retenu'=>"",'Num_Nom_Retenu'=>"0",'Num_Taxon'=>"0",'Famille'=>"");
358
 
371
 
359
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
372
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
360
	        	$fam=$this->rechercherFamille($row['esn_id_taxon'],$DB);
373
	        	$fam=$this->rechercherFamille($row['esn_id_taxon'],$DB);
361
        	while (($fam['en_ce_rang']!='fin') && ($fam['en_ce_rang'] !=120)) {
374
        	while (($fam['en_ce_rang']!='fin') && ($fam['en_ce_rang'] !=120)) {
362
	        	$fam=$this->rechercherFamille($fam['etr_id_taxon_2'],$DB);
375
	        	$fam=$this->rechercherFamille($fam['etr_id_taxon_2'],$DB);
363
        	}
376
        	}
364
        	if ($fam['en_ce_rang']==120) {
377
        	if ($fam['en_ce_rang']==120) {
365
        		$famille=$fam['en_nom_supra_generique'];
378
        		$famille=$fam['en_nom_supra_generique'];
366
        	}
379
        	}
367
        	else {
380
        	else {
368
        		$famille="Famille inconnue";
381
        		$famille="Famille inconnue";
369
        	}
382
        	}
370
        	$value=array('Nom_Retenu'=>$this->formaterNom($row),'Num_Nom_Retenu'=>$row['esn_id_nom'],'Num_Taxon'=>$row['esn_id_taxon'],'Famille'=>$famille);
383
        	$value=array('Nom_Retenu'=>$this->formaterNom($row),'Num_Nom_Retenu'=>$row['esn_id_nom'],'Num_Taxon'=>$row['esn_id_taxon'],'Famille'=>$famille);
371
 
384
 
372
 
385
 
373
	    }
386
	    }
374
 
387
 
375
	    return $value;
388
	    return $value;
376
 
389
 
377
 
390
 
378
 
391
 
379
	}
392
	}
380
 
393
 
381
 
394
 
382
function formaterNom($rawnom) {
395
function formaterNom($rawnom) {
383
 
396
 
384
 
397
 
385
                // Constitution du nom:
398
                // Constitution du nom:
386
                $nom = '';
399
                $nom = '';
387
 
400
 
388
                if ($rawnom['en_nom_supra_generique'] != '') {
401
                if ($rawnom['en_nom_supra_generique'] != '') {
389
                    $nom .= $rawnom['en_nom_supra_generique'];
402
                    $nom .= $rawnom['en_nom_supra_generique'];
390
                } else if ($rawnom['en_epithete_infra_generique'] != '') {
403
                } else if ($rawnom['en_epithete_infra_generique'] != '') {
391
                    $nom .= $rawnom['en_epithete_infra_generique'];
404
                    $nom .= $rawnom['en_epithete_infra_generique'];
392
                } else {
405
                } else {
393
                        if ($rawnom['en_nom_genre'] != '') {
406
                        if ($rawnom['en_nom_genre'] != '') {
394
                            $nom .=  $rawnom['en_nom_genre'];
407
                            $nom .=  $rawnom['en_nom_genre'];
395
                        }
408
                        }
396
                        if ($rawnom['en_epithete_espece']!= '') {
409
                        if ($rawnom['en_epithete_espece']!= '') {
397
                            $nom .= ' '.$rawnom['en_epithete_espece'];
410
                            $nom .= ' '.$rawnom['en_epithete_espece'];
398
                        }
411
                        }
399
                        if ($rawnom['en_epithete_infra_specifique'] != '') {
412
                        if ($rawnom['en_epithete_infra_specifique'] != '') {
400
                                if (!empty($rawnom['enrg_abreviation_rang'])) {
413
                                if (!empty($rawnom['enrg_abreviation_rang'])) {
401
                                        $nom .= ' '.$rawnom['enrg_abreviation_rang'].'';
414
                                        $nom .= ' '.$rawnom['enrg_abreviation_rang'].'';
402
                                }
415
                                }
403
                                $nom .= ' '.$rawnom['en_epithete_infra_specifique'];
416
                                $nom .= ' '.$rawnom['en_epithete_infra_specifique'];
404
                        }
417
                        }
405
 
418
 
406
                }
419
                }
407
 
420
 
408
                return $nom .$this->retournerAuteur($rawnom) ;
421
                return $nom .$this->retournerAuteur($rawnom) ;
409
 
422
 
410
 }
423
 }
411
 
424
 
412
 
425
 
413
function rechercherFamille($taxon,&$DB) {
426
function rechercherFamille($taxon,&$DB) {
414
 
427
 
415
	$row=array();
428
	$row=array();
416
 
429
 
417
	$query="SELECT DISTINCT en_ce_rang, etr_id_taxon_2, en_id_nom, en_nom_supra_generique ".
430
	$query="SELECT DISTINCT en_ce_rang, etr_id_taxon_2, en_id_nom, en_nom_supra_generique ".
418
	" FROM eflore_taxon_relation, eflore_selection_nom, eflore_nom ".
431
	" FROM eflore_taxon_relation, eflore_selection_nom, eflore_nom ".
419
	" WHERE etr_id_taxon_1 = ".$taxon.
432
	" WHERE etr_id_taxon_1 = ".$taxon.
420
	" AND etr_id_version_projet_taxon_1 = 25 ".
433
	" AND etr_id_version_projet_taxon_1 = 25 ".
421
	" AND etr_id_categorie_taxon = 3 ".
434
	" AND etr_id_categorie_taxon = 3 ".
422
	" AND etr_id_valeur_taxon = 3 ".
435
	" AND etr_id_valeur_taxon = 3 ".
423
	" AND esn_id_taxon =  etr_id_taxon_2 ".
436
	" AND esn_id_taxon =  etr_id_taxon_2 ".
424
	" AND esn_ce_statut = 3 ".
437
	" AND esn_ce_statut = 3 ".
425
	" AND esn_id_version_projet_taxon = etr_id_version_projet_taxon_1 ".
438
	" AND esn_id_version_projet_taxon = etr_id_version_projet_taxon_1 ".
426
	" AND en_id_nom = esn_id_nom ".
439
	" AND en_id_nom = esn_id_nom ".
427
	" AND esn_id_version_projet_taxon=en_id_version_projet_nom  ";
440
	" AND esn_id_version_projet_taxon=en_id_version_projet_nom  ";
428
	$res =& $DB->query($query);
441
	$res =& $DB->query($query);
429
 
442
 
430
	if (DB::isError($res)) {
443
	if (DB::isError($res)) {
431
         die($res->getMessage());
444
         die($res->getMessage());
432
   	}
445
   	}
433
 
446
 
434
	if ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
447
	if ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
435
		return $row;
448
		return $row;
436
    }
449
    }
437
    else {
450
    else {
438
    	$row['en_ce_rang']='fin';
451
    	$row['en_ce_rang']='fin';
439
    	return $row;
452
    	return $row;
440
    }
453
    }
441
 
454
 
442
}
455
}
443
 
456
 
444
 
457
 
445
 
458
 
446
function retournerAuteur($rawnom) {
459
function retournerAuteur($rawnom) {
447
		$auteurs = '';
460
		$auteurs = '';
448
		$auteur_basio = '';
461
		$auteur_basio = '';
449
		$auteur_modif = '';
462
		$auteur_modif = '';
450
		if (!empty($rawnom['abreviation_auteur_basio_ex']) && $rawnom['abreviation_auteur_basio_ex']!='-' )  {
463
		if (!empty($rawnom['abreviation_auteur_basio_ex']) && $rawnom['abreviation_auteur_basio_ex']!='-' )  {
451
		    $auteur_basio .= $rawnom['abreviation_auteur_basio_ex'];
464
		    $auteur_basio .= $rawnom['abreviation_auteur_basio_ex'];
452
		    if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
465
		    if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
453
		        $auteur_basio .= ' ex '.$rawnom['abreviation_auteur_basio'];
466
		        $auteur_basio .= ' ex '.$rawnom['abreviation_auteur_basio'];
454
		    }
467
		    }
455
		} else if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
468
		} else if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
456
		    $auteur_basio .= $rawnom['abreviation_auteur_basio'];
469
		    $auteur_basio .= $rawnom['abreviation_auteur_basio'];
457
		}
470
		}
458
 
471
 
459
		if (!empty($rawnom['abreviation_auteur_modif_ex']) && $rawnom['abreviation_auteur_modif_ex']!='-') {
472
		if (!empty($rawnom['abreviation_auteur_modif_ex']) && $rawnom['abreviation_auteur_modif_ex']!='-') {
460
		    $auteur_modif .= $rawnom['abreviation_auteur_modif_ex'];
473
		    $auteur_modif .= $rawnom['abreviation_auteur_modif_ex'];
461
		    if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {
474
		    if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {
462
		        $auteur_modif .= ' ex '.$rawnom['abreviation_auteur_modif'];
475
		        $auteur_modif .= ' ex '.$rawnom['abreviation_auteur_modif'];
463
		    }
476
		    }
464
		} else if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-')  {
477
		} else if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-')  {
465
		    $auteur_modif .= $rawnom['abreviation_auteur_modif'];
478
		    $auteur_modif .= $rawnom['abreviation_auteur_modif'];
466
		}
479
		}
467
 
480
 
468
		if (!empty($auteur_modif)) {
481
		if (!empty($auteur_modif)) {
469
		    $auteurs = ' ('.$auteur_basio.') '.$auteur_modif;
482
		    $auteurs = ' ('.$auteur_basio.') '.$auteur_modif;
470
		} elseif (!empty($auteur_basio)) {
483
		} elseif (!empty($auteur_basio)) {
471
		    $auteurs = ' '.$auteur_basio;
484
		    $auteurs = ' '.$auteur_basio;
472
		}
485
		}
473
 
486
 
474
		return $auteurs ;
487
		return $auteurs ;
475
	}
488
	}
476
 
489
 
477
 
490
 
478
 
491
 
479
}
492
}
480
 
493
 
481
/* +--Fin du code ---------------------------------------------------------------------------------------+
494
/* +--Fin du code ---------------------------------------------------------------------------------------+
482
* $Log$
495
* $Log$
483
* Revision 1.11  2008-11-13 11:29:12  ddelon
496
* Revision 1.11  2008-11-13 11:29:12  ddelon
484
* Reecriture gwt-ext
497
* Reecriture gwt-ext
485
*
498
*
486
* Revision 1.10  2008-01-30 08:57:28  ddelon
499
* Revision 1.10  2008-01-30 08:57:28  ddelon
487
* fin mise en place mygwt
500
* fin mise en place mygwt
488
*
501
*
489
* Revision 1.9  2007-05-22 12:54:09  ddelon
502
* Revision 1.9  2007-05-22 12:54:09  ddelon
490
* Securisation acces utilisateur
503
* Securisation acces utilisateur
491
*
504
*
492
*
505
*
493
*
506
*
494
*/
507
*/
495
 
508
 
496
?>
509
?>