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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26