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

Contents of /trunk/services/metier/messagesmanager.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 772 - (show annotations)
Tue Nov 20 15:10:26 2012 UTC (12 years, 2 months ago) by fmichon
File size: 9291 byte(s)
Commentaires + Log + Refactorisation de la méthode RequestMdtrGroup

1 <?php
2 /**
3 * Ce fichier permet de déclarer la classe MessagesManager, qui effectue les
4 * traitements pour la ressource 'messages'.
5 *
6 * @package openfoncier
7 * @version SVN : $Id$
8 */
9
10 // Inclusion de la classe de base MetierManager
11 require_once("./metier/metiermanager.php");
12
13 // Inclusion de la classe métier dossier_message
14 include_once('../obj/dossier_message.class.php');
15
16 /**
17 * Cette classe hérite de la classe MetierManager. Elle permet d'effectuer des
18 * traitements pour la ressource 'messages'.
19 *
20 * @todo XXX Traduire et commenter toutes les méthodes
21 */
22 class MessagesManager extends MetierManager {
23
24 /**#@+
25 * @access static
26 * @var string
27 */
28 var $TYPE_COMPLETUDE_ACC = 'Mise à jour de complétude ERP ACC';
29 var $TYPE_COMPLETUDE_SECU = 'Mise à jour de complétude ERP SECU';
30 var $TYPE_QUALIFICATION_ERP = 'Mise à jour de qualification';
31 var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP';
32 /**#@-*/
33
34 /**
35 * Constructeur
36 *
37 * Fait appel au constructeur de son parent.
38 * @todo XXX Ajouter la description des attributs
39 */
40 public function __construct() {
41
42 // Appel du constructeur parent
43 parent::__construct();
44
45 }
46
47 /**
48 * Destructeur
49 *
50 * Fait appel au destructeur de son parent.
51 */
52 public function __destruct() {
53
54 // Appel du destructeur parent
55 parent::__destruct();
56
57 }
58
59 /**
60 * Utilise par plusieurs fonctions pour faire le traitement generique
61 * d'une demande arrive par REST
62 * @param mixed $data Le tableau contenant des donnees arrivees par le
63 * service REST.
64 * @param string $type Le type du message
65 * @param mixed $contenu_val_verif Le tableau associatif. Les clefs sont
66 * des clefs qui peuvent etre trouvees dans le tableau $data. Les valeurs
67 * sont des valeurs qui peuvent etre trouvees comme les valeurs dans le
68 * tableau $data.
69 * @return En cas de success on retourne 'OK'. Si les donnees sont
70 * erronees, on retourne 'BAD_DATA'. En cas d'echec on retourne 'KO'.
71 *
72 */
73 public function generique(&$data, $type, $contenu_val_verif) {
74 // check that the type of the message is good
75 if ($data['type'] != $type) {
76 $this->setMessage('Le type de message n\'est pas correct.');
77 return $this->BAD_DATA;
78 }
79
80 // verification que le dossier existe dans la BD
81 $sql = "SELECT dossier FROM ".DB_PREFIXE."dossier";
82 $res = $this->db->query($sql);
83 // Logger
84 $this->addToLog("generique(): db->query(\"".$sql."\"", VERBOSE_MODE);
85 //
86 if ($this->f->isDatabaseError($res, true)) {
87 $this->setMessage("Erreur de base de données.");
88 return $this->KO;
89 }
90
91 $this->dossiers = array();
92 while ($row =& $res->fetchRow(DB_FETCHMODE_ORDERED)) {
93 $this->dossiers[$row[0]] = $row[1];
94 }
95 $res->free();
96
97 // verification que la decision recu dans le message est une des
98 // decisions acceptables (c'est a dire que elle existe dans la BD)
99 if (!in_array($data['dossier_instruction'], array_keys($this->dossiers))) {
100 $this->setMessage("Le dossier spécifié dans le message n'existe pas");
101 return $this->KO;
102 }
103
104 // creation d'objet qui sera utilise pour sauvegarder les
105 // donnees dans la BD
106 $this->metier_instance = new dossier_message("]", $this->db, 0);
107
108 // verifier que la date est correcte
109 $date_db = null;
110 if (!$this->timestampValide($data['date'], $date_db, true)) {
111 $this->setMessage('Le date n\'est pas correct.');
112 return $this->BAD_DATA;
113 }
114
115 // verifie que le contenu contient tous les elements et prepare l'insertion
116 // du contenu dans la BD
117 $contenu = '';
118 $valid_contenu = true;
119 foreach ($contenu_val_verif as $contenu_str => $possible_vals) {
120 $value = $data['contenu'][$contenu_str];
121 if (empty($value)) {
122 $valid_contenu = false;
123 break;
124 }
125 if ($possible_vals && !in_array(strtolower($value), $possible_vals)) {
126 $valid_contenu = false;
127 break;
128 }
129 $contenu .= $contenu_str.' : '.$value.'
130 '; // il faut que cette ligne soit comme ca pour que le \n soit ajoute a la fin the $contenu
131 }
132 if ($valid_contenu === false) {
133 $this->setMessage('Le contenu du message n\'est pas correct.');
134 return $this->BAD_DATA;
135 }
136
137 // ecrasement de contenu avec le contenu formate et duplication des
138 // quelques valeurs parce que les valeurs dans setvalF sont cherches
139 // par les clefs predefinies
140 $data['contenu'] = $contenu;
141 $data['dossier'] = $data['dossier_instruction'];
142 $data['date_emission'] = $date_db; // le timestamp en format accepte par la BD
143
144 return $this->OK;
145 }
146
147 /**
148 * Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet
149 * a propos des Accessibilite pour des Hendicapes.
150 *
151 * @param mixed $data Les donnees recus par une demande arrive par REST.
152 * @return string En cas de success on retourne 'OK' sur success, et on retourne
153 * 'KO' autrement.
154 */
155 public function completude_dossier_ACC($data) {
156
157 // Logger
158 $this->addToLog("completude_dossier_ACC(): start", EXTRA_VERBOSE_MODE);
159
160 //
161 $key_val_pairs = array('Complétude ERP ACC' => array('oui', 'non'),
162 'Motivation Complétude ERP ACC' => null);
163 $ret = $this->generique($data,
164 $this->TYPE_COMPLETUDE_ACC,
165 $key_val_pairs);
166
167 if ($ret != $this->OK) {
168 return $ret;
169 }
170 return parent::ajouter($data,
171 "Mise à jour de complétude ERP ACC à été faite avec success",
172 "Echec dans la mise à jour de complétude ERP ACC");
173 }
174
175 /**
176 * Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet
177 * a propos des securite.
178 *
179 * @param mixed $data Les donnees recus par une demande arrive par REST.
180 * @return string En cas de success on retourne 'OK' sur success, et on retourne
181 * 'KO' autrement.
182 */
183 public function completude_dossier_SECU($data) {
184
185 // Logger
186 $this->addToLog("completude_dossier_SECU(): start", EXTRA_VERBOSE_MODE);
187
188 $key_val_pairs = array('Complétude ERP SECU' => array('oui', 'non'),
189 'Motivation Complétude ERP SECU' => null);
190 $ret = $this->generique($data,
191 $this->TYPE_COMPLETUDE_SECU,
192 $key_val_pairs);
193
194 if ($ret != $this->OK) {
195 return $ret;
196 }
197 return parent::ajouter($data,
198 "Mise à jour de complétude ERP SECU à été faite avec success",
199 "Echec dans la mise à jour de complétude ERP SECU");
200 }
201
202 /**
203 * Appelle quand ERP voudrait qualifier un dossier d'instruction.
204 *
205 * @param mixed $data Les donnees recus par une demande arrive par REST.
206 * @return string En cas de success on retourne 'OK' sur success, et on retourne
207 * 'KO' autrement.
208 */
209 public function qualification_dossier($data) {
210
211 // Logger
212 $this->addToLog("qualification_dossier(): start", EXTRA_VERBOSE_MODE);
213
214 $key_val_pairs = array('Confirmation ERP' => array('oui', 'non'),
215 'Type de dossier ERP' => null,
216 'Catégorie de dossier ERP' => null);
217 $ret = $this->generique($data,
218 $this->TYPE_QUALIFICATION_ERP,
219 $key_val_pairs);
220
221 if ($ret != $this->OK) {
222 return $ret;
223 }
224 return parent::ajouter($data,
225 "Mise à jour de la qualification ERP à été faite avec success",
226 "Echec dans la mise à jour de la qualification ERP");
227 }
228
229 /**
230 * Appelle quand ERP voudrait qualifier un dossier d'instruction comme
231 * un dossier a enjeux.
232 *
233 * @param mixed $data Les donnees recus par une demande arrive par REST.
234 * @return string En cas de success on retourne 'OK' sur success, et on retourne
235 * 'KO' autrement.
236 */
237 public function dossier_enjeux($data) {
238
239 // Logger
240 $this->addToLog("dossier_enjeux(): start", EXTRA_VERBOSE_MODE);
241
242 $key_val_pairs = array('Dossier à enjeux ERP' => array('oui', 'non'));
243 $ret = $this->generique($data,
244 $this->TYPE_DOSSIER_ENJEUX,
245 $key_val_pairs);
246
247 if ($ret != $this->OK) {
248 return $ret;
249 }
250 return parent::ajouter($data,
251 "Mise à jour du dossier \"Dossier à enjeux ERP\" à été faite avec success",
252 "Echec dans la mise à jour du dossier \"Dossier à enjeux ERP\"");
253 }
254
255 }
256
257 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26