Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 172 → Rev 173

/trunk/scripts/modules/tests/Tests.php
1308,21 → 1308,25
$this->traiterResultatTest($info);
}
private function testerStatutCultureSyntaxe() {
$info = array('nom' => 'statut_culture -> syntaxe',
'description' => "Le champ statut_culture peut contenir :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
/**
* Test #37
*/
private function testerGroupeCultivarSyntaxe() {
$info = array('nom' => 'cultivar_groupe -> syntaxe',
'description' => "Le champ cultivar_groupe doit contenir un nom de groupe de cultivar conforme aux règles ".
"du code des plantes cultivées, c.-à-d. composer de caractères alphanumériques (A-Z,a-z et 0-9) incluant ".
"signes diacritiques et marques de ponctuations.\n".
"Il ne doit pas contenir le mot Groupe, l'abbréviation «gp» ou des parenthèses.\n".
"Il peut se terminer par l'abréviation «gx» pour distinguer les groupes des grex.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['statut_culture'] != '') {
if (!$this->verifierStatutCulture($nom['statut_culture'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['statut_culture']);
if ($nom['cultivar_groupe'] != '') {
if (!$this->verifierEpitheteGroupeCultivar($nom['cultivar_groupe'])) {
$epithete_traite = $this->repererEspace($nom['cultivar_groupe']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
}
}
}
1329,7 → 1333,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'statut_culture erroné');
$info['message']['entete'] = array('num_nom', 'cultivar_groupe erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1339,21 → 1343,21
$this->traiterResultatTest($info);
}
private function testerStatutIntroductionSyntaxe() {
$info = array('nom' => 'statut_introduction -> syntaxe',
'description' => "Le champ statut_introduction peut contenir :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
/**
* Test #38
*/
private function testerGroupeCultivarRang() {
$info = array('nom' => "cultivar_groupe -> rang >= {$this->manuel['rang_genre']}",
'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']}.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['statut_introduction'] != '') {
if (!$this->verifierStatutIntroduction($nom['statut_introduction'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['statut_introduction']);
if ($nom['cultivar_groupe'] != '') {
if ($nom['rang'] < $this->manuel['rang_genre']) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
}
}
}
1360,7 → 1364,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'statut_introduction erroné');
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1370,21 → 1374,30
$this->traiterResultatTest($info);
}
private function testerStatutOrigineSyntaxe() {
$info = array('nom' => 'statut_origine -> syntaxe',
'description' => "Le champ statut_origine peut contenir :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
/**
* Test #39
*/
private function testerCultivarSyntaxe() {
$info = array('nom' => 'cultivar -> syntaxe',
'description' => "Le champ cultivar_groupe doit contenir :\n".
" - un nom de cultivar conforme aux règles du Code Internationnal de Nomenclature \n".
" des Plantes Cultivées (CINPC), c.-à-d. composer de caractères alphanumériques \n".
" (A-Z,a-z et 0-9) incluant signes diacritiques et marques de ponctuations.\n".
" - un nom en alphabet latin, ce qui implique une translittération des noms d'alphabet \n".
" cyrillique, arabe, chinois...\n".
" - une lettre majuscule obligatoire pour le premier caractère du premier mot et pour \n".
" les autres mots importants mais pas pour les mots mineurs.\n".
"Ne doit pas contenir :\n".
" - cv., convar. ou de guillemets simples (').\n",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['statut_origine'] != '') {
if (!$this->verifierStatutOrigine($nom['statut_origine'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['statut_origine']);
if ($nom['cultivar'] != '') {
if (!$this->verifierEpitheteCultivar($nom['cultivar'])) {
$epithete_traite = $this->repererEspace($nom['cultivar']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
}
}
}
1391,7 → 1404,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'statut_origine erroné');
$info['message']['entete'] = array('num_nom', 'cultivar erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1401,21 → 1414,21
$this->traiterResultatTest($info);
}
private function testerPresenceSyntaxe() {
$info = array('nom' => 'presence -> syntaxe',
'description' => "Le champ presence contient soit :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
/**
* Test #40
*/
private function testerCultivarRang() {
$info = array('nom' => "cultivar -> rang >= {$this->manuel['rang_genre']}",
'description' => "Si le champ cultivar n'est pas vide alors le rang du nom doit être supérieur ou égal à ".
"{$this->manuel['rang_genre']}.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['presence'] != '') {
if (!$this->verifierPresence($nom['presence'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['presence']);
if ($nom['cultivar'] != '') {
if ($nom['rang'] < $this->manuel['rang_genre']) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
}
}
}
1422,7 → 1435,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'presence erroné');
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1432,18 → 1445,23
$this->traiterResultatTest($info);
}
private function testerHybrideParent02Existence() {
$info = array('nom' => 'hybride_parent_02 -> existence',
'description' => "Si le champ hybride_parent_02 contient un nombre alors il doit correspondre à une valeur ".
"du champ num_nom.",
/**
* Test #41
*/
private function testerNomCommercialSyntaxe() {
$info = array('nom' => 'nom_commercial -> syntaxe',
'description' => "Le champ nom_commercial doit contenir un nom commercial conforme aux règles du ".
"Code Internationnal de Nomenclature des Plantes Cultivées (CINPC) ".
"qui se compose de caractères majuscules (A-Z) incluant des signes diacritiques et des espaces.\n",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['hybride_parent_02'] != '') {
if (!isset($this->noms[$nom['hybride_parent_02']]) && $nom['hybride_parent_02'] != '0') {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']));
if ($nom['nom_commercial'] != '') {
if (!$this->verifierNomCommercial($nom['nom_commercial'])) {
$epithete_traite = $this->repererEspace($nom['nom_commercial']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
}
}
}
1450,7 → 1468,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'hybride_parent_02 introuvable');
$info['message']['entete'] = array('num_nom', 'cultivar erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1460,26 → 1478,26
$this->traiterResultatTest($info);
}
private function testerHybrideParent02Syntaxe() {
$info = array('nom' => 'hybride_parent_02 -> syntaxe',
'description' => "Le champ hybride_parent_02 contient soit :\n".
" - une valeur vide,\n".
" - un nombre.",
/**
* Test #42
*/
private function testerNomCommercialPresenceCultivar() {
$info = array('nom' => 'nom_commercial -> groupe_cultivar OU cultivar non vide',
'description' => "Si le champ nom_commercial contient un nom commercial alors le champ cultivar OU ".
"cultivar_groupe ne doit pas être vide.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['hybride_parent_02'] != '') {
if (!$this->verifierNombre($nom['hybride_parent_02'])) {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']));
}
if ((isset($nom['nom_commercial']) && $nom['nom_commercial'] != '') && ($nom['cultivar'] == '' && $nom['cultivar_groupe'] == '')) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']);
}
}
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'hybride_parent_02 erroné');
$info['message']['entete'] = array('num_nom', 'nom_commercial sans cultivar ou cultivar_groupe');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1489,19 → 1507,31
$this->traiterResultatTest($info);
}
private function testerHybrideParent01Existence() {
$info = array('nom' => 'hybride_parent_01 -> existence',
'description' => "Si le champ hybride_parent_01 contient un nombre alors il doit correspondre à une valeur ".
"du champ num_nom.",
/**
* Test #43
*/
private function testerAuteurSyntaxe() {
$info = array('nom' => 'auteur -> syntaxe',
'description' => "Le champ auteur doit :\n".
" - contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ayant publié à l'origine la combinaison latine courante.\n".
" - OU débuter par le mot « sensu » et contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ".
"ayant publié un nom dont la description ne correspond pas à celle de l'auteur, ou des auteurs, d'origine.\n".
" - se composer de caractères alphabétiques (A-Z, a-z), incluant les signes diacritiques, le symbole point (.), les paires de parenthèses ( () ), les apostrophes, l'esperluette (&) et l'espace ( ).\n".
" - contenir, si nécessaire, des abréviations de noms d'auteurs respectant les standards.\n".
" - contenir une translittération des noms d'alphabet cyrillique, arabe, chinois... en alphabet latin.\n".
" - inclure entre parenthèses l'intitulé des noms de l'auteur ou des auteurs ayant publié le basionyme.\n".
" - toujours utiliser l'esperluette (&) à la place du mot « et » pour séparer les noms d'auteurs.\n".
" - conformément à la recommandation 46C.2 du CINB, si une un citation comprend plus de deux auteurs, ".
"elle devrait être limitée au nom du premier, suivi de « & al.».\n",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['hybride_parent_01'] != '' && $nom['hybride_parent_01'] != '0') {
if (!isset($this->noms[$nom['hybride_parent_01']])) {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']));
if ($nom['auteur'] != '') {
if (!$this->verifierAuteur($nom['auteur'])) {
$intitule_traite = $this->repererEspace($nom['auteur']);
$noms_erreur[] = array($nom['num_nom'], $intitule_traite);
}
}
}
1508,7 → 1538,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'hybride_parent_01 introuvable');
$info['message']['entete'] = array('num_nom', 'auteur erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1518,19 → 1548,22
$this->traiterResultatTest($info);
}
private function testerHybrideParent01Syntaxe() {
$info = array('nom' => 'hybride_parent_01 -> syntaxe',
'description' => "Le champ hybride_parent_01 contient soit :\n".
" - une valeur vide,\n".
" - un nombre.",
/**
* Test #44
*/
private function testerAnneeSyntaxe() {
$info = array('nom' => 'annee -> syntaxe',
'description' => "Le champ annee doit :\n".
" - contenir un nombre de 4 chiffres,\n".
" - être supérieur ou égal à 1753.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['hybride_parent_01'] != '') {
if (!$this->verifierNombre($nom['hybride_parent_01'])) {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']));
if ($nom['annee'] != '') {
if (!$this->verifierAnnee($nom['annee'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['annee']);
}
}
}
1537,7 → 1570,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'hybride_parent_01 erroné');
$info['message']['entete'] = array('num_nom', 'annee erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1547,18 → 1580,35
$this->traiterResultatTest($info);
}
private function testerSynonymeOrthographiqueExistence() {
$info = array('nom' => 'synonyme_orthographique -> existence',
'description' => "Si le champ synonyme_orthographique contient un nombre alors il doit correspondre ".
"à une valeur du champ num_nom.",
/**
* Test #45
*/
private function testerBiblioOrigineSyntaxe() {
$info = array('nom' => 'biblio_origine -> syntaxe',
'description' => "Le champ biblio_origine se compose de plusieurs parties séparées par des caractères ".
"précis qui sont dans l'ordre de gauche à droite :\n".
" - éventuellement, le mot « in » suivi d'un intitulé auteur (utilisé pour indiquer l'intitulé auteur de ".
"l'ouvrage dans lequel la publication est parue),\n".
" - point-virgule « ; » (si l'info précédent a été renseignée),\n".
" - abréviation, ou nom, de l'ouvrage ou de la revue selon le standard en vigueur dans le code du nom. ".
"Cette information ne doit pas contenir de caractère virgule « , »,\n".
" - virgule « , »,\n".
" - informations permettant d'identifier plus précisément le document contenant le nom... ".
"(par exemple, l'éditeur, le tome, le numéro d'édition, le volume...) séparées par des virgules ou d'autres ".
"caractères sauf deux points « : ».\n".
" - deux points « : »,\n".
" - numéro(s) de la page contenant la publication du nom ou de l'ensemble de pages (première et dernière ".
"pages de l'ensemble séparées par un tiret « - »). Quelques fois des numéros ou d'autres informations indiquant ".
"la position du nom dans le document. Le tiret « - » doit toujours servir à séparer un ensemble.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['synonyme_orthographique'] != '') {
if (!isset($this->noms[$nom['synonyme_orthographique']])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique']);
if ($nom['biblio_origine'] != '') {
if (!$this->verifierBiblioOrigine($nom['biblio_origine'])) {
$biblio_traite = $this->repererEspace($nom['biblio_origine']);
$noms_erreur[] = array($nom['num_nom'], $biblio_traite);
}
}
}
1565,7 → 1615,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_orthographique introuvable');
$info['message']['entete'] = array('num_nom', 'biblio_origine erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1575,19 → 1625,22
$this->traiterResultatTest($info);
}
private function testerSynonymeOrthographiqueSyntaxe() {
$info = array('nom' => 'synonyme_orthographique -> syntaxe',
'description' => "Le champ synonyme_orthographique contient soit :\n".
" - une valeur vide,\n".
" - un nombre.",
/**
* Test #46
*/
private function testerHomonymieSyntaxe() {
$info = array('nom' => 'homonyme -> syntaxe',
'description' => "Le champ homonyme contient :\n".
" - une valeur vide,\n".
" - le chiffre 1.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as $nom) {
if ($nom['synonyme_orthographique'] != '') {
if (!$this->verifierNombre($nom['synonyme_orthographique'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique']);
foreach ($this->noms as &$nom) {
if ($nom['homonyme'] != '') {
if (!$this->verifierBooleen($nom['homonyme'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['homonyme']);
}
}
}
1594,7 → 1647,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_orthographique erroné');
$info['message']['entete'] = array('num_nom', 'homonyme erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1604,26 → 1657,31
$this->traiterResultatTest($info);
}
private function testerSynonymeMalAppliqueSyntaxe() {
$info = array('nom' => 'synonyme_mal_applique -> syntaxe',
'description' => "Le champ synonyme_mal_applique contient soit :\n".
" - une valeur vide,\n".
" - le chiffre 1.",
/**
* Test #47
*/
private function testerHomonymieExistence() {
$info = array('nom' => 'homonyme -> existence',
'description' => "Si le champ homonyme contient «1» alors plusieurs noms doivent posséder la même valeur ".
"dans le champ nom_sci.",
'resultat' => false);
$noms_homonymie = $this->classerNomsParNomComplet();
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['synonyme_mal_applique'] != '') {
if (!$this->verifierBooleen($nom['synonyme_mal_applique'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_mal_applique']);
if ($nom['homonyme'] != '0' && $nom['homonyme'] != '') {
if ($noms_homonymie[$nom['nom_sci']] <= 1) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']);
}
}
}
$noms_homonymie = null;
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_mal_applique erroné');
$info['message']['entete'] = array('num_nom', 'homonyme introuvable');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1633,20 → 1691,22
$this->traiterResultatTest($info);
}
private function testerSynonymeDouteuxSyntaxe() {
$info = array('nom' => 'synonyme_douteux -> syntaxe',
'description' => "Le champ synonyme_douteux contient soit :\n".
" - une valeur vide,\n".
" - le chiffre 1.",
/**
* Test #48
*/
private function testerBasionymeSyntaxe() {
$info = array('nom' => 'basionyme -> syntaxe',
'description' => "Le champ basionyme contient :\n".
" - une valeur vide,\n".
" - un nombre.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['synonyme_douteux'] != '') {
if (!$this->verifierBooleen($nom['synonyme_douteux'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux']);
if ($nom['basionyme'] != '') {
if (!$this->verifierNombre($nom['basionyme'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme']);
}
}
}
1653,7 → 1713,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_douteux erroné');
$info['message']['entete'] = array('num_nom', 'basionyme erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1662,36 → 1722,47
$this->traiterResultatTest($info);
}
private function testerSynonymeDouteuxNumNomRetenu() {
$info = array('nom' => 'synonyme_douteux -> présence num_nom_retenu',
'description' => "Si le nom est un synonyme douteux, le champs num_nom_retenu doit être vide.",
 
/**
* Test #49
*/
private function testerBasionymeExistence() {
$info = array('nom' => 'basionyme -> existence',
'description' => "Si le champ basionyme contient un nombre alors il doit correspondre à une valeur du champ ".
"num_nom.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['synonyme_douteux'] == 1 && $nom['num_nom_retenu'] != ' ') {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['num_nom_retenu']);
if ($nom['basionyme'] != '') {
if (!isset($this->noms[$nom['basionyme']])) {
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme']);
}
}
}
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_douteux', 'num_nom_retenu');
$info['message']['entete'] = array('num_nom', 'basionyme introuvable');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
}
$noms_erreur = null;
$this->traiterResultatTest($info);
}
private function testerSynonymeProparteExistence() {
$info = array('nom' => 'synonyme_proparte -> existence',
'description' => "Si le champ synonyme_proparte contient un ou plusieurs nombres alors chacun d'entre eux ".
"doit correspondre à une valeur du champ num_nom.",
/**
* Test #50
*/
private function testerSynonymeProparteSyntaxe() {
$info = array('nom' => 'synonyme_proparte -> syntaxe',
'description' => "Le champ synonyme_proparte contient soit :\n".
" - une valeur vide,\n".
" - un nombre,\n".
" - une suite de nombres séparés par des virgules.",
'resultat' => false);
// Réalisation du test
1698,22 → 1769,15
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['synonyme_proparte'] != '') {
$num_nom_a_verifier = explode(',', $nom['synonyme_proparte']);
$num_nom_en_erreur = array();
foreach ($num_nom_a_verifier as $num_nom) {
if (!isset($this->noms[$num_nom])) {
$num_nom_en_erreur[] = $num_nom;
}
if (!$this->verifierNombreSuite($nom['synonyme_proparte'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_proparte']);
}
if (count($nbre_en_erreur) > 0) {
$noms_erreur[] = array($nom['num_nom'], implode(',', $num_nom_en_erreur));
}
}
}
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_proparte introuvable');
$info['message']['entete'] = array('num_nom', 'synonyme_proparte erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1723,12 → 1787,13
$this->traiterResultatTest($info);
}
private function testerSynonymeProparteSyntaxe() {
$info = array('nom' => 'synonyme_proparte -> syntaxe',
'description' => "Le champ synonyme_proparte contient soit :\n".
" - une valeur vide,\n".
" - un nombre,\n".
" - une suite de nombres séparés par des virgules.",
/**
* Test #51
*/
private function testerSynonymeProparteExistence() {
$info = array('nom' => 'synonyme_proparte -> existence',
'description' => "Si le champ synonyme_proparte contient un ou plusieurs nombres alors chacun d'entre eux ".
"doit correspondre à une valeur du champ num_nom.",
'resultat' => false);
// Réalisation du test
1735,15 → 1800,22
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['synonyme_proparte'] != '') {
if (!$this->verifierNombreSuite($nom['synonyme_proparte'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_proparte']);
$num_nom_a_verifier = explode(',', $nom['synonyme_proparte']);
$num_nom_en_erreur = array();
foreach ($num_nom_a_verifier as $num_nom) {
if (!isset($this->noms[$num_nom])) {
$num_nom_en_erreur[] = $num_nom;
}
}
if (count($nbre_en_erreur) > 0) {
$noms_erreur[] = array($nom['num_nom'], implode(',', $num_nom_en_erreur));
}
}
}
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'synonyme_proparte erroné');
$info['message']['entete'] = array('num_nom', 'synonyme_proparte introuvable');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1753,18 → 1825,22
$this->traiterResultatTest($info);
}
private function testerBasionymeExistence() {
$info = array('nom' => 'basionyme -> existence',
'description' => "Si le champ basionyme contient un nombre alors il doit correspondre à une valeur du champ ".
"num_nom.",
/**
* Test #52
*/
private function testerSynonymeDouteuxSyntaxe() {
$info = array('nom' => 'synonyme_douteux -> syntaxe',
'description' => "Le champ synonyme_douteux contient soit :\n".
" - une valeur vide,\n".
" - le chiffre 1.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['basionyme'] != '') {
if (!isset($this->noms[$nom['basionyme']])) {
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme']);
if ($nom['synonyme_douteux'] != '') {
if (!$this->verifierBooleen($nom['synonyme_douteux'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux']);
}
}
}
1771,7 → 1847,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'basionyme introuvable');
$info['message']['entete'] = array('num_nom', 'synonyme_douteux erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1781,54 → 1857,49
$this->traiterResultatTest($info);
}
private function testerBasionymeSyntaxe() {
$info = array('nom' => 'basionyme -> syntaxe',
'description' => "Le champ basionyme contient :\n".
" - une valeur vide,\n".
" - un nombre.",
/**
* Test #53
*/
private function testerSynonymeDouteuxNumNomRetenu() {
$info = array('nom' => 'synonyme_douteux -> présence num_nom_retenu',
'description' => "Si le nom est un synonyme douteux, le champs num_nom_retenu doit être vide.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['basionyme'] != '') {
if (!$this->verifierNombre($nom['basionyme'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme']);
}
if ($nom['synonyme_douteux'] == 1 && $nom['num_nom_retenu'] != ' ') {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['num_nom_retenu']);
}
}
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'basionyme erroné');
$info['message']['entete'] = array('num_nom', 'synonyme_douteux', 'num_nom_retenu');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
}
$noms_erreur = null;
$this->traiterResultatTest($info);
}
/**
* Test #37
* Test #54
*/
private function testerGroupeCultivarSyntaxe() {
$info = array('nom' => 'cultivar_groupe -> syntaxe',
'description' => "Le champ cultivar_groupe doit contenir un nom de groupe de cultivar conforme aux règles ".
"du code des plantes cultivées, c.-à-d. composer de caractères alphanumériques (A-Z,a-z et 0-9) incluant ".
"signes diacritiques et marques de ponctuations.\n".
"Il ne doit pas contenir le mot Groupe, l'abbréviation «gp» ou des parenthèses.\n".
"Il peut se terminer par l'abréviation «gx» pour distinguer les groupes des grex.",
private function testerSynonymeMalAppliqueSyntaxe() {
$info = array('nom' => 'synonyme_mal_applique -> syntaxe',
'description' => "Le champ synonyme_mal_applique contient soit :\n".
" - une valeur vide,\n".
" - le chiffre 1.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['cultivar_groupe'] != '') {
if (!$this->verifierEpitheteGroupeCultivar($nom['cultivar_groupe'])) {
$epithete_traite = $this->repererEspace($nom['cultivar_groupe']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
if ($nom['synonyme_mal_applique'] != '') {
if (!$this->verifierBooleen($nom['synonyme_mal_applique'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_mal_applique']);
}
}
}
1835,7 → 1906,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'cultivar_groupe erroné');
$info['message']['entete'] = array('num_nom', 'synonyme_mal_applique erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1846,20 → 1917,21
}
/**
* Test #38
* Test #55
*/
private function testerGroupeCultivarRang() {
$info = array('nom' => "cultivar_groupe -> rang >= {$this->manuel['rang_genre']}",
'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']}.",
private function testerSynonymeOrthographiqueSyntaxe() {
$info = array('nom' => 'synonyme_orthographique -> syntaxe',
'description' => "Le champ synonyme_orthographique contient soit :\n".
" - une valeur vide,\n".
" - un nombre.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['cultivar_groupe'] != '') {
if ($nom['rang'] < $this->manuel['rang_genre']) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
foreach ($this->noms as $nom) {
if ($nom['synonyme_orthographique'] != '') {
if (!$this->verifierNombre($nom['synonyme_orthographique'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique']);
}
}
}
1866,7 → 1938,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné');
$info['message']['entete'] = array('num_nom', 'synonyme_orthographique erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1877,29 → 1949,20
}
/**
* Test #39
* Test #56
*/
private function testerCultivarSyntaxe() {
$info = array('nom' => 'cultivar -> syntaxe',
'description' => "Le champ cultivar_groupe doit contenir :\n".
" - un nom de cultivar conforme aux règles du Code Internationnal de Nomenclature \n".
" des Plantes Cultivées (CINPC), c.-à-d. composer de caractères alphanumériques \n".
" (A-Z,a-z et 0-9) incluant signes diacritiques et marques de ponctuations.\n".
" - un nom en alphabet latin, ce qui implique une translittération des noms d'alphabet \n".
" cyrillique, arabe, chinois...\n".
" - une lettre majuscule obligatoire pour le premier caractère du premier mot et pour \n".
" les autres mots importants mais pas pour les mots mineurs.\n".
"Ne doit pas contenir :\n".
" - cv., convar. ou de guillemets simples (').\n",
private function testerSynonymeOrthographiqueExistence() {
$info = array('nom' => 'synonyme_orthographique -> existence',
'description' => "Si le champ synonyme_orthographique contient un nombre alors il doit correspondre ".
"à une valeur du champ num_nom.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['cultivar'] != '') {
if (!$this->verifierEpitheteCultivar($nom['cultivar'])) {
$epithete_traite = $this->repererEspace($nom['cultivar']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
if ($nom['synonyme_orthographique'] != '') {
if (!isset($this->noms[$nom['synonyme_orthographique']])) {
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique']);
}
}
}
1906,7 → 1969,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'cultivar erroné');
$info['message']['entete'] = array('num_nom', 'synonyme_orthographique introuvable');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1917,20 → 1980,21
}
/**
* Test #40
* Test #57
*/
private function testerCultivarRang() {
$info = array('nom' => "cultivar -> rang >= {$this->manuel['rang_genre']}",
'description' => "Si le champ cultivar n'est pas vide alors le rang du nom doit être supérieur ou égal à ".
"{$this->manuel['rang_genre']}.",
private function testerHybrideParent01Syntaxe() {
$info = array('nom' => 'hybride_parent_01 -> syntaxe',
'description' => "Le champ hybride_parent_01 contient soit :\n".
" - une valeur vide,\n".
" - un nombre.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['cultivar'] != '') {
if ($nom['rang'] < $this->manuel['rang_genre']) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
if ($nom['hybride_parent_01'] != '') {
if (!$this->verifierNombre($nom['hybride_parent_01'])) {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']));
}
}
}
1937,7 → 2001,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné');
$info['message']['entete'] = array('num_nom', 'hybride_parent_01 erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1948,22 → 2012,20
}
/**
* Test #41
* Test #58
*/
private function testerNomCommercialSyntaxe() {
$info = array('nom' => 'nom_commercial -> syntaxe',
'description' => "Le champ nom_commercial doit contenir un nom commercial conforme aux règles du ".
"Code Internationnal de Nomenclature des Plantes Cultivées (CINPC) ".
"qui se compose de caractères majuscules (A-Z) incluant des signes diacritiques et des espaces.\n",
private function testerHybrideParent01Existence() {
$info = array('nom' => 'hybride_parent_01 -> existence',
'description' => "Si le champ hybride_parent_01 contient un nombre alors il doit correspondre à une valeur ".
"du champ num_nom.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['nom_commercial'] != '') {
if (!$this->verifierNomCommercial($nom['nom_commercial'])) {
$epithete_traite = $this->repererEspace($nom['nom_commercial']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
if ($nom['hybride_parent_01'] != '' && $nom['hybride_parent_01'] != '0') {
if (!isset($this->noms[$nom['hybride_parent_01']])) {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']));
}
}
}
1970,7 → 2032,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'cultivar erroné');
$info['message']['entete'] = array('num_nom', 'hybride_parent_01 introuvable');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
1981,25 → 2043,28
}
/**
* Test #42
* Test #59
*/
private function testerNomCommercialPresenceCultivar() {
$info = array('nom' => 'nom_commercial -> groupe_cultivar OU cultivar non vide',
'description' => "Si le champ nom_commercial contient un nom commercial alors le champ cultivar OU ".
"cultivar_groupe ne doit pas être vide.",
private function testerHybrideParent02Syntaxe() {
$info = array('nom' => 'hybride_parent_02 -> syntaxe',
'description' => "Le champ hybride_parent_02 contient soit :\n".
" - une valeur vide,\n".
" - un nombre.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ((isset($nom['nom_commercial']) && $nom['nom_commercial'] != '') && ($nom['cultivar'] == '' && $nom['cultivar_groupe'] == '')) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']);
if ($nom['hybride_parent_02'] != '') {
if (!$this->verifierNombre($nom['hybride_parent_02'])) {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']));
}
}
}
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'nom_commercial sans cultivar ou cultivar_groupe');
$info['message']['entete'] = array('num_nom', 'hybride_parent_02 erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
2010,30 → 2075,20
}
/**
* Test #43
* Test #60
*/
private function testerAuteurSyntaxe() {
$info = array('nom' => 'auteur -> syntaxe',
'description' => "Le champ auteur doit :\n".
" - contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ayant publié à l'origine la combinaison latine courante.\n".
" - OU débuter par le mot « sensu » et contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ".
"ayant publié un nom dont la description ne correspond pas à celle de l'auteur, ou des auteurs, d'origine.\n".
" - se composer de caractères alphabétiques (A-Z, a-z), incluant les signes diacritiques, le symbole point (.), les paires de parenthèses ( () ), les apostrophes, l'esperluette (&) et l'espace ( ).\n".
" - contenir, si nécessaire, des abréviations de noms d'auteurs respectant les standards.\n".
" - contenir une translittération des noms d'alphabet cyrillique, arabe, chinois... en alphabet latin.\n".
" - inclure entre parenthèses l'intitulé des noms de l'auteur ou des auteurs ayant publié le basionyme.\n".
" - toujours utiliser l'esperluette (&) à la place du mot « et » pour séparer les noms d'auteurs.\n".
" - conformément à la recommandation 46C.2 du CINB, si une un citation comprend plus de deux auteurs, ".
"elle devrait être limitée au nom du premier, suivi de « & al.».\n",
private function testerHybrideParent02Existence() {
$info = array('nom' => 'hybride_parent_02 -> existence',
'description' => "Si le champ hybride_parent_02 contient un nombre alors il doit correspondre à une valeur ".
"du champ num_nom.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['auteur'] != '') {
if (!$this->verifierAuteur($nom['auteur'])) {
$intitule_traite = $this->repererEspace($nom['auteur']);
$noms_erreur[] = array($nom['num_nom'], $intitule_traite);
if ($nom['hybride_parent_02'] != '') {
if (!isset($this->noms[$nom['hybride_parent_02']]) && $nom['hybride_parent_02'] != '0') {
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']));
}
}
}
2040,7 → 2095,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'auteur erroné');
$info['message']['entete'] = array('num_nom', 'hybride_parent_02 introuvable');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
2051,21 → 2106,23
}
/**
* Test #44
* Test #61
*/
private function testerAnneeSyntaxe() {
$info = array('nom' => 'annee -> syntaxe',
'description' => "Le champ annee doit :\n".
" - contenir un nombre de 4 chiffres,\n".
" - être supérieur ou égal à 1753.",
private function testerPresenceSyntaxe() {
$info = array('nom' => 'presence -> syntaxe',
'description' => "Le champ presence contient soit :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['annee'] != '') {
if (!$this->verifierAnnee($nom['annee'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['annee']);
if ($nom['presence'] != '') {
if (!$this->verifierPresence($nom['presence'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['presence']);
}
}
}
2072,7 → 2129,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'annee erroné');
$info['message']['entete'] = array('num_nom', 'presence erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
2083,34 → 2140,23
}
/**
* Test #45
* Test #62
*/
private function testerBiblioOrigineSyntaxe() {
$info = array('nom' => 'biblio_origine -> syntaxe',
'description' => "Le champ biblio_origine se compose de plusieurs parties séparées par des caractères ".
"précis qui sont dans l'ordre de gauche à droite :\n".
" - éventuellement, le mot « in » suivi d'un intitulé auteur (utilisé pour indiquer l'intitulé auteur de ".
"l'ouvrage dans lequel la publication est parue),\n".
" - point-virgule « ; » (si l'info précédent a été renseignée),\n".
" - abréviation, ou nom, de l'ouvrage ou de la revue selon le standard en vigueur dans le code du nom. ".
"Cette information ne doit pas contenir de caractère virgule « , »,\n".
" - virgule « , »,\n".
" - informations permettant d'identifier plus précisément le document contenant le nom... ".
"(par exemple, l'éditeur, le tome, le numéro d'édition, le volume...) séparées par des virgules ou d'autres ".
"caractères sauf deux points « : ».\n".
" - deux points « : »,\n".
" - numéro(s) de la page contenant la publication du nom ou de l'ensemble de pages (première et dernière ".
"pages de l'ensemble séparées par un tiret « - »). Quelques fois des numéros ou d'autres informations indiquant ".
"la position du nom dans le document. Le tiret « - » doit toujours servir à séparer un ensemble.",
private function testerStatutOrigineSyntaxe() {
$info = array('nom' => 'statut_origine -> syntaxe',
'description' => "Le champ statut_origine peut contenir :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['biblio_origine'] != '') {
if (!$this->verifierBiblioOrigine($nom['biblio_origine'])) {
$biblio_traite = $this->repererEspace($nom['biblio_origine']);
$noms_erreur[] = array($nom['num_nom'], $biblio_traite);
if ($nom['statut_origine'] != '') {
if (!$this->verifierStatutOrigine($nom['statut_origine'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['statut_origine']);
}
}
}
2117,7 → 2163,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'biblio_origine erroné');
$info['message']['entete'] = array('num_nom', 'statut_origine erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
2128,21 → 2174,23
}
/**
* Test #46
* Test #63
*/
private function testerHomonymieSyntaxe() {
$info = array('nom' => 'homonyme -> syntaxe',
'description' => "Le champ homonyme contient :\n".
" - une valeur vide,\n".
" - le chiffre 1.",
private function testerStatutIntroductionSyntaxe() {
$info = array('nom' => 'statut_introduction -> syntaxe',
'description' => "Le champ statut_introduction peut contenir :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
'resultat' => false);
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['homonyme'] != '') {
if (!$this->verifierBooleen($nom['homonyme'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['homonyme']);
if ($nom['statut_introduction'] != '') {
if (!$this->verifierStatutIntroduction($nom['statut_introduction'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['statut_introduction']);
}
}
}
2149,7 → 2197,7
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'homonyme erroné');
$info['message']['entete'] = array('num_nom', 'statut_introduction erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
2160,30 → 2208,30
}
/**
* Test #47
* Test #64
*/
private function testerHomonymieExistence() {
$info = array('nom' => 'homonyme -> existence',
'description' => "Si le champ homonyme contient «1» alors plusieurs noms doivent posséder la même valeur ".
"dans le champ nom_sci.",
private function testerStatutCultureSyntaxe() {
$info = array('nom' => 'statut_culture -> syntaxe',
'description' => "Le champ statut_culture peut contenir :\n".
" - le symbole tiret «-» précédant une autre information non référencée...\n".
" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
"un code de présence spécifique au référentiel.",
'resultat' => false);
$noms_homonymie = $this->classerNomsParNomComplet();
// Réalisation du test
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['homonyme'] != '0' && $nom['homonyme'] != '') {
if ($noms_homonymie[$nom['nom_sci']] <= 1) {
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']);
if ($nom['statut_culture'] != '') {
if (!$this->verifierStatutCulture($nom['statut_culture'])) {
$noms_erreur[] = array($nom['num_nom'], $nom['statut_culture']);
}
}
}
$noms_homonymie = null;
// Analyse des résultats
if (count($noms_erreur) > 0) {
$info['message']['entete'] = array('num_nom', 'homonyme introuvable');
$info['message']['entete'] = array('num_nom', 'statut_culture erroné');
$info['message']['lignes'] = $noms_erreur;
} else {
$info['resultat'] = true;
2206,7 → 2254,7
" - le chiffre 1",
'resultat' => false);
// Réalisation du test
// Réalisation du testCe n'est pas programmé.
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['exclure_taxref'] != '' && $nom['exclure_taxref'] != null) {