1 |
<?php |
2 |
/** |
3 |
* DBFORM - 'architecte' - Surcharge gen. |
4 |
* |
5 |
* Ce script permet de définir la classe 'architecte'. |
6 |
* |
7 |
* @package openads |
8 |
* @version SVN : $Id$ |
9 |
*/ |
10 |
|
11 |
require_once "../gen/obj/architecte.class.php"; |
12 |
|
13 |
class architecte extends architecte_gen { |
14 |
|
15 |
// {{{ Gestion de la confidentialité des données spécifiques |
16 |
|
17 |
/** |
18 |
* Définition des actions disponibles sur la classe. |
19 |
* |
20 |
* @return void |
21 |
*/ |
22 |
function init_class_actions() { |
23 |
|
24 |
parent::init_class_actions(); |
25 |
|
26 |
// ACTION - 001 - modifier |
27 |
// Modifie la condition et le libellé du bouton modifier |
28 |
$this->class_actions[1]["condition"] = array("is_not_frequent"); |
29 |
|
30 |
// ACTION - 100 - non_frequent |
31 |
// Finalise l'enregistrement |
32 |
$this->class_actions[100] = array( |
33 |
"identifier" => "non_frequent", |
34 |
"portlet" => array( |
35 |
"type" => "action-direct", |
36 |
"libelle" => _("Marquer non frequent"), |
37 |
"order" => 100, |
38 |
"class" => "radiation-16", |
39 |
), |
40 |
"view" => "formulaire", |
41 |
"method" => "set_non_frequent", |
42 |
"permission_suffix" => "modifier_frequent", |
43 |
"condition" => array("is_frequent"), |
44 |
); |
45 |
|
46 |
// ACTION - 110 - recuperer_frequent |
47 |
// Finalise l'enregistrement |
48 |
$this->class_actions[110] = array( |
49 |
"identifier" => "recuperer_frequent", |
50 |
"view" => "formulaire", |
51 |
"method" => "modifier", |
52 |
"button" => "valider", |
53 |
"permission_suffix" => "modifier", |
54 |
); |
55 |
} |
56 |
|
57 |
//}}} |
58 |
|
59 |
/** |
60 |
* Clause select pour la requête de sélection des données de l'enregistrement. |
61 |
* |
62 |
* @return array |
63 |
*/ |
64 |
function get_var_sql_forminc__champs() { |
65 |
return array( |
66 |
"architecte", |
67 |
"nom", |
68 |
"prenom", |
69 |
"adresse1", |
70 |
"adresse2", |
71 |
"lieu_dit", |
72 |
"boite_postale", |
73 |
"cp", |
74 |
"cedex", |
75 |
"ville", |
76 |
"pays", |
77 |
"inscription", |
78 |
"conseil_regional", |
79 |
"nom_cabinet", |
80 |
"telephone", |
81 |
"fax", |
82 |
"email", |
83 |
"note", |
84 |
"titre_obt_diplo_spec", |
85 |
"date_obt_diplo_spec", |
86 |
"lieu_obt_diplo_spec", |
87 |
"frequent", |
88 |
); |
89 |
} |
90 |
|
91 |
/** |
92 |
* Retourne true si pétitionnaire frequent false sinon. |
93 |
* |
94 |
* @return boolean retourne true si frequent false sinon. |
95 |
*/ |
96 |
function is_frequent() { |
97 |
if($this->getVal("frequent") == 't') { |
98 |
return true; |
99 |
} |
100 |
return false; |
101 |
} |
102 |
|
103 |
/** |
104 |
* Retourne false si pétitionnaire frequent true sinon. |
105 |
* |
106 |
* @return boolean retourne false si frequent true sinon. |
107 |
*/ |
108 |
function is_not_frequent() { |
109 |
return !$this->is_frequent(); |
110 |
} |
111 |
|
112 |
/** |
113 |
* TREATMENT - set_non_frequent. |
114 |
* |
115 |
* Cette methode permet de passer le pétitionnaire en non fréquent. |
116 |
* |
117 |
* @return boolean true si maj effectué false sinon |
118 |
*/ |
119 |
function set_non_frequent($val) { |
120 |
// Cette méthode permet d'exécuter une routine en début des méthodes |
121 |
// dites de TREATMENT. |
122 |
$this->begin_treatment(__METHOD__); |
123 |
|
124 |
if($this->getVal("frequent") == 't') { |
125 |
$this->correct = true; |
126 |
$valF = array(); |
127 |
$valF["frequent"] = false; |
128 |
|
129 |
$res = $this->f->db->autoExecute( |
130 |
DB_PREFIXE.$this->table, |
131 |
$valF, |
132 |
DB_AUTOQUERY_UPDATE, |
133 |
$this->clePrimaire."=".$this->getVal($this->clePrimaire) |
134 |
); |
135 |
if ($this->f->isDatabaseError($res, true)) { |
136 |
// Appel de la methode de recuperation des erreurs |
137 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
138 |
$this->correct = false; |
139 |
// Termine le traitement |
140 |
return $this->end_treatment(__METHOD__, false); |
141 |
} else { |
142 |
$this->addToMessage(_("Mise a jour effectuee avec succes")); |
143 |
return $this->end_treatment(__METHOD__, true); |
144 |
} |
145 |
|
146 |
} else { |
147 |
$this->addToMessage(_("Element deja frequent")); |
148 |
} |
149 |
|
150 |
// Termine le traitement |
151 |
return $this->end_treatment(__METHOD__, false); |
152 |
} |
153 |
|
154 |
/** |
155 |
* Ajout des blocs pour la gestion des architectes fréquents |
156 |
*/ |
157 |
function setType(&$form, $maj) { |
158 |
parent::setType($form, $maj); |
159 |
if ($maj < 2) { //ajouter et modifier [add and modify] |
160 |
$form->setType('email', 'mail'); |
161 |
} |
162 |
// MODE recup_frequent |
163 |
if ($maj == 110) { |
164 |
//Affichage d'un message d'information |
165 |
$this->addToMessage(_("Architecte frequent non modifiable")); |
166 |
$form->setType("architecte", "hiddenstatic"); |
167 |
$form->setType("nom", "static"); |
168 |
$form->setType("prenom", "static"); |
169 |
$form->setType("adresse1", "static"); |
170 |
$form->setType("adresse2", "static"); |
171 |
$form->setType("lieu_dit", "static"); |
172 |
$form->setType("boite_postale", "static"); |
173 |
$form->setType("cp", "static"); |
174 |
$form->setType("cedex", "static"); |
175 |
$form->setType("ville", "static"); |
176 |
$form->setType("pays", "static"); |
177 |
$form->setType("inscription", "static"); |
178 |
$form->setType("telephone", "static"); |
179 |
$form->setType("fax", "static"); |
180 |
$form->setType("email", "static"); |
181 |
$form->setType("note", "static"); |
182 |
$form->setType("frequent", "checkboxstatic"); |
183 |
$form->setType("nom_cabinet", "static"); |
184 |
$form->setType("conseil_regional", "static"); |
185 |
$form->setType("titre_obt_diplo_spec", "textareastatic"); |
186 |
$form->setType("date_obt_diplo_spec", "datestatic"); |
187 |
$form->setType("lieu_obt_diplo_spec", "textareastatic"); |
188 |
|
189 |
} |
190 |
// Pour les actions appelée en POST en Ajax, il est nécessaire de |
191 |
// qualifier le type de chaque champs (Si le champ n'est pas défini un |
192 |
// PHP Notice: Undefined index dans core/om_formulaire.class.php est |
193 |
// levé). On sélectionne donc les actions de portlet de type |
194 |
// action-direct ou assimilé et les actions spécifiques avec le même |
195 |
// comportement. |
196 |
if ($this->get_action_param($maj, "portlet_type") == "action-direct" |
197 |
|| $this->get_action_param($maj, "portlet_type") == "action-direct-with-confirmation") { |
198 |
// |
199 |
foreach ($this->champs as $key => $value) { |
200 |
$form->setType($value, 'hidden'); |
201 |
} |
202 |
$form->setType($this->clePrimaire, "hiddenstatic"); |
203 |
} |
204 |
} |
205 |
|
206 |
function setLayout(&$form, $maj){ |
207 |
|
208 |
$form->setBloc('architecte','D',"", "alignForm"); |
209 |
// |
210 |
$form->setBloc('architecte','DF',"", "group"); |
211 |
// |
212 |
$form->setBloc('architecte','F'); |
213 |
|
214 |
if($this->getVal('frequent') != 't' || $maj == 0 ) { |
215 |
$form->setBloc('nom','D',"","group alignForm civilite_architecte ".($maj<2 ? "search_fields ":"")); |
216 |
} else { |
217 |
$form->setBloc('nom','D',"","group alignForm"); |
218 |
} |
219 |
|
220 |
//$form->setBloc('nom','D',"", "group civilite_architecte ".($maj<2 ? "search_fields":"")); |
221 |
$form->setBloc('prenom','F'); |
222 |
|
223 |
$form->setBloc('adresse1','D',"", "adresse_architecte alignForm"); |
224 |
// |
225 |
$form->setBloc('adresse1','DF',"", "group"); |
226 |
$form->setBloc('adresse2','DF',"", "group"); |
227 |
$form->setBloc('lieu_dit','DF',"", "group"); |
228 |
$form->setBloc('boite_postale','DF',"", "group"); |
229 |
$form->setBloc('cp','DF',"", "group"); |
230 |
$form->setBloc('cedex','DF',"", "group"); |
231 |
$form->setBloc('ville','DF',"", "group"); |
232 |
$form->setBloc('pays','DF',"", "group"); |
233 |
// |
234 |
$form->setBloc('pays','F'); |
235 |
|
236 |
$form->setBloc('inscription','D',"", "complement_architecte alignForm"); |
237 |
// |
238 |
$form->setBloc('inscription','DF',"", "group"); |
239 |
$form->setBloc('conseil_regional','DF',"", "group"); |
240 |
$form->setBloc('nom_cabinet','DF',"", "group"); |
241 |
$form->setBloc('telephone','DF',"", "group"); |
242 |
$form->setBloc('fax','DF',"", "group"); |
243 |
$form->setBloc('email','DF',"", "group"); |
244 |
$form->setBloc('note','DF',"", "group"); |
245 |
// |
246 |
$form->setBloc('note','F'); |
247 |
|
248 |
$form->setBloc('titre_obt_diplo_spec', 'D', __("Obtention du diplôme de spécialisation et d’approfondissement en architecture mention architecture et patrimoine ou équivalent"), "alignForm"); |
249 |
$form->setBloc('lieu_obt_diplo_spec', 'F'); |
250 |
} |
251 |
|
252 |
/** |
253 |
* SETTER_FORM - setVal (setVal). |
254 |
* |
255 |
* @return void |
256 |
*/ |
257 |
function setVal(&$form, $maj, $validation, &$dnu1 = null, $dnu2 = null) { |
258 |
parent::setVal($form, $maj, $validation); |
259 |
// |
260 |
$form->setVal("pays", "France"); |
261 |
} |
262 |
|
263 |
function setLib(&$form,$maj) { |
264 |
// |
265 |
parent::setLib($form, $maj); |
266 |
$form->setLib('frequent',"<span class=\"om-form-button copy-16\" |
267 |
title=\""._("Sauvegarder cet architecte")."\">"._("Sauvegarder (architecte frequent)")."</span>"); |
268 |
|
269 |
// Dans le cas d’une intervention sur un immeuble classé au titre des monuments historiques |
270 |
$form->setLib('titre_obt_diplo_spec', __("Titre")); |
271 |
$form->setLib('date_obt_diplo_spec', __("Date")); |
272 |
$form->setLib('lieu_obt_diplo_spec', __("Établissement / ville / pays")); |
273 |
|
274 |
// |
275 |
$form->setLib('inscription', __("Numéro de récépissé de déclaration à l'ordre des architectes")); |
276 |
$form->setLib('conseil_regional', __("Conseil régional de l'ordre de")); |
277 |
} |
278 |
|
279 |
/** |
280 |
* Ajout d'un champs caché permettant de linker l'id du demandeur |
281 |
* recement ajouté |
282 |
**/ |
283 |
function sousFormSpecificContent($maj) { |
284 |
|
285 |
$id_architecte = $this->getVal("architecte"); |
286 |
if(isset($this->valF["architecte"]) AND !empty($this->valF["architecte"])) { |
287 |
echo "<input id=\"id_retour\" name=\"idRetour\" type=\"hidden\" value=\"". |
288 |
$this->valF["architecte"]."\" />"; |
289 |
} elseif(isset($id_architecte) AND !empty($id_architecte) AND $maj == 110) { |
290 |
echo "<input id=\"id_retour\" name=\"idRetour\" type=\"hidden\" value=\"". |
291 |
$this->getVal("architecte")."\" />"; |
292 |
} |
293 |
} |
294 |
|
295 |
/** |
296 |
* Synthèse de l'architecte pour le formulaire des données techniques |
297 |
*/ |
298 |
function afficherSynthese() { |
299 |
|
300 |
$nom = $this->getVal('nom'); |
301 |
$prenom = $this->getVal('prenom'); |
302 |
|
303 |
//Affichage du bouton pour ajout si dans un objet qui n'est pas en BDD |
304 |
if ( $this->getParameter("maj") === 0 ){ |
305 |
printf ("<span class=\"om-form-button add-16 add_architecte\" |
306 |
onclick=\"popupIt('architecte', |
307 |
'".OM_ROUTE_SOUSFORM."&obj=architecte&action=0'+ |
308 |
'&retourformulaire=donnees_techniques', 860, 'auto', |
309 |
getObjId, 'architecte');\"". |
310 |
">"); |
311 |
printf(_("Saisir un(e) architecte")); |
312 |
} |
313 |
//Affichage du bouton de suppression sinon |
314 |
else { |
315 |
// |
316 |
printf ("<span class=\"om-form-button delete-16 add_architecte\" |
317 |
onclick=\"setDataFrequent('','architecte');\"". |
318 |
"title=\""); |
319 |
printf(_("Supprimer")); |
320 |
printf("\">"); |
321 |
printf(" "); |
322 |
printf("</span>"); |
323 |
// |
324 |
printf ("<span class=\"om-form-button edit-16 add_architecte\" |
325 |
onclick=\"popupIt('architecte', |
326 |
'".OM_ROUTE_SOUSFORM."&obj=architecte&action=1&idx=".$this->getVal($this->clePrimaire)."'+ |
327 |
'&retourformulaire=donnees_techniques', 860, 'auto', |
328 |
getObjId, '".$this->clePrimaire."');\"". |
329 |
"title=\""); |
330 |
printf(_("editer")); |
331 |
printf("\">"); |
332 |
printf("%s %s",$nom,$prenom); |
333 |
} |
334 |
printf ("</span>"); |
335 |
} |
336 |
|
337 |
/** |
338 |
* Indique si la redirection vers le lien de retour est activée ou non. |
339 |
* |
340 |
* L'objectif de cette méthode est de permettre d'activer ou de désactiver |
341 |
* la redirection dans certains contextes. |
342 |
* |
343 |
* @return boolean |
344 |
*/ |
345 |
function is_back_link_redirect_activated() { |
346 |
// |
347 |
if ($this->getParameter("retourformulaire") === 'donnees_techniques') { |
348 |
// |
349 |
return false; |
350 |
} |
351 |
|
352 |
// |
353 |
return true; |
354 |
} |
355 |
|
356 |
/** |
357 |
* Permet de modifier le fil d'Ariane depuis l'objet pour un formulaire |
358 |
* @param string $ent Fil d'Ariane récupéréré |
359 |
* @return Fil d'Ariane |
360 |
*/ |
361 |
function getFormTitle($ent) { |
362 |
// |
363 |
$out = $ent; |
364 |
if ($this->getVal($this->clePrimaire) != "") { |
365 |
$out .= "<span class=\"libelle\"> -> ".$this->getVal($this->clePrimaire)." ".$this->getVal('prenom')." ".$this->getVal('nom')."</span>"; |
366 |
} |
367 |
return $out; |
368 |
} |
369 |
|
370 |
public function view_json_data() { |
371 |
$this->checkAccessibility(); |
372 |
$this->f->disableLog(); |
373 |
$view = $this->get_json_data(); |
374 |
printf(json_encode($view)); |
375 |
} |
376 |
|
377 |
public function get_json_data() { |
378 |
$val = array_combine($this->champs, $this->val); |
379 |
foreach ($val as $key => $value) { |
380 |
$val[$key] = strip_tags($value); |
381 |
} |
382 |
return $val; |
383 |
} |
384 |
|
385 |
/** |
386 |
* Permet de modifier l'affichage des boutons dans le sousformulaire. |
387 |
* @param string $datasubmit Données a transmettre |
388 |
* @param integer $maj Mode du formulaire |
389 |
* @param array $val Valeur du formulaire |
390 |
*/ |
391 |
function boutonsousformulaire($datasubmit, $maj, $val = null) { |
392 |
// Si on est dans le cas de la récupération d'un architecte fréquent on n'affiche que le |
393 |
// bouton "retour" (le bouton "valider" est problématique car il supprime les données de l'architecte fréquent |
394 |
// dans le formulaire et en bdd) |
395 |
if($maj == 110){ |
396 |
return null; |
397 |
} |
398 |
// Sinon on laisse le comportement normal (affichage des boutons "ajouter" + "retour") |
399 |
$this->bouton($maj); |
400 |
} |
401 |
|
402 |
}// fin classe |
403 |
|
404 |
|