Subversion Repositories eFlore/Applications.cel

Rev

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

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