Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1921 Rev 1925
Line 18... Line 18...
18
	}
18
	}
Line 19... Line 19...
19
 
19
 
20
	public function executer() {
20
	public function executer() {
21
		try {
21
		try {
22
			$cmd = $this->getParametre('a');
22
			$cmd = $this->getParametre('a');
-
 
23
			switch ($cmd) {
-
 
24
				case "sauvegarder" :
23
			switch ($cmd) {
25
					$this->sauvegarder(); break;
24
				case "unitebase" :
26
				case "unitebase" :
25
					$this->desontologiserUniteBase(); break;
27
					$this->desontologiserUniteBase(); break;
26
				case "uniterangement" :
28
				case "uniterangement" :
27
					$this->desontologiserUniteRangement(); break;
29
					$this->desontologiserUniteRangement(); break;
28
				case "inventaire" :
30
				case "inventaire" :
29
					$this->desontologiserInventaire(); break;
31
					$this->desontologiserInventaire(); break;
30
				case "etat" :
32
				case "etat" :
-
 
33
					$this->desontologiserEtat(); break;
-
 
34
				case "periode" :
31
					$this->desontologiserEtat(); break;
35
					$this->desontologiserPeriode(); break;
32
				default :
36
				default :
33
					$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
37
					$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
34
			}
38
			}
35
		} catch (Exception $erreur) {
39
		} catch (Exception $erreur) {
36
			$this->traiterErreur($erreur->getMessage());
40
			$this->traiterErreur($erreur->getMessage());
37
		}
41
		}
Line -... Line 42...
-
 
42
	}
-
 
43
	
-
 
44
	private function sauvegarder() {
-
 
45
		$requete = "CREATE TABLE coel_collection_sauv SELECT * FROM coel_collection; CREATE TABLE coel_collection_botanique_sauv SELECT * FROM coel_collection_botanique;";
-
 
46
		$infos_truk = $this->bdd->requeter($requete);
38
	}
47
	}
39
	
48
	
40
	private function desontologiserInventaire() {
49
	private function desontologiserInventaire() {
41
		$requete_table = "ALTER TABLE coel_collection_botanique ".
50
		$requete_table = "ALTER TABLE coel_collection_botanique ".
-
 
51
			"CHANGE `ccb_ce_inventaire` `ccb_ce_inventaire` VARCHAR(20) NULL DEFAULT NULL COMMENT 'Existe-t-il un inventaire de cette collection?', ".
Line 42... Line 52...
42
			"CHANGE `ccb_ce_inventaire` `ccb_ce_inventaire` VARCHAR(20) NULL DEFAULT NULL COMMENT 'Existe-t-il un inventaire de cette collection?', ".
52
			"CHANGE `ccb_ce_inventaire_auteur` `ccb_ce_inventaire_auteur` VARCHAR(20) NULL DEFAULT NULL COMMENT 'L''auteur de la collection a-t-il participé à cet inventaire?', ".
Line 43... Line 53...
43
			"CHANGE `ccb_ce_inventaire_auteur` `ccb_ce_inventaire_auteur` VARCHAR(20) NULL DEFAULT NULL COMMENT 'L''auteur de la collection a-t-il participé à cet inventaire?';";
53
			"CHANGE `ccb_ce_traitement` `ccb_ce_traitement` VARCHAR(20) NULL DEFAULT NULL COMMENT 'L''auteur de la collection a-t-il participé à cet inventaire?';";
44
		
54
		
45
		$infos_truk = $this->bdd->requeter($requete_table);
55
		$infos_truk = $this->bdd->requeter($requete_table);
Line 46... Line 56...
46
		
56
		
Line 47... Line 57...
47
		$requete = "SELECT ccb_id_collection, ccb_ce_inventaire, ccb_ce_inventaire_auteur ".
57
		$requete = "SELECT ccb_id_collection, ccb_ce_inventaire, ccb_ce_inventaire_auteur, ccb_ce_traitement ".
48
				"FROM coel_collection_botanique ".
58
				"FROM coel_collection_botanique ".
49
				"WHERE (ccb_ce_inventaire IS NOT NULL AND ccb_ce_inventaire != '') OR (ccb_ce_inventaire_auteur IS NOT NULL AND ccb_ce_inventaire_auteur != '')";
59
				"WHERE (ccb_ce_inventaire IS NOT NULL AND ccb_ce_inventaire != '') OR (ccb_ce_inventaire_auteur IS NOT NULL AND ccb_ce_inventaire_auteur != '')";
50
		
60
		
-
 
61
		$infos_truk = $this->bdd->recupererTous($requete);
51
		$infos_truk = $this->bdd->recupererTous($requete);
62
		
52
		
63
		foreach ($infos_truk as $truk) {
53
		foreach ($infos_truk as $truk) {
64
			$id_collection = $truk['ccb_id_collection'];
54
			$id_collection = $truk['ccb_id_collection'];
65
			$inventaire = $this->transformerouinon($truk["ccb_ce_inventaire"]);
-
 
66
			$inventaire_auteur = $this->transformerouinon($truk["ccb_ce_inventaire_auteur"]);
55
			$inventaire = $this->transformerouinon($truk["ccb_ce_inventaire"]);
67
			$traitement = $this->transformerouinon($truk["ccb_ce_traitement"]);
Line 56... Line 68...
56
			$inventaire_auteur = $this->transformerouinon($truk["ccb_ce_inventaire_auteur"]);
68
			$update = 'UPDATE coel_collection_botanique '.
57
			$update = 'UPDATE coel_collection_botanique '.
69
					'SET '.
58
					'SET '.
70
					'ccb_ce_inventaire = "'.$inventaire.'", '.
Line 59... Line 71...
59
					'ccb_ce_inventaire = "'.$inventaire.'", '.
71
					'ccb_ce_inventaire_auteur = "'.$inventaire_auteur.'" '.
60
					'ccb_ce_inventaire_auteur = "'.$inventaire_auteur.'" '.
72
					'ccb_ce_traitement = "'.$traitement.'" '.
61
					'WHERE ccb_id_collection = "'.$id_collection.'"';
73
					'WHERE ccb_id_collection = "'.$id_collection.'"';
62
				
74
				
Line 63... Line 75...
63
			$this->bdd->executer($update);
75
			$this->bdd->executer($update);
Line 64... Line 76...
64
		}
76
		}
65
	}
77
	}
Line 89... Line 101...
89
	
101
	
90
			$this->bdd->executer($update);
102
			$this->bdd->executer($update);
91
		}
103
		}
Line 92... Line 104...
92
	}
104
	}
93
	
-
 
94
	private function transformerBonMauvaisEtat($cle) {
-
 
95
		if ($cle==0) $cle="NULL";
105
	
96
		$valeur = $cle;
-
 
97
		$ontologies = array("2265" => "Très mauvais état",
-
 
98
						"2266" => "Mauvais état",
-
 
99
						"2267" => "État moyen",
106
	private function desontologiserPeriode() {
100
						"2268" => "Bon état",
107
		$requete_table = "ALTER TABLE coel_collection ADD ".
101
						"2269" => "Très bon état",
108
				" cc_periode_constitution_debut int(4)  AFTER cc_truk_periode_constitution, ADD cc_periode_constitution_fin int(4)  AFTER cc_periode_constitution_debut;";
102
				);
-
 
103
		if (isset($ontologies[$cle])) $valeur = $ontologies[$cle];
109
		
-
 
110
	//	$infos_truk = $this->bdd->requeter($requete_table);
-
 
111
	
-
 
112
		$requete = "SELECT cc_id_collection, substr(`ccb_recolte_date_debut`, 1, 4) AS annee_debut, ccb_ce_recolte_date_debut_type as type_debut, ".
-
 
113
				"substr(`ccb_recolte_date_fin`, 1, 4) AS annee_fin, ccb_ce_recolte_date_fin_type as type_fin,".
Line 104... Line 114...
104
		return $valeur;
114
		" cc_truk_periode_constitution AS siecle FROM `coel_collection_botanique`, `coel_collection` 
-
 
115
					WHERE `ccb_id_collection`=`cc_id_collection` ";
-
 
116
	
105
	}
117
		$infos_truk = $this->bdd->recupererTous($requete);
106
	
118
		
-
 
119
		
-
 
120
		foreach ($infos_truk as $truk) {
107
	private function transformerouinon($cle) {
121
			$id_collection = $truk['ccb_id_collection'];
108
		$valeur = $cle;
122
			$periode = $this->transformerPeriode($truk);
109
		$ontologies = array("2092" => "non",
123
			$update = 'UPDATE coel_collection '.
110
						"2093" => "oui",
124
					'SET '.
-
 
125
					'cc_periode_constitution_debut = "'.$periode[0].'", '.
111
						"2094" => "en partie",
126
					'cc_periode_constitution_fin = "'.$periode[1].'" '.
-
 
127
					'WHERE cc_id_collection = "'.$id_collection.'"';
-
 
128
	
-
 
129
			$this->bdd->executer($update);
112
						"2239" => "ne sait pas",
130
		}
-
 
131
		
-
 
132
		$requete = "SELECT cc_id_collection, '0000' AS annee_debut, '' as type_debut, ".
-
 
133
				"'0000' AS annee_fin, '' as type_fin,".
113
						"2240" => "peut-être",
134
				" cc_truk_periode_constitution AS siecle FROM `coel_collection`
-
 
135
					WHERE `cc_periode_constitution_debut` is null and `cc_truk_periode_constitution` != ''";
-
 
136
		
114
						"2241" => "oui",
137
		$infos_truk = $this->bdd->recupererTous($requete);
115
						"2242" => "non",
138
		
116
						"2339" => "oui",
139
		
117
						"2340" => "non",
140
		foreach ($infos_truk as $truk) {
118
						"2341" => "en grande partie",
141
			$id_collection = $truk['cc_id_collection'];
119
						"2342" => "ne sait pas)",
142
			$periode = $this->transformerPeriode($truk);
120
						"2343" => "parfois",
143
			$update = 'UPDATE coel_collection '.
121
						"2344" => "oui",
144
					'SET '.
-
 
145
					'cc_periode_constitution_debut = "'.$periode[0].'", '.
122
						"2345" => "non",
146
					'cc_periode_constitution_fin = "'.$periode[1].'" '.
-
 
147
					'WHERE cc_id_collection = "'.$id_collection.'"';
-
 
148
		
-
 
149
			$this->bdd->executer($update);
-
 
150
		}
-
 
151
		/*supprimer ccb_recolte_date_debut,  ccb_ce_recolte_date_debut_type, ccb_recolte_date_fin,  ccb_ce_recolte_date_fin_type, cc_truk_periode_constitution
-
 
152
		 * 
-
 
153
		 * $requete_table = "ALTER TABLE coel_collection_botanique ".
123
						"30744" => "indéterminé",
154
		 "CHANGE `ccb_ce_unite_rangement_etat` `ccb_ce_unite_rangement_etat` int(1) NULL DEFAULT NULL COMMENT 'liste de 1 à 5 correspondant à une liste déroulante entre très mauvais et très bon', ".
124
						"30745" => "oui",
155
		 "CHANGE `ccb_ce_etat_general` `ccb_ce_etat_general` int(1) NULL DEFAULT NULL COMMENT 'liste de 1 à 5 correspondant à une liste déroulante entre très mauvais et très bon';";
125
						"30746" => "non");
156
		
Line 126... Line 157...
126
		if (isset($ontologies[$cle])) $valeur = $ontologies[$cle];
157
		 $infos_truk = $this->bdd->requeter($requete_table);
127
		return $valeur;
158
		 */
128
	}
159
	}
Line 302... Line 333...
302
			$tab_autre_ligne_rangement[] = 'Format '.$tableau_unite_rangement['format'];
333
			$tab_autre_ligne_rangement[] = 'Format '.$tableau_unite_rangement['format'];
303
		}
334
		}
304
		// On retourne une ligne de la forme "type de rangement : nombre - Précision précision - Format format"		
335
		// On retourne une ligne de la forme "type de rangement : nombre - Précision précision - Format format"		
305
		return implode(' - ', $tab_autre_ligne_rangement);
336
		return implode(' - ', $tab_autre_ligne_rangement);
306
	}
337
	}
-
 
338
	
-
 
339
	
-
 
340
	private function transformerPeriode($donnees) {
-
 
341
		// initialisation
-
 
342
		$siecle = array("2233"=>"15",
-
 
343
				"2234"=>"16",
-
 
344
				"2235"=>"17",
-
 
345
				"2236"=>"18",
-
 
346
				"2237"=>"19",
-
 
347
				"2238"=>"20");
-
 
348
		$type = array("2316"=>"Date inconnue",
-
 
349
				"2317"=>"Date exacte",
-
 
350
				"2318"=>"Antérieure à",
-
 
351
				"2319"=>"Postérieure à",
-
 
352
				"2320"=>"Date estimée",
-
 
353
				"2321"=>"Date inconnue",
-
 
354
				"2322"=>"Date exacte",
-
 
355
				"2323"=>"Antérieure à",
-
 
356
				"2324"=>"Postérieure à",
-
 
357
				"2325"=>"Date estimée",
-
 
358
				"2326"=>"Encore en activité");
-
 
359
		$periode_debut = ""; $periode_fin = "";
-
 
360
		if ($donnees["annee_debut"] == "") $donnees["annee_debut"] = "0000";
-
 
361
		if($donnees["annee_fin"] == "") $donnees["annee_fin"] = "0000";
-
 
362
	
-
 
363
		// si une date de début ET une date de fin sont indiquées
-
 
364
		if ($donnees["annee_debut"] !== "0000" && $donnees["annee_fin"] !== "0000") {
-
 
365
			$periode_debut = $donnees["annee_debut"];
-
 
366
			$periode_fin = $donnees["annee_fin"];
-
 
367
				
-
 
368
			// si un (ou plusieurs) siècles sont indiqué(s)
-
 
369
		} else if($donnees["siecle"] != "") {
-
 
370
			// initialisation années début et fin de siècle
-
 
371
			$siecles = explode(";;", $donnees["siecle"]);
-
 
372
			$siecle_debut = $siecle[$siecles[0]]."01";
-
 
373
			$siecle_fin = $siecle[array_pop($siecles)]."99";
-
 
374
				
-
 
375
			// si les centaines de l'année de début et du siècle sont égales
-
 
376
			if (substr($donnees["annee_debut"],0,2) == substr($siecle_debut,0,2)) {
-
 
377
				$periode_debut = $donnees["annee_debut"];
-
 
378
			} else if ($donnees["annee_debut"] != "0000" && $donnees["annee_debut"] < $siecle_debut) {
-
 
379
				$periode_debut = $donnees["annee_debut"];
-
 
380
			} else {
-
 
381
				$periode_debut = $siecle_debut;
-
 
382
			}
-
 
383
	
-
 
384
			if (substr($donnees["annee_fin"],0,2) == substr($siecle_fin,0,2)) {
-
 
385
				$periode_fin = $donnees["annee_fin"];
-
 
386
			} else if ($donnees["annee_fin"] != "0000" && $donnees["annee_fin"] > $siecle_fin) {
-
 
387
				$periode_fin = $donnees["annee_fin"];
-
 
388
			} else {
-
 
389
				$periode_fin = $siecle_fin;
-
 
390
			}
-
 
391
		} else {
-
 
392
			if ($donnees["annee_debut"] !== "0000") $periode_debut = $donnees["annee_debut"];
-
 
393
			if($donnees["annee_fin"] !== "0000") $periode_fin = $donnees["annee_fin"];
-
 
394
		}
-
 
395
		//print_r($donnees); echo $periode_debut." - ".$periode_fin;
-
 
396
		return array($periode_debut,$periode_fin);
-
 
397
	}
-
 
398
	
-
 
399
	private function transformerBonMauvaisEtat($cle) {
-
 
400
		if ($cle==0) $cle="NULL";
-
 
401
		$valeur = $cle;
-
 
402
		$ontologies = array("2265" => "1",
-
 
403
				"2266" => "2",
-
 
404
				"2267" => "3",
-
 
405
				"2268" => "4",
-
 
406
				"2269" => "5",
-
 
407
		);
-
 
408
		if (isset($ontologies[$cle])) $valeur = $ontologies[$cle];
-
 
409
		return $valeur;
-
 
410
	}
-
 
411
	
-
 
412
	private function transformerouinon($cle) {
-
 
413
		$valeur = $cle;
-
 
414
		$ontologies = array("2092" => "non",
-
 
415
				"2093" => "oui",
-
 
416
				"2094" => "enPartie",
-
 
417
				"2239" => "neSaitPas",
-
 
418
				"2240" => "peutEtre",
-
 
419
				"2241" => "oui",
-
 
420
				"2242" => "non",
-
 
421
				"2339" => "oui",
-
 
422
				"2340" => "non",
-
 
423
				"2341" => "enGrandePartie",
-
 
424
				"2342" => "neSaitPas)",
-
 
425
				"2343" => "parfois",
-
 
426
				"2344" => "oui",
-
 
427
				"2345" => "non",
-
 
428
				"30744" => "indetermine",
-
 
429
				"30745" => "oui",
-
 
430
				"30746" => "non");
-
 
431
		if (isset($ontologies[$cle])) $valeur = $ontologies[$cle];
-
 
432
		return $valeur;
-
 
433
	}
307
}
434
}
308
?>	
435
?>	
309
436