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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18876 - (show 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 <?php
2 /**
3 * Ce script permet de définir la classe 'SynchronisationContrainte'.
4 *
5 * @package openads
6 * @version SVN : $Id: synchronisationContrainte.class.php 6066 2016-03-01 11:11:26Z nhaye $
7 */
8
9 require_once "../obj/geoads.class.php";
10
11 /**
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 * 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 */
30 var $usecase;
31 /**
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 /**
72 * Message à afficher à la fin du traitement
73 * @var array
74 */
75 var $outputMessage = array();
76
77 /**
78 * Constructeur
79 * @param object $f Instance de la classe Utils
80 */
81 public function __construct($f) {
82 // 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 // Vérifie qu'il y ait un paramétrage du SIG
88 if(isset($this->f->collectivite["sig"]) !== true) {
89 //
90 $this->correct = false;
91 // Si pas défini on retourn une erreur
92 $this->f->displayMessage('error', __("Erreur de paramétrage.")." ".__("Veuillez contacter votre administrateur."));
93 return false;
94 }
95
96 // Vérification du paramètre obligatoire du mode de traitement des contraintes
97 if($this->f->collectivite["sig"]["sig_treatment_mod"] != "mono"
98 && $this->f->collectivite["sig"]["sig_treatment_mod"] != "multi") {
99 //
100 $this->correct = false;
101 // Si pas défini on retourn une erreur
102 $this->f->displayMessage('error', __("Erreur de paramétrage.")." ".__("Veuillez contacter votre administrateur."));
103 return false;
104 }
105
106 // 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 if ($this->f->get_submitted_post_value('valider') !== null) {
124 // On lance le traitement de synchro
125 $this->constraint_sync_treatment();
126 $this->display_output_message();
127 }
128
129 }
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 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 $this->f->displayMessage('error', __("Vous n'avez pas les droits nécessaires pour effectuer cette action."));
146 return false;
147 }
148
149 // Ouverture du formulaire
150 printf("<form method=\"POST\" action=\"\" name=f2>");
151
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 .__("synchroniser").
159 "\" 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 $correct = true;
169
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 $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 );
196 foreach ($qres['result'] as $row) {
197 $collectivite = $this->f->getCollectivite($row['om_collectivite']);
198 if(isset($collectivite['sig'])) {
199 if($this->collectivite_constraint_sync($collectivite) === false){
200 $correct = false;
201 }
202 }
203 }
204 break;
205 default:
206 $correct = false;
207 break;
208 }
209 return $correct;
210 }
211
212 private function collectivite_constraint_sync($collectivite) {
213
214 $ville = isset($collectivite['ville']) === true && $collectivite['ville'] !== 'à paramétrer' ? $collectivite['ville'] : sprintf(__("Collectivité dont l'identifiant est %s"), $collectivite["om_collectivite_idx"]);
215
216 // 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 $collectivite['insee'] = null;
225 }
226
227 $message = "";
228 $correct = true;
229 // Instance geoads
230 $extra_params = array(
231 "inst_framework" => $this->f,
232 );
233 // Intérogation du web service du SIG
234 try {
235 $geoads = new geoads($collectivite, $extra_params);
236 $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 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 //
249 // Met à jour toutes les listes des contraintes
250 $this->setAllListContraintes($collectivite["om_collectivite_idx"]);
251 // Initilisation des variables
252
253
254 // 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 $correct = false;
265 $message .= __("une erreur s'est produite lors de l'ajout des nouvelles contraintes.")." ".__("Contactez votre administrateur")."<br />";
266 }
267 // S'il n'y a pas d'erreur
268 if ($ajouter == true) {
269 //
270 $message .= "<span class='bold'>".$nb_contrainte_add."</span>"." "
271 .__("contrainte(s) ajoutee(s).")."<br />";
272 }
273 } else {
274 //
275 $message .= _ ("Aucune contraintes a ajouter.")."<br />";
276 }
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 $correct = false;
289 $message .= __("une erreur s'est produite lors de la modification des contraintes.")." ".__("Contactez votre administrateur")."<br />";
290 }
291 // S'il n'y a pas d'erreur
292 if ($modifier == true) {
293 //
294 $message .= "<span class='bold'>".$nb_contrainte_edit."</span>"." "
295 .__("contrainte(s) modifiee(s).")."<br />";
296 }
297 } else {
298 //
299 $message .= __("Aucune contraintes a modifier.")."<br />";
300 }
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 $archiver = $this->archiveContraintes($collectivite["om_collectivite_idx"]);
309 // Si une erreur s'est produite
310 if ($archiver == false) {
311 //
312 $correct = false;
313 $message .= __("une erreur s'est produite lors de l'archivage des contraintes.")
314 ." ".__("Contactez votre administrateur")."<br />";
315 }
316 // S'il n'y a pas d'erreur
317 if ($archiver == true) {
318 //
319 $message .= "<span class='bold'>".$nb_contrainte_archive."</span>"." "
320 .__("contrainte(s) archivee(s).")."<br />";
321 }
322 } else {
323 //
324 $message .= __("Aucune contraintes a archiver.")."<br />";
325 }
326
327 $type = 'valid';
328 if ($correct == false) {
329 //
330 $type = 'error';
331 }
332
333 // Message à afficher
334 $this->add_output_message($type, $message, $ville);
335
336 // S'il y a une erreur
337 if ($correct == false) {
338 //
339 $this->f->addToLog("synchronisationContraintes(): ".$message, DEBUG_MODE);
340 }
341 return $correct;
342 }
343
344 /**
345 * Remplit toutes les listes de contrainte
346 */
347 public function setAllListContraintes($collectivite_idx) {
348 //
349 $this->setListContraintesBDD($collectivite_idx);
350 //
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 return is_array($this->listContraintesSIG) === true ? $this->listContraintesSIG : array();
367 }
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 * 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 */
408 public function setListContraintesBDD($collectivite_idx) {
409
410 // Initialisation résultat
411 $resultArray = array();
412
413 // Requête SQL
414 $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
433 // Tableau des résultats
434 foreach ($qres['result'] as $row) {
435 $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 $this->listContraintesSIGIdContrainte = array();
457 // 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 $this->listContraintesAdd = array();
479 // Pour chaque contraintes récupérées
480 foreach ($this->getListContraintesSIG() as $key => $contrainte) {
481 // 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 // 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 public function addContraintes($collectivite_idx) {
506 //
507 $return = true;
508 // Pour chaque contrainte "à ajouter"
509 foreach ($this->listContraintesAdd as $key => $contrainte) {
510 // Instancie la classe contrainte
511 $contrainteAdd = $this->f->get_inst__om_dbform(array(
512 "obj" => "contrainte",
513 "idx" => "]",
514 ));
515
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 // 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 'texte' => $contrainte['texte'],
532 'no_ordre' => null,
533 'service_consulte' => false,
534 'om_collectivite' => $collectivite_idx,
535 'om_validite_debut' => null,
536 'om_validite_fin' => null,
537 );
538 // Ajout de la contrainte
539 $ajouter = $contrainteAdd->ajouter($val);
540 // 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 $this->listContraintesEdit = array();
556 // Pour chaque contraintes récupérées
557 foreach ($this->getListContraintesSIG() as $key => $contrainte) {
558 // 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 public function editContraintes($collectivite_idx) {
581 //
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 $contrainte['contrainte_bdd'] = $this->getContrainte($contrainte['contrainte'], $collectivite_idx);
589 // Instancie la classe contrainte
590 $contrainteEdit = $this->f->get_inst__om_dbform(array(
591 "obj" => "contrainte",
592 "idx" => $contrainte['contrainte_bdd'],
593 ));
594 // Déclare le tableau des valeurs
595 $val = array();
596 foreach ($contrainteEdit->champs as $key => $champ) {
597 $val[$champ] = $contrainteEdit->val[$key];
598 }
599 // Si le champ "texte" existe dans le retour du SIG
600 if (array_key_exists("texte", $contrainte) === true) {
601 $val['texte'] = $contrainte['texte'];
602 }
603
604 // 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 $modifier = $contrainteEdit->modifier($val);
610 // 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 $this->listContraintesArchive = array();
626 // 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 public function archiveContraintes($collectivite_idx) {
650 //
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 $contrainteId = $this->getContrainte($contrainte, $collectivite_idx);
656 // Instancie la classe contrainte
657 $contrainteArchive = $this->f->get_inst__om_dbform(array(
658 "obj" => "contrainte",
659 "idx" => $contrainteId,
660 ));
661 // 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 $archiver = $contrainteArchive->modifier($val);
671 // 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 * Récupère l'identifiant d'une contrainte active (non archivée) par son
683 * couple numéro et collectivité.
684 *
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 */
689 private function getContrainte($numero, $collectivite_idx) {
690 $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 $this->f->db->escapeSimple($numero),
707 intval($collectivite_idx)
708 ),
709 array(
710 "origin" => __METHOD__,
711 )
712 );
713 return $qres["result"];
714 }
715
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 if(isset($tab_message["commune"]) === true && $tab_message["commune"] != "") {
743 $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
760 }
761
762

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26