1 |
<?php |
<?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 |
class MessagesManager extends MetierManager { |
class MessagesManager extends MetierManager { |
|
|
|
|
|
|
|
function __construct() { |
|
|
parent::__construct(); |
|
|
} |
|
|
|
|
|
|
|
|
function __destruct() { |
|
|
parent::__destruct(); |
|
|
} |
|
21 |
|
|
22 |
|
/**#@+ |
23 |
function completude_dossier_ACC($data) { |
* @access static |
24 |
|
* @var string |
25 |
|
*/ |
26 |
|
var $TYPE_COMPLETUDE_ACC = 'Mise à jour de complétude ERP ACC'; |
27 |
|
var $TYPE_COMPLETUDE_SECU = 'Mise à jour de complétude ERP SECU'; |
28 |
|
var $TYPE_QUALIFICATION_ERP = 'Mise à jour de qualification'; |
29 |
|
var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP'; |
30 |
|
var $TYPE_ERP_QUALIFIE = 'ERP Qualifié'; |
31 |
|
/**#@-*/ |
32 |
|
|
33 |
|
/** |
34 |
|
* Cette méthode permet de gérer le fonctionnement de base de toutes les |
35 |
|
* méthodes métiers de la classe MessagesManager |
36 |
|
* |
37 |
|
* @param mixed $data Les données reçues en format d'un tableau associative |
38 |
|
* @param string $type Le type du message |
39 |
|
* @param mixed $contenu_val_verif Un tableau associatif qui permet de |
40 |
|
* transmettre les éléments de vérification de la validité des valeurs |
41 |
|
* du contenu du message (champ contenu du message) |
42 |
|
*/ |
43 |
|
private function generic(&$data, $type, $contenu_val_verif) { |
44 |
|
|
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) { |
50 |
|
$this->setMessage("Le type de message n'est pas correct."); |
51 |
|
return $this->BAD_DATA; |
52 |
|
} |
53 |
|
|
54 |
|
// Vérification de l'existence du dossier dans la base de données |
55 |
|
$sql = "SELECT dossier FROM ".DB_PREFIXE."dossier"; |
56 |
|
$sql .= " WHERE dossier='".$data['dossier_instruction']."'"; |
57 |
|
$res = $this->db->query($sql); |
58 |
|
// Logger |
59 |
|
$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)) { |
63 |
|
$this->setMessage("Erreur de base de données."); |
64 |
|
return $this->KO; |
65 |
|
} |
66 |
|
|
67 |
|
// Vérification de l'existence du dossier dans la base de données |
68 |
|
$this->dossiers = array(); |
69 |
|
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
70 |
|
$this->dossiers[] = $row['dossier']; |
71 |
|
} |
72 |
|
$res->free(); |
73 |
|
|
74 |
|
// Si le nombre de dossiers correspondants au numéro de dossier passé |
75 |
|
// en paramètre n'est pas 1 alors on ajoute un message d'informations |
76 |
|
// et on retourne un résultat d'erreur |
77 |
|
if (count($this->dossiers) != 1) { |
78 |
|
$this->setMessage("Le dossier spécifié dans le message n'existe". |
79 |
|
" pas."); |
80 |
|
return $this->BAD_DATA; |
81 |
|
} |
82 |
|
|
83 |
|
// On instancie la message qui va être créé par la requête |
84 |
|
$this->metier_instance = new dossier_message("]", $this->db, 0); |
85 |
|
|
86 |
|
// 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; |
93 |
|
if (!$this->timestampValide($data['date'], $date_db, true)) { |
94 |
|
$this->setMessage("La date n'est pas correcte."); |
95 |
|
return $this->BAD_DATA; |
96 |
|
} |
97 |
|
|
98 |
|
// Vérification de la validité du contenu en fonction du paramètre |
99 |
|
// $contenu_val_verif et formatage du contenu |
100 |
|
$contenu = ''; |
101 |
|
$valid_contenu = true; |
102 |
|
// On boucle sur chaque champs à vérifier |
103 |
|
foreach ($contenu_val_verif as $contenu_str => $possible_vals) { |
104 |
|
// On récupère la valeur |
105 |
|
$value = $data['contenu'][$contenu_str]; |
106 |
|
// Si la valeur est vide alors on sort de la boucle |
107 |
|
if (empty($value)) { |
108 |
|
$valid_contenu = false; |
109 |
|
break; |
110 |
|
} |
111 |
|
// 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; |
116 |
|
break; |
117 |
|
} |
118 |
|
// Formatage du contenu |
119 |
|
$contenu .= $contenu_str.' : '.$value.' |
120 |
|
'; // 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) { |
126 |
|
$this->setMessage("Le contenu du message n'est pas correct."); |
127 |
|
return $this->BAD_DATA; |
128 |
|
} |
129 |
|
|
130 |
|
// Affectation de l'identifiant du message dans la variable |
131 |
|
// $data['message'] pour être transmis dans la requête dans le champ |
132 |
|
// 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; |
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']; |
141 |
|
// 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 |
function completude_dossier_SECU($data) { |
* Ce message permet de recevoir les informations de complétude dossier |
156 |
return $this->OK; |
* PC qui concerne un ERP par le service ERP Accessibilité |
157 |
|
* |
158 |
|
* @param mixed $data Les données reçues en format d'un tableau associative |
159 |
|
*/ |
160 |
|
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'), |
168 |
|
'Motivation Complétude ERP ACC' => null); |
169 |
|
|
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, |
175 |
|
$key_val_pairs); |
176 |
|
|
177 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
178 |
|
if ($ret != $this->OK) { |
179 |
|
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, |
186 |
|
"Insertion du message '".$this->TYPE_COMPLETUDE_ACC."' OK.", |
187 |
|
"Echec du message '".$this->TYPE_COMPLETUDE_ACC."'"); |
188 |
|
|
189 |
} |
} |
190 |
|
|
191 |
|
/** |
192 |
function qualification_dossier($data) { |
* Ce message permet de recevoir les informations de complétude dossier |
193 |
return $this->OK; |
* PC qui concerne un ERP par le service ERP Sécurité |
194 |
|
* |
195 |
|
* @param mixed $data Les données reçues en format d'un tableau associative |
196 |
|
*/ |
197 |
|
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'), |
205 |
|
'Motivation Complétude ERP SECU' => null); |
206 |
|
|
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, |
212 |
|
$key_val_pairs); |
213 |
|
|
214 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
215 |
|
if ($ret != $this->OK) { |
216 |
|
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, |
223 |
|
"Insertion du message '".$this->TYPE_COMPLETUDE_SECU."' OK.", |
224 |
|
"Echec du message '".$this->TYPE_COMPLETUDE_SECU."'"); |
225 |
|
|
226 |
} |
} |
|
|
|
227 |
|
|
228 |
function dossier_enjeux($data) { |
/** |
229 |
return $this->OK; |
* 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 données reçues en format d'un tableau associative |
233 |
|
*/ |
234 |
|
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'), |
242 |
|
'Type de dossier ERP' => null, |
243 |
|
'Catégorie de dossier ERP' => null); |
244 |
|
|
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, |
250 |
|
$key_val_pairs); |
251 |
|
|
252 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
253 |
|
if ($ret != $this->OK) { |
254 |
|
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, |
261 |
|
"Insertion du message '".$this->TYPE_QUALIFICATION_ERP."' OK.", |
262 |
|
"Echec du message '".$this->TYPE_QUALIFICATION_ERP."'"); |
263 |
|
|
264 |
|
} |
265 |
|
|
266 |
|
/** |
267 |
|
* Ce message permet de recevoir les informations d'enjeu ERP d'un dossier |
268 |
|
* en ce qui concerne le service ERP |
269 |
|
* |
270 |
|
* @param mixed $data Les données reçues en format d'un tableau associative |
271 |
|
*/ |
272 |
|
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')); |
280 |
|
|
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, |
286 |
|
$key_val_pairs); |
287 |
|
|
288 |
|
// Si une erreur a été rencontrée alors on retourne cette erreur |
289 |
|
if ($ret != $this->OK) { |
290 |
|
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, |
297 |
|
"Insertion du message '".$this->TYPE_DOSSIER_ENJEUX."' OK.", |
298 |
|
"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 |
?> |
?> |