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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 838 - (hide 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 vpihour 632 <?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 nhaye 838 var $valIdDemandeur = array("petitionnaire_principal" => "",
10     "delegataire" => "",
11     "petitionnaire" => array());
12     var $postedIdDemandeur = array("petitionnaire_principal" => "",
13     "delegataire" => "",
14     "petitionnaire" => array());
15 nhaye 807
16 vpihour 632 function demande($id,&$db,$debug) {
17     $this->constructeur($id,$db,$debug);
18     }// fin constructeur
19 vpihour 651
20 vpihour 799 /*
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 vpihour 635 function setVal(&$form, $maj, $validation, &$db) {
25     if($maj == 0) {
26     $form->setVal("date_demande",date('d/m/Y'));
27     }
28     }
29    
30 nhaye 838 /**
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 vpihour 799 /*
44     * Ajout du fielset
45     * Add fieldset
46     */
47 vpihour 635 function setLayout(&$form, $maj){
48     if ( $maj < 2 OR $maj == 3 ) {
49    
50     //Champs sur lequel s'ouvre le fieldset
51 nhaye 807 $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 vpihour 635 $form->setBloc('date_demande','F');
63    
64 nhaye 807 $form->setBloc('terrain_references_cadastrales','D',"",
65     "localisation col_12 demande_hidden_bloc");
66 vpihour 693 $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
67     $form->setFieldset('terrain_superficie','F','');
68 vpihour 635 $form->setBloc('terrain_superficie','F');
69 vpihour 676
70 nhaye 807 $form->setBloc('nombre_lots','D',"","lots col_12 demande_hidden_bloc");
71 vpihour 693 $form->setFieldset('nombre_lots','D',_('Nombre de lots'));
72     $form->setFieldset('nombre_lots','F','');
73 vpihour 676 $form->setBloc('nombre_lots','F');
74 vpihour 635 }
75     }
76 vpihour 641
77 vpihour 799 /*
78     * Ajoute des actions sur les deux premiers select
79     * Add actions on the two first select
80     */
81 vpihour 641 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 vpihour 635
87 vpihour 799 /*
88     * Cache le champ terrain_references_cadastrales
89     * Hide the fiels terrain_references_cadastrales
90     */
91 vpihour 651 function setType(&$form,$maj) {
92     parent::setType($form,$maj);
93    
94 vpihour 689 $form->setType('dossier_instruction', 'hidden');
95     $form->setType('dossier_autorisation', 'hidden');
96 vpihour 651 }
97 vpihour 676
98 nhaye 807 /**
99 nhaye 828 * Ajout des délégataires et pétitionnaires
100 nhaye 807 **/
101 nhaye 828 function triggerAjouterApres($id, &$db, $val, $DEBUG){
102 nhaye 838 $this->listeDemandeur();
103 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
104 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
105 nhaye 828
106     }
107     function triggerModifierApres($id, &$db, $val, $DEBUG){
108 nhaye 838 $this->listeDemandeur();
109 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
110 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
111 nhaye 828
112     }
113    
114     /**
115 nhaye 838 * Gestion des liens entre la demande et les demendeurs recement ajoutés
116 nhaye 828 **/
117     function insertLinkDemandeDemandeur($db, $DEBUG) {
118     //
119     require_once "../obj/lien_demande_demandeur.class.php";
120    
121 nhaye 838 // 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 nhaye 807 }
131 nhaye 828 }
132 nhaye 838
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 nhaye 828 } else {
208 nhaye 838 return true;
209 nhaye 828 }
210 nhaye 838
211 nhaye 828 }
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 nhaye 838 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
224 nhaye 807 }
225 nhaye 828 if( isset($_POST['delegataire']) AND
226     !empty($_POST['delegataire'])) {
227 nhaye 838 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
228 nhaye 828 }
229     if( isset($_POST['petitionnaire']) AND
230     !empty($_POST['petitionnaire'])) {
231 nhaye 838 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
232 nhaye 828 }
233 nhaye 807 }
234 vpihour 676 }
235 nhaye 828 /**
236     * Méthode permettant de récupérer les id des demandeur lié à la demande
237     **/
238 nhaye 838 function listeDemandeur() {
239 nhaye 828 // 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 nhaye 838 $this->f->addToLog("listeDemandeur() : ".$sql);
249 nhaye 828 $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 nhaye 807
264     /**
265     * Ajout de la liste des demandeurs
266     */
267     function formSpecificContent($maj) {
268 nhaye 838 if(!$this->correct) {
269     $this->listeDemandeur();
270     }
271     if($maj < 2 AND !$this->correct) {
272     $linkable = true;
273     } else {
274     $linkable = false;
275     }
276 nhaye 807 // Conteneur de la listes des demandeurs
277 nhaye 808 echo "<div class=\"demande_hidden_bloc col_12\">";
278 nhaye 807 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 nhaye 828 require_once "../obj/petitionnaire.class.php";
283     require_once "../obj/delegataire.class.php";
284 nhaye 807
285 nhaye 828 // Affichage du bloc pétitionnaire principal / délégataire
286 nhaye 838 // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
287 nhaye 828 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 nhaye 838 $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
295 nhaye 828 $demandeur -> __destruct();
296 nhaye 807 }
297 nhaye 838 // 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 nhaye 828 // 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 nhaye 838 $demandeur -> afficherSynthese("delegataire", $linkable);
317 nhaye 828 $demandeur -> __destruct();
318     }
319 nhaye 838
320 nhaye 828 echo "</div>";
321    
322     // Bloc des pétitionnaires secondaires
323 nhaye 838 // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
324 nhaye 828 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 nhaye 838 $demandeur -> afficherSynthese("petitionnaire", $linkable);
334 nhaye 828 $demandeur -> __destruct();
335     }
336    
337     }
338 nhaye 838 if ($maj < 2 AND !$this->correct) {
339     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
340 nhaye 828 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 nhaye 807 echo "</fieldset>";
346     echo "</div>";
347     }
348    
349 vpihour 632 }// fin classe
350     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26