/[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 735 by mlimic, Fri Nov 16 18:13:44 2012 UTC revision 781 by fmichon, Tue Nov 20 17:00:39 2012 UTC
# Line 1  Line 1 
1  <?php  <?php
2    /**
3  /*   * Ce fichier permet de déclarer la classe MessagesManager, qui effectue les
4   * Processes requests received via services which concern users.   * traitements pour la ressource 'messages'.
  *  
  * @author Mirna Limic <[email protected]>  
  * Date: 18/10/2012  
5   *   *
6   * Follow-up:   * @package openfoncier
7   * Bugs:   * @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');  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';      var $TYPE_COMPLETUDE_ACC = 'Mise à jour de complétude ERP ACC';
29      var $TYPE_COMPLETUDE_SECU = 'Mise à jour de complétude ERP SECU';      var $TYPE_COMPLETUDE_SECU = 'Mise à jour de complétude ERP SECU';
30      var $TYPE_QUALIFICATION_ERP = 'Mise à jour de qualification';      var $TYPE_QUALIFICATION_ERP = 'Mise à jour de qualification';
31      var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP';      var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP';
32            /**#@-*/
33      /*  
34       * Constructor      /**
35       *       * Utilise par plusieurs fonctions pour faire le traitement generique
36       * Calls its parent's constructor.       * d'une demande arrive par REST
37       */       * @param mixed $data Le tableau contenant des donnees arrivees par le
38      public function __construct() {       * service REST.
39          parent::__construct();       * @param string $type Le type du message
40          $this->table = 'messages';       * @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       * Destructor       * @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       *       *
      * Calls its parent's destructor.  
47       */       */
48      public function __destruct() {      public function generique(&$data, $type, $contenu_val_verif) {
         parent::__destruct();  
     }  
   
       
       
     public function generic(&$data, $type, $contenu_strs) {  
49          // check that the type of the message is good          // check that the type of the message is good
50          if ($data['type'] != $type) {          if ($data['type'] != $type) {
51              $this->setMessage('Le type de message n\'est pas correct.');              $this->setMessage('Le type de message n\'est pas correct.');
# Line 51  class MessagesManager extends MetierMana Line 55  class MessagesManager extends MetierMana
55          // verification que le dossier existe dans la BD          // verification que le dossier existe dans la BD
56          $sql = "SELECT dossier FROM ".DB_PREFIXE."dossier";          $sql = "SELECT dossier FROM ".DB_PREFIXE."dossier";
57          $res = $this->db->query($sql);          $res = $this->db->query($sql);
58          if ($this->checkDBError($res, 'Erreur lors de recuperation des dossiers')) {          // Logger
59            $this->addToLog("generique(): 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;              return $this->KO;
65          }          }
66    
# Line 61  class MessagesManager extends MetierMana Line 70  class MessagesManager extends MetierMana
70          }          }
71          $res->free();          $res->free();
72                    
73          // check that the decision received corresponds to a decision in DB          // 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))) {          if (!in_array($data['dossier_instruction'], array_keys($this->dossiers))) {
76              $this->setMessage("Le dossier spécifié dans le message n'existe pas");              $this->setMessage("Le dossier spécifié dans le message n'existe pas");
77              return $this->KO;              return $this->KO;
78          }          }
79                    
80          // create the object to hold the data to be stored in DB          // creation d'objet qui sera utilise pour sauvegarder les
81            // donnees dans la BD
82          $this->metier_instance = new dossier_message("]", $this->db, 0);          $this->metier_instance = new dossier_message("]", $this->db, 0);
83                    
84          // check that the date is correct          // verifier que la date est correcte
85          $date_db = null;          $date_db = null;
86          if (!$this->timestampValid($data['date'], $date_db, true)) {          if (!$this->timestampValide($data['date'], $date_db, true)) {
87              $this->setMessage('Le date n\'est pas correct.');              $this->setMessage('Le date n\'est pas correct.');
88              return $this->BAD_DATA;              return $this->BAD_DATA;
89          }          }
90    
91          // check that the contenu contains all elements and prepare the          // verifie que le contenu contient tous les elements et prepare l'insertion
92          // contenu          // du contenu dans la BD
93          $contenu = '';          $contenu = '';
94          $valid_contenu = true;          $valid_contenu = true;
95          foreach ($contenu_strs as $contenu_str => $possible_vals) {          foreach ($contenu_val_verif as $contenu_str => $possible_vals) {
96              $value = $data['contenu'][$contenu_str];              $value = $data['contenu'][$contenu_str];
97              if (empty($value)) {              if (empty($value)) {
98                  $valid_contenu = false;                  $valid_contenu = false;
# Line 91  class MessagesManager extends MetierMana Line 102  class MessagesManager extends MetierMana
102                  $valid_contenu = false;                  $valid_contenu = false;
103                  break;                  break;
104              }              }
105              $contenu .= $contenu_str.' : '.$value.'\n';              $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) {          if ($valid_contenu === false) {
109              $this->setMessage('Le contenu du message n\'est pas correct.');              $this->setMessage('Le contenu du message n\'est pas correct.');
110              return $this->BAD_DATA;              return $this->BAD_DATA;
111          }          }
112                    
113          // do some data overwrite and duplication so that the array          // ecrasement de contenu avec le contenu formate et duplication des
114          // contains the keys searched for          // quelques valeurs parce que les valeurs dans setvalF sont cherches
115            // par les clefs predefinies
116          $data['contenu'] = $contenu;          $data['contenu'] = $contenu;
117          $data['dossier'] = $data['dossier_instruction'];          $data['dossier'] = $data['dossier_instruction'];
118          $data['date_emission'] = $date_db; // the date          $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      /*       * Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet
125       * Called when ERP wants to indicate if the dossier d'instruction       * a propos des Accessibilite pour des Hendicapes.
126       * is complete with respect to services for handicapped persons.       *
127       *       * @param mixed $data Les donnees recus par une demande arrive par REST.
128       * @param mixed $data The data received in the request.       * @return string En cas de success on retourne 'OK' sur success, et on retourne
129       * @return string 'OK'.       * 'KO' autrement.
130       */       */
131      public function completude_dossier_ACC($data) {      public function completude_dossier_ACC($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'),          $key_val_pairs = array('Complétude ERP ACC' => array('oui', 'non'),
138                                 'Motivation Complétude ERP ACC' => null);                                 'Motivation Complétude ERP ACC' => null);
139          $ret = $this->generic($data,          $ret = $this->generique($data,
140                                $this->TYPE_COMPLETUDE_ACC,                                $this->TYPE_COMPLETUDE_ACC,
141                                $key_val_pairs);                                $key_val_pairs);
142                    
# Line 130  class MessagesManager extends MetierMana Line 147  class MessagesManager extends MetierMana
147                  "Mise à jour de complétude ERP ACC à été faite avec success",                  "Mise à jour de complétude ERP ACC à été faite avec success",
148                  "Echec dans la mise à jour de complétude ERP ACC");                  "Echec dans la mise à jour de complétude ERP ACC");
149      }      }
150        
151            /**
152      /*       * Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet
153       * Called when ERP wants to indicate if the dossier d'instruction       * a propos des securite.
154       * is complete with respect to security (e.g. fire) regulations.       *
155       *       * @param mixed $data Les donnees recus par une demande arrive par REST.
156       * @param mixed $data The data received in the request.       * @return string En cas de success on retourne 'OK' sur success, et on retourne
157       * @return string 'OK'.       * 'KO' autrement.
158       */           */    
159      public function completude_dossier_SECU($data) {      public function completude_dossier_SECU($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'),          $key_val_pairs = array('Complétude ERP SECU' => array('oui', 'non'),
165                                 'Motivation Complétude ERP SECU' => null);                                 'Motivation Complétude ERP SECU' => null);
166          $ret = $this->generic($data,          $ret = $this->generique($data,
167                                $this->TYPE_COMPLETUDE_SECU,                                $this->TYPE_COMPLETUDE_SECU,
168                                $key_val_pairs);                                $key_val_pairs);
169                    
# Line 154  class MessagesManager extends MetierMana Line 174  class MessagesManager extends MetierMana
174                  "Mise à jour de complétude ERP SECU à été faite avec success",                  "Mise à jour de complétude ERP SECU à été faite avec success",
175                  "Echec dans la mise à jour de complétude ERP SECU");                  "Echec dans la mise à jour de complétude ERP SECU");
176      }      }
177        
178            /**
179      /*       * Appelle quand ERP voudrait qualifier un dossier d'instruction.
      * Called when ERP wants to indicate if the dossier d'instruction  
      * is an ERP dossier or not.  
180       *       *
181       * @param mixed $data The data received in the request.       * @param mixed $data Les donnees recus par une demande arrive par REST.
182       * @return string 'OK'.       * @return string En cas de success on retourne 'OK' sur success, et on retourne
183         * 'KO' autrement.
184       */               */        
185      public function qualification_dossier($data) {      public function qualification_dossier($data) {
186    
187            // Logger
188            $this->addToLog("qualification_dossier(): start", EXTRA_VERBOSE_MODE);
189    
190          $key_val_pairs = array('Confirmation ERP' => array('oui', 'non'),          $key_val_pairs = array('Confirmation ERP' => array('oui', 'non'),
191                                 'Type de dossier ERP' => null,                                 'Type de dossier ERP' => null,
192                                 'Catégorie de dossier ERP' => null);                                 'Catégorie de dossier ERP' => null);
193          $ret = $this->generic($data,          $ret = $this->generique($data,
194                                $this->TYPE_QUALIFICATION_ERP,                                $this->TYPE_QUALIFICATION_ERP,
195                                $key_val_pairs);                                $key_val_pairs);
196                    
# Line 178  class MessagesManager extends MetierMana Line 201  class MessagesManager extends MetierMana
201                  "Mise à jour de la qualification ERP à été faite avec success",                  "Mise à jour de la qualification ERP à été faite avec success",
202                  "Echec dans la mise à jour de la qualification ERP");                  "Echec dans la mise à jour de la qualification ERP");
203      }      }
       
204    
205      /*      /**
206       * Called when ERP wants to indicate if the dossier d'instruction       * Appelle quand ERP voudrait qualifier un dossier d'instruction comme
207       * is important, i.e. dossier a enjeux.       * un dossier a enjeux.
208       *       *
209       * @param mixed $data The data received in the request.       * @param mixed $data Les donnees recus par une demande arrive par REST.
210       * @return string 'OK'.       * @return string En cas de success on retourne 'OK' sur success, et on retourne
211         * 'KO' autrement.
212       */           */    
213      public function dossier_enjeux($data) {      public function dossier_enjeux($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'));          $key_val_pairs = array('Dossier à enjeux ERP' => array('oui', 'non'));
219          $ret = $this->generic($data,          $ret = $this->generique($data,
220                                $this->TYPE_DOSSIER_ENJEUX,                                $this->TYPE_DOSSIER_ENJEUX,
221                                $key_val_pairs);                                $key_val_pairs);
222                    

Legend:
Removed from v.735  
changed lines
  Added in v.781

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26