Subversion Repositories Applications.referentiel

Rev

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

Rev 160 Rev 161
Line 1517... Line 1517...
1517
			'description' => "Pour chaque enregistrement, la classification doit pouvoir être remonté jusqu'à un même nom unique possédant une valeur num_tax_sup de 0.",
1517
			'description' => "Pour chaque enregistrement, la classification doit pouvoir être remonté jusqu'à un même nom unique possédant une valeur num_tax_sup de 0.",
1518
			'resultat' => false);
1518
			'resultat' => false);
Line 1519... Line 1519...
1519
		
1519
		
1520
		// Réalisation du test
1520
		// Réalisation du test
1521
		$noms_erreur = array();
1521
		$noms_erreur = array();
1522
		$noms_ok = array();
1522
		$this->noms_ok = array();
1523
		foreach ($this->noms as &$nom) {
1523
		foreach ($this->noms as &$nom) {
1524
			if ($nom['num_nom_retenu'] == $nom['num_nom']) {
1524
			if ($nom['num_nom_retenu'] == $nom['num_nom']) {
1525
				if (isset($noms_ok[$nom['num_tax_sup']])) {
1525
				if (isset($this->noms_ok[$nom['num_tax_sup']])) {
1526
					$noms_ok[$nom['num_nom']] = true;
1526
					$this->noms_ok[$nom['num_nom']] = true;
-
 
1527
				} else {
1527
				} else {
1528
					$this->detection_boucle_infini = array();
-
 
1529
					$classif_ok = $this->remonterClassif($nom);
-
 
1530
					unset($this->detection_boucle_infini); 
1528
					$classif_ok = $this->remonterClassif($nom);
1531
					
1529
					if ($classif_ok === false) {
1532
					if ($classif_ok === false) {
1530
						$noms_erreur[] = $nom['num_nom'];
1533
						$noms_erreur[] = $nom['num_nom'];
1531
					} else {
1534
					} else {
1532
						$noms_ok[$nom['num_nom']] = $classif_ok;
1535
						$this->noms_ok[$nom['num_nom']] = $classif_ok;
1533
					}
1536
					}
1534
				} 
1537
				}
1535
			}
1538
			}
1536
		}
1539
		}
Line 1537... Line 1540...
1537
		unset($noms_ok);
1540
		unset($this->noms_ok);
1538
		
1541
		
1539
		// Analyse des résultats
1542
		// Analyse des résultats
1540
		if (count($noms_erreur) > 0) {
1543
		if (count($noms_erreur) > 0) {
Line 1544... Line 1547...
1544
		}
1547
		}
Line 1545... Line 1548...
1545
		
1548
		
1546
		$this->traiterResultatTest($info);
1549
		$this->traiterResultatTest($info);
Line 1547... Line 1550...
1547
	}
1550
	}
-
 
1551
	
1548
	
1552
	private function remonterClassif(&$nom) {
-
 
1553
		$this->detection_boucle_infini[$nom['num_nom']] = true;
-
 
1554
		if (preg_match('/^[0-9]*$/', $nom['num_tax_sup'])) {
-
 
1555
			if (isset($this->noms_ok[$nom['num_tax_sup']])) {
1549
	private function remonterClassif($nom) {
1556
				$this->noms_ok[$nom['num_nom']] = true;
-
 
1557
				return true;
1550
		if (preg_match('/^[0-9]*$/', $nom['num_tax_sup'])) {
1558
			} else if (!isset($this->noms[$nom['num_tax_sup']]) && $nom['num_tax_sup'] == '0') {
1551
			if (!isset($this->noms[$nom['num_tax_sup']]) && $nom['num_tax_sup'] == '0') {
1559
				$this->noms_ok[$nom['num_nom']] = true;
1552
				return true;
1560
				return true;
-
 
1561
			} else if (!isset($this->noms[$nom['num_tax_sup']]) && $nom['num_tax_sup'] != '0') {
-
 
1562
				return false;
1553
			} else if (!isset($this->noms[$nom['num_tax_sup']]) && $nom['num_tax_sup'] != '0') {
1563
			} else if (isset($this->detection_boucle_infini[$nom['num_tax_sup']])) {
1554
				return false;
1564
				return false;
-
 
1565
			} else {
-
 
1566
				$retour = $this->remonterClassif($this->noms[$nom['num_tax_sup']]);
-
 
1567
				if ($retour === true) {
-
 
1568
					$this->noms_ok[$nom['num_tax_sup']] = true;
1555
			} else {
1569
				}
1556
				return $this->remonterClassif($this->noms[$nom['num_tax_sup']]);
1570
				return $retour;
1557
			}
1571
			}
1558
		} else {
1572
		} else {
1559
			return false;
1573
			return false;