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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 908 - (show 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 <?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 * 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 * Ajout des délégataires et pétitionnaires
174 **/
175 function triggerAjouterApres($id, &$db, $val, $DEBUG){
176 $this->insertLinkDemandeDemandeur($db, $DEBUG);
177 $this->valIdDemandeur=$this->postedIdDemandeur;
178 $this->triggerAjoutDossier($id, $db, $val, $DEBUG);
179 }
180 function triggerModifierApres($id, &$db, $val, $DEBUG){
181 $this->listeDemandeur();
182 $this->insertLinkDemandeDemandeur($db, $DEBUG);
183 $this->valIdDemandeur=$this->postedIdDemandeur;
184
185 }
186
187 /**
188 * Gestion des liens entre la demande et les demendeurs recement ajoutés
189 **/
190 function insertLinkDemandeDemandeur($db, $DEBUG) {
191 //
192 require_once "../obj/lien_demande_demandeur.class.php";
193
194 // 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 }
204 }
205
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 } else {
281 return true;
282 }
283
284 }
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 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
297 }
298 if( isset($_POST['delegataire']) AND
299 !empty($_POST['delegataire'])) {
300 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
301 }
302 if( isset($_POST['petitionnaire']) AND
303 !empty($_POST['petitionnaire'])) {
304 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
305 }
306 }
307 }
308 /**
309 * Méthode permettant de récupérer les id des demandeur lié à la demande
310 **/
311 function listeDemandeur() {
312 // 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 $this->f->addToLog("listeDemandeur() : ".$sql);
322 $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
337 /**
338 * Ajout de la liste des demandeurs
339 */
340 function formSpecificContent($maj) {
341 if(!$this->correct AND $maj != 0) {
342 $this->listeDemandeur();
343 }
344 if($maj < 2 AND !$this->correct) {
345 $linkable = true;
346 } else {
347 $linkable = false;
348 }
349 // Conteneur de la listes des demandeurs
350 echo "<div class=\"demande_hidden_bloc col_12\">";
351 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 require_once "../obj/petitionnaire.class.php";
356 require_once "../obj/delegataire.class.php";
357
358 // 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
395 // Bloc des pétitionnaires secondaires
396 // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
397 echo "<div id=\"listePetitionnaires\">";
398
399 // 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 }
411 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 echo "</fieldset>";
419 echo "</div>";
420 }
421
422 }// fin classe
423 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26