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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 907 - (hide annotations)
Thu Nov 29 15:24:25 2012 UTC (12 years, 2 months ago) by nhaye
File size: 19730 byte(s)
iAjout de dossier d'autorisation lors de l'ajout d'une nouvelle demande

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26