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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26