/[openfoncier]/trunk/obj/synchronisationContrainte.class.php
ViewVC logotype

Annotation of /trunk/obj/synchronisationContrainte.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2782 - (hide annotations)
Tue Mar 4 10:12:50 2014 UTC (10 years, 11 months ago) by vpihour
File size: 13071 byte(s)
Correction du script de récupération des contraintes

1 softime 2715 <?php
2     /**
3     * Contient la classe SynchronisationContrainte
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9     /**
10     * Cette classe permet la synchronisation des contraintes
11     * du SIG et de l'application
12     */
13     class SynchronisationContrainte {
14    
15     /**
16     * Instance de la classe Utils
17     * @var object
18     */
19     var $f = null;
20     /**
21     * Retour du SOAP
22     * @var array
23     */
24     var $execute = array();
25     /**
26     * Liste des contraintes récupérées du SIG
27     * @var array
28     */
29     var $listContraintesSIG = array();
30     /**
31     * Liste des contraintes de la base de données
32     * @var array
33     */
34     var $listContraintesBDD = array();
35     /**
36     * Liste des contraintes "à archiver"
37     * @var array
38     */
39     var $listContraintesArchive = array();
40     /**
41     * Liste des contraintes "à ajouter"
42     * @var array
43     */
44     var $listContraintesAdd = array();
45     /**
46     * Liste des contraintes "à modifier"
47     * @var array
48     */
49     var $listContraintesEdit = array();
50     /**
51     * Liste des contraintes récupérées du SIG (seulement l'identifiant)
52     * @var array
53     */
54     var $listContraintesSIGIdContrainte = array();
55     /**
56     * Code HTTP de la réponse SOAP
57     * @var string
58     */
59     var $responseHTTP = null;
60    
61     /**
62     * Constructeur
63     * @param object $f Instance de la classe Utils
64     */
65     public function __construct($f) {
66     // Initialise $this->f
67     $this->f = $f;
68     // Permet lors de l'instantiation d'objets métiers d'avoir accès à f
69     $GLOBALS['f'] = $this->f;
70    
71     // Récupération de la configuration du soap
72     $conf = $this->f->config['sig_elyx'];
73     // Instance de la classe permettant d'envoyer des requête SOAP
74     require_once '../services/outgoing/MessageSenderSoap.class.php';
75     $soap = new MessageSenderSoap($conf['wsdl'], $conf['login'], $conf['password']);
76    
77     // Données à envoyer au wsdl
78     $data = array(
79     "wType" => "2",
80     );
81     // Exécute le webservice
82     $this->execute = $soap->execute('getContrainteNRU', $data);
83     // Initialise la réponse HTTP
84     $this->setResponseHTTP($soap->getResponseCode());
85     }
86    
87     /**
88     * Destructeur
89     */
90     public function __destruct() {
91     // Détruit l'instance de la classe Utils
92     unset($this->f);
93     // Détruis l'accès à la classe Utils
94     unset($GLOBALS['f']);
95     }
96    
97     /**
98     * Remplit toutes les listes de contrainte
99     */
100     public function setAllListContraintes() {
101     //
102     $this->setListContraintesSIG();
103     //
104     $this->setListContraintesBDD();
105     //
106     $this->setListContraintesAdd();
107     //
108     $this->setListContraintesEdit();
109     //
110     $this->setListContraintesSIGIdContrainte();
111     //
112     $this->setListContraintesArchive();
113     }
114    
115     /**
116     * Remplit la liste des contraintes récupérées du SIG
117     */
118     public function setListContraintesSIG() {
119     //
120 vpihour 2782 $this->listContraintesSIG = $this->execute["return"];
121 softime 2715 }
122    
123     /**
124     * Retourne la list des contraintes récupérées du SIG
125     * @return array Liste des contraintes
126     */
127     public function getListContraintesSIG() {
128     //
129     return $this->listContraintesSIG;
130     }
131    
132     /**
133     * Remplit la valeur de la réponse HTTP
134     * @param string $responseHTTP Réponse HTTP de la classe MessageSenderSOAP
135     */
136     private function setResponseHTTP($responseHTTP) {
137     //
138     $this->responseHTTP = $responseHTTP;
139     }
140    
141     /**
142     * Retourne le code réponse HTTP
143     * @return string Code réponse HTTP
144     */
145     public function getResponseHTTP() {
146     //
147     return $this->responseHTTP;
148     }
149    
150     /**
151     * Remplit la liste des contraintes récupérées de la base de données
152     */
153     public function setListContraintesBDD() {
154    
155     // Initialisation résultat
156     $resultArray = array();
157    
158     // Requête SQL
159     $sql = "SELECT numero
160     FROM ".DB_PREFIXE."contrainte
161     WHERE reference = 't'
162     AND om_validite_fin IS NULL";
163     $this->f->addToLog("getListContraintes() : db->query(\"".$sql."\")", VERBOSE_MODE);
164     $res = $this->f->db->query($sql);
165     $this->f->isDatabaseError($res);
166    
167     // Tableau des résultats
168     while ($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
169     $resultArray[] = $row['numero'];
170     }
171    
172     //
173     $this->listContraintesBDD = $resultArray;
174     }
175    
176     /**
177     * Retourne la liste des contraintes récupérées de la base données
178     * @return array
179     */
180     public function getListContraintesBDD() {
181     //
182     return $this->listContraintesBDD;
183     }
184    
185     /**
186     * Remplit la liste des contraintes récupérées du SIG
187     * (seulement les identifiants)
188     */
189     public function setListContraintesSIGIdContrainte() {
190    
191     // Pour chaque contraintes récupérées
192     foreach ($this->getListContraintesSIG() as $key => $contrainte) {
193     // Met l'identifiant de la contrainte dans la liste
194     $this->listContraintesSIGIdContrainte[] = $contrainte['idContrainte'];
195     }
196     }
197    
198     /**
199     * Retourne la liste des contraintes récupérées du SIG
200     * (seulement les identifiants)
201     * @return array
202     */
203     public function getListContraintesSIGIdContrainte() {
204     //
205     return $this->listContraintesSIGIdContrainte;
206     }
207    
208     /**
209     * Remplit la liste des contraintes "à ajouter"
210     */
211     public function setListContraintesAdd() {
212    
213     // Pour chaque contraintes récupérées
214     foreach ($this->listContraintesSIG as $key => $contrainte) {
215     // Si la contrainte n'est pas dans la liste des contraintes de
216     // la base de données
217     if (!in_array($contrainte['idContrainte'], $this->listContraintesBDD)) {
218     // Met la contrainte dans la liste des "à ajouter"
219     $this->listContraintesAdd[] = $contrainte;
220     }
221     }
222     }
223    
224     /**
225     * Retourne la liste des contraintes "à ajouter"
226     * @return array
227     */
228     public function getListContraintesAdd() {
229     //
230     return $this->listContraintesAdd;
231     }
232    
233     /**
234     * Ajoute les contraintes de la liste listContraintesAdd
235     * @return boolean
236     */
237     public function addContraintes() {
238     //
239     $return = true;
240     // Pour chaque contrainte "à ajouter"
241     foreach ($this->listContraintesAdd as $key => $contrainte) {
242     // Instancie la classe contrainte
243     require_once "../obj/contrainte.class.php";
244     $contrainteAdd = new contrainte("]", $this->f->db, DEBUG);
245     // Définit les valeurs
246     $val = array(
247     'contrainte' => ']',
248     'numero' => $contrainte['idContrainte'],
249     'nature' => 'PLU',
250     'groupe' => $contrainte['groupe'],
251     'sousgroupe' => $contrainte['ssgroupe'],
252     'libelle' => $contrainte['libelle'],
253     'reference' => true,
254     'texte' => null,
255     'no_ordre' => null,
256     'service_consulte' => false,
257     'om_validite_debut' => null,
258     'om_validite_fin' => null,
259     );
260     // Ajout de la contrainte
261     $ajouter = $contrainteAdd->ajouter($val, $this->f->db, DEBUG);
262     // Si la contrainte n'a pas été ajoutée
263     if ($ajouter == false) {
264     //
265     $return = false;
266     }
267     }
268    
269     //
270     return $return;
271     }
272    
273     /**
274     * Remplit la liste des contraintes "à modifier"
275     */
276     public function setListContraintesEdit() {
277    
278     // Pour chaque contraintes récupérées
279     foreach ($this->listContraintesSIG as $key => $contrainte) {
280     // Si la contrainte est dans la liste des contraintes de
281     // la base de données
282     if (in_array($contrainte['idContrainte'], $this->listContraintesBDD)) {
283     // Met la contrainte dans la liste des "à modifier"
284     $this->listContraintesEdit[] = $contrainte;
285     }
286     }
287     }
288    
289     /**
290     * Retourne la liste des contraintes "à modifier"
291     * @return array
292     */
293     public function getListContraintesEdit() {
294     //
295     return $this->listContraintesEdit;
296     }
297    
298     /**
299     * Modifie les contraintes la liste listContraintesEdit
300     * @return boolean
301     */
302     public function editContraintes() {
303     //
304     $return = true;
305     // Si la liste des contraintes "à modifier" n'est pas vide
306     if (!empty($this->listContraintesEdit)) {
307     // Pour chaque contrainte "à modifier"
308     foreach ($this->listContraintesEdit as $key => $contrainte) {
309     // Récupère l'identifiant de la contrainte de l'application
310     $contrainte['contrainte'] = $this->getContrainte($contrainte['idContrainte']);
311     // Instancie la classe contrainte
312     require_once "../obj/contrainte.class.php";
313     $contrainteEdit = new contrainte($contrainte['contrainte'], $this->f->db, DEBUG);
314     // Déclare le tableau des valeurs
315     $val = array();
316     // Récupération des valeurs
317     foreach($contrainteEdit->champs as $id => $champ) {
318     $val[$champ] = $contrainteEdit->val[$id];
319     }
320     // Modifie les valeurs qui peuvent avoir subit une modification
321     $val['groupe'] = $contrainte['groupe'];
322     $val['sousgroupe'] = $contrainte['ssgroupe'];
323     $val['libelle'] = $contrainte['libelle'];
324     // Modifie la contrainte
325     $modifier = $contrainteEdit->modifier($val, $this->f->db, DEBUG);
326     // Si la contrainte à été modifiée
327     if ($modifier == false) {
328     //
329     $return = false;
330     }
331     }
332     }
333     //
334     return $return;
335     }
336    
337     /**
338     * Remplit la liste des contraintes "à archiver"
339     */
340     public function setListContraintesArchive() {
341    
342     // Pour chaque contraintes de la base de données
343     foreach ($this->getListContraintesBDD() as $key => $contrainte) {
344     // Si la contrainte n'est pas dans la liste des contraintes récupérées
345     if (!in_array($contrainte, $this->getListContraintesSIGIdContrainte())) {
346     // Met la contrainte dans la liste des "à archiver"
347     $this->listContraintesArchive[] = $contrainte;
348     }
349     }
350     }
351    
352     /**
353     * Retourne la liste des contraintes "à archiver"
354     * @return array
355     */
356     public function getListContraintesArchive() {
357     //
358     return $this->listContraintesArchive;
359     }
360    
361     /**
362     * Archive les contraintes de la liste listContraintesArchive
363     * @return boolean
364     */
365     public function archiveContraintes() {
366     //
367     $return = true;
368     // Pour chaque contrainte "à archiver"
369     foreach ($this->getListContraintesArchive() as $key => $contrainte) {
370     // Récupère l'identifiant de la contrainte de l'application
371     $contrainteId = $this->getContrainte($contrainte);
372     // Instancie la classe contrainte
373     require_once "../obj/contrainte.class.php";
374     $contrainteArchive = new contrainte($contrainteId, $this->f->db, DEBUG);
375     // Déclare le tableau des valeurs
376     $val = array();
377     // Récupération des valeurs
378     foreach($contrainteArchive->champs as $id => $champ) {
379     $val[$champ] = $contrainteArchive->val[$id];
380     }
381     // Met la date de fin de validité au jour pour archiver
382     $val['om_validite_fin'] = date('d/m/Y');
383     // Modifie la contrainte
384     $archiver = $contrainteArchive->modifier($val, $this->f->db, DEBUG);
385     // Si la contrainte n'a pas été modifiée
386     if ($archiver == false) {
387     //
388     $return = false;
389     }
390     }
391     //
392     return $return;
393     }
394    
395     /**
396     * Récupère l'identifiant d'un ccontrainte par rapport à son numéro
397     * @param string $numero Identifiant unique de la contrainte sur le SIG
398     * @return integer Identifiant de la contrainte dans l'application
399     */
400     private function getContrainte($numero) {
401    
402     // Initialisation résultat
403     $contrainte = "";
404    
405     // Requête SQL
406     $sql = "SELECT contrainte
407     FROM ".DB_PREFIXE."contrainte
408     WHERE numero = '".$numero."'";
409     $this->f->addToLog("getContrainte() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
410     $contrainte = $this->f->db->getOne($sql);
411     $this->f->isDatabaseError($contrainte);
412    
413     // Retourne résultat
414     return $contrainte;
415     }
416     }
417    
418     ?>

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26