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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 842 - (show 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 <?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 * Ajout des délégataires et pétitionnaires
100 **/
101 function triggerAjouterApres($id, &$db, $val, $DEBUG){
102 $this->insertLinkDemandeDemandeur($db, $DEBUG);
103 $this->valIdDemandeur=$this->postedIdDemandeur;
104
105 }
106 function triggerModifierApres($id, &$db, $val, $DEBUG){
107 $this->listeDemandeur();
108 $this->insertLinkDemandeDemandeur($db, $DEBUG);
109 $this->valIdDemandeur=$this->postedIdDemandeur;
110
111 }
112
113 /**
114 * Gestion des liens entre la demande et les demendeurs recement ajoutés
115 **/
116 function insertLinkDemandeDemandeur($db, $DEBUG) {
117 //
118 require_once "../obj/lien_demande_demandeur.class.php";
119
120 // 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 }
130 }
131
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 } else {
207 return true;
208 }
209
210 }
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 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
223 }
224 if( isset($_POST['delegataire']) AND
225 !empty($_POST['delegataire'])) {
226 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
227 }
228 if( isset($_POST['petitionnaire']) AND
229 !empty($_POST['petitionnaire'])) {
230 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
231 }
232 }
233 }
234 /**
235 * Méthode permettant de récupérer les id des demandeur lié à la demande
236 **/
237 function listeDemandeur() {
238 // 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 $this->f->addToLog("listeDemandeur() : ".$sql);
248 $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
263 /**
264 * Ajout de la liste des demandeurs
265 */
266 function formSpecificContent($maj) {
267 if(!$this->correct AND $maj != 0) {
268 $this->listeDemandeur();
269 }
270 if($maj < 2 AND !$this->correct) {
271 $linkable = true;
272 } else {
273 $linkable = false;
274 }
275 // Conteneur de la listes des demandeurs
276 echo "<div class=\"demande_hidden_bloc col_12\">";
277 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 require_once "../obj/petitionnaire.class.php";
282 require_once "../obj/delegataire.class.php";
283
284 // 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
321 // Bloc des pétitionnaires secondaires
322 // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
323 echo "<div id=\"listePetitionnaires\">";
324
325 // 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 }
337 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 echo "</fieldset>";
345 echo "</div>";
346 }
347
348 }// fin classe
349 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26