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

Contents of /trunk/services/metier/dossierautorisationmanager.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 789 - (show annotations)
Wed Nov 21 11:25:04 2012 UTC (12 years, 2 months ago) by mlimic
File size: 8662 byte(s)
Recuperation du dossier d'autorisation et enregistrement des information d'une arrete ERP signe.
Fichiers : services/metier/dossierautorisationmanager.php, services/REST/dossier_autorisation.php, obj/dossier_autorisation.class.php

1 <?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 require_once("../obj/dossier_autorisation.class.php");
13
14 /**
15 * Cette classe hérite de la classe MetierManager. Elle permet d'effectuer des
16 * traitements pour la ressource 'messages'.
17 *
18 * @todo XXX Traduire et commenter toutes les méthodes
19 */
20 class DossierAutorisationManager extends MetierManager {
21
22 /**
23 * Extraire le contenu d'un dossier d'autorisation depuis de la BD.
24 *
25 * @param string $id L'identifiant du dossier d'autorisation
26 * @return En cas de success on retourne 'OK'. Si les donnees sont
27 * erronees, on retourne 'BAD_DATA'. En cas d'echec au niveau de BD,
28 * 'KO' est retourne.
29 */
30 private function generic($id) {
31
32 // verifie que l'ID passe existe et a le bon format
33 if ($id == null || empty($id) || !is_numeric($id)) {
34 $this->setMessage(_('L\'identifiant du dossier d\'autorisation '.
35 'manque ou n\'est pas dans le bon format'));
36 return $this->BAD_DATA;
37 }
38
39 $this->metier_instance = new dossier_autorisation($id, $this->db, 0);
40
41 // verifie que on n'a pas eu une bogue de BD
42 if (isset($this->metier_instance->errors['db_debuginfo'])
43 && !empty($this->metier_instance->errors['db_debuginfo'])) {
44 $this->setMessage(_('Probleme pendent la recuperation du dossier '.
45 'd\'autorisation.'));
46 return $this->KO;
47 }
48
49 // verifie que le dossier etait bien trouve
50 if (empty($this->metier_instance->valF['dossier_autorisation'])) {
51 $this->setMessage(_('Le dossier d\'autorisation '. $id
52 .' n\'etait pas trouve'));
53 return $this->BAD_DATA;
54 }
55
56 return $this->OK;
57 }
58
59 /**
60 * Appelle quand ERP voudrait attribuer un numero du batiment
61 * a un dossier d'autorisation.
62 *
63 * @param mixed $data Le tableau contenant les donnees arrivees par
64 * le service web
65 * @param string $id L'identifiant du dossier d'autorisation
66 * @return bool En cas de success on retourne 'OK'. En cas de
67 * mauvaises donnees on retourne 400. En cas de echec pendant la
68 * modification du dossier on retourne 'KO'
69 */
70 public function setERPBuildingNumber($data, $id) {
71
72 // verifie que le numero erp existe
73 if (empty($data['numero_erp']) || !is_numeric($data['numero_erp'])) {
74 $this->setMessage(_('Le numero ERP du batiment n\'existe pas ou '.
75 'est dans le mauvais format'));
76 return $this->BAD_DATA;
77 }
78
79 // recupere le dossier depuis de la base
80 $ret = $this->generic($id);
81 if ($ret != $this->OK){
82 return $ret;
83 }
84
85 // stocke la valeur de numero ERP dans l'objet
86 $this->metier_instance->valF['erp_numero_batiment'] = $data['numero_erp'];
87
88 return parent::modifier($this->metier_instance->valF,
89 _('Numero ERP du batiment etait assigne au dossier '.
90 'd\'autorisation '. $id),
91 _('L\'attribution de la numero ERP du batiment pour le dossier '.
92 'd\'autorisation '.$id.' a echoue'));
93 }
94
95
96 /**
97 * Appelle quand ERP voudrait notifier qu'un arrete d'ouverture
98 * d'un batiment ERP au publique est signe.
99 *
100 * @param mixed $data Le tableau contenant les donnees arrivees par
101 * le service web
102 * @param string $id L'identifiant du dossier d'autorisation
103 * @return bool En cas de success on retourne 'OK'. En cas de
104 * mauvaises donnees on retourne 400. En cas de echec pendant la
105 * modification du dossier on retourne 'KO'
106 */
107 public function orderERPOpenedIsSigned($data, $id) {
108
109 // verifie que la date est correcte
110 $date_db = null;
111 if (!$this->timestampValide($data['date_arrete'], $date_db)) {
112 $this->setMessage('Le date n\'est pas correct.');
113 return $this->BAD_DATA;
114 }
115
116 // verifie que le champ erp_ouvert contient un des valeurs permises
117 if (strtolower($data['erp_ouvert']) != 'oui'
118 && strtolower($data['erp_ouvert']) != 'non') {
119 $this->setMessage('La valeur du erp_ouvert n\'est pas valide');
120 return $this->BAD_DATA;
121 }
122
123 // recupere le dossier depuis de la base
124 $ret = $this->generic($id);
125 if ($ret != $this->OK) {
126 return $ret;
127 }
128
129 // stocke les valeurs d'erp_ouvert et d'erp_date_ouverture
130 $this->metier_instance->valF['erp_ouvert'] = $data['erp_ouvert'];
131 $this->metier_instance->valF['erp_date_ouverture'] = $data['date_arrete'];
132
133 return parent::modifier($this->metier_instance->valF,
134 _('Signature de l\'ouverture ERP au publique etait enregistre '.
135 'pour le dossier d\'autorisation '. $id),
136 _('Echec dans l\'enregistrement de la signature de l\'ouverture '.
137 'ERP au publique pour le dossier d\'autorisation '.$id.
138 ' a echoue'));
139 }
140
141
142 /**
143 * Called when the ERP services would like to obtain information
144 * on a dossier.
145 *
146 * @todo Pour l'instant on envoi seulement le contenu de la table
147 * dossier_autorisation, et apres on doit ajouter les evenements,
148 * les contraintes, ...
149 *
150 * @param string $id The ID of the dossier.
151 * @return bool 'OK'
152 */
153 public function consultDossier($id) {
154
155 // recupere le dossier depuis de la base
156 $ret = $this->generic($id);
157 if ($ret != $this->OK) {
158 return $ret;
159 }
160
161 // les donnees du dossier sont recuperation avec success
162 return $this->OK;
163 }
164
165
166 /**
167 * Appelle quand ERP voudrait notifier qu'un arrete d'ouverture
168 * d'un batiment ERP est signe. Ca ne dit pas que le batiment
169 * est ouvert encore.
170 *
171 * @param mixed $data Le tableau contenant les donnees arrivees par
172 * le service web
173 * @param string $id L'identifiant du dossier d'autorisation
174 * @return bool En cas de success on retourne 'OK'. En cas de
175 * mauvaises donnees on retourne 400. En cas de echec pendant la
176 * modification du dossier on retourne 'KO'
177 */
178 public function orderERPDecisionIsSigned($data, $id) {
179
180
181 // verifie que la date est correcte
182 $date_db = null;
183 if (!$this->timestampValide($data['date_arrete'], $date_db)) {
184 $this->setMessage('Le date n\'est pas correct.');
185 return $this->BAD_DATA;
186 }
187
188 // verifie que le champ arrete_effectue contient un des valeurs permises
189 if (strtolower($data['arrete_effectue']) != 'oui'
190 && strtolower($data['arrete_effectue']) != 'non') {
191 $this->setMessage('La valeur du arrete_effectue n\'est pas valide');
192 return $this->BAD_DATA;
193 }
194
195 // recupere le dossier depuis de la base
196 $ret = $this->generic($id);
197 if ($ret != $this->OK) {
198 return $ret;
199 }
200
201 // stocke les valeurs d'erp_ouvert et d'erp_date_ouverture
202 $this->metier_instance->valF['erp_arrete_decision'] = $data['arrete_effectue'];
203 $this->metier_instance->valF['erp_date_arrete_decision'] = $data['date_arrete'];
204
205 return parent::modifier($this->metier_instance->valF,
206 _('Signature de l\'ouverture ERP etait enregistre '.
207 'pour le dossier d\'autorisation '. $id),
208 _('Echec dans l\'enregistrement de la signature de l\'ouverture '.
209 'ERP pour le dossier d\'autorisation '.$id.' a echoue'));
210 }
211
212 /**
213 * Retourne la representation de dossier d'autorisation
214 * comme un tableau.
215 *
216 * Cette methode est utilisee pour recuperer le contenu
217 * d'un dossier d'autorisation apres l'appel de la methode
218 * $this->consultDossier
219 * @return mixed Le contenu du tableau valF d'une instance
220 * de la classe dossier_autorisation
221 */
222 public function getDossierArrayRepresentation() {
223 return $this->metier_instance->valF;
224 }
225
226 }
227
228 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26