/[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 711 by mlimic, Thu Nov 15 18:07:20 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  include_once('../obj/messages.class.php');  // 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';      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';
31      /*      var $TYPE_DOSSIER_ENJEUX = 'Dossier à enjeux ERP';
32       * Constructor      /**#@-*/
33       *  
34       * Calls its parent's constructor.      /**
35       */       * Utilise par plusieurs fonctions pour faire le traitement generique
36      public function __construct() {       * d'une demande arrive par REST
37          parent::__construct();       * @param mixed $data Le tableau contenant des donnees arrivees par le
38          $this->table = 'messages';       * 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       * Destructor       * 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       *       *
      * Calls its parent's destructor.  
47       */       */
48      public function __destruct() {      public function generique(&$data, $type, $contenu_val_verif) {
         parent::__destruct();  
     }  
   
       
     /*  
      * Called when ERP wants to indicate if the dossier d'instruction  
      * is complete with respect to services for handicapped persons.  
      *  
      * @param mixed $data The data received in the request.  
      * @return string 'OK'.  
      */  
     public function completude_dossier_ACC($data) {  
         print $data['type'];  
49          // check that the type of the message is good          // check that the type of the message is good
50          if ($data['type'] != $this->TYPE_COMPLETUDE_ACC) {          if ($data['type'] != $type) {
51                $this->setMessage('Le type de message n\'est pas correct.');
52              return $this->BAD_DATA;              return $this->BAD_DATA;
53          }          }
         // create the object to hold the data to be stored in DB  
         $this->metier_instance = new messages("]", $this->db, 0);  
54                    
55          // check that the date is correct          // verification que le dossier existe dans la BD
56          if (!$this->timestampValid($data['date'], true)) {          $sql = "SELECT dossier FROM ".DB_PREFIXE."dossier";
57            $res = $this->db->query($sql);
58            // 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;
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;              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          if (!empty($data['contenu']['Complétude ERP ACC'])          $valid_contenu = true;
95              && !empty($data['contenu']['Motivation Complétude ERP ACC'])) {          foreach ($contenu_val_verif as $contenu_str => $possible_vals) {
96              $completude = $data['contenu']['Complétude ERP ACC'];              $value = $data['contenu'][$contenu_str];
97              if (strtolower($completude) != 'oui'              if (empty($value)) {
98                  && strtolower($completude) != 'non') {                  $valid_contenu = false;
99                  return $this->BAD_DATA;                  break;
100                }
101                if ($possible_vals && !in_array(strtolower($value), $possible_vals)) {
102                    $valid_contenu = false;
103                    break;
104              }              }
105              // replace the contenu              $contenu .= $contenu_str.' : '.$value.'
106              $contenu .= 'Complétude ERP ACC : '.'\n'.  '; // il faut que cette ligne soit comme ca pour que le \n soit ajoute a la fin the $contenu
107                  'Motivation Complétude ERP ACC : '.          }
108                  $data['contenu']['Motivation Complétude ERP ACC'];          if ($valid_contenu === false) {
109          } else {              $this->setMessage('Le contenu du message n\'est pas correct.');
110              return $this->BAD_DATA;              return $this->BAD_DATA;
111          }          }
112                    
113          // store info into valF of the messages object, and previously do          // ecrasement de contenu avec le contenu formate et duplication des
114          // some data copying so that the array 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'] = $data['date']; // the date          $data['date_emission'] = $date_db; // le timestamp en format accepte par la BD
119          $data['lu'] = 0; // message unread  
         print 'MI type:'.gettype($this->metier_instance);  
         $this->metier_instance->setvalF($data);  
           
           
         // store the message into DB  
         $this->db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_INSERT);  
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 security (e.g. fire) regulations.       *
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) {
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->generique($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         * Appelle quand ERP voudrait indiquer que le dossier d'instruction est complet
153         * 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 completude_dossier_SECU($data) {      public function completude_dossier_SECU($data) {
160          return $this->OK;  
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->generique($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            /**
179      /*       * Appelle quand ERP voudrait qualifier un dossier d'instruction.
180       * Called when ERP wants to indicate if the dossier d'instruction       *
181       * is an ERP dossier or not.       * @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       * @param mixed $data The data received in the request.       * 'KO' autrement.
      * @return string 'OK'.  
184       */               */        
185      public function qualification_dossier($data) {      public function qualification_dossier($data) {
186          return $this->OK;  
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->generique($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       * 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          return $this->OK;  
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->generique($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.711  
changed lines
  Added in v.781

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26