Subversion Repositories Applications.referentiel

Rev

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

Rev 163 Rev 164
Line 207... Line 207...
207
	// TESTS
207
	// TESTS
Line 208... Line 208...
208
	
208
	
209
	private function testerStatutCultureSyntaxe() {
209
	private function testerStatutCultureSyntaxe() {
210
		$info = array('nom' => 'statut_culture -> syntaxe',
210
		$info = array('nom' => 'statut_culture -> syntaxe',
211
			'description' => "Le champ statut_culture peut contenir :\n".
211
			'description' => "Le champ statut_culture peut contenir :\n".
212
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
212
								" - le symbole tiret «-» précédant une autre information non référencée...\n".
213
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
213
								" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
214
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
214
								" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
215
			"un code de présence spécifique au référentiel.",
215
								"un code de présence spécifique au référentiel.",
Line 216... Line 216...
216
			'resultat' => false);
216
			'resultat' => false);
217
		
217
		
218
		// Réalisation du test
218
		// Réalisation du test
Line 238... Line 238...
238
	}
238
	}
Line 239... Line 239...
239
	
239
	
240
	private function testerStatutIntroductionSyntaxe() {
240
	private function testerStatutIntroductionSyntaxe() {
241
		$info = array('nom' => 'statut_introduction -> syntaxe',
241
		$info = array('nom' => 'statut_introduction -> syntaxe',
242
			'description' => "Le champ statut_introduction peut contenir :\n".
242
			'description' => "Le champ statut_introduction peut contenir :\n".
243
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
243
								" - le symbole tiret «-» précédant une autre information non référencée...\n".
244
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
244
								" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
245
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
245
								" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
246
			"un code de présence spécifique au référentiel.",
246
								"un code de présence spécifique au référentiel.",
Line 247... Line 247...
247
			'resultat' => false);
247
			'resultat' => false);
248
		
248
		
249
		// Réalisation du test
249
		// Réalisation du test
Line 269... Line 269...
269
	}
269
	}
Line 270... Line 270...
270
	
270
	
271
	private function testerStatutOrigineSyntaxe() {
271
	private function testerStatutOrigineSyntaxe() {
272
		$info = array('nom' => 'statut_origine -> syntaxe',
272
		$info = array('nom' => 'statut_origine -> syntaxe',
273
			'description' => "Le champ statut_origine peut contenir :\n".
273
			'description' => "Le champ statut_origine peut contenir :\n".
274
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
274
								" - le symbole tiret «-» précédant une autre information non référencée...\n".
275
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
275
								" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
276
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
276
								" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
277
			"un code de présence spécifique au référentiel.",
277
								"un code de présence spécifique au référentiel.",
Line 278... Line 278...
278
			'resultat' => false);
278
			'resultat' => false);
279
		
279
		
280
		// Réalisation du test
280
		// Réalisation du test
Line 300... Line 300...
300
	}
300
	}
Line 301... Line 301...
301
	
301
	
302
	private function testerPresenceSyntaxe() {
302
	private function testerPresenceSyntaxe() {
303
		$info = array('nom' => 'presence -> syntaxe',
303
		$info = array('nom' => 'presence -> syntaxe',
304
			'description' => "Le champ presence contient soit :\n".
304
			'description' => "Le champ presence contient soit :\n".
305
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
305
								" - le symbole tiret «-» précédant une autre information non référencée...\n".
306
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
306
								" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
307
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
307
								" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
308
			"un code de présence spécifique au référentiel.",
308
								"un code de présence spécifique au référentiel.",
Line 309... Line 309...
309
			'resultat' => false);
309
			'resultat' => false);
310
		
310
		
311
		// Réalisation du test
311
		// Réalisation du test
Line 330... Line 330...
330
		$this->traiterResultatTest($info);
330
		$this->traiterResultatTest($info);
331
	}
331
	}
Line 332... Line 332...
332
	
332
	
333
	private function testerHybrideParent02Existence() {
333
	private function testerHybrideParent02Existence() {
334
		$info = array('nom' => 'hybride_parent_02 -> existence',
334
		$info = array('nom' => 'hybride_parent_02 -> existence',
335
			'description' => "Si le champ hybride_parent_02 contient un nombre alors il doit correspondre à une valeur du champ ".
335
			'description' => "Si le champ hybride_parent_02 contient un nombre alors il doit correspondre à une valeur ".
336
			"num_nom.",
336
								"du champ num_nom.",
Line 337... Line 337...
337
			'resultat' => false);
337
			'resultat' => false);
338
		
338
		
339
		// Réalisation du test
339
		// Réalisation du test
Line 359... Line 359...
359
	}
359
	}
Line 360... Line 360...
360
	
360
	
361
	private function testerHybrideParent02Syntaxe() {
361
	private function testerHybrideParent02Syntaxe() {
362
		$info = array('nom' => 'hybride_parent_02 -> syntaxe',
362
		$info = array('nom' => 'hybride_parent_02 -> syntaxe',
363
			'description' => "Le champ hybride_parent_02 contient soit :\n".
363
			'description' => "Le champ hybride_parent_02 contient soit :\n".
364
			" - une valeur vide,\n".
364
								" - une valeur vide,\n".
365
			" - un nombre.",
365
								" - un nombre.",
Line 366... Line 366...
366
			'resultat' => false);
366
			'resultat' => false);
367
		
367
		
368
		// Réalisation du test
368
		// Réalisation du test
Line 388... Line 388...
388
	}
388
	}
Line 389... Line 389...
389
	
389
	
390
	
390
	
391
	private function testerHybrideParent01Existence() {
391
	private function testerHybrideParent01Existence() {
392
		$info = array('nom' => 'hybride_parent_01 -> existence',
392
		$info = array('nom' => 'hybride_parent_01 -> existence',
393
			'description' => "Si le champ hybride_parent_01 contient un nombre alors il doit correspondre à une valeur du champ ".
393
			'description' => "Si le champ hybride_parent_01 contient un nombre alors il doit correspondre à une valeur ".
Line 394... Line 394...
394
			"num_nom.",
394
								"du champ num_nom.",
395
			'resultat' => false);
395
			'resultat' => false);
396
		
396
		
Line 417... Line 417...
417
	}
417
	}
Line 418... Line 418...
418
	
418
	
419
	private function testerHybrideParent01Syntaxe() {
419
	private function testerHybrideParent01Syntaxe() {
420
		$info = array('nom' => 'hybride_parent_01 -> syntaxe',
420
		$info = array('nom' => 'hybride_parent_01 -> syntaxe',
421
			'description' => "Le champ hybride_parent_01 contient soit :\n".
421
			'description' => "Le champ hybride_parent_01 contient soit :\n".
422
			" - une valeur vide,\n".
422
								" - une valeur vide,\n".
423
			" - un nombre.",
423
								" - un nombre.",
Line 424... Line 424...
424
			'resultat' => false);
424
			'resultat' => false);
425
		
425
		
426
		// Réalisation du test
426
		// Réalisation du test
Line 446... Line 446...
446
	}
446
	}
Line 447... Line 447...
447
	
447
	
448
	private function testerSynonymeOrthographiqueExistence() {
448
	private function testerSynonymeOrthographiqueExistence() {
449
		$info = array('nom' => 'synonyme_orthographique -> existence',
449
		$info = array('nom' => 'synonyme_orthographique -> existence',
450
			'description' => "Si le champ synonyme_orthographique contient un nombre alors il doit correspondre ".
450
			'description' => "Si le champ synonyme_orthographique contient un nombre alors il doit correspondre ".
451
			"à une valeur du champ num_nom.",
451
								"à une valeur du champ num_nom.",
Line 452... Line 452...
452
			'resultat' => false);
452
			'resultat' => false);
453
		
453
		
454
		// Réalisation du test
454
		// Réalisation du test
Line 474... Line 474...
474
	}
474
	}
Line 475... Line 475...
475
	
475
	
476
	private function testerSynonymeOrthographiqueSyntaxe() {
476
	private function testerSynonymeOrthographiqueSyntaxe() {
477
		$info = array('nom' => 'synonyme_orthographique -> syntaxe',
477
		$info = array('nom' => 'synonyme_orthographique -> syntaxe',
478
			'description' => "Le champ synonyme_orthographique contient soit :\n".
478
			'description' => "Le champ synonyme_orthographique contient soit :\n".
479
			" - une valeur vide,\n".
479
								" - une valeur vide,\n".
480
			" - un nombre.",
480
								" - un nombre.",
Line 481... Line 481...
481
			'resultat' => false);
481
			'resultat' => false);
482
		
482
		
483
		// Réalisation du test
483
		// Réalisation du test
Line 587... Line 587...
587
	
587
	
588
	
588
	
589
	private function testerSynonymeProparteExistence() {
589
	private function testerSynonymeProparteExistence() {
590
		$info = array('nom' => 'synonyme_proparte -> existence',
590
		$info = array('nom' => 'synonyme_proparte -> existence',
591
			'description' => "Si le champ synonyme_proparte contient un ou plusieurs nombres alors chacun d'entre eux ".
591
			'description' => "Si le champ synonyme_proparte contient un ou plusieurs nombres alors chacun d'entre eux ".
Line 592... Line 592...
592
			"doit correspondre à une valeur du champ num_nom.",
592
								"doit correspondre à une valeur du champ num_nom.",
593
			'resultat' => false);
593
			'resultat' => false);
594
		
594
		
Line 652... Line 652...
652
	}
652
	}
Line 653... Line 653...
653
	
653
	
654
	private function testerBasionymeExistence() {
654
	private function testerBasionymeExistence() {
655
		$info = array('nom' => 'basionyme -> existence',
655
		$info = array('nom' => 'basionyme -> existence',
656
			'description' => "Si le champ basionyme contient un nombre alors il doit correspondre à une valeur du champ ".
656
			'description' => "Si le champ basionyme contient un nombre alors il doit correspondre à une valeur du champ ".
657
			"num_nom.",
657
								"num_nom.",
Line 658... Line 658...
658
			'resultat' => false);
658
			'resultat' => false);
659
		
659
		
660
		// Réalisation du test
660
		// Réalisation du test
Line 709... Line 709...
709
	}
709
	}
Line 710... Line 710...
710
	
710
	
711
	private function testerHomonymieExistence() {
711
	private function testerHomonymieExistence() {
712
		$info = array('nom' => 'homonyme -> existence',
712
		$info = array('nom' => 'homonyme -> existence',
713
			'description' => "Si le champ homonyme contient «1» alors plusieurs noms doivent posséder la même valeur ".
713
			'description' => "Si le champ homonyme contient «1» alors plusieurs noms doivent posséder la même valeur ".
714
			"dans le champ nom_sci.",
714
								"dans le champ nom_sci.",
Line 715... Line 715...
715
			'resultat' => false);
715
			'resultat' => false);
Line 716... Line 716...
716
		
716
		
Line 970... Line 970...
970
		$this->traiterResultatTest($info);
970
		$this->traiterResultatTest($info);
971
	}
971
	}
Line 972... Line 972...
972
	
972
	
973
	private function testerCultivarRang() {
973
	private function testerCultivarRang() {
974
		$info = array('nom' => "cultivar -> rang >= {$this->manuel['rang_genre']}",
974
		$info = array('nom' => "cultivar -> rang >= {$this->manuel['rang_genre']}",
-
 
975
			'description' => "Si le champ cultivar n'est pas vide alors le rang du nom doit être supérieur ou égal à ". 
975
			'description' => "Si le champ cultivar n'est pas vide alors le rang du nom doit être supérieur ou égal à {$this->manuel['rang_genre']}.",
976
								"{$this->manuel['rang_genre']}.",
Line 976... Line 977...
976
			'resultat' => false);
977
			'resultat' => false);
977
		
978
		
978
		// Réalisation du test
979
		// Réalisation du test
Line 1029... Line 1030...
1029
		$this->traiterResultatTest($info);
1030
		$this->traiterResultatTest($info);
1030
	}
1031
	}
Line 1031... Line 1032...
1031
	
1032
	
1032
	private function testerGroupeCultivarRang() {
1033
	private function testerGroupeCultivarRang() {
1033
		$info = array('nom' => "cultivar_groupe -> rang >= {$this->manuel['rang_genre']}",
1034
		$info = array('nom' => "cultivar_groupe -> rang >= {$this->manuel['rang_genre']}",
-
 
1035
			'description' => "Si le champ cultivar_groupe n'est pas vide alors le rang du nom doit être supérieur ou ".
1034
			'description' => "Si le champ cultivar_groupe n'est pas vide alors le rang du nom doit être supérieur ou égal à {$this->manuel['rang_genre']}.",
1036
								"égal à {$this->manuel['rang_genre']}.",
Line 1035... Line 1037...
1035
			'resultat' => false);
1037
			'resultat' => false);
1036
		
1038
		
1037
		// Réalisation du test
1039
		// Réalisation du test
Line 1087... Line 1089...
1087
	
1089
	
1088
	private function testerEpitheteInfraSpSyntaxe() {
1090
	private function testerEpitheteInfraSpSyntaxe() {
1089
		$info = array('nom' => 'epithete_infra_sp -> syntaxe',
1091
		$info = array('nom' => 'epithete_infra_sp -> syntaxe',
1090
			'description' => "Le champ epithete_infra_sp peut contenir :\n".
1092
			'description' => "Le champ epithete_infra_sp peut contenir :\n".
1091
			 	" - un mot unique composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1093
			 	" - un mot unique composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1092
				"	Il commence par une lettre minuscule (avec ou sans tréma).\n". 
1094
				"   Il commence par une lettre minuscule (avec ou sans tréma).\n". 
1093
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
1095
				"   Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
1094
				" - une formule d'hybridité composée d'une série de noms d'espèce ou d'infra espèce \n".
1096
				" - une formule d'hybridité composée d'une série de noms d'espèce ou d'infra espèce \n".
1095
				"	(au moins 2) séparés entre eux par la lettre x entourée de caractères espaces.",
1097
				"   (au moins 2) séparés entre eux par la lettre x entourée de caractères espaces.",
Line 1096... Line 1098...
1096
			'resultat' => false);
1098
			'resultat' => false);
1097
		
1099
		
1098
		// Réalisation du test
1100
		// Réalisation du test
Line 1264... Line 1266...
1264
				$ok = false;
1266
				$ok = false;
1265
			}
1267
			}
1266
		}
1268
		}
1267
		$info['resultat'] = $ok;
1269
		$info['resultat'] = $ok;
1268
		if (!$ok) {
1270
		if (!$ok) {
1269
			$info['message'] = 'Champs manquant : '.implode(', ', $champs_manquant).'.';
1271
			$info['message'] = 'Champs manquants : '.implode(', ', $champs_manquant).'.';
1270
		}
1272
		}
Line 1271... Line 1273...
1271
		
1273
		
1272
		$this->traiterResultatTest($info);
1274
		$this->traiterResultatTest($info);
1273
		return ($info['resultat'] ? '1' : '0');
1275
		return ($info['resultat'] ? '1' : '0');
Line 1303... Line 1305...
1303
			}
1305
			}
1304
		}
1306
		}
Line 1305... Line 1307...
1305
		
1307
		
1306
		// Analyse des résultats
1308
		// Analyse des résultats
1307
		if (count($champs_erreur) > 0) {
1309
		if (count($champs_erreur) > 0) {
1308
			$info['message'] = "Champs n'ayant pas un bon type : ".implode(', ', $champs_erreur).'.';
1310
			$info['message'] = "Champs n'ayant pas un type conforme : ".implode(', ', $champs_erreur).'.';
1309
		} else {
1311
		} else {
1310
			$info['resultat'] = true;
1312
			$info['resultat'] = true;
Line 1311... Line 1313...
1311
		}
1313
		}
Line 1345... Line 1347...
1345
			}
1347
			}
1346
		}
1348
		}
Line 1347... Line 1349...
1347
		
1349
		
1348
		// Analyse des résultats
1350
		// Analyse des résultats
1349
		if (count($champs_erreur) > 0) {
1351
		if (count($champs_erreur) > 0) {
-
 
1352
			$info['message'] = "Champs possédant des enregistrements qui atteignent la taille maximum autorisée : ".
1350
			$info['message'] = "Champs possédant des enregistrements avec une taille maximum : ".implode(', ', $champs_erreur).'.';
1353
								implode(', ', $champs_erreur).'.';
1351
		} else {
1354
		} else {
1352
			$info['resultat'] = true;
1355
			$info['resultat'] = true;
Line 1353... Line 1356...
1353
		}
1356
		}
Line 1383... Line 1386...
1383
			}
1386
			}
1384
		}
1387
		}
Line 1385... Line 1388...
1385
		
1388
		
1386
		// Analyse des résultats
1389
		// Analyse des résultats
1387
		if (count($noms_erreur) > 0) {
1390
		if (count($noms_erreur) > 0) {
-
 
1391
			$info['message'] = count($noms_erreur)." enregistrements contiennent dans le champ num_nom une valeur ".
1388
			$info['message'] = count($noms_erreur)." enregistrements contiennent dans le champ num_nom une valeur inférieure ou égale à 0.";
1392
								"inférieure ou égale à 0.";
1389
		} else {
1393
		} else {
1390
			$info['resultat'] = true;
1394
			$info['resultat'] = true;
Line 1391... Line 1395...
1391
		}
1395
		}
Line 1406... Line 1410...
1406
			}
1410
			}
1407
		}
1411
		}
Line 1408... Line 1412...
1408
		
1412
		
1409
		// Analyse des résultats
1413
		// Analyse des résultats
1410
		if (count($noms_erreur) > 0) {
1414
		if (count($noms_erreur) > 0) {
-
 
1415
			$info['message'] = count($noms_erreur)." enregistrements dont le champ num_nom_retenu est inférieur ou égal à 0 : ".
1411
			$info['message'] = count($noms_erreur)." enregistrements dont le champ num_nom_retenu est inférieur ou égal à 0 : ".implode(', ', $noms_erreur).'.';
1416
								implode(', ', $noms_erreur).'.';
1412
		} else {
1417
		} else {
1413
			$info['resultat'] = true;
1418
			$info['resultat'] = true;
Line 1414... Line 1419...
1414
		}
1419
		}
1415
		
1420
		
Line 1416... Line 1421...
1416
		$this->traiterResultatTest($info);
1421
		$this->traiterResultatTest($info);
1417
	}
1422
	}
1418
	
1423
	
-
 
1424
	private function testerNumTaxSupEgalZeroUnique() {
1419
	private function testerNumTaxSupEgalZeroUnique() {
1425
		$info = array('nom' => 'num_tax_sup -> égal à 0 unique',
Line 1420... Line 1426...
1420
		$info = array('nom' => 'num_tax_sup -> égal à 0 unique',
1426
			'description' => "Un seul enregistrement doit posséder la valeur 0 dans le champ num_tax_sup. Il correspond ".
1421
			'description' => "Un seul enregistrement doit posséder la valeur 0 dans le champ num_tax_sup. Il correspond au premier taxon de la classification.",
1427
								"au premier taxon de la classification.",
1422
			'resultat' => false);
1428
			'resultat' => false);
Line 1429... Line 1435...
1429
			}
1435
			}
1430
		}
1436
		}
Line 1431... Line 1437...
1431
		
1437
		
1432
		// Analyse des résultats
1438
		// Analyse des résultats
1433
		if (count($noms_erreur) > 1) {
1439
		if (count($noms_erreur) > 1) {
-
 
1440
			$info['message'] = count($noms_erreur)." enregistrements ont une valeur de 0 dans le champ num_tax_sup : ".
1434
			$info['message'] = count($noms_erreur)." enregistrements ont une valeur de 0 dans le champ num_tax_sup : ".implode(', ', $noms_erreur).'.';
1441
								implode(', ', $noms_erreur).'.';
1435
		} else {
1442
		} else {
1436
			$info['resultat'] = true;
1443
			$info['resultat'] = true;
Line 1437... Line 1444...
1437
		}
1444
		}
1438
		
1445
		
Line 1439... Line 1446...
1439
		$this->traiterResultatTest($info);
1446
		$this->traiterResultatTest($info);
1440
	}
1447
	}
1441
	
1448
	
1442
	private function testerTaxSupPourTaxon() {
1449
	private function testerTaxSupPourTaxon() {
1443
		$info = array('nom' => 'Classification -> uniquement pour les taxons',
1450
		$info = array('nom' => 'Classification -> uniquement pour les taxons',
Line 1444... Line 1451...
1444
			'description' => "Seuls les enregistrements représentant un taxon doivent posséder une valeur dans le champ num_tax_sup.\n".
1451
			'description' => "Seuls les enregistrements représentant un taxon doivent posséder une valeur dans le champ ".
1445
				"Si num_nom_retenu est différent de num_nom (= nom synonyme) alors num_tax_sup doit être vide.",
1452
				"num_tax_sup.\n Si num_nom_retenu est différent de num_nom (= nom synonyme) alors num_tax_sup doit être vide.",
1446
			'resultat' => false);
1453
			'resultat' => false);
Line 1453... Line 1460...
1453
			}
1460
			}
1454
		}
1461
		}
Line 1455... Line 1462...
1455
		
1462
		
1456
		// Analyse des résultats
1463
		// Analyse des résultats
1457
		if (count($noms_erreur) > 0) {
1464
		if (count($noms_erreur) > 0) {
-
 
1465
			$info['message'] = count($noms_erreur)." enregistrements ne sont pas des taxons et possèdent une ".
1458
			$info['message'] = count($noms_erreur)." enregistrements qui n'est pas un taxon et qui possède une valeur dans num_tax_sup : ".implode(', ', $noms_erreur).'.';
1466
								"valeur dans num_tax_sup : ".implode(', ', $noms_erreur).'.';
1459
		} else {
1467
		} else {
1460
			$info['resultat'] = true;
1468
			$info['resultat'] = true;
Line 1461... Line 1469...
1461
		}
1469
		}
1462
		
1470
		
Line 1463... Line 1471...
1463
		$this->traiterResultatTest($info);
1471
		$this->traiterResultatTest($info);
1464
	}
1472
	}
1465
	
1473
	
-
 
1474
	private function testerExitenceTaxonSuperieur() {
1466
	private function testerExitenceTaxonSuperieur() {
1475
		$info = array('nom' => 'Classification -> existence du taxon supérieur',
Line 1467... Line 1476...
1467
		$info = array('nom' => 'Classification -> existence du taxon supérieur',
1476
			'description' => "Chaque enregistrement représentant un taxon doit posséder un taxon supérieur sauf ".
1468
			'description' => "Chaque enregistrement représentant un taxon doit posséder un taxon supérieur sauf la racine de la classification.",
1477
								"la racine de la classification.",
1469
			'resultat' => false);
1478
			'resultat' => false);
Line 1478... Line 1487...
1478
			}
1487
			}
1479
		}
1488
		}
Line 1480... Line 1489...
1480
		
1489
		
1481
		// Analyse des résultats
1490
		// Analyse des résultats
1482
		if (count($noms_erreur) > 0) {
1491
		if (count($noms_erreur) > 0) {
-
 
1492
			$info['message'] = count($noms_erreur)." enregistrements dont le taxon supérieur n'existe pas : ".
1483
			$info['message'] = count($noms_erreur)." enregistrements dont le taxon supérieur n'existe pas : ".implode(', ', $noms_erreur).'.';
1493
								implode(', ', $noms_erreur).'.';
1484
		} else {
1494
		} else {
1485
			$info['resultat'] = true;
1495
			$info['resultat'] = true;
Line 1486... Line 1496...
1486
		}
1496
		}
1487
		
1497
		
Line 1488... Line 1498...
1488
		$this->traiterResultatTest($info);
1498
		$this->traiterResultatTest($info);
1489
	}
1499
	}
1490
	
1500
	
-
 
1501
	private function testerClassificationRang() {
1491
	private function testerClassificationRang() {
1502
		$info = array('nom' => 'Classification -> taxon supérieur avec rang inférieur',
Line 1492... Line 1503...
1492
		$info = array('nom' => 'Classification -> taxon supérieur avec rang inférieur',
1503
			'description' => "Pour chaque enregistrement représentant un taxon, le taxon supérieur doit avoir ".
1493
			'description' => "Pour chaque enregistrement représentant un taxon, le taxon supérieur doit avoir un rang inférieur au taxon courant.",
1504
								"un rang inférieur au taxon courant.",
1494
			'resultat' => false);
1505
			'resultat' => false);
Line 1516... Line 1527...
1516
		$this->traiterResultatTest($info);
1527
		$this->traiterResultatTest($info);
1517
	}
1528
	}
Line 1518... Line 1529...
1518
	
1529
	
1519
	private function testerClassification() {
1530
	private function testerClassification() {
1520
		$info = array('nom' => 'Classification -> racine liée à chaque noeud',
1531
		$info = array('nom' => 'Classification -> racine liée à chaque noeud',
-
 
1532
			'description' => "Pour chaque enregistrement, la classification doit pouvoir être remontée ".
1521
			'description' => "Pour chaque enregistrement, la classification doit pouvoir être remontée jusqu'à un nom unique possédant une valeur num_tax_sup de 0.",
1533
								"jusqu'à un nom unique possédant une valeur num_tax_sup de 0.",
Line 1522... Line 1534...
1522
			'resultat' => false);
1534
			'resultat' => false);
1523
		
1535
		
1524
		// Réalisation du test
1536
		// Réalisation du test
Line 1543... Line 1555...
1543
		}
1555
		}
1544
		unset($this->noms_ok);
1556
		unset($this->noms_ok);
Line 1545... Line 1557...
1545
		
1557
		
1546
		// Analyse des résultats
1558
		// Analyse des résultats
1547
		if (count($noms_erreur) > 0) {
1559
		if (count($noms_erreur) > 0) {
-
 
1560
			$info['message'] = count($noms_erreur)." taxons dont la classification n'est pas bonne : ".
1548
			$info['message'] = count($noms_erreur)." taxons dont la classification n'est pas bonne : ".implode(', ', $noms_erreur).'.';
1561
								implode(', ', $noms_erreur).'.';
1549
		} else {
1562
		} else {
1550
			$info['resultat'] = true;
1563
			$info['resultat'] = true;
Line 1551... Line 1564...
1551
		}
1564
		}
Line 1603... Line 1616...
1603
		$this->traiterResultatTest($info);
1616
		$this->traiterResultatTest($info);
1604
	}
1617
	}
Line 1605... Line 1618...
1605
	
1618
	
1606
	private function testerNomCompletSupraGenerique() {
1619
	private function testerNomCompletSupraGenerique() {
1607
		$info = array('nom' => 'nom_sci -> noms supra-génériques',
1620
		$info = array('nom' => 'nom_sci -> noms supra-génériques',
1608
			'description' => "Si le rang est < à {$this->manuel['rang_genre']}, le nom_sci doit correspondre à la valeur du champ nom_supra_generique. ".
1621
			'description' => "Si le rang est < à {$this->manuel['rang_genre']}, le nom_sci doit correspondre à la valeur ".
-
 
1622
								"du champ nom_supra_generique. Les valeurs des champs cultivar_groupe, cultivar et ".
1609
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
1623
								"nom_commercial peuvent s'y ajouter.",
Line 1610... Line 1624...
1610
			'resultat' => false);
1624
			'resultat' => false);
1611
		
1625
		
1612
		// Réalisation du test
1626
		// Réalisation du test
Line 1895... Line 1909...
1895
	
1909
	
1896
	private function testerGenreSyntaxe() {
1910
	private function testerGenreSyntaxe() {
1897
		$info = array('nom' => 'genre -> syntaxe',
1911
		$info = array('nom' => 'genre -> syntaxe',
1898
			'description' => "Le champ genre peut contenir :\n".
1912
			'description' => "Le champ genre peut contenir :\n".
1899
			 	" - un mot unique composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1913
			 	" - un mot unique composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1900
				"	Il commence par une lettre majuscule (avec ou sans tréma) et peut être précédé par \n".
1914
				"   Il commence par une lettre majuscule (avec ou sans tréma) et peut être précédé par \n".
1901
				"   le signe + ou la lettre x suivi d'un espace.\n".
1915
				"   le signe + ou la lettre x suivi d'un espace.\n".
1902
				" - une formule d'hybridité composée d'une série de noms de genre (au moins 2) séparés\n ".
1916
				" - une formule d'hybridité composée d'une série de noms de genre (au moins 2) séparés\n".
1903
				"	entre eux par la lettre x entourée de caractères espaces.",
1917
				"   entre eux par la lettre x entourée de caractères espaces.",
Line 1904... Line 1918...
1904
			'resultat' => false);
1918
			'resultat' => false);
1905
		
1919
		
1906
		// Réalisation du test
1920
		// Réalisation du test
Line 2072... Line 2086...
2072
	
2086
	
2073
	private function testerEpitheteSpSyntaxe() {
2087
	private function testerEpitheteSpSyntaxe() {
2074
		$info = array('nom' => 'epithete_sp -> syntaxe',
2088
		$info = array('nom' => 'epithete_sp -> syntaxe',
2075
			'description' => "Le champ epithete_sp peut contenir :\n".
2089
			'description' => "Le champ epithete_sp peut contenir :\n".
2076
			 	" - un mot unique composé de lettres minuscules [a-z] incluant les caractères [ëï-]. \n".
2090
			 	" - un mot unique composé de lettres minuscules [a-z] incluant les caractères [ëï-]. \n".
2077
				"	Il commence par une lettre minuscule [a-zëï].\n". 
2091
				"   Il commence par une lettre minuscule [a-zëï].\n". 
2078
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
2092
				"   Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
2079
				" - un mot contenant sp. suivi d'un ou plusieurs caractères numériques (1-9) \n".
2093
				" - un mot contenant sp. suivi d'un ou plusieurs caractères numériques (1-9) \n".
2080
				"   ou d'un seul caractère majuscule (A-Z) \n".
2094
				"   ou d'un seul caractère majuscule (A-Z) \n".
2081
				" - une formule d'hybridité composée d'une série de noms d'espèce (au moins 2) \n".
2095
				" - une formule d'hybridité composée d'une série de noms d'espèce (au moins 2) \n".
2082
				"	séparés entre eux par la lettre x entourée de caractères espaces.",
2096
				"   séparés entre eux par la lettre x entourée de caractères espaces.",
Line 2083... Line 2097...
2083
			'resultat' => false);
2097
			'resultat' => false);
2084
		
2098
		
2085
		// Réalisation du test
2099
		// Réalisation du test