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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 838 - (show annotations)
Tue Nov 27 12:03:05 2012 UTC (12 years, 2 months ago) by nhaye
File size: 14687 byte(s)
Finalisation de l'ajout/modification/suppression/visualisation des demandeurs dans le formulaire de demande :
 - amélioration de la synthèse des demandeurs (obj/demandeur.class.php)
 - modification de la gestion des boutons d'ajout de demandeurs (obj/demande.class.php, app/js/script.js, app/afficher_synthese_demandeur.view.php)
 - ajout de fonctions JS permettant la gestion de l'affichage des demandeurs
 - modification de la detection de modification des demandeurs lors de la validation du formulaire de demande (obj/demande.class.php)

1 <?php
2 //$Id$
3 //gen openMairie le 08/11/2012 14:00
4
5 require_once ("../gen/obj/demande.class.php");
6
7 class demande extends demande_gen {
8
9 var $valIdDemandeur = array("petitionnaire_principal" => "",
10 "delegataire" => "",
11 "petitionnaire" => array());
12 var $postedIdDemandeur = array("petitionnaire_principal" => "",
13 "delegataire" => "",
14 "petitionnaire" => array());
15
16 function demande($id,&$db,$debug) {
17 $this->constructeur($id,$db,$debug);
18 }// fin constructeur
19
20 /*
21 * La date du jour par défaut dans le champs date_demande
22 * Put the date of the day by default into the field date_demande
23 */
24 function setVal(&$form, $maj, $validation, &$db) {
25 if($maj == 0) {
26 $form->setVal("date_demande",date('d/m/Y'));
27 }
28 }
29
30 /**
31 * Méthode de verification du contenu
32 */
33 function verifier($val, &$db, $DEBUG) {
34 parent::verifier($val, $db, $DEBUG);
35 $this->getPostedValues();
36 if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR
37 empty($this->postedIdDemandeur["petitionnaire_principal"])) {
38 $this->correct = false;
39 $this->addToMessage("La saisie d'un petitionnaire principal est obligatoire.");
40 $this->valIdDemandeur=$this->postedIdDemandeur;
41 }
42 }
43 /*
44 * Ajout du fielset
45 * Add fieldset
46 */
47 function setLayout(&$form, $maj){
48 if ( $maj < 2 OR $maj == 3 ) {
49
50 //Champs sur lequel s'ouvre le fieldset
51 $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type col_8");
52
53 $form->setFieldset('dossier_autorisation_type_detaille','D'
54 ,_('Type de dossier/demande'));
55 $form->setFieldset('demande_type','F','');
56
57 $form->setBloc('demande_type','F');
58
59 $form->setBloc('date_demande','D',"","col_4 demande_hidden_bloc");
60 $form->setFieldset('date_demande','D',_('Date de la demande'));
61 $form->setFieldset('date_demande','F','');
62 $form->setBloc('date_demande','F');
63
64 $form->setBloc('terrain_references_cadastrales','D',"",
65 "localisation col_12 demande_hidden_bloc");
66 $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
67 $form->setFieldset('terrain_superficie','F','');
68 $form->setBloc('terrain_superficie','F');
69
70 $form->setBloc('nombre_lots','D',"","lots col_12 demande_hidden_bloc");
71 $form->setFieldset('nombre_lots','D',_('Nombre de lots'));
72 $form->setFieldset('nombre_lots','F','');
73 $form->setBloc('nombre_lots','F');
74 }
75 }
76
77 /*
78 * Ajoute des actions sur les deux premiers select
79 * Add actions on the two first select
80 */
81 function setOnchange(&$form,$maj){
82 parent::setOnchange($form,$maj);
83 $form->setOnchange("dossier_autorisation_type_detaille","changeDemandeType();");
84 $form->setOnchange("demande_type","showFormsDemande();");
85 }
86
87 /*
88 * Cache le champ terrain_references_cadastrales
89 * Hide the fiels terrain_references_cadastrales
90 */
91 function setType(&$form,$maj) {
92 parent::setType($form,$maj);
93
94 $form->setType('dossier_instruction', 'hidden');
95 $form->setType('dossier_autorisation', 'hidden');
96 }
97
98 /**
99 * Ajout des délégataires et pétitionnaires
100 **/
101 function triggerAjouterApres($id, &$db, $val, $DEBUG){
102 $this->listeDemandeur();
103 $this->insertLinkDemandeDemandeur($db, $DEBUG);
104 $this->valIdDemandeur=$this->postedIdDemandeur;
105
106 }
107 function triggerModifierApres($id, &$db, $val, $DEBUG){
108 $this->listeDemandeur();
109 $this->insertLinkDemandeDemandeur($db, $DEBUG);
110 $this->valIdDemandeur=$this->postedIdDemandeur;
111
112 }
113
114 /**
115 * Gestion des liens entre la demande et les demendeurs recement ajoutés
116 **/
117 function insertLinkDemandeDemandeur($db, $DEBUG) {
118 //
119 require_once "../obj/lien_demande_demandeur.class.php";
120
121 // Comparaison de l'id petitionnaire principal
122 if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
123 !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
124 $this->valIdDemandeur['petitionnaire_principal'] !=
125 $this->postedIdDemandeur['petitionnaire_principal']) {
126 // Ajout du nouveau lien
127 $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
128 if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
129 $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
130 }
131 }
132
133 // Comparaison du delegataire
134 if(isset($this->postedIdDemandeur['delegataire']) AND
135 !empty($this->postedIdDemandeur['delegataire']) AND
136 $this->valIdDemandeur['delegataire'] !=
137 $this->postedIdDemandeur['delegataire']) {
138 // Ajout du nouveau lien
139 $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
140 if(!empty($this->valIdDemandeur['delegataire'])) {
141 $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
142 }
143 }
144
145 // Comparaison des different petitionnaires
146 if(isset($this->postedIdDemandeur['petitionnaire'])) {
147 // Suppression des liens non valides
148 foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
149 if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
150 $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
151 }
152 }
153 // Ajout des nouveaux liens
154 foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
155 if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
156 $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
157 }
158 }
159 }
160 }
161
162
163 /**
164 * Fonction permettant d'ajouter un lien
165 * entre la table demande et demandeur
166 **/
167 function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
168 $lienAjout = new lien_demande_demandeur(
169 "]",
170 $db,
171 $DEBUG);
172 $lien = array('lien_demande_demandeur' => "",
173 'petitionnaire_principal' => (($principal)?"t":"f"),
174 'demande' => $this->valF['demande'],
175 'demandeur' => $id);
176 $lienAjout->ajouter($lien, $db, $DEBUG);
177 $lienAjout->__destruct();
178 }
179
180 /**
181 * Fonction permettant de supprimer un lien
182 * entre la table demande et demandeur
183 **/
184 function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
185 // Suppression
186 $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
187 "WHERE demande=".$this->valF['demande'].
188 " AND demandeur=".$id;
189 // Execution de la requete de suppression de l'objet
190 $res = $db->query($sql);
191 // Logger
192 $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
193 $this->f->isDatabaseError();
194
195 }
196
197 function isLinkDemandeDemandeurExist($idDemandeur) {
198 $sql = "SELECT count(*)
199 FROM ".DB_PREFIXE."lien_demande_demandeur
200 WHERE demande = ".$this->valF['demande'].
201 "AND demandeur = ".$idDemandeur;
202 $count = $this->f->db->getOne($sql);
203 $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
204 $this->f->isDatabaseError($count);
205 if ($count === 0) {
206 return false;
207 } else {
208 return true;
209 }
210
211 }
212
213 /**
214 * Methode de recupération des valeurs postées
215 **/
216 function getPostedValues() {
217 // Récupération des demandeurs dans POST
218 if (isset($_POST['petitionnaire_principal']) OR
219 isset($_POST['delegataire']) OR
220 isset($_POST['petitionnaire'])) {
221 if( isset($_POST['petitionnaire_principal']) AND
222 !empty($_POST['petitionnaire_principal'])) {
223 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
224 }
225 if( isset($_POST['delegataire']) AND
226 !empty($_POST['delegataire'])) {
227 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
228 }
229 if( isset($_POST['petitionnaire']) AND
230 !empty($_POST['petitionnaire'])) {
231 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
232 }
233 }
234 }
235 /**
236 * Méthode permettant de récupérer les id des demandeur lié à la demande
237 **/
238 function listeDemandeur() {
239 // Récupération des demandeurs de la base
240 $sql = "SELECT demandeur.demandeur,
241 demandeur.type_demandeur,
242 lien_demande_demandeur.petitionnaire_principal
243 FROM ".DB_PREFIXE."lien_demande_demandeur
244 INNER JOIN ".DB_PREFIXE."demandeur
245 ON demandeur.demandeur=lien_demande_demandeur.demandeur
246 WHERE demande = ".$this->val[array_search('demande', $this->champs)];
247 $res = $this->f->db->query($sql);
248 $this->f->addToLog("listeDemandeur() : ".$sql);
249 $this->f->isDatabaseError($res);
250 // Stoquage du résultat dans un tableau
251 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
252 if ($row['petitionnaire_principal'] == 't' AND
253 $row['type_demandeur']=="petitionnaire") {
254 $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
255 } elseif ($row['petitionnaire_principal'] == 'f' AND
256 $row['type_demandeur']=="petitionnaire"){
257 $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
258 } elseif ($row['type_demandeur']=="delegataire"){
259 $this->valIdDemandeur['delegataire']=$row['demandeur'];
260 }
261 }
262 }
263
264 /**
265 * Ajout de la liste des demandeurs
266 */
267 function formSpecificContent($maj) {
268 if(!$this->correct) {
269 $this->listeDemandeur();
270 }
271 if($maj < 2 AND !$this->correct) {
272 $linkable = true;
273 } else {
274 $linkable = false;
275 }
276 // Conteneur de la listes des demandeurs
277 echo "<div class=\"demande_hidden_bloc col_12\">";
278 echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
279 echo " <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
280 ._("Petitionnaire")."</legend>";
281 // Si des demandeurs sont liés à la demande
282 require_once "../obj/petitionnaire.class.php";
283 require_once "../obj/delegataire.class.php";
284
285 // Affichage du bloc pétitionnaire principal / délégataire
286 // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
287 echo "<div id=\"petitionnaire_principal_delegataire\">";
288 // Affichage de la synthèse
289 if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
290 !empty($this->valIdDemandeur["petitionnaire_principal"])) {
291 $demandeur = new petitionnaire(
292 $this->valIdDemandeur["petitionnaire_principal"],
293 $this->f->db,false);
294 $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
295 $demandeur -> __destruct();
296 }
297 // Si en édition de formulaire
298 if($maj < 2 AND $this->correct != true) {
299 // Bouton d'ajout du pétitionnaire principal
300 // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
301 echo "<input id=\"add_petitionnaire_principal\"
302 class=\"ui-button ui-widget ui-state-default ui-corner-all\"
303 type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
304 echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
305 // Bouton d'ajout du delegataire
306 // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
307 echo "<input id=\"add_delegataire\"
308 class=\"ui-button ui-widget ui-state-default ui-corner-all\"
309 type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
310 }
311 // Affichage de la synthèse
312 if (isset ($this->valIdDemandeur["delegataire"]) AND
313 !empty($this->valIdDemandeur["delegataire"])) {
314 $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
315 $this->f->db,false);
316 $demandeur -> afficherSynthese("delegataire", $linkable);
317 $demandeur -> __destruct();
318 }
319
320 echo "</div>";
321
322 // Bloc des pétitionnaires secondaires
323 // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
324 echo "<div id=\"listePetitionnaires\">";
325
326 // Affichage de la synthèse
327 if (isset ($this->valIdDemandeur["petitionnaire"]) AND
328 !empty($this->valIdDemandeur["petitionnaire"])) {
329
330 foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
331 $demandeur = new petitionnaire($petitionnaire,
332 $this->f->db,false);
333 $demandeur -> afficherSynthese("petitionnaire", $linkable);
334 $demandeur -> __destruct();
335 }
336
337 }
338 if ($maj < 2 AND !$this->correct) {
339 // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
340 echo "<input id=\"add_petitionnaire\"
341 class=\"ui-button ui-widget ui-state-default ui-corner-all\"
342 type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
343 }
344 echo "</div>";
345 echo "</fieldset>";
346 echo "</div>";
347 }
348
349 }// fin classe
350 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26