Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 699 Rev 757
Line 149... Line 149...
149
				throw new Exception("Erreur d'insertion pour le tuple $id");
149
				throw new Exception("Erreur d'insertion pour le tuple $id");
150
			}
150
			}
151
		}
151
		}
152
	}
152
	}
Line 153... Line 153...
153
 
153
 
154
	private function genererChpFamille() {
-
 
155
		$this->initialiserGenerationChamps();
-
 
156
		$this->preparerTablePrChpFamille();
-
 
157
		$resultats = $this->recupererTuplesPrChpFamille();
-
 
158
		$noms = array();
-
 
159
		$introuvables = array();
-
 
160
		$introuvablesSyno = array();
154
	private function traiterResultatsFamille(&$resultats, &$noms, &$introuvables, &$introuvablesSyno) {
161
		foreach ($resultats as $id => $nom) {
155
		foreach ($resultats as $id => $nom) {
162
			$nn = $nom['num_nom'];
156
			$nn = $nom['num_nom'];
163
			$nnr = $nom['num_nom_retenu'];
157
			$nnr = $nom['num_nom_retenu'];
164
			$nts = $nom['num_tax_sup'];
158
			$nts = $nom['num_tax_sup'];
Line 167... Line 161...
167
				if ($rg == '180') {
161
				if ($rg == '180') {
168
					$noms[$nn] = $nom['nom_sci'];
162
					$noms[$nn] = $nom['nom_sci'];
169
				} else {
163
				} else {
170
					if ($nn == $nnr) {// nom retenu
164
					if ($nn == $nnr) {// nom retenu
171
						if (isset($noms[$nts])) {
165
						if (isset($noms[$nts])) {
-
 
166
							// signifie que recupererTuplesPrChpFamille() devrait
-
 
167
							// récupérer ce record *avant*
172
							$noms[$nn] = $noms[$nts];
168
							$noms[$nn] = $noms[$nts];
173
						} else {
169
						} else {
174
							$introuvables[] = $nn;
170
							$introuvables[] = $nn;
175
						}
171
						}
176
					} else {// nom synonyme
172
					} else {// nom synonyme
177
						if (isset($noms[$nnr])) {
173
						if (isset($noms[$nnr])) {
-
 
174
							// signifie que recupererTuplesPrChpFamille() devrait
-
 
175
							// récupérer ce record *avant*
178
							$noms[$nn] = $noms[$nnr];
176
							$noms[$nn] = $noms[$nnr];
179
						} else {
177
						} else {
180
							$introuvablesSyno[] = $nom;
178
							$introuvablesSyno[] = $nom;
181
						}
179
						}
182
					}
180
					}
183
				}
181
				}
184
			}
182
			}
185
			unset($resultats[$id]);
183
			unset($resultats[$id]);
186
			$this->afficherAvancement("Attribution de leur famille aux noms en cours");
184
			$this->afficherAvancement("Attribution de leur famille aux noms en cours");
187
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
185
			if ($this->stopperLaBoucle($this->getParametre('t'))) break;
188
		}
186
		}
-
 
187
	}
-
 
188
 
-
 
189
	private function genererChpFamille() {
-
 
190
		$this->initialiserGenerationChamps();
-
 
191
		$this->preparerTablePrChpFamille();
-
 
192
		$resultats = $this->recupererTuplesPrChpFamille();
-
 
193
		$noms = array();
-
 
194
		$introuvables = array();
-
 
195
		$introuvablesSyno = array();
-
 
196
		$i = 1;
-
 
197
 
-
 
198
		while(true) {
-
 
199
			printf("passe n°%d:\n", $i);
-
 
200
			$this->traiterResultatsFamille($resultats, $noms, $introuvables, $introuvablesSyno);
189
		echo "\n";
201
			echo "\n\n";
-
 
202
			// printf("noms: %d, introuvables: %d, introuvablesSyno: %d\n", count($noms), count($introuvables), count($introuvablesSyno));
-
 
203
			// XXX, au 22/07/2013, 3 passes sont suffisantes
-
 
204
			// TODO: MySQL procédure stockée !
-
 
205
			if($i++ == 3) break;
-
 
206
			$resultats = array_merge($resultats, $introuvables, $introuvablesSyno);
-
 
207
			$introuvables = $introuvablesSyno = array();
-
 
208
		}
Line 190... Line 209...
190
 
209
 
191
		foreach ($introuvablesSyno as $id => $nom) {
210
		foreach ($introuvablesSyno as $id => $nom) {
192
			$nn = $nom['num_nom'];
211
			$nn = $nom['num_nom'];
193
			$nnr = $nom['num_nom_retenu'];
212
			$nnr = $nom['num_nom_retenu'];