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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2715 - (hide annotations)
Thu Feb 6 14:09:06 2014 UTC (10 years, 11 months ago) by softime
Original Path: trunk/app/synchronisationContrainte.class.php
File size: 13117 byte(s)
Ajout de la gestion des contraintes :
- Ajout de la table contrainte
- Ajout de la table dossier_contrainte (table de liaison entre la table contrainte et dossier)
- Création d'un tableau pour l'affichage des contraintes dans un DI
- Création du formulaire d'ajout des contraintes sur un DI
- Gestion de l'affichage des contraintes dans une edition (état)
- Création du formulaire de synchronisation des contraintes
- Ajout du service de maintenance pour la synchronisation des contraintes
- Affichage des contraintes sur la fiche du DI
- Modification du menu
- Modification des onglets du DI

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

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26