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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 515 by mlimic, Wed Oct 17 16:22:13 2012 UTC revision 1377 by nhaye, Tue Mar 12 17:17:07 2013 UTC
# Line 1  Line 1 
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  ?>  ?>

Legend:
Removed from v.515  
changed lines
  Added in v.1377

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26