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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18876 - (hide annotations)
Tue Oct 8 08:41:06 2024 UTC (3 months, 3 weeks ago) by softime
File size: 26385 byte(s)
merge: fusion de la branche d'intégration 6.8.0-develop dans le trunk

1 mbroquet 3730 <?php
2     /**
3 nhaye 5254 * Ce script permet de définir la classe 'SynchronisationContrainte'.
4 mbroquet 3730 *
5 nhaye 5254 * @package openads
6 mbroquet 3730 * @version SVN : $Id: synchronisationContrainte.class.php 6066 2016-03-01 11:11:26Z nhaye $
7     */
8 nhaye 5254
9 nhaye 4099 require_once "../obj/geoads.class.php";
10 nhaye 5254
11 mbroquet 3730 /**
12     * Cette classe permet la synchronisation des contraintes
13     * du SIG et de l'application
14     */
15     class SynchronisationContrainte {
16    
17     /**
18     * Instance de la classe Utils
19     * @var object
20     */
21     var $f = null;
22     /**
23 nhaye 4099 * Définition des cas d'utilisation
24     * cas 1 : utilisateur mono / synchro mono
25     * cas 2 : utilisateur mono / synchro multi
26     * cas 3 : utilisateur multi / synchro mono
27     * cas 4 : utilisateur multi / synchro multi
28     * @var String
29 mbroquet 3730 */
30 nhaye 4099 var $usecase;
31 mbroquet 3730 /**
32     * Liste des contraintes récupérées du SIG
33     * @var array
34     */
35     var $listContraintesSIG = array();
36     /**
37     * Liste des contraintes de la base de données
38     * @var array
39     */
40     var $listContraintesBDD = array();
41     /**
42     * Liste des contraintes "à archiver"
43     * @var array
44     */
45     var $listContraintesArchive = array();
46     /**
47     * Liste des contraintes "à ajouter"
48     * @var array
49     */
50     var $listContraintesAdd = array();
51     /**
52     * Liste des contraintes "à modifier"
53     * @var array
54     */
55     var $listContraintesEdit = array();
56     /**
57     * Liste des contraintes récupérées du SIG (seulement l'identifiant)
58     * @var array
59     */
60     var $listContraintesSIGIdContrainte = array();
61     /**
62     * Code HTTP de la réponse SOAP
63     * @var string
64     */
65     var $responseHTTP = null;
66     /**
67     * Message d'erreur de la réponse SOAP
68     * @var string
69     */
70     var $errorMessage = null;
71 nhaye 4174 /**
72     * Message à afficher à la fin du traitement
73     * @var array
74     */
75     var $outputMessage = array();
76 mbroquet 3730
77     /**
78     * Constructeur
79     * @param object $f Instance de la classe Utils
80     */
81 nhaye 4099 public function __construct($f) {
82 mbroquet 3730 // Initialise $this->f
83     $this->f = $f;
84     // Permet lors de l'instantiation d'objets métiers d'avoir accès à f
85     $GLOBALS['f'] = $this->f;
86    
87 softime 4626 // Vérifie qu'il y ait un paramétrage du SIG
88     if(isset($this->f->collectivite["sig"]) !== true) {
89     //
90 nhaye 4099 $this->correct = false;
91     // Si pas défini on retourn une erreur
92 softime 18876 $this->f->displayMessage('error', __("Erreur de paramétrage.")." ".__("Veuillez contacter votre administrateur."));
93 nhaye 4099 return false;
94     }
95    
96 softime 4626 // Vérification du paramètre obligatoire du mode de traitement des contraintes
97     if($this->f->collectivite["sig"]["sig_treatment_mod"] != "mono"
98 softime 4659 && $this->f->collectivite["sig"]["sig_treatment_mod"] != "multi") {
99 softime 4626 //
100     $this->correct = false;
101     // Si pas défini on retourn une erreur
102 softime 18876 $this->f->displayMessage('error', __("Erreur de paramétrage.")." ".__("Veuillez contacter votre administrateur."));
103 softime 4626 return false;
104     }
105    
106 nhaye 4099 // Récupération de l'id de la collectivité de l'utilisateur
107     $user_idx_collectivite = $_SESSION['collectivite'];
108     // Récupération de l'id de la collectivité multi
109     $idx_multi = $this->f->get_idx_collectivite_multi();
110     // Définition des cas d'utilisation
111     // cas 1 : utilisateur mono / synchro mono -> user_mono_sync_mono
112     // cas 2 : utilisateur mono / synchro multi -> user_mono_sync_multi
113     // cas 3 : utilisateur multi / synchro mono -> user_multi_sync_mono
114     // cas 4 : utilisateur multi / synchro multi -> user_multi_sync_multi
115     if($user_idx_collectivite != $idx_multi) {
116     $this->usecase = "user_mono";
117     } else {
118     $this->usecase = "user_multi";
119     }
120     $this->usecase .= "_sync_".$this->f->collectivite["sig"]["sig_treatment_mod"];
121    
122     // Si le formulaire est validé
123 softime 8989 if ($this->f->get_submitted_post_value('valider') !== null) {
124 nhaye 4099 // On lance le traitement de synchro
125     $this->constraint_sync_treatment();
126 nhaye 4174 $this->display_output_message();
127 nhaye 4099 }
128 nhaye 4174
129 mbroquet 3730 }
130    
131     /**
132     * Destructeur
133     */
134     public function __destruct() {
135     // Détruit l'instance de la classe Utils
136     // unset($this->f);
137     // // Détruis l'accès à la classe Utils
138     // unset($GLOBALS['f']);
139     }
140    
141 nhaye 4099 public function view_form_sync() {
142    
143     // Vérification du cas impossible : Administrateur mono / synchro multi
144     if($this->usecase === "user_mono_sync_multi") {
145 softime 18876 $this->f->displayMessage('error', __("Vous n'avez pas les droits nécessaires pour effectuer cette action."));
146 nhaye 4099 return false;
147     }
148    
149     // Ouverture du formulaire
150 softime 4427 printf("<form method=\"POST\" action=\"\" name=f2>");
151 nhaye 4099
152     printf('<input type="hidden" name="valider" id="valider" value="1" />');
153    
154     // Bouton "Synchroniser"
155     printf("<div class=\"formControls\">");
156     printf("<input id=\"button-contrainte-synchronisation-synchroniser\" type=\"submit\" "
157     ."class=\"om-button ui-button ui-widget ui-state-default ui-corner-all\" value=\""
158 softime 18876 .__("synchroniser").
159 nhaye 4099 "\" role=\"button\" aria-disabled=\"false\">");
160     printf("</div>");
161    
162     // Fermeture du formulaire
163     printf("</form>");
164     }
165    
166     public function constraint_sync_treatment() {
167    
168 nhaye 4174 $correct = true;
169 nhaye 4099
170     switch ($this->usecase) {
171    
172     case 'user_multi_sync_multi':
173     case 'user_mono_sync_mono':
174    
175     $collectivite = $this->f->getCollectivite($_SESSION['collectivite']);
176     $this->collectivite_constraint_sync($collectivite);
177     break;
178    
179     case 'user_multi_sync_mono':
180 softime 15835 $qres = $this->f->get_all_results_from_db_query(
181     sprintf(
182     "SELECT
183     om_collectivite
184     FROM
185     %som_collectivite
186     WHERE
187     niveau = '1'
188     ORDER BY
189     libelle",
190     DB_PREFIXE
191     ),
192     array(
193     "origin" => __METHOD__,
194     )
195 nhaye 4099 );
196 softime 15835 foreach ($qres['result'] as $row) {
197 nhaye 4099 $collectivite = $this->f->getCollectivite($row['om_collectivite']);
198     if(isset($collectivite['sig'])) {
199 nhaye 4174 if($this->collectivite_constraint_sync($collectivite) === false){
200     $correct = false;
201     }
202 nhaye 4099 }
203     }
204     break;
205     default:
206 softime 4427 $correct = false;
207 nhaye 4099 break;
208     }
209 nhaye 4174 return $correct;
210 nhaye 4099 }
211    
212     private function collectivite_constraint_sync($collectivite) {
213    
214 softime 17542 $ville = isset($collectivite['ville']) === true && $collectivite['ville'] !== 'à paramétrer' ? $collectivite['ville'] : sprintf(__("Collectivité dont l'identifiant est %s"), $collectivite["om_collectivite_idx"]);
215    
216 softime 18876 // Vérification de l'existence du code insee
217     if (!isset($collectivite['insee'])) {
218     if ($this->usecase === 'user_mono_sync_mono') {
219     $msg = __("Le paramètre insee est obligatoire.");
220     $this->add_output_message("error", $msg, $ville);
221     $this->f->addToLog(__METHOD__ . " : " . sprintf("%s : %s", $ville, $msg), DEBUG_MODE);
222     return false;
223     }
224 softime 17542 $collectivite['insee'] = null;
225     }
226    
227 nhaye 4099 $message = "";
228 softime 14064 $correct = true;
229 nhaye 4099 // Instance geoads
230 softime 10573 $extra_params = array(
231     "inst_framework" => $this->f,
232     );
233 nhaye 4099 // Intérogation du web service du SIG
234 softime 14064 try {
235 softime 14542 $geoads = new geoads($collectivite, $extra_params);
236 softime 14064 $this->listContraintesSIG = $geoads->recup_toutes_contraintes($collectivite['insee']);
237     }
238     catch(Exception $e) {
239     $correct = false;
240     $message .= 'Caught exception: '.$e->getMessage()."<br />";
241     }
242    
243 softime 17542 if (is_array($this->listContraintesSIG) === false) {
244     $msg = __("Le résultat retourné par le SIG ne respecte pas le format attendu par openADS.");
245     $this->f->addToLog(__METHOD__." : ".sprintf("%s : %s", $ville, $msg), DEBUG_MODE);
246     }
247    
248 nhaye 4099 //
249     // Met à jour toutes les listes des contraintes
250     $this->setAllListContraintes($collectivite["om_collectivite_idx"]);
251     // Initilisation des variables
252    
253 nhaye 4174
254 nhaye 4099 // Nombre de contrainte "à ajouter"
255     $nb_contrainte_add = count(
256     $this->getListContraintesAdd());
257     // S'il y a des contraintes "à ajouter"
258     if ($nb_contrainte_add > 0) {
259     // Ajoute les contraintes "à ajouter"
260     $ajouter = $this->addContraintes($collectivite["om_collectivite_idx"]);
261     // Si une erreur s'est produite
262     if ($ajouter == false) {
263     //
264 nhaye 4174 $correct = false;
265 softime 18876 $message .= __("une erreur s'est produite lors de l'ajout des nouvelles contraintes.")." ".__("Contactez votre administrateur")."<br />";
266 nhaye 4099 }
267     // S'il n'y a pas d'erreur
268     if ($ajouter == true) {
269     //
270     $message .= "<span class='bold'>".$nb_contrainte_add."</span>"." "
271 softime 18876 .__("contrainte(s) ajoutee(s).")."<br />";
272 nhaye 4099 }
273     } else {
274     //
275 softime 18876 $message .= _ ("Aucune contraintes a ajouter.")."<br />";
276 nhaye 4099 }
277    
278     // Nombre de contraintes "à modifier"
279     $nb_contrainte_edit = count(
280     $this->getListContraintesEdit());
281     // S'il y a des contraintes "à modifier"
282     if ($nb_contrainte_edit > 0) {
283     // Modifie les contraintes "à modifier"
284     $modifier = $this->editContraintes($collectivite["om_collectivite_idx"]);
285     // Si une erreur s'est produite
286     if ($modifier == false) {
287     //
288 nhaye 4174 $correct = false;
289 softime 18876 $message .= __("une erreur s'est produite lors de la modification des contraintes.")." ".__("Contactez votre administrateur")."<br />";
290 nhaye 4099 }
291     // S'il n'y a pas d'erreur
292     if ($modifier == true) {
293     //
294     $message .= "<span class='bold'>".$nb_contrainte_edit."</span>"." "
295 softime 18876 .__("contrainte(s) modifiee(s).")."<br />";
296 nhaye 4099 }
297     } else {
298     //
299 softime 18876 $message .= __("Aucune contraintes a modifier.")."<br />";
300 nhaye 4099 }
301    
302     // Nombre de contraintes "à archiver"
303     $nb_contrainte_archive = count(
304     $this->getListContraintesArchive());
305     // S'il y a des contraintes "à archiver"
306     if ($nb_contrainte_archive > 0) {
307     // Archive les contraintes "à archiver"
308 softime 4333 $archiver = $this->archiveContraintes($collectivite["om_collectivite_idx"]);
309 nhaye 4099 // Si une erreur s'est produite
310     if ($archiver == false) {
311     //
312 nhaye 4174 $correct = false;
313 softime 18876 $message .= __("une erreur s'est produite lors de l'archivage des contraintes.")
314     ." ".__("Contactez votre administrateur")."<br />";
315 nhaye 4099 }
316     // S'il n'y a pas d'erreur
317     if ($archiver == true) {
318     //
319     $message .= "<span class='bold'>".$nb_contrainte_archive."</span>"." "
320 softime 18876 .__("contrainte(s) archivee(s).")."<br />";
321 nhaye 4099 }
322     } else {
323     //
324 softime 18876 $message .= __("Aucune contraintes a archiver.")."<br />";
325 nhaye 4099 }
326    
327 nhaye 4174 $type = 'valid';
328     if ($correct == false) {
329 nhaye 4099 //
330 nhaye 4174 $type = 'error';
331 nhaye 4099 }
332    
333 softime 17542 // Message à afficher
334     $this->add_output_message($type, $message, $ville);
335 nhaye 4174
336 nhaye 4099 // S'il y a une erreur
337 nhaye 4174 if ($correct == false) {
338 nhaye 4099 //
339     $this->f->addToLog("synchronisationContraintes(): ".$message, DEBUG_MODE);
340     }
341 nhaye 4174 return $correct;
342 nhaye 4099 }
343    
344 mbroquet 3730 /**
345     * Remplit toutes les listes de contrainte
346     */
347 nhaye 4099 public function setAllListContraintes($collectivite_idx) {
348 mbroquet 3730 //
349 nhaye 4099 $this->setListContraintesBDD($collectivite_idx);
350 mbroquet 3730 //
351     $this->setListContraintesAdd();
352     //
353     $this->setListContraintesEdit();
354     //
355     $this->setListContraintesSIGIdContrainte();
356     //
357     $this->setListContraintesArchive();
358     }
359    
360     /**
361     * Retourne la list des contraintes récupérées du SIG
362     * @return array Liste des contraintes
363     */
364     public function getListContraintesSIG() {
365     //
366 softime 17542 return is_array($this->listContraintesSIG) === true ? $this->listContraintesSIG : array();
367 mbroquet 3730 }
368    
369     /**
370     * Remplit la valeur de la réponse HTTP
371     * @param string $responseHTTP Réponse HTTP de la classe MessageSenderSOAP
372     */
373     private function setResponseHTTP($responseHTTP) {
374     //
375     $this->responseHTTP = $responseHTTP;
376     }
377    
378     /**
379     * Retourne le code réponse HTTP
380     * @return string Code réponse HTTP
381     */
382     public function getResponseHTTP() {
383     //
384     return $this->responseHTTP;
385     }
386    
387     /**
388     * Remplit la valeur du message d'erreur
389     * @param string $errorMessage Message d'erreur renvoyé par la classe MessageSenderSOAP
390     */
391     public function setErrorMessage($errorMessage){
392     $this->errorMessage = $errorMessage;
393     }
394    
395     /**
396     * Retourne le message d'erreur
397     * @return string Message d'erreur
398     */
399     public function getErrorMessage(){
400     return $this->errorMessage;
401     }
402    
403     /**
404 nhaye 4099 * Remplit la liste des contraintes récupérées de la base de données.
405     *
406     * @param integer $collectivite_idx identifiant de la collectivité
407 mbroquet 3730 */
408 nhaye 4099 public function setListContraintesBDD($collectivite_idx) {
409 mbroquet 3730
410     // Initialisation résultat
411     $resultArray = array();
412    
413     // Requête SQL
414 softime 15835 $qres = $this->f->get_all_results_from_db_query(
415     sprintf(
416     "SELECT
417     numero
418     FROM
419     %scontrainte
420     WHERE
421     reference = 't'
422     AND (om_validite_fin IS NULL
423     OR om_validite_fin > CURRENT_DATE)
424     AND om_collectivite = %d",
425     DB_PREFIXE,
426     intVal($collectivite_idx)
427     ),
428     array(
429     "origin" => __METHOD__,
430     )
431     );
432 mbroquet 3730
433     // Tableau des résultats
434 softime 15835 foreach ($qres['result'] as $row) {
435 mbroquet 3730 $resultArray[] = $row['numero'];
436     }
437    
438     //
439     $this->listContraintesBDD = $resultArray;
440     }
441    
442     /**
443     * Retourne la liste des contraintes récupérées de la base données
444     * @return array
445     */
446     public function getListContraintesBDD() {
447     //
448     return $this->listContraintesBDD;
449     }
450    
451     /**
452     * Remplit la liste des contraintes récupérées du SIG
453     * (seulement les identifiants)
454     */
455     public function setListContraintesSIGIdContrainte() {
456 nhaye 4099 $this->listContraintesSIGIdContrainte = array();
457 mbroquet 3730 // Pour chaque contraintes récupérées
458     foreach ($this->getListContraintesSIG() as $key => $contrainte) {
459     // Met l'identifiant de la contrainte dans la liste
460     $this->listContraintesSIGIdContrainte[] = $contrainte['contrainte'];
461     }
462     }
463    
464     /**
465     * Retourne la liste des contraintes récupérées du SIG
466     * (seulement les identifiants)
467     * @return array
468     */
469     public function getListContraintesSIGIdContrainte() {
470     //
471     return $this->listContraintesSIGIdContrainte;
472     }
473    
474     /**
475     * Remplit la liste des contraintes "à ajouter"
476     */
477     public function setListContraintesAdd() {
478 nhaye 4099 $this->listContraintesAdd = array();
479 mbroquet 3730 // Pour chaque contraintes récupérées
480 softime 17542 foreach ($this->getListContraintesSIG() as $key => $contrainte) {
481 softime 7996 // Si la contrainte possède un identifiant et qu'elle n'est pas dans
482     // la liste des contraintes de la base de données
483     if ($contrainte['contrainte'] !== ''
484     && $contrainte['contrainte'] !== null
485     && in_array($contrainte['contrainte'], $this->listContraintesBDD) === false) {
486 mbroquet 3730 // Met la contrainte dans la liste des "à ajouter"
487     $this->listContraintesAdd[] = $contrainte;
488     }
489     }
490     }
491    
492     /**
493     * Retourne la liste des contraintes "à ajouter"
494     * @return array
495     */
496     public function getListContraintesAdd() {
497     //
498     return $this->listContraintesAdd;
499     }
500    
501     /**
502     * Ajoute les contraintes de la liste listContraintesAdd
503     * @return boolean
504     */
505 nhaye 4099 public function addContraintes($collectivite_idx) {
506 mbroquet 3730 //
507     $return = true;
508     // Pour chaque contrainte "à ajouter"
509     foreach ($this->listContraintesAdd as $key => $contrainte) {
510     // Instancie la classe contrainte
511 softime 7996 $contrainteAdd = $this->f->get_inst__om_dbform(array(
512     "obj" => "contrainte",
513     "idx" => "]",
514     ));
515 softime 7521
516     // Il est possible que le champ texte ne soit pas présent dans le
517     // retour du connecteur SIG
518     if (array_key_exists("texte", $contrainte) === false) {
519     $contrainte['texte'] = null;
520     }
521    
522 mbroquet 3730 // Définit les valeurs
523     $val = array(
524     'contrainte' => ']',
525     'numero' => $contrainte['contrainte'],
526     'nature' => 'PLU',
527     'groupe' => $contrainte['groupe_contrainte'],
528     'sousgroupe' => (isset($contrainte['sous_groupe_contrainte']))?$contrainte['sous_groupe_contrainte']:"",
529     'libelle' => $contrainte['libelle'],
530     'reference' => true,
531 softime 7521 'texte' => $contrainte['texte'],
532 mbroquet 3730 'no_ordre' => null,
533     'service_consulte' => false,
534 nhaye 4099 'om_collectivite' => $collectivite_idx,
535 mbroquet 3730 'om_validite_debut' => null,
536     'om_validite_fin' => null,
537     );
538     // Ajout de la contrainte
539 softime 8989 $ajouter = $contrainteAdd->ajouter($val);
540 mbroquet 3730 // Si la contrainte n'a pas été ajoutée
541     if ($ajouter == false) {
542     //
543     $return = false;
544     }
545     }
546    
547     //
548     return $return;
549     }
550    
551     /**
552     * Remplit la liste des contraintes "à modifier"
553     */
554     public function setListContraintesEdit() {
555 nhaye 4099 $this->listContraintesEdit = array();
556 mbroquet 3730 // Pour chaque contraintes récupérées
557 softime 17542 foreach ($this->getListContraintesSIG() as $key => $contrainte) {
558 mbroquet 3730 // Si la contrainte est dans la liste des contraintes de
559     // la base de données
560     if (in_array($contrainte['contrainte'], $this->listContraintesBDD)) {
561     // Met la contrainte dans la liste des "à modifier"
562     $this->listContraintesEdit[] = $contrainte;
563     }
564     }
565     }
566    
567     /**
568     * Retourne la liste des contraintes "à modifier"
569     * @return array
570     */
571     public function getListContraintesEdit() {
572     //
573     return $this->listContraintesEdit;
574     }
575    
576     /**
577     * Modifie les contraintes la liste listContraintesEdit
578     * @return boolean
579     */
580 softime 4333 public function editContraintes($collectivite_idx) {
581 mbroquet 3730 //
582     $return = true;
583     // Si la liste des contraintes "à modifier" n'est pas vide
584     if (!empty($this->listContraintesEdit)) {
585     // Pour chaque contrainte "à modifier"
586     foreach ($this->listContraintesEdit as $key => $contrainte) {
587     // Récupère l'identifiant de la contrainte de l'application
588 softime 4333 $contrainte['contrainte_bdd'] = $this->getContrainte($contrainte['contrainte'], $collectivite_idx);
589 mbroquet 3730 // Instancie la classe contrainte
590 softime 7996 $contrainteEdit = $this->f->get_inst__om_dbform(array(
591     "obj" => "contrainte",
592     "idx" => $contrainte['contrainte_bdd'],
593     ));
594 mbroquet 3730 // Déclare le tableau des valeurs
595     $val = array();
596     foreach ($contrainteEdit->champs as $key => $champ) {
597     $val[$champ] = $contrainteEdit->val[$key];
598     }
599 softime 7996 // Si le champ "texte" existe dans le retour du SIG
600     if (array_key_exists("texte", $contrainte) === true) {
601     $val['texte'] = $contrainte['texte'];
602 softime 7521 }
603    
604 mbroquet 3730 // Modifie les valeurs qui peuvent avoir subit une modification
605     $val['groupe'] = $contrainte['groupe_contrainte'];
606     $val['sousgroupe'] = (isset($contrainte['sous_groupe_contrainte']))?$contrainte['sous_groupe_contrainte']:"";
607     $val['libelle'] = $contrainte['libelle'];
608     // Modifie la contrainte
609 softime 8989 $modifier = $contrainteEdit->modifier($val);
610 mbroquet 3730 // Si la contrainte à été modifiée
611     if ($modifier == false) {
612     //
613     $return = false;
614     }
615     }
616     }
617     //
618     return $return;
619     }
620    
621     /**
622     * Remplit la liste des contraintes "à archiver"
623     */
624     public function setListContraintesArchive() {
625 nhaye 4099 $this->listContraintesArchive = array();
626 mbroquet 3730 // Pour chaque contraintes de la base de données
627     foreach ($this->getListContraintesBDD() as $key => $contrainte) {
628     // Si la contrainte n'est pas dans la liste des contraintes récupérées
629     if (!in_array($contrainte, $this->getListContraintesSIGIdContrainte())) {
630     // Met la contrainte dans la liste des "à archiver"
631     $this->listContraintesArchive[] = $contrainte;
632     }
633     }
634     }
635    
636     /**
637     * Retourne la liste des contraintes "à archiver"
638     * @return array
639     */
640     public function getListContraintesArchive() {
641     //
642     return $this->listContraintesArchive;
643     }
644    
645     /**
646     * Archive les contraintes de la liste listContraintesArchive
647     * @return boolean
648     */
649 softime 4333 public function archiveContraintes($collectivite_idx) {
650 mbroquet 3730 //
651     $return = true;
652     // Pour chaque contrainte "à archiver"
653     foreach ($this->getListContraintesArchive() as $key => $contrainte) {
654     // Récupère l'identifiant de la contrainte de l'application
655 softime 4333 $contrainteId = $this->getContrainte($contrainte, $collectivite_idx);
656 mbroquet 3730 // Instancie la classe contrainte
657 softime 7996 $contrainteArchive = $this->f->get_inst__om_dbform(array(
658     "obj" => "contrainte",
659     "idx" => $contrainteId,
660     ));
661 mbroquet 3730 // Déclare le tableau des valeurs
662     $val = array();
663     // Récupération des valeurs
664     foreach($contrainteArchive->champs as $id => $champ) {
665     $val[$champ] = $contrainteArchive->val[$id];
666     }
667     // Met la date de fin de validité au jour pour archiver
668     $val['om_validite_fin'] = date('d/m/Y');
669     // Modifie la contrainte
670 softime 8989 $archiver = $contrainteArchive->modifier($val);
671 mbroquet 3730 // Si la contrainte n'a pas été modifiée
672     if ($archiver == false) {
673     //
674     $return = false;
675     }
676     }
677     //
678     return $return;
679     }
680    
681     /**
682 softime 4438 * Récupère l'identifiant d'une contrainte active (non archivée) par son
683     * couple numéro et collectivité.
684 softime 4427 *
685     * @param integer $numero numéro (unique côté SIG)
686     * @param integer $collectivite_idx clé primaire collectivité
687     * @return integer clé primaire contrainte
688 mbroquet 3730 */
689 softime 4333 private function getContrainte($numero, $collectivite_idx) {
690 softime 14064 $qres = $this->f->get_one_result_from_db_query(
691     sprintf(
692     'SELECT
693     contrainte
694     FROM
695     %1$scontrainte
696     WHERE
697     numero = \'%2$s\'
698     AND om_collectivite = %3$d
699     AND (
700     om_validite_fin > now()
701     OR om_validite_fin IS NULL
702     )
703     ORDER BY
704     contrainte ASC',
705     DB_PREFIXE,
706 softime 14542 $this->f->db->escapeSimple($numero),
707 softime 14064 intval($collectivite_idx)
708     ),
709     array(
710     "origin" => __METHOD__,
711     )
712     );
713     return $qres["result"];
714 mbroquet 3730 }
715 nhaye 4174
716     /**
717     * Méthode permettant d'ajouter à la pile des messages le resultat de la
718     * synchronisation des contraintes pour chaque commune.
719     *
720     * @param string $type valid/error
721     * @param string $message Message
722     * @param string $commune Nom de la commune à afficher.
723     */
724     private function add_output_message($type, $message, $commune = null) {
725     $tab_message = array("type" => $type, "message" => $message);
726     if($commune != null) {
727     $tab_message["commune"] = $commune;
728     }
729    
730     $this->outputMessage[] = $tab_message;
731     }
732    
733     /**
734     * Affiche les message de sortie de la synchronisation.
735     *
736     * @return [type] [description]
737     */
738     private function display_output_message() {
739    
740     foreach ($this->outputMessage as $key => $tab_message) {
741     $message = "";
742 softime 18876 if(isset($tab_message["commune"]) === true && $tab_message["commune"] != "") {
743 nhaye 4174 $message .= "<span class='bold'>".$tab_message["commune"]."</span><br />";
744     }
745     $message .= $tab_message['message'];
746     $this->f->displayMessage($tab_message["type"], $message);
747    
748     }
749     }
750    
751     /**
752     * Accesseur de la pile de message de sortie du traitement.
753     *
754     * @return array Liste des messages et leurs status
755     */
756     public function get_output_message() {
757     return $this->outputMessage;
758     }
759 nhaye 5254
760 mbroquet 3730 }
761    
762 softime 7996

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26