/[openfoncier]/trunk/obj/architecte.class.php
ViewVC logotype

Contents of /trunk/obj/architecte.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18407 - (show annotations)
Thu Aug 8 16:18:08 2024 UTC (5 months, 2 weeks ago) by softime
File size: 14516 byte(s)
chore(branch): fusion de la branche d'intégration 6.6.0-develop dans le trunk

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("&nbsp;");
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\">&nbsp;->&nbsp;".$this->getVal($this->clePrimaire)."&nbsp;".$this->getVal('prenom')."&nbsp;".$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

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26