Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1996 Rev 2013
Line 31... Line 31...
31
		$this->migrerObservationsSauvages();
31
		$this->migrerObservationsSauvages();
Line 32... Line 32...
32
		
32
		
Line 33... Line 33...
33
	}
33
	}
34
	
34
	
35
	private function migrerObservationsSauvages() {
35
	private function migrerObservationsSauvages() {
36
		$liste_observations = $this->dao->obtenirObservationsSauvages();
36
		$nb_obs = $this->dao->obtenirNbObservationsSauvages();
Line 37... Line 37...
37
		$this->traiterObservationsSauvages($liste_observations);
37
		$this->traiterObservationsSauvages($nb_obs);
38
	}
38
	}
39
	
39
	
40
	private function traiterObservationsSauvages($liste_observations) {
40
	private function traiterObservationsSauvages($nb_obs) {
41
		$debut = microtime(true);
41
		$debut = microtime(true);
Line 42... Line 42...
42
		$nb_obs_modifiees = 0;
42
		$nb_obs_modifiees = 0;
43
		$nb_obs_ignorees = 0;
43
		$nb_obs_ignorees = 0;
44
		$total = count($liste_observations);
44
		$total = $nb_obs;
45
		
45
		
46
		if($this->mode_verbeux) {
46
		if($this->mode_verbeux) {
47
			echo "-------------------------------------------------------------------\n";
47
			echo "-------------------------------------------------------------------\n";
Line 48... Line 48...
48
			echo " Début de la migration des observations sauvages vers les champs étendus \n";
48
			echo " Début de la migration des observations sauvages vers les champs étendus \n";
49
			echo " ".$total." observations concernées 									\n";
49
			echo " ".$total." observations concernées 									\n";
-
 
50
			echo "-------------------------------------------------------------------\n";
-
 
51
		}
50
			echo "-------------------------------------------------------------------\n";
52
		
51
		}
53
		$champs_etendus_a_inserer = array();
-
 
54
		$nb_champs_total = 0;
-
 
55
		$nb_champs_etendus_a_inserer = 0;
-
 
56
		
-
 
57
		$pas_liste_obs = 5000;
-
 
58
		echo " Traitement des observations par paquet de ".$pas_liste_obs." (5 champs étendus ajoutés par observation traitée) \n";
52
		
59
		
53
		$champs_etendus_a_inserer = array();
60
		for($i = 0; $i <= $total; $i += $pas_liste_obs) {	
54
		$nb_champs_total = 0;
61
			$liste_observations = $this->dao->obtenirObservationsSauvages($i, $pas_liste_obs);
55
		$nb_champs = 0;
62
			$champs_etendus_a_inserer = array();
56
		echo " Insertion des champs étendus (5 par observation) par paquet de 100 \n";
63
			$nb_champs_etendus_a_inserer = 0;
57
		foreach($liste_observations as $observation) {
64
			foreach($liste_observations as $observation) {
58
			
65
				
59
			// test si obs candidate est ok, i.e. si elle contient bien un champ station formate comme ceci
66
				// test si obs candidate est ok, i.e. si elle contient bien un champ station formate comme ceci
60
			// coordonnees_debut_de_rue;coordonnees_fin_de_rue;cote_de_la_rue
67
				// coordonnees_debut_de_rue;coordonnees_fin_de_rue;cote_de_la_rue
61
			if ($this->doitMigrerObservation($observation)) {
68
				if ($this->doitMigrerObservation($observation)) {
62
				$champs_etendus_a_inserer[] = $this->convertirChampsObsSauvagesEnChampsEtendus($observation);
69
					$champs_etendus_a_inserer[] = $this->convertirChampsObsSauvagesEnChampsEtendus($observation);
63
				$nb_obs_modifiees++;
70
					$nb_obs_modifiees++;
64
				$nb_champs += 5;
-
 
65
				$nb_champs_total += 5;
-
 
66
			} else {
-
 
67
				$nb_obs_ignorees++;
-
 
68
			}
-
 
69
			
-
 
70
			// insertion par paquets de 100 champs ou bien à la fin du parcours de la liste s'il y a moins de 
-
 
Line -... Line 71...
-
 
71
					$nb_champs_etendus_a_inserer += 5;
-
 
72
					$nb_champs_total += 5;
71
			// 20 observations à traiter (20 obs * 5 champs = 100 champs) 
73
				} else {
72
			if($nb_champs >= 100 || ($nb_obs_modifiees + $nb_obs_ignorees >= count($liste_observations))) {
74
					$nb_obs_ignorees++;
-
 
75
				}
-
 
76
				
73
				$this->dao->ajouterChampsEtendusParLots($champs_etendus_a_inserer);
77
				// insertion par paquets de 100 champs ou bien à la fin du parcours de la liste s'il y a moins de 
74
				$champs_etendus_a_inserer = array();
78
				// 20 observations à traiter (20 obs * 5 champs = 100 champs) 
-
 
79
				if($nb_champs_etendus_a_inserer >= 100) {
-
 
80
					$this->dao->ajouterChampsEtendusParLots($champs_etendus_a_inserer);
-
 
81
					$champs_etendus_a_inserer = array();
-
 
82
					$nb_champs_etendus_a_inserer = 0;			
-
 
83
				}
-
 
84
			}
-
 
85
			echo " ".$nb_champs_total." champs étendus insérés \n";
-
 
86
		}
75
				$nb_champs = 0;
87
		
76
				
88
		// insertion des champs restants s'il en reste moins de 100 à la fin
77
				if($this->mode_verbeux) {
89
		if($nb_champs_etendus_a_inserer > 0) {
78
					$this->afficherAvancement(' champs étendus insérés ', $nb_champs_total);
90
			$this->dao->ajouterChampsEtendusParLots($champs_etendus_a_inserer);
79
				}
91
			$nb_champs_total += $nb_champs_etendus_a_inserer;
80
			}
92
			echo " ".$nb_champs_total." champs étendus insérés \n";
81
		}
93
		}