/[openfoncier]/trunk/services/metier/maintenancemanager.php
ViewVC logotype

Annotation of /trunk/services/metier/maintenancemanager.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 759 - (hide annotations)
Tue Nov 20 09:09:35 2012 UTC (12 years, 2 months ago) by mlimic
File size: 6036 byte(s)
Corrcetion de doc sur block doc var, renommage des fonctions d'anglais a francais

1 mlimic 515 <?php
2 fmichon 733 /**
3     * Ce fichier permet de déclarer la classe MaintenanceManager, qui effectue les
4     * traitements pour la ressource 'maintenance'.
5 mlimic 522 *
6 fmichon 733 * @package openfoncier
7     * @version SVN : $Id$
8 mlimic 522 */
9    
10 fmichon 733 // Inclusion de la classe de base MetierManager
11     require_once("./metier/metiermanager.php");
12 mlimic 515
13 fmichon 733 /**
14 fmichon 734 * Cette classe hérite de la classe MetierManager. Elle permet d'effectuer des
15     * traitements pour la ressource 'maintenance' qui ont vocation à être
16     * déclenché de manière automatique ou par une application externe. Par
17     * exemple, un cron permet chaque soir d'exécuter la synchronisation des
18     * utilisateurs de l'application avec l'annuaire LDAP.
19 fmichon 733 */
20 mlimic 515 class MaintenanceManager extends MetierManager {
21 fmichon 733
22     /**
23     * @var mixed Ce tableau permet d'associer un module a une méthode,
24     * le module (key) est celui reçu dans la requête REST, la méthode (value)
25     * est la méthode de cette classe qui va exécuter le traitement
26 mlimic 522 */
27 fmichon 733 var $fptrs = array(
28     'user' => 'synchronizeUsers',
29     'consultation' => 'updateConsultationsStates',
30     );
31    
32     /**
33     * Constructeur
34 mlimic 522 */
35 mlimic 526 public function __construct() {
36 fmichon 733
37     // Appel du constructeur parent
38 mlimic 515 parent::__construct();
39 fmichon 733
40 mlimic 515 }
41 mlimic 522
42 fmichon 733 /**
43     * Destructeur
44     */
45 mlimic 526 public function __destruct() {
46 fmichon 733
47     // Appel du destructeur parent
48 mlimic 515 parent::__destruct();
49 fmichon 733
50 mlimic 515 }
51 fmichon 733
52     /**
53     * Cette méthode permet de gérer l'appel aux différentes méthodes
54     * correspondantes au module appelé.
55 mlimic 522 *
56 fmichon 733 * @param string $module Le module à exécuter reçu dans la requête
57     * @param mixed $data Les données reçues dans la requête
58     * @return string Le résultat du traitement
59 mlimic 522 */
60 mlimic 526 public function performMaintenance($module, $data) {
61 fmichon 733
62     // Si le module n'existe pas dans la liste des modules disponibles
63     // alors on ajoute un message d'informations et on retourne un
64     // un résultat d'erreur
65 mlimic 515 if (!in_array($module, array_keys($this->fptrs))) {
66 fmichon 733 $this->setMessage("Le module demandé n'existe pas");
67     return $this->BAD_DATA;
68 mlimic 515 }
69 fmichon 733
70     // Si le module existe dans la liste des modules disponibles
71     // alors on appelle la méthode en question et on retourne son résultat
72     return call_user_func(array($this, $this->fptrs[$module]), $data);
73    
74 mlimic 515 }
75 fmichon 733
76     /**
77     * Cette méthode permet d'effectuer la synchronisation des utilisateurs
78     * de l'application avec l'annuaire LDAP paramétré dans l'application.
79 mlimic 522 *
80 fmichon 733 * @param mixed $data Les données reçues dans la requête
81     * @return string Le résultat du traitement
82     *
83     * @todo XXX Faire une getsion des erreurs dans om_application pour
84     * permettre d'avoir un retour sur le déroulement de la synchronisation
85 mlimic 522 */
86 mlimic 526 public function synchronizeUsers($data) {
87 fmichon 733
88     // La gestion des erreurs ne permet pas de savoir si tout s'est déroulé
89     // correctement ou non donc on renvoi un retour erreur en attendant
90     $this->setMessage("Erreur interne");
91     return $this->KO;
92    
93     // Appel aux méthodes de synchronisation des utilisateurs via l'annuaire
94     $results = $this->f->initSynchronization();
95     $this->f->synchronizeUsers($results);
96     return $this->OK;
97    
98 mlimic 515 }
99 fmichon 733
100     /**
101     * Cette méthode permet d'effectuer le traitement de gestion des avis
102     * tacites sur les consultations qui ont atteint leur date limite de
103     * retour.
104     *
105     * @param mixed $data Les données reçues dans la requête
106     * @return string Le résultat du traitement
107     *
108     * @todo XXX Traduire et commenter la méthode et voir si il est possible
109     * de la déplacer dans l'application
110 mlimic 537 */
111     public function updateConsultationsStates($data) {
112 fmichon 733
113 mlimic 541 $table_name = 'consultation';
114 mlimic 537 $sql = "SELECT consultation FROM $table_name WHERE ".
115     " date_limite < DATE '". date('Y-m-d', time()) .
116     "' AND date_retour IS NULL AND avis_consultation IS NULL";
117    
118     $res = $this->db->query($sql);
119     // In case of error
120 mlimic 759 if ($this->verifieResultatBD($res, 'Erreur lors de mise à jour')) {
121 mlimic 537 return $this->KO;
122     }
123    
124     $ids = array();
125     while ($row =& $res->fetchRow(DB_FETCHMODE_ORDERED)) {
126     $ids[] = $row[0];
127     }
128     $res->free();
129    
130     // if there are no consultations that need to have
131     // their state set to Favorable, return OK
132     if (count($ids) == 0) {
133 mlimic 541 $this->setMessage("Aucune mise à jour");
134 mlimic 540 return $this->NA;
135 mlimic 537 }
136    
137     // get the idenfier of the evaluation: 'Favorable'
138     $sql = "SELECT avis_consultation FROM avis_consultation WHERE ".
139 mlimic 559 "libelle = 'Tacite'";
140 mlimic 537 $res = $this->db->query($sql);
141 mlimic 759 if ($this->verifieResultatBD($res, 'Erreur lors de mise à jour')) {
142 mlimic 537 return $this->KO;
143     }
144 mlimic 540
145 mlimic 537 $favorable = -1;
146     while ($row =& $res->fetchRow(DB_FETCHMODE_ORDERED)) {
147     $favorable = $row[0];
148     }
149     $res->free();
150    
151     // if we did not find the evaluation 'Favorable', return error
152     if ($favorable < 0) {
153 mlimic 541 $this->setMessage("'Favorable' n'est pas présent ".
154     "dans la columne : avis_consultation.libelle");
155 mlimic 537 return $this->KO;
156     }
157 mlimic 540
158 mlimic 537 // update the consultation table to set the 'Favorable' evaluation for
159     // the pertinent consultations
160     $fields = array('avis_consultation' => $favorable);
161     $res = $this->db->autoExecute($table_name, $fields, DB_AUTOQUERY_UPDATE,
162     'consultation IN ('.implode(',', $ids).')');
163 mlimic 759 if ($this->verifieResultatBD($res, 'Erreur lors de mise à jour')) {
164 mlimic 537 return $this->KO;
165     }
166 mlimic 540
167     // $res->getDebugInfo(), $res->getMessage()
168 mlimic 541 $this->setMessage('Il y a eu '.count($ids).' demandes de consultations dont '.
169     'l\'avis été passé à Tacite');
170 mlimic 540 return $this->OK;
171 fmichon 733
172 mlimic 537 }
173 mlimic 540
174 mlimic 515 }
175    
176     ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26