16 |
/** |
/** |
17 |
* Cette classe hérite de la classe MetierManager. Elle permet d'effectuer des |
* Cette classe hérite de la classe MetierManager. Elle permet d'effectuer des |
18 |
* traitements pour la ressource 'messages'. |
* traitements pour la ressource 'messages'. |
|
* |
|
|
* @todo XXX Traduire et commenter toutes les méthodes |
|
19 |
*/ |
*/ |
20 |
class MessagesManager extends MetierManager { |
class MessagesManager extends MetierManager { |
21 |
|
|
22 |
/**#@+ |
/**#@+ |
23 |
* @access static |
* @access static |
24 |
* @var string |
* @var string |
27 |
var $TYPE_COMPLETUDE_SECU = 'Mise à jour de complétude ERP SECU'; |
var $TYPE_COMPLETUDE_SECU = 'Mise à jour de complétude ERP SECU'; |
28 |
var $TYPE_QUALIFICATION_ERP = 'Mise à jour de qualification'; |
var $TYPE_QUALIFICATION_ERP = 'Mise à jour de qualification'; |
29 |
var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP'; |
var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP'; |
30 |
|
var $TYPE_ERP_QUALIFIE = 'ERP Qualifié'; |
31 |
/**#@-*/ |
/**#@-*/ |
|
|
|
32 |
|
|
33 |
/** |
/** |
34 |
* Constructeur |
* Cette méthode permet de gérer le fonctionnement de base de toutes les |
35 |
* |
* méthodes métiers de la classe MessagesManager |
36 |
* Fait appel au constructeur de son parent. |
* |
37 |
* @todo XXX Ajouter la description des attributs |
* @param mixed $data Les données reçues en format d'un tableau associative |
|
*/ |
|
|
public function __construct() { |
|
|
|
|
|
// Appel du constructeur parent |
|
|
parent::__construct(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
* Destructeur |
|
|
* |
|
|
* Fait appel au destructeur de son parent. |
|
|
*/ |
|
|
public function __destruct() { |
|
|
|
|
|
// Appel du destructeur parent |
|
|
parent::__destruct(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
* Utilise par plusieurs fonctions pour faire le traitement generique |
|
|
* d'une demande arrive par REST |
|
|
* @param mixed $data Le tableau contenant des donnees arrivees par le |
|
|
* service REST. |
|
38 |
* @param string $type Le type du message |
* @param string $type Le type du message |
39 |
* @param mixed $contenu_val_verif Le tableau associatif. Les clefs sont |
* @param mixed $contenu_val_verif Un tableau associatif qui permet de |
40 |
* des clefs qui peuvent etre trouvees dans le tableau $data. Les valeurs |
* transmettre les éléments de vérification de la validité des valeurs |
41 |
* sont des valeurs qui peuvent etre trouvees comme les valeurs dans le |
* du contenu du message (champ contenu du message) |
|
* tableau $data. |
|
|
* @return En cas de success on retourne 'OK'. Si les donnees sont |
|
|
* erronees, on retourne 'BAD_DATA'. En cas d'echec on retourne 'KO'. |
|
|
* |
|
42 |
*/ |
*/ |
43 |
public function generique(&$data, $type, $contenu_val_verif) { |
private function generic(&$data, $type, $contenu_val_verif) { |
44 |
// check that the type of the message is good |
|
45 |
|
// Vérification de la validité du type de message |
46 |
|
// Si le type dans le message ne correspond pas au type de la méthode |
47 |
|
// appelée alors on ajoute un message d'informations et on retourne un |
48 |
|
// résultat d'erreur |
49 |
if ($data['type'] != $type) { |
if ($data['type'] != $type) { |
50 |
$this->setMessage('Le type de message n\'est pas correct.'); |
$this->setMessage("Le type de message n'est pas correct."); |
51 |
return $this->BAD_DATA; |
return $this->BAD_DATA; |
52 |
} |
} |
53 |
|
|
54 |
// verification que le dossier existe dans la BD |
// Vérification de l'existence du dossier dans la base de données |
55 |
$sql = "SELECT dossier FROM ".DB_PREFIXE."dossier"; |
$sql = "SELECT dossier FROM ".DB_PREFIXE."dossier"; |
56 |
|
$sql .= " WHERE dossier='".$data['dossier_instruction']."'"; |
57 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
58 |
// Logger |
// Logger |
59 |
$this->addToLog("generique(): db->query(\"".$sql."\"", VERBOSE_MODE); |
$this->addToLog("generic(): db->query(\"".$sql."\"", VERBOSE_MODE); |
60 |
// |
// Si une erreur de base de données se produit sur cette requête |
61 |
|
// alors on retourne un résultat d'erreur |
62 |
if ($this->f->isDatabaseError($res, true)) { |
if ($this->f->isDatabaseError($res, true)) { |
63 |
$this->setMessage("Erreur de base de données."); |
$this->setMessage("Erreur de base de données."); |
64 |
return $this->KO; |
return $this->KO; |
65 |
} |
} |
66 |
|
|
67 |
|
// Vérification de l'existence du dossier dans la base de données |
68 |
$this->dossiers = array(); |
$this->dossiers = array(); |
69 |
while ($row =& $res->fetchRow(DB_FETCHMODE_ORDERED)) { |
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
70 |
$this->dossiers[$row[0]] = $row[1]; |
$this->dossiers[] = $row['dossier']; |
71 |
} |
} |
72 |
$res->free(); |
$res->free(); |
73 |
|
|
74 |
// verification que la decision recu dans le message est une des |
// Si le nombre de dossiers correspondants au numéro de dossier passé |
75 |
// decisions acceptables (c'est a dire que elle existe dans la BD) |
// en paramètre n'est pas 1 alors on ajoute un message d'informations |
76 |
if (!in_array($data['dossier_instruction'], array_keys($this->dossiers))) { |
// et on retourne un résultat d'erreur |
77 |
$this->setMessage("Le dossier spécifié dans le message n'existe pas"); |
if (count($this->dossiers) != 1) { |
78 |
return $this->KO; |
$this->setMessage("Le dossier spécifié dans le message n'existe". |
79 |
|
" pas."); |
80 |
|
return $this->BAD_DATA; |
81 |
} |
} |
82 |
|
|
83 |
// creation d'objet qui sera utilise pour sauvegarder les |
// On instancie la message qui va être créé par la requête |
|
// donnees dans la BD |
|
84 |
$this->metier_instance = new dossier_message("]", $this->db, 0); |
$this->metier_instance = new dossier_message("]", $this->db, 0); |
85 |
|
|
86 |
// verifier que la date est correcte |
// Vérification de la validité de la date |
87 |
|
// Si le format de la date transmise dans la requête n'est pas correct |
88 |
|
// alors on ajoute un message d'informations et on retourne un résultat |
89 |
|
// d'erreur |
90 |
|
// Important : $date_db est passé par référence et est modifié dans la |
91 |
|
// méthode timestampValide() |
92 |
$date_db = null; |
$date_db = null; |
93 |
if (!$this->timestampValide($data['date'], $date_db, true)) { |
if (!$this->timestampValide($data['date'], $date_db, true)) { |
94 |
$this->setMessage('Le date n\'est pas correct.'); |
$this->setMessage("La date n'est pas correcte."); |
95 |
return $this->BAD_DATA; |
return $this->BAD_DATA; |
96 |
} |
} |
97 |
|
|
98 |
// verifie que le contenu contient tous les elements et prepare l'insertion |
// Vérification de la validité du contenu en fonction du paramètre |
99 |
// du contenu dans la BD |
// $contenu_val_verif et formatage du contenu |
100 |
$contenu = ''; |
$contenu = ''; |
101 |
$valid_contenu = true; |
$valid_contenu = true; |
102 |
|
// On boucle sur chaque champs à vérifier |
103 |
foreach ($contenu_val_verif as $contenu_str => $possible_vals) { |
foreach ($contenu_val_verif as $contenu_str => $possible_vals) { |
104 |
|
// On récupère la valeur |
105 |
$value = $data['contenu'][$contenu_str]; |
$value = $data['contenu'][$contenu_str]; |
106 |
|
// Si la valeur est vide alors on sort de la boucle |
107 |
if (empty($value)) { |
if (empty($value)) { |
108 |
$valid_contenu = false; |
$valid_contenu = false; |
109 |
break; |
break; |
110 |
} |
} |
111 |
if ($possible_vals && !in_array(strtolower($value), $possible_vals)) { |
// Si la valeur n'est pas dans les valeurs possible et que la valeur |
112 |
|
// possible n'est pas nulle alors on sort de la boucle |
113 |
|
if ($possible_vals |
114 |
|
&& !in_array(strtolower($value), $possible_vals)) { |
115 |
$valid_contenu = false; |
$valid_contenu = false; |
116 |
break; |
break; |
117 |
} |
} |
118 |
|
// Formatage du contenu |
119 |
$contenu .= $contenu_str.' : '.$value.' |
$contenu .= $contenu_str.' : '.$value.' |
120 |
'; // il faut que cette ligne soit comme ca pour que le \n soit ajoute a la fin the $contenu |
'; // il faut que cette ligne soit comme ça pour que le \n soit ajouté à la fin |
121 |
} |
} |
122 |
|
|
123 |
|
// Si un des éléments du contenu n'est pas valide alors on ajoute un |
124 |
|
// message d'informations et on retourne un résultat d'erreur |
125 |
if ($valid_contenu === false) { |
if ($valid_contenu === false) { |
126 |
$this->setMessage('Le contenu du message n\'est pas correct.'); |
$this->setMessage("Le contenu du message n'est pas correct."); |
127 |
return $this->BAD_DATA; |
return $this->BAD_DATA; |
128 |
} |
} |
129 |
|
|
130 |
// ecrasement de contenu avec le contenu formate et duplication des |
// Affectation de l'identifiant du message dans la variable |
131 |
// quelques valeurs parce que les valeurs dans setvalF sont cherches |
// $data['message'] pour être transmis dans la requête dans le champ |
132 |
// par les clefs predefinies |
// message de la table |
133 |
|
$data['dossier_message'] = 0; |
134 |
|
// Affectation du contenu reformaté dans la variable $data['contenu'] |
135 |
|
// pour être transmis dans la requête dans le champ contenu de la table |
136 |
$data['contenu'] = $contenu; |
$data['contenu'] = $contenu; |
137 |
|
// Affectation du numéro de dossier d'instruction dans la variable |
138 |
|
// $data['dossier'] pour être transmis dans la requête dans le champ |
139 |
|
// dossier de la table |
140 |
$data['dossier'] = $data['dossier_instruction']; |
$data['dossier'] = $data['dossier_instruction']; |
141 |
$data['date_emission'] = $date_db; // le timestamp en format accepte par la BD |
// Affectation du numéro de la date dans la variable |
142 |
|
// $data['date_emission'] pour être transmis dans la requête dans le |
143 |
|
// champ date_emission de la table dans le format correct |
144 |
|
$data['date_emission'] = $date_db; |
145 |
|
// Affectation de la valeur de la variable $data['lu'] pour être |
146 |
|
// transmis dans la requête dans le champ lu de la table |
147 |
|
$data['lu'] = false; |
148 |
|
|
149 |
|
// On retourne un résultat OK |
150 |
return $this->OK; |
return $this->OK; |
151 |
|
|
152 |
} |
} |
153 |
|
|
|
|
|
154 |
/** |
/** |
155 |
* Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet |
* Ce message permet de recevoir les informations de complétude dossier |
156 |
* a propos des Accessibilite pour des Hendicapes. |
* PC qui concerne un ERP par le service ERP Accessibilité |
157 |
* |
* |
158 |
* @param mixed $data Les donnees recus par une demande arrive par REST. |
* @param mixed $data Les données reçues en format d'un tableau associative |
|
* @return string En cas de success on retourne 'OK' sur success, et on retourne |
|
|
* 'KO' autrement. |
|
159 |
*/ |
*/ |
160 |
public function completude_dossier_ACC($data) { |
public function completudeDossierACC($data) { |
161 |
|
|
162 |
|
// Logger |
163 |
|
$this->addToLog("completudeDossierACC(): start", EXTRA_VERBOSE_MODE); |
164 |
|
|
165 |
|
// Définition des critères de vérification de la validité du contenu |
166 |
|
// du message |
167 |
$key_val_pairs = array('Complétude ERP ACC' => array('oui', 'non'), |
$key_val_pairs = array('Complétude ERP ACC' => array('oui', 'non'), |
168 |
'Motivation Complétude ERP ACC' => null); |
'Motivation Complétude ERP ACC' => null); |
169 |
$ret = $this->generique($data, |
|
170 |
|
// Appel de la méthode de traitement générique qui permet d'effectuer |
171 |
|
// les vérifications de validité des données et de préparer la |
172 |
|
// requête d'insertion par la modification de $data |
173 |
|
$ret = $this->generic($data, |
174 |
$this->TYPE_COMPLETUDE_ACC, |
$this->TYPE_COMPLETUDE_ACC, |
175 |
$key_val_pairs); |
$key_val_pairs); |
176 |
|
|
177 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
178 |
if ($ret != $this->OK) { |
if ($ret != $this->OK) { |
179 |
return $ret; |
return $ret; |
180 |
} |
} |
181 |
|
|
182 |
|
// Si aucune erreur n'a été rencontrée alors on appelle la méthode |
183 |
|
// ajouter pour insérer le message et on retourne le résultat de |
184 |
|
// la méthode ajouter |
185 |
return parent::ajouter($data, |
return parent::ajouter($data, |
186 |
"Mise à jour de complétude ERP ACC à été faite avec success", |
"Insertion du message '".$this->TYPE_COMPLETUDE_ACC."' OK.", |
187 |
"Echec dans la mise à jour de complétude ERP ACC"); |
"Echec du message '".$this->TYPE_COMPLETUDE_ACC."'"); |
188 |
|
|
189 |
} |
} |
190 |
|
|
|
|
|
191 |
/** |
/** |
192 |
* Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet |
* Ce message permet de recevoir les informations de complétude dossier |
193 |
* a propos des securite. |
* PC qui concerne un ERP par le service ERP Sécurité |
194 |
* |
* |
195 |
* @param mixed $data Les donnees recus par une demande arrive par REST. |
* @param mixed $data Les données reçues en format d'un tableau associative |
|
* @return string En cas de success on retourne 'OK' sur success, et on retourne |
|
|
* 'KO' autrement. |
|
196 |
*/ |
*/ |
197 |
public function completude_dossier_SECU($data) { |
public function completudeDossierSECU($data) { |
198 |
|
|
199 |
|
// Logger |
200 |
|
$this->addToLog("completudeDossierSECU(): start", EXTRA_VERBOSE_MODE); |
201 |
|
|
202 |
|
// Définition des critères de vérification de la validité du contenu |
203 |
|
// du message |
204 |
$key_val_pairs = array('Complétude ERP SECU' => array('oui', 'non'), |
$key_val_pairs = array('Complétude ERP SECU' => array('oui', 'non'), |
205 |
'Motivation Complétude ERP SECU' => null); |
'Motivation Complétude ERP SECU' => null); |
206 |
$ret = $this->generique($data, |
|
207 |
|
// Appel de la méthode de traitement générique qui permet d'effectuer |
208 |
|
// les vérifications de validité des données et de préparer la |
209 |
|
// requête d'insertion par la modification de $data |
210 |
|
$ret = $this->generic($data, |
211 |
$this->TYPE_COMPLETUDE_SECU, |
$this->TYPE_COMPLETUDE_SECU, |
212 |
$key_val_pairs); |
$key_val_pairs); |
213 |
|
|
214 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
215 |
if ($ret != $this->OK) { |
if ($ret != $this->OK) { |
216 |
return $ret; |
return $ret; |
217 |
} |
} |
218 |
|
|
219 |
|
// Si aucune erreur n'a été rencontrée alors on appelle la méthode |
220 |
|
// ajouter pour insérer le message et on retourne le résultat de |
221 |
|
// la méthode ajouter |
222 |
return parent::ajouter($data, |
return parent::ajouter($data, |
223 |
"Mise à jour de complétude ERP SECU à été faite avec success", |
"Insertion du message '".$this->TYPE_COMPLETUDE_SECU."' OK.", |
224 |
"Echec dans la mise à jour de complétude ERP SECU"); |
"Echec du message '".$this->TYPE_COMPLETUDE_SECU."'"); |
225 |
|
|
226 |
} |
} |
227 |
|
|
|
|
|
228 |
/** |
/** |
229 |
* Appelle quand ERP voudrait qualifier un dossier d'instruction. |
* Ce message permet de recevoir les informations de qualification |
230 |
|
* d'un dossier PC qui concerne un ERP par le service ERP |
231 |
* |
* |
232 |
* @param mixed $data Les donnees recus par une demande arrive par REST. |
* @param mixed $data Les données reçues en format d'un tableau associative |
|
* @return string En cas de success on retourne 'OK' sur success, et on retourne |
|
|
* 'KO' autrement. |
|
233 |
*/ |
*/ |
234 |
public function qualification_dossier($data) { |
public function qualificationDossier($data) { |
235 |
|
|
236 |
|
// Logger |
237 |
|
$this->addToLog("qualificationDossier(): start", EXTRA_VERBOSE_MODE); |
238 |
|
|
239 |
|
// Définition des critères de vérification de la validité du contenu |
240 |
|
// du message |
241 |
$key_val_pairs = array('Confirmation ERP' => array('oui', 'non'), |
$key_val_pairs = array('Confirmation ERP' => array('oui', 'non'), |
242 |
'Type de dossier ERP' => null, |
'Type de dossier ERP' => null, |
243 |
'Catégorie de dossier ERP' => null); |
'Catégorie de dossier ERP' => null); |
244 |
$ret = $this->generique($data, |
|
245 |
|
// Appel de la méthode de traitement générique qui permet d'effectuer |
246 |
|
// les vérifications de validité des données et de préparer la |
247 |
|
// requête d'insertion par la modification de $data |
248 |
|
$ret = $this->generic($data, |
249 |
$this->TYPE_QUALIFICATION_ERP, |
$this->TYPE_QUALIFICATION_ERP, |
250 |
$key_val_pairs); |
$key_val_pairs); |
251 |
|
|
252 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
253 |
if ($ret != $this->OK) { |
if ($ret != $this->OK) { |
254 |
return $ret; |
return $ret; |
255 |
} |
} |
256 |
|
|
257 |
|
// Si aucune erreur n'a été rencontrée alors on appelle la méthode |
258 |
|
// ajouter pour insérer le message et on retourne le résultat de |
259 |
|
// la méthode ajouter |
260 |
return parent::ajouter($data, |
return parent::ajouter($data, |
261 |
"Mise à jour de la qualification ERP à été faite avec success", |
"Insertion du message '".$this->TYPE_QUALIFICATION_ERP."' OK.", |
262 |
"Echec dans la mise à jour de la qualification ERP"); |
"Echec du message '".$this->TYPE_QUALIFICATION_ERP."'"); |
263 |
|
|
264 |
} |
} |
|
|
|
265 |
|
|
266 |
/** |
/** |
267 |
* Appelle quand ERP voudrait qualifier un dossier d'instruction comme |
* Ce message permet de recevoir les informations d'enjeu ERP d'un dossier |
268 |
* un dossier a enjeux. |
* en ce qui concerne le service ERP |
269 |
* |
* |
270 |
* @param mixed $data Les donnees recus par une demande arrive par REST. |
* @param mixed $data Les données reçues en format d'un tableau associative |
|
* @return string En cas de success on retourne 'OK' sur success, et on retourne |
|
|
* 'KO' autrement. |
|
271 |
*/ |
*/ |
272 |
public function dossier_enjeux($data) { |
public function dossierEnjeux($data) { |
273 |
|
|
274 |
|
// Logger |
275 |
|
$this->addToLog("dossierEnjeux(): start", EXTRA_VERBOSE_MODE); |
276 |
|
|
277 |
|
// Définition des critères de vérification de la validité du contenu |
278 |
|
// du message |
279 |
$key_val_pairs = array('Dossier à enjeux ERP' => array('oui', 'non')); |
$key_val_pairs = array('Dossier à enjeux ERP' => array('oui', 'non')); |
280 |
$ret = $this->generique($data, |
|
281 |
|
// Appel de la méthode de traitement générique qui permet d'effectuer |
282 |
|
// les vérifications de validité des données et de préparer la |
283 |
|
// requête d'insertion par la modification de $data |
284 |
|
$ret = $this->generic($data, |
285 |
$this->TYPE_DOSSIER_ENJEUX, |
$this->TYPE_DOSSIER_ENJEUX, |
286 |
$key_val_pairs); |
$key_val_pairs); |
287 |
|
|
288 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
289 |
if ($ret != $this->OK) { |
if ($ret != $this->OK) { |
290 |
return $ret; |
return $ret; |
291 |
} |
} |
292 |
|
|
293 |
|
// Si aucune erreur n'a été rencontrée alors on appelle la méthode |
294 |
|
// ajouter pour insérer le message et on retourne le résultat de |
295 |
|
// la méthode ajouter |
296 |
return parent::ajouter($data, |
return parent::ajouter($data, |
297 |
"Mise à jour du dossier \"Dossier à enjeux ERP\" à été faite avec success", |
"Insertion du message '".$this->TYPE_DOSSIER_ENJEUX."' OK.", |
298 |
"Echec dans la mise à jour du dossier \"Dossier à enjeux ERP\""); |
"Echec du message '".$this->TYPE_DOSSIER_ENJEUX."'"); |
299 |
|
|
300 |
} |
} |
301 |
|
|
302 |
|
/** |
303 |
|
* Ce message permet de recevoir les informations de complétude dossier |
304 |
|
* PC qui concerne un ERP par le service ERP Accessibilité |
305 |
|
* |
306 |
|
* @param mixed $data Les données reçues en format d'un tableau associative |
307 |
|
*/ |
308 |
|
public function erpQualifie($data) { |
309 |
|
|
310 |
|
// Logger |
311 |
|
$this->addToLog("erpQualifie(): start", EXTRA_VERBOSE_MODE); |
312 |
|
|
313 |
|
// Définition des critères de vérification de la validité du contenu |
314 |
|
// du message |
315 |
|
$key_val_pairs = array('competence' => null, |
316 |
|
'contrainte_plu' => null, |
317 |
|
'reference_cadastrale' => null, |
318 |
|
); |
319 |
|
|
320 |
|
// Appel de la méthode de traitement générique qui permet d'effectuer |
321 |
|
// les vérifications de validité des données et de préparer la |
322 |
|
// requête d'insertion par la modification de $data |
323 |
|
$ret = $this->generic($data, |
324 |
|
$this->TYPE_ERP_QUALIFIE, |
325 |
|
$key_val_pairs); |
326 |
|
|
327 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
328 |
|
if ($ret != $this->OK) { |
329 |
|
return $ret; |
330 |
|
} |
331 |
|
|
332 |
|
// Si aucune erreur n'a été rencontrée alors on appelle la méthode |
333 |
|
// ajouter pour insérer le message et on retourne le résultat de |
334 |
|
// la méthode ajouter |
335 |
|
return parent::ajouter($data, |
336 |
|
"Insertion du message '".$this->TYPE_ERP_QUALIFIE."' OK.", |
337 |
|
"Echec du message '".$this->TYPE_ERP_QUALIFIE."'"); |
338 |
|
|
339 |
|
} |
340 |
} |
} |
341 |
|
|
342 |
?> |
?> |