Subversion Repositories eFlore/Applications.coel

Rev

Rev 1497 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1497 Rev 1595
1
<?php
1
<?php
2
/**
2
/**
3
 * Service fournissant la liste des commentaires et leurs informations.
3
 * Service fournissant la liste des commentaires et leurs informations.
4
 * Encodage en entrée : utf8
4
 * Encodage en entrée : utf8
5
 * Encodage en sortie : utf8
5
 * Encodage en sortie : utf8
6
 *
6
 *
7
 * @author Cyprien CLERC <cyprien@tela-botanica.org>
7
 * @author Cyprien CLERC <cyprien@tela-botanica.org>
8
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
8
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
9
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
10
 * @version $Id$
10
 * @version $Id$
11
 * @copyright 2009
11
 * @copyright 2009
12
 */
12
 */
13
 
13
 
14
class CoelCorrection extends Coel {
14
class CoelCorrection extends Coel {
15
	
15
	
16
	public function getElement($params = array()) {
16
	public function getElement($params = array()) {
17
		
17
		
18
		// Identification de l'utilisateur
18
		// Identification de l'utilisateur
19
		$login = $this->config['coel']['correctionLogin'];
19
		$login = $this->config['coel']['correctionLogin'];
20
		$mdp = $this->config['coel']['correctionMdp'];
20
		$mdp = $this->config['coel']['correctionMdp'];
21
		
21
		
22
		// Récupération des paramètres d'identification
22
		// Récupération des paramètres d'identification
23
		$loginParam = $params[0];
23
		$loginParam = $params[0];
24
		$mdpParam = $params[1];
24
		$mdpParam = $params[1];
25
		
25
		
26
		// Contrôle du non détournement de l'utilisateur
26
		// Contrôle du non détournement de l'utilisateur
27
		if ($login == $loginParam  && $mdp == $mdpParam) {
27
		if ($login == $loginParam  && $mdp == $mdpParam) {
28
			$numeroCorrection = $params[2];
28
			$numeroCorrection = $params[2];
29
			switch($numeroCorrection) {
29
			switch($numeroCorrection) {
30
				case 1 : $this->correction0001($numeroCorrection);
30
				case 1 : $this->correction0001($numeroCorrection);
31
					break;
31
					break;
32
				default : $this->noCorrection();
32
				default : $this->noCorrection();
33
			}
33
			}
34
	   	} else {
34
	   	} else {
35
	   		$this->messages[] = "[ERREUR] Il faut etre identifie pour acceder a ce service";
35
	   		$this->messages[] = "[ERREUR] Il faut etre identifie pour acceder a ce service";
36
	   	}
36
	   	}
37
	}
37
	}
38
	
38
	
39
	public function noCorrection() {
39
	public function noCorrection() {
40
		$this->messages[] = "[ERREUR] Aucun numero de correction n'a ete fourni ou le numero fourni est invalide.";
40
		$this->messages[] = "[ERREUR] Aucun numero de correction n'a ete fourni ou le numero fourni est invalide.";
41
	}
41
	}
42
	
42
	
43
	/*-------------------------------------------------------------------*/
43
	/*-------------------------------------------------------------------*/
44
	
44
	
45
	  //-----------//
45
	  //-----------//
46
	 // Correctif //
46
	 // Correctif //
47
	//-----------//
47
	//-----------//
48
	/* Le champ 'pays' de la table 'personne' contient le nom de la liste au lieu de son id, il faut remédier à ça ! */
48
	/* Le champ 'pays' de la table 'personne' contient le nom de la liste au lieu de son id, il faut remédier à ça ! */
49
	private function correction0001($numeroCorrection) {
49
	private function correction0001($numeroCorrection) {
50
		$this->messages[] = "APPLICATION DE LA CORRECTION numero ".$numeroCorrection;
50
		$this->messages[] = "APPLICATION DE LA CORRECTION numero ".$numeroCorrection;
51
		
51
		
52
		// recuperation des pays
52
		// recuperation des pays
53
		$requete = '
53
		$requete = '
54
			SELECT cmlv_id_valeur, cmlv_nom FROM coel_meta_liste_valeur
54
			SELECT cmlv_id_valeur, cmlv_nom FROM coel_meta_liste_valeur
55
			WHERE cmlv_ce_parent=1074
55
			WHERE cmlv_ce_parent=1074
56
		';
56
		';
57
		$pays = $this->bdd->query($requete)->fetchAll();
57
		$pays = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
58
		
58
		
59
		$requete = '
59
		$requete = '
60
			SELECT cp_id_personne, cp_truk_recolte
60
			SELECT cp_id_personne, cp_truk_recolte
61
			FROM coel_personne
61
			FROM coel_personne
62
		';
62
		';
63
		$resultat = $this->bdd->query($requete)->fetchAll();
63
		$resultat = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
64
		
64
		
65
		for($i=0; $i<count($resultat); $i++) {			
65
		for($i=0; $i<count($resultat); $i++) {			
66
			
66
			
67
			if ($resultat[$i]['cp_truk_recolte'] != "") {
67
			if ($resultat[$i]['cp_truk_recolte'] != "") {
68
				
68
				
69
				$tabValeurs = explode(";", $resultat[$i]['cp_truk_recolte']);
69
				$tabValeurs = explode(";", $resultat[$i]['cp_truk_recolte']);
70
				
70
				
71
				$nouvelleValeurChamp = "";
71
				$nouvelleValeurChamp = "";
72
				
72
				
73
				for($j=0; $j<count($tabValeurs); $j++) {
73
				for($j=0; $j<count($tabValeurs); $j++) {
74
 
74
 
75
					$tabType = explode("##", $tabValeurs[$j]);
75
					$tabType = explode("##", $tabValeurs[$j]);
76
					$type = trim($tabType[0]);
76
					$type = trim($tabType[0]);
77
					
77
					
78
					if ($type != "" && !is_numeric($type)) {
78
					if ($type != "" && !is_numeric($type)) {
79
						
79
						
80
						// recherche de l'id_valeur
80
						// recherche de l'id_valeur
81
						$trouve = false;
81
						$trouve = false;
82
						$k=0;
82
						$k=0;
83
						while(!$trouve && $k<count($pays)) {
83
						while(!$trouve && $k<count($pays)) {
84
							if ($pays[$k]['cmlv_nom'] == $tabType[0]) {
84
							if ($pays[$k]['cmlv_nom'] == $tabType[0]) {
85
								$trouve = true;
85
								$trouve = true;
86
							}
86
							}
87
							else $k++;
87
							else $k++;
88
						}
88
						}
89
						$id_valeur = $pays[$k]['cmlv_id_valeur'];
89
						$id_valeur = $pays[$k]['cmlv_id_valeur'];
90
						
90
						
91
						if ($trouve) $nouvelleValeurChamp .= str_replace($type, $id_valeur, $tabValeurs[$j]).";";
91
						if ($trouve) $nouvelleValeurChamp .= str_replace($type, $id_valeur, $tabValeurs[$j]).";";
92
					}
92
					}
93
				}
93
				}
94
				
94
				
95
				$requeteUpdate = "
95
				$requeteUpdate = "
96
					UPDATE coel_personne
96
					UPDATE coel_personne
97
					SET cp_truk_recolte = '".$nouvelleValeurChamp."'
97
					SET cp_truk_recolte = '".$nouvelleValeurChamp."'
98
					WHERE cp_id_personne = '".$resultat[$i]['cp_id_personne']."'
98
					WHERE cp_id_personne = '".$resultat[$i]['cp_id_personne']."'
99
				";
99
				";
100
				
100
				
101
				if ($nouvelleValeurChamp != "") {
101
				if ($nouvelleValeurChamp != "") {
102
					echo $requeteUpdate.";<br>";
102
					echo $requeteUpdate.";<br>";
103
					$resultatRequeteUpdate = $this->bdd->query($requeteUpdate);
103
					$resultatRequeteUpdate = $this->bdd->query($requeteUpdate);
104
					
104
					
105
					if($resultatRequeteUpdate) $this->messages[] = "Correction effectuee.<br>";
105
					if($resultatRequeteUpdate) $this->messages[] = "Correction effectuee.<br>";
106
					else $this->messages[] = "Echec lors de la correction.";
106
					else $this->messages[] = "Echec lors de la correction.";
107
				}
107
				}
108
 
108
 
109
			}
109
			}
110
 
110
 
111
		}
111
		}
112
		return true;
112
		return true;
113
		
113
		
114
	}
114
	}
115
}
115
}