Subversion Repositories Applications.referentiel

Rev

Rev 344 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 344 Rev 406
Line 20... Line 20...
20
	
20
	
21
	const SCRIPT_NOM = 'famille';
21
	const SCRIPT_NOM = 'famille';
22
	private $referentielDao = null;
22
	private $referentielDao = null;
23
	public $parametres = array(
23
	public $parametres = array(
24
			'-r' => array(true, true, 'referentiel'));
-
 
25
	
-
 
-
 
24
			'-r' => array(true, true, 'referentiel'));
-
 
25
	private $noms = array();
Line 26... Line 26...
26
	
26
	private $resultats = array();
27
	
27
	
28
	public function executer() {
28
	public function executer() {
29
		$this->referentielDao = new ReferentielDao();
29
		$this->referentielDao = new ReferentielDao();
30
		// Récupération du dernier traitement demandé
30
		// Récupération du dernier traitement demandé
Line 31... Line 31...
31
		$referentiel = $this->getParam('r');
31
		$referentiel = $this->getParam('r');
32
		$resultats = $this->referentielDao->preparerTablePrChpFamille($referentiel); 
32
		$this->resultats = $this->referentielDao->preparerTablePrChpFamille($referentiel); 
33
		
33
		
34
		$noms = array();
34
		//$noms = array();
Line 35... Line 35...
35
		$introuvables = array();
35
		$introuvables = array();
36
		$introuvablesSyno = array();
36
		$introuvablesSyno = array();
37
		$i = 1;
37
		$i = 1;
38
 
38
 
39
		while(true) {
39
		while(true) {
40
			printf("passe n°%d:\n", $i);
40
			printf("passe n°%d:\n", $i);
41
			$this->traiterResultatsFamille($resultats, $noms, $introuvables, $introuvablesSyno);
41
			$this->traiterResultatsFamille(  $introuvables, $introuvablesSyno);
42
			echo "\n\n";
42
			//echo "\n\n"; print_r(count($this->noms));
43
			// printf("noms: %d, introuvables: %d, introuvablesSyno: %d\n", count($noms), count($introuvables), count($introuvablesSyno));
43
			// printf("noms: %d, introuvables: %d, introuvablesSyno: %d\n", count($noms), count($introuvables), count($introuvablesSyno));
44
			// XXX, au 22/07/2013, 3 passes sont suffisantes
44
			// XXX, au 22/07/2013, 3 passes sont suffisantes
45
			// TODO: MySQL procédure stockée !
45
			// TODO: MySQL procédure stockée !
Line 46... Line 46...
46
			if($i++ == 3) break;
46
			if($i++ == 4) break;
47
			$resultats = array_merge($resultats, $introuvables, $introuvablesSyno);
47
			$this->resultats = array_merge($this->resultats, $introuvables, $introuvablesSyno);
48
			$introuvables = $introuvablesSyno = array();
48
			$introuvables = $introuvablesSyno = array();
49
		}
49
		}
50
 
50
 
51
		foreach ($introuvablesSyno as $id => $nom) {
51
		foreach ($introuvablesSyno as $id => $nom) {
52
			$nn = $nom['num_nom'];
52
			$nn = $nom['num_nom'];
53
			$nnr = $nom['num_nom_retenu'];
53
			$nnr = $nom['num_nom_retenu'];
54
			if (isset($noms[$nnr])) {
54
			if (isset($this->noms[$nnr])) {
Line 63... Line 63...
63
		
63
		
64
 
64
 
Line -... Line 65...
-
 
65
		/*$msg = 'Plusieurs familles sont introuvables';
65
		/*$msg = 'Plusieurs familles sont introuvables';
66
		$this->creerFichierLog($msg, $introuvables, 'famille_introuvable');*/
66
		$this->creerFichierLog($msg, $introuvables, 'famille_introuvable');*/
67
 
Line 67... Line 68...
67
 
68
print_r(count($this->noms));echo "wtf:";
-
 
69
		print_r($this->referentielDao->remplirChpFamille($referentiel, $this->noms));
68
		$this->referentielDao->remplirChpFamille($referentiel, $noms);
70
    }
69
    }
71
 
70
 
72
	
71
	
73
 
72
 
74
	
73
	
75
	private function traiterResultatsFamille(&$introuvables, &$introuvablesSyno) {
74
	private function traiterResultatsFamille(&$resultats, &$noms, &$introuvables, &$introuvablesSyno) {
76
		
75
		foreach ($resultats as $id => $nom) {
77
		foreach ($this->resultats as $id => $nom) {
76
			$nn = $nom['num_nom'];
78
			$nn = $nom['num_nom']; 
77
			$nnr = $nom['num_nom_retenu'];
79
			$nnr = $nom['num_nom_retenu'];
78
			$nts = $nom['num_tax_sup'];
80
			$nts = $nom['num_tax_sup'];
79
			$rg = $nom['rang'];
81
			$rg = $nom['rang'];
80
			if ($nnr != '') {
82
			if ($nnr != '') {
81
				if ($rg == '180') {
83
				if ($rg == '180') {
82
					$noms[$nn] = $nom['nom_sci'];
84
					$this->noms[$nn] = $nom['nom_sci'];
83
				} else {
85
				} else {
84
					if ($nn == $nnr) {
86
					if ($nn == $nnr) {
85
						// nom retenu
87
						// nom retenu
86
						if (isset($noms[$nts])) {
88
						if (isset($this->noms[$nts])) {
87
							// signifie que recupererTuplesPrChpFamille() devrait
89
							// signifie que recupererTuplesPrChpFamille() devrait
88
							// récupérer ce record *avant*
90
							// récupérer ce record *avant*
89
							$noms[$nn] = $noms[$nts];
91
							$this->noms[$nn] = $this->noms[$nts];
90
						} else {
92
						} else {
91
							$introuvables[] = $nn;
93
							$introuvables[] = $nn;
92
						}
94
						}
93
					} else {// nom synonyme
95
					} else {// nom synonyme
94
						if (isset($noms[$nnr])) {
96
						if (isset($this->noms[$nnr])) {
95
							// signifie que recupererTuplesPrChpFamille() devrait
97
							// signifie que recupererTuplesPrChpFamille() devrait
96
							// récupérer ce record *avant*
98
							// récupérer ce record *avant*
97
							$noms[$nn] = $noms[$nnr];
99
							$this->noms[$nn] = $this->noms[$nnr];
98
						} else {
100
						} else {
99
							$introuvablesSyno[] = $nom;
101
							$introuvablesSyno[] = $nom;
Line 100... Line 102...
100
						}
102
						}
101
					}
-
 
102
				}
103
					}
-
 
104
				}