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

Contents of /branches/old-trunk/obj/synchronisationContrainte.class.php

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26