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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 908 - (hide annotations)
Thu Nov 29 15:36:11 2012 UTC (12 years, 2 months ago) by nhaye
File size: 19699 byte(s)
Suppression d'un print_r

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 907 * Méthode permettant la création de dossiers
100     **/
101     function triggerAjoutDossier($id, &$db, $val, $DEBUG){
102     include '../sql/pgsql/demande.form.inc.php';
103     if($this->valF["demande_type"] != NULL) {
104     $res = $db->query(str_replace('<idx>', $this->valF['demande_type'], $sql_demande_type_details_by_id));
105     $this->f->isDatabaseError();
106     $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
107     // Création du dossier_autorisation
108     if($row ['dossier_autorisation_type_detaille'] != NULL) {
109     // Création du dossier
110     $valAuto['dossier_autorisation']=NULL;
111     $valAuto['nature']=NULL;
112     $valAuto['exercice']=NULL;
113     $valAuto['insee']=NULL;
114     $valAuto['arrondissement']=NULL;
115     $valAuto['etat']=NULL;
116     $valAuto['erp_numero_batiment']=NULL;
117     $valAuto['erp_ouvert']=NULL;
118     $valAuto['erp_arrete_decision']=NULL;
119     $valAuto['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];
120     $valAuto['depot_initial']=$this->valF['date_demande'];
121     $valAuto['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
122     $valAuto['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
123     $valAuto['complement']=$this->valF['complement'];
124     $valAuto['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
125     $valAuto['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
126     $valAuto['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
127     $valAuto['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
128     $valAuto['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
129     $valAuto['terrain_superficie']=$this->valF['terrain_superficie'];
130     require_once '../obj/dossier_autorisation.class.php';
131     $dossier_autorisation = new dossier_autorisation("]",$db,$DEBUG);
132     $dossier_autorisation->ajouter($valAuto, $db, $DEBUG);
133     $this->valF['dossier_autorisation'] = $dossier_autorisation->valF['dossier_autorisation'];
134     // Création des liens entre le dossier et les demandeurs
135     require_once '../obj/lien_dossier_autorisation_demandeur.class.php';
136     $ldad = new lien_dossier_autorisation_demandeur("]",$db,$DEBUG);
137     $sql = str_replace("<demande>",$this->valF['demande'],$sql_lien_demande_demandeur);
138     $res = $db->query($sql);
139     $this->f->addToLog("demande.class.php: db->query(\"".$sql."\");", VERBOSE_MODE);
140     $this->f->isDatabaseError();
141     while($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
142     $row['lien_dossier_autorisation_demandeur'] = NULL;
143     $row['dossier_autorisation'] = $this->valF['dossier_autorisation'];
144     $ldad->ajouter($row, $db, $DEBUG);
145     }
146     $this -> addToMessage(_("Creation du dossier d'autorisation no").$this->valF['dossier_autorisation']);
147     }
148     /*
149     if($row ['dossier_instruction_type'] != NULL) {
150     $valInstr['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];
151    
152     $valInstr['depot_initial']=$this->valF['date_demande'];
153     $valInstr['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
154     $valInstr['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
155     $valInstr['complement']=$this->valF['complement'];
156     $valInstr['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
157     $valInstr['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
158     $valInstr['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
159     $valInstr['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
160     $valInstr['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
161     $valInstr['terrain_superficie']=$this->valF['terrain_superficie'];
162    
163     require_once '../obj/dossier.class.php';
164     $dossier_instruction = new dossier("]",$db,$DEBUG);
165     $dossier_instruction->ajouter($valInstr, $db, $DEBUG);
166     $this->valF['dossier_instruction'] = $dossier_instruction->valF['dossier'];
167     }
168     */
169     }
170     }
171    
172     /**
173 nhaye 828 * Ajout des délégataires et pétitionnaires
174 nhaye 807 **/
175 nhaye 828 function triggerAjouterApres($id, &$db, $val, $DEBUG){
176     $this->insertLinkDemandeDemandeur($db, $DEBUG);
177 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
178 nhaye 907 $this->triggerAjoutDossier($id, $db, $val, $DEBUG);
179 nhaye 828 }
180     function triggerModifierApres($id, &$db, $val, $DEBUG){
181 nhaye 838 $this->listeDemandeur();
182 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
183 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
184 nhaye 828
185     }
186    
187     /**
188 nhaye 838 * Gestion des liens entre la demande et les demendeurs recement ajoutés
189 nhaye 828 **/
190     function insertLinkDemandeDemandeur($db, $DEBUG) {
191     //
192     require_once "../obj/lien_demande_demandeur.class.php";
193    
194 nhaye 838 // Comparaison de l'id petitionnaire principal
195     if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
196     !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
197     $this->valIdDemandeur['petitionnaire_principal'] !=
198     $this->postedIdDemandeur['petitionnaire_principal']) {
199     // Ajout du nouveau lien
200     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
201     if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
202     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
203 nhaye 807 }
204 nhaye 828 }
205 nhaye 838
206     // Comparaison du delegataire
207     if(isset($this->postedIdDemandeur['delegataire']) AND
208     !empty($this->postedIdDemandeur['delegataire']) AND
209     $this->valIdDemandeur['delegataire'] !=
210     $this->postedIdDemandeur['delegataire']) {
211     // Ajout du nouveau lien
212     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
213     if(!empty($this->valIdDemandeur['delegataire'])) {
214     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
215     }
216     }
217    
218     // Comparaison des different petitionnaires
219     if(isset($this->postedIdDemandeur['petitionnaire'])) {
220     // Suppression des liens non valides
221     foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
222     if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
223     $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
224     }
225     }
226     // Ajout des nouveaux liens
227     foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
228     if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
229     $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
230     }
231     }
232     }
233     }
234    
235    
236     /**
237     * Fonction permettant d'ajouter un lien
238     * entre la table demande et demandeur
239     **/
240     function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
241     $lienAjout = new lien_demande_demandeur(
242     "]",
243     $db,
244     $DEBUG);
245     $lien = array('lien_demande_demandeur' => "",
246     'petitionnaire_principal' => (($principal)?"t":"f"),
247     'demande' => $this->valF['demande'],
248     'demandeur' => $id);
249     $lienAjout->ajouter($lien, $db, $DEBUG);
250     $lienAjout->__destruct();
251     }
252    
253     /**
254     * Fonction permettant de supprimer un lien
255     * entre la table demande et demandeur
256     **/
257     function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
258     // Suppression
259     $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
260     "WHERE demande=".$this->valF['demande'].
261     " AND demandeur=".$id;
262     // Execution de la requete de suppression de l'objet
263     $res = $db->query($sql);
264     // Logger
265     $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
266     $this->f->isDatabaseError();
267    
268     }
269    
270     function isLinkDemandeDemandeurExist($idDemandeur) {
271     $sql = "SELECT count(*)
272     FROM ".DB_PREFIXE."lien_demande_demandeur
273     WHERE demande = ".$this->valF['demande'].
274     "AND demandeur = ".$idDemandeur;
275     $count = $this->f->db->getOne($sql);
276     $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
277     $this->f->isDatabaseError($count);
278     if ($count === 0) {
279     return false;
280 nhaye 828 } else {
281 nhaye 838 return true;
282 nhaye 828 }
283 nhaye 838
284 nhaye 828 }
285    
286     /**
287     * Methode de recupération des valeurs postées
288     **/
289     function getPostedValues() {
290     // Récupération des demandeurs dans POST
291     if (isset($_POST['petitionnaire_principal']) OR
292     isset($_POST['delegataire']) OR
293     isset($_POST['petitionnaire'])) {
294     if( isset($_POST['petitionnaire_principal']) AND
295     !empty($_POST['petitionnaire_principal'])) {
296 nhaye 838 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
297 nhaye 807 }
298 nhaye 828 if( isset($_POST['delegataire']) AND
299     !empty($_POST['delegataire'])) {
300 nhaye 838 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
301 nhaye 828 }
302     if( isset($_POST['petitionnaire']) AND
303     !empty($_POST['petitionnaire'])) {
304 nhaye 838 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
305 nhaye 828 }
306 nhaye 807 }
307 vpihour 676 }
308 nhaye 828 /**
309     * Méthode permettant de récupérer les id des demandeur lié à la demande
310     **/
311 nhaye 838 function listeDemandeur() {
312 nhaye 828 // Récupération des demandeurs de la base
313     $sql = "SELECT demandeur.demandeur,
314     demandeur.type_demandeur,
315     lien_demande_demandeur.petitionnaire_principal
316     FROM ".DB_PREFIXE."lien_demande_demandeur
317     INNER JOIN ".DB_PREFIXE."demandeur
318     ON demandeur.demandeur=lien_demande_demandeur.demandeur
319     WHERE demande = ".$this->val[array_search('demande', $this->champs)];
320     $res = $this->f->db->query($sql);
321 nhaye 838 $this->f->addToLog("listeDemandeur() : ".$sql);
322 nhaye 828 $this->f->isDatabaseError($res);
323     // Stoquage du résultat dans un tableau
324     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
325     if ($row['petitionnaire_principal'] == 't' AND
326     $row['type_demandeur']=="petitionnaire") {
327     $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
328     } elseif ($row['petitionnaire_principal'] == 'f' AND
329     $row['type_demandeur']=="petitionnaire"){
330     $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
331     } elseif ($row['type_demandeur']=="delegataire"){
332     $this->valIdDemandeur['delegataire']=$row['demandeur'];
333     }
334     }
335     }
336 nhaye 807
337     /**
338     * Ajout de la liste des demandeurs
339     */
340     function formSpecificContent($maj) {
341 nhaye 842 if(!$this->correct AND $maj != 0) {
342 nhaye 838 $this->listeDemandeur();
343     }
344     if($maj < 2 AND !$this->correct) {
345     $linkable = true;
346     } else {
347     $linkable = false;
348     }
349 nhaye 807 // Conteneur de la listes des demandeurs
350 nhaye 808 echo "<div class=\"demande_hidden_bloc col_12\">";
351 nhaye 807 echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
352     echo " <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
353     ._("Petitionnaire")."</legend>";
354     // Si des demandeurs sont liés à la demande
355 nhaye 828 require_once "../obj/petitionnaire.class.php";
356     require_once "../obj/delegataire.class.php";
357 nhaye 807
358 nhaye 842 // Affichage du bloc pétitionnaire principal / délégataire
359     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
360     echo "<div id=\"petitionnaire_principal_delegataire\">";
361     // Affichage de la synthèse
362     if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
363     !empty($this->valIdDemandeur["petitionnaire_principal"])) {
364     $demandeur = new petitionnaire(
365     $this->valIdDemandeur["petitionnaire_principal"],
366     $this->f->db,false);
367     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
368     $demandeur -> __destruct();
369     }
370     // Si en édition de formulaire
371     if($maj < 2 AND $this->correct != true) {
372     // Bouton d'ajout du pétitionnaire principal
373     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
374     echo "<input id=\"add_petitionnaire_principal\"
375     class=\"ui-button ui-widget ui-state-default ui-corner-all\"
376     type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
377     echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
378     // Bouton d'ajout du delegataire
379     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
380     echo "<input id=\"add_delegataire\"
381     class=\"ui-button ui-widget ui-state-default ui-corner-all\"
382     type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
383     }
384     // Affichage de la synthèse
385     if (isset ($this->valIdDemandeur["delegataire"]) AND
386     !empty($this->valIdDemandeur["delegataire"])) {
387     $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
388     $this->f->db,false);
389     $demandeur -> afficherSynthese("delegataire", $linkable);
390     $demandeur -> __destruct();
391     }
392    
393     echo "</div>";
394 nhaye 828
395 nhaye 842 // Bloc des pétitionnaires secondaires
396     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
397     echo "<div id=\"listePetitionnaires\">";
398 nhaye 828
399 nhaye 842 // Affichage de la synthèse
400     if (isset ($this->valIdDemandeur["petitionnaire"]) AND
401     !empty($this->valIdDemandeur["petitionnaire"])) {
402    
403     foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
404     $demandeur = new petitionnaire($petitionnaire,
405     $this->f->db,false);
406     $demandeur -> afficherSynthese("petitionnaire", $linkable);
407     $demandeur -> __destruct();
408     }
409    
410 nhaye 828 }
411 nhaye 842 if ($maj < 2 AND !$this->correct) {
412     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
413     echo "<input id=\"add_petitionnaire\"
414     class=\"ui-button ui-widget ui-state-default ui-corner-all\"
415     type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
416     }
417     echo "</div>";
418 nhaye 807 echo "</fieldset>";
419     echo "</div>";
420     }
421    
422 vpihour 632 }// fin classe
423     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26