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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 842 - (hide annotations)
Tue Nov 27 14:50:59 2012 UTC (12 years, 2 months ago) by nhaye
File size: 14900 byte(s)
iCorrection d'un bug lors de l'ajout d'une demande,
ajout de commentaires

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     $this->insertLinkDemandeDemandeur($db, $DEBUG);
103 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
104 nhaye 828
105     }
106     function triggerModifierApres($id, &$db, $val, $DEBUG){
107 nhaye 838 $this->listeDemandeur();
108 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
109 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
110 nhaye 828
111     }
112    
113     /**
114 nhaye 838 * Gestion des liens entre la demande et les demendeurs recement ajoutés
115 nhaye 828 **/
116     function insertLinkDemandeDemandeur($db, $DEBUG) {
117     //
118     require_once "../obj/lien_demande_demandeur.class.php";
119    
120 nhaye 838 // Comparaison de l'id petitionnaire principal
121     if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
122     !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
123     $this->valIdDemandeur['petitionnaire_principal'] !=
124     $this->postedIdDemandeur['petitionnaire_principal']) {
125     // Ajout du nouveau lien
126     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
127     if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
128     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
129 nhaye 807 }
130 nhaye 828 }
131 nhaye 838
132     // Comparaison du delegataire
133     if(isset($this->postedIdDemandeur['delegataire']) AND
134     !empty($this->postedIdDemandeur['delegataire']) AND
135     $this->valIdDemandeur['delegataire'] !=
136     $this->postedIdDemandeur['delegataire']) {
137     // Ajout du nouveau lien
138     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
139     if(!empty($this->valIdDemandeur['delegataire'])) {
140     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
141     }
142     }
143    
144     // Comparaison des different petitionnaires
145     if(isset($this->postedIdDemandeur['petitionnaire'])) {
146     // Suppression des liens non valides
147     foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
148     if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
149     $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
150     }
151     }
152     // Ajout des nouveaux liens
153     foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
154     if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
155     $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
156     }
157     }
158     }
159     }
160    
161    
162     /**
163     * Fonction permettant d'ajouter un lien
164     * entre la table demande et demandeur
165     **/
166     function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
167     $lienAjout = new lien_demande_demandeur(
168     "]",
169     $db,
170     $DEBUG);
171     $lien = array('lien_demande_demandeur' => "",
172     'petitionnaire_principal' => (($principal)?"t":"f"),
173     'demande' => $this->valF['demande'],
174     'demandeur' => $id);
175     $lienAjout->ajouter($lien, $db, $DEBUG);
176     $lienAjout->__destruct();
177     }
178    
179     /**
180     * Fonction permettant de supprimer un lien
181     * entre la table demande et demandeur
182     **/
183     function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
184     // Suppression
185     $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
186     "WHERE demande=".$this->valF['demande'].
187     " AND demandeur=".$id;
188     // Execution de la requete de suppression de l'objet
189     $res = $db->query($sql);
190     // Logger
191     $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
192     $this->f->isDatabaseError();
193    
194     }
195    
196     function isLinkDemandeDemandeurExist($idDemandeur) {
197     $sql = "SELECT count(*)
198     FROM ".DB_PREFIXE."lien_demande_demandeur
199     WHERE demande = ".$this->valF['demande'].
200     "AND demandeur = ".$idDemandeur;
201     $count = $this->f->db->getOne($sql);
202     $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
203     $this->f->isDatabaseError($count);
204     if ($count === 0) {
205     return false;
206 nhaye 828 } else {
207 nhaye 838 return true;
208 nhaye 828 }
209 nhaye 838
210 nhaye 828 }
211    
212     /**
213     * Methode de recupération des valeurs postées
214     **/
215     function getPostedValues() {
216     // Récupération des demandeurs dans POST
217     if (isset($_POST['petitionnaire_principal']) OR
218     isset($_POST['delegataire']) OR
219     isset($_POST['petitionnaire'])) {
220     if( isset($_POST['petitionnaire_principal']) AND
221     !empty($_POST['petitionnaire_principal'])) {
222 nhaye 838 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
223 nhaye 807 }
224 nhaye 828 if( isset($_POST['delegataire']) AND
225     !empty($_POST['delegataire'])) {
226 nhaye 838 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
227 nhaye 828 }
228     if( isset($_POST['petitionnaire']) AND
229     !empty($_POST['petitionnaire'])) {
230 nhaye 838 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
231 nhaye 828 }
232 nhaye 807 }
233 vpihour 676 }
234 nhaye 828 /**
235     * Méthode permettant de récupérer les id des demandeur lié à la demande
236     **/
237 nhaye 838 function listeDemandeur() {
238 nhaye 828 // Récupération des demandeurs de la base
239     $sql = "SELECT demandeur.demandeur,
240     demandeur.type_demandeur,
241     lien_demande_demandeur.petitionnaire_principal
242     FROM ".DB_PREFIXE."lien_demande_demandeur
243     INNER JOIN ".DB_PREFIXE."demandeur
244     ON demandeur.demandeur=lien_demande_demandeur.demandeur
245     WHERE demande = ".$this->val[array_search('demande', $this->champs)];
246     $res = $this->f->db->query($sql);
247 nhaye 838 $this->f->addToLog("listeDemandeur() : ".$sql);
248 nhaye 828 $this->f->isDatabaseError($res);
249     // Stoquage du résultat dans un tableau
250     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
251     if ($row['petitionnaire_principal'] == 't' AND
252     $row['type_demandeur']=="petitionnaire") {
253     $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
254     } elseif ($row['petitionnaire_principal'] == 'f' AND
255     $row['type_demandeur']=="petitionnaire"){
256     $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
257     } elseif ($row['type_demandeur']=="delegataire"){
258     $this->valIdDemandeur['delegataire']=$row['demandeur'];
259     }
260     }
261     }
262 nhaye 807
263     /**
264     * Ajout de la liste des demandeurs
265     */
266     function formSpecificContent($maj) {
267 nhaye 842 if(!$this->correct AND $maj != 0) {
268 nhaye 838 $this->listeDemandeur();
269     }
270     if($maj < 2 AND !$this->correct) {
271     $linkable = true;
272     } else {
273     $linkable = false;
274     }
275 nhaye 807 // Conteneur de la listes des demandeurs
276 nhaye 808 echo "<div class=\"demande_hidden_bloc col_12\">";
277 nhaye 807 echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
278     echo " <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
279     ._("Petitionnaire")."</legend>";
280     // Si des demandeurs sont liés à la demande
281 nhaye 828 require_once "../obj/petitionnaire.class.php";
282     require_once "../obj/delegataire.class.php";
283 nhaye 807
284 nhaye 842 // Affichage du bloc pétitionnaire principal / délégataire
285     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
286     echo "<div id=\"petitionnaire_principal_delegataire\">";
287     // Affichage de la synthèse
288     if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
289     !empty($this->valIdDemandeur["petitionnaire_principal"])) {
290     $demandeur = new petitionnaire(
291     $this->valIdDemandeur["petitionnaire_principal"],
292     $this->f->db,false);
293     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
294     $demandeur -> __destruct();
295     }
296     // Si en édition de formulaire
297     if($maj < 2 AND $this->correct != true) {
298     // Bouton d'ajout du pétitionnaire principal
299     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
300     echo "<input id=\"add_petitionnaire_principal\"
301     class=\"ui-button ui-widget ui-state-default ui-corner-all\"
302     type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
303     echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
304     // Bouton d'ajout du delegataire
305     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
306     echo "<input id=\"add_delegataire\"
307     class=\"ui-button ui-widget ui-state-default ui-corner-all\"
308     type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
309     }
310     // Affichage de la synthèse
311     if (isset ($this->valIdDemandeur["delegataire"]) AND
312     !empty($this->valIdDemandeur["delegataire"])) {
313     $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
314     $this->f->db,false);
315     $demandeur -> afficherSynthese("delegataire", $linkable);
316     $demandeur -> __destruct();
317     }
318    
319     echo "</div>";
320 nhaye 828
321 nhaye 842 // Bloc des pétitionnaires secondaires
322     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
323     echo "<div id=\"listePetitionnaires\">";
324 nhaye 828
325 nhaye 842 // Affichage de la synthèse
326     if (isset ($this->valIdDemandeur["petitionnaire"]) AND
327     !empty($this->valIdDemandeur["petitionnaire"])) {
328    
329     foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
330     $demandeur = new petitionnaire($petitionnaire,
331     $this->f->db,false);
332     $demandeur -> afficherSynthese("petitionnaire", $linkable);
333     $demandeur -> __destruct();
334     }
335    
336 nhaye 828 }
337 nhaye 842 if ($maj < 2 AND !$this->correct) {
338     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
339     echo "<input id=\"add_petitionnaire\"
340     class=\"ui-button ui-widget ui-state-default ui-corner-all\"
341     type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
342     }
343     echo "</div>";
344 nhaye 807 echo "</fieldset>";
345     echo "</div>";
346     }
347    
348 vpihour 632 }// fin classe
349     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26