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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26