/[openfoncier]/branches/3.14.x-lettrerar/app/geolocalisation.view.php
ViewVC logotype

Contents of /branches/3.14.x-lettrerar/app/geolocalisation.view.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2897 - (show annotations)
Mon Mar 31 15:35:45 2014 UTC (10 years, 10 months ago) by nhaye
Original Path: trunk/app/geolocalisation.view.php
File size: 12281 byte(s)
Modification du css du formulaire de géolocalisation pour plus de lisibilité

1 <?php
2 /**
3 * Affichage des boutons d'actions et des données liés à la géolocalisation
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 // Fichiers requis
10 require_once "../obj/utils.class.php";
11 require_once '../obj/om_formulaire.class.php';
12
13 $idx = (isset($_GET['idx'])) ? $_GET['idx'] : "";
14
15 //Si l'identifiant du dossier d'instruction a été fourni
16 if (!is_null($idx)){
17 // Instance de la class utils
18 $f = new utils("nohtml", "geolocalisation_consulter", _("Geolocalisation"));
19
20 // Récupération des données de sig_elyx
21 $sqlDonneesSIG = "SELECT *
22 FROM ".DB_PREFIXE."sig_elyx
23 WHERE dossier = '$idx'";
24 $resDonneesSIG = $f->db->query($sqlDonneesSIG);
25 $f->addToLog("app/geolocalisation.view.php : db->query(\"".$sqlDonneesSIG."\")", VERBOSE_MODE);
26 $f->isDatabaseError($resDonneesSIG);
27 $rowDonneesSIG = &$resDonneesSIG->fetchRow(DB_FETCHMODE_ASSOC);
28
29 // Récupération des données du dossier d'instruction
30 $sqlDonneesDI = "SELECT dossier, geom, dossier_libelle,
31 terrain_references_cadastrales, terrain_adresse_voie_numero,
32 terrain_adresse_voie, terrain_adresse_lieu_dit, terrain_adresse_localite,
33 terrain_adresse_code_postal, terrain_adresse_bp, terrain_adresse_cedex
34 FROM ".DB_PREFIXE."dossier
35 WHERE dossier = '$idx'";
36 $resDonneesDI = $f->db->query($sqlDonneesDI);
37 $f->addToLog("app/geolocalisation.view.php : db->query(\"".$sqlDonneesDI."\")", VERBOSE_MODE);
38 $f->isDatabaseError($resDonneesDI);
39 $rowDonneesDI = &$resDonneesDI->fetchRow(DB_FETCHMODE_ASSOC);
40
41 // Récupération des contraintes liées au DI
42 $sqlDossierContrainte = "SELECT dossier_contrainte, reference
43 FROM ".DB_PREFIXE." dossier_contrainte
44 WHERE dossier = '".$idx."'";
45 $resDossierContrainte = $f->db->query($sqlDossierContrainte);
46 $f->addToLog("app/geolocalisation.view.php : db->query(\"".$sqlDossierContrainte."\")", VERBOSE_MODE);
47 $f->isDatabaseError($resDossierContrainte);
48
49 //
50 $geom = "";
51 //
52 if (isset($rowDonneesDI) && $rowDonneesDI['geom'] != '') {
53 //
54 $sqlGEOM = "SELECT public.ST_AsText('".$rowDonneesDI['geom']."'::geometry)";
55 $geom = $f->db->getOne($sqlGEOM);
56 $f->addToLog("app/geolocalisation.view.php : db->getOne(\"".$sqlGEOM."\")", VERBOSE_MODE);
57 }
58
59 // Compteurs de contrainte manuelle et automatique
60 $nb_conrainte_man = 0;
61 $nb_conrainte_sig = 0;
62 // Nombre de contrainte du DI
63 while ($rowDossierContrainte = &$resDossierContrainte->fetchRow(DB_FETCHMODE_ASSOC)) {
64 //
65 if ($rowDossierContrainte['reference'] == 'f') {
66 $nb_conrainte_man++;
67 } else {
68 $nb_conrainte_sig++;
69 }
70 }
71 // Modifie les messages en fonction du nombre de contrainte
72 if ($nb_conrainte_man == 0) {
73 $msg_contrainte_man = _("Aucune contraintes ajoutees depuis l'application");
74 } else {
75 $msg_contrainte_man = $nb_conrainte_man." "._("contrainte(s) ajoutee(s) depuis l'application");
76 }
77 if ($nb_conrainte_sig == 0) {
78 $msg_contrainte_sig = _("Aucune contraintes ajoutees depuis le SIG");
79 } else {
80 $msg_contrainte_sig = $nb_conrainte_sig." "._("contrainte(s) ajoutee(s) depuis le SIG");
81 }
82 $contrainte_val = "<span id='msg_contrainte_man'>".$msg_contrainte_man."</span>"."<br />".
83 "<span id='msg_contrainte_sig'>".$msg_contrainte_sig."</span>";
84
85 // Affichage du fil d'Ariane
86 $f->displaySubTitle(_("Geolocalisation") . "->" . $rowDonneesDI["dossier_libelle"]);
87 $f->display();
88
89 // Message affiché
90 $message_field = '<div class="message ui-widget ui-corner-all ui-state-highlight ui-state-%s" id="%s">
91 <p>
92 <span class="ui-icon ui-icon-info"></span>
93 <span class="text">%s<br></span>
94 </p>
95 </div>';
96
97 // Message d'erreur si les références cadastrales ont été modifiées
98 // dans le dossier d'instruction
99 if (isset($rowDonneesSIG["terrain_references_cadastrales_archive"]) &&
100 $rowDonneesSIG["terrain_references_cadastrales_archive"] != $rowDonneesDI["terrain_references_cadastrales"]) {
101
102 $messageRefCadUtilisees = (is_null($rowDonneesSIG["terrain_references_cadastrales_archive"])&&
103 $rowDonneesSIG["terrain_references_cadastrales_archive"]!="")?
104 _("Les references cadastrales utilisees par le SIG")." : ".
105 $rowDonneesSIG["terrain_references_cadastrales_archive"] :
106 _("Aucune reference cadastrale n'est renseignee pour le SIG");
107
108 printf($message_field, "error", "geolocalisation-message",
109 "<p>"._("Les references cadastrales ont ete modifiees dans le dossier d'instruction.")."</p>".
110 "<p>".$messageRefCadUtilisees."</p>");
111 }
112
113 // Bouton retour
114 $button_return = '<div class="formControls">
115 <a id="retour-button" onclick="redirectPortletAction(1,\'main\'); refresh_page_return();" href="#" class="retour">Retour</a>
116 </div>';
117
118 // Affiche le bouton de retour
119 printf($button_return);
120
121 // Début du formulaire
122 printf("\n<!-- ########## START FORMULAIRE ########## -->\n");
123 printf("<div class=\"formEntete ui-corner-all\">\n");
124
125 // Champ pour le bouton
126 $button_field = '<div class="field field-type-static">
127 <div class="form-libelle">
128 <label id="lib-%1$s" class="libelle-%1$s" for="%1$s">
129 %2$s
130 </label>
131 </div>
132 <div class="form-content">
133 <span id="%1$s" class="field_value">
134 %3$s
135 </span>
136 </div>
137 </div>';
138
139 // Boutons d'action sur la géolocalisation
140 $button = '<input type="submit" class="om-button ui-button ui-widget ui-state-default ui-corner-all" id="%s-button" value="%s" onclick="%s" role="button" aria-disabled="false">';
141
142 // Affiche le bouton permettant de lancer tous les traitements
143 printf('<div class="alignBtnCenter">');
144 printf($button, "chance", "J'ai de la chance", "all_geolocalisation_treatments('$idx', '"._("Etes vous sur de vouloir recuperer les contraintes ?")."')");
145 printf('</div>');
146
147 /**
148 * Compose le message affiché à l'utilisateur
149 * @param string $field_name Nom du champ
150 * @param string $message_field Code html du message
151 * @param array $rowDonneesSIG Tableau des données
152 * @param object $f Instance de la classe utils
153 * @return string Message
154 */
155 function build_message($field_name, $message_field, $rowDonneesSIG, $f) {
156
157 // Récupération des infos
158 $date = (isset($rowDonneesSIG["date_".$field_name])) ? $f->formatTimestamp($rowDonneesSIG["date_".$field_name]) : "";
159 $etat = (isset($rowDonneesSIG["etat_".$field_name])) ? $rowDonneesSIG["etat_".$field_name] : "";;
160 $text = (isset($rowDonneesSIG["message_".$field_name])) ? $rowDonneesSIG["message_".$field_name] : "";;
161
162 // id du message
163 $id_message = $field_name."-message";
164
165 // Définit le type du message "empty", "valid" ou "error"
166 // empty : message grisé
167 // valid : message de validation
168 // error : message d'erreur
169 $type_message = "empty";
170 if ($etat != "") {
171 //
172 $type_message = "valid";
173 if ($etat == 'f') {
174 $type_message = "error";
175 }
176 }
177
178 // Si il y a une date, un message est ajouté en debut
179 if ($date != "") {
180 //
181 $date = sprintf(_("Dernier traitement effectue le %s."), $date);
182 }
183
184 // Si aucun message alors l'action n'a jamais été effectuée
185 if ($text == "") {
186 //
187 $text = _("Action non effectuee.");
188 //
189 $type_message = "empty";
190 }
191
192 // Compose le message
193 $message = sprintf($message_field, $type_message, $id_message, $date." ".$text);
194
195 // retour
196 return $message;
197 }
198
199 // Tableau pour afficher l'interface sur deux colonnes
200 printf("<div class='sousform-geolocalisation'><div class='list-buttons-geolocalisation'>");
201
202 //Affichage des boutons
203 printf($button_field, 'verif_parcelle', sprintf($button, 'verif_parcelle', "Vérifier les parcelles", "geolocalisation_treatment('$idx', 'verif_parcelle', set_geolocalisation_message)"), build_message('verif_parcelle', $message_field, $rowDonneesSIG, $f));
204
205 printf($button_field, 'calcul_emprise', sprintf($button, 'calcul_emprise', "Calculer l'emprise", "geolocalisation_treatment('$idx', 'calcul_emprise', '')"), build_message('calcul_emprise', $message_field, $rowDonneesSIG, $f));
206
207 printf($button_field, 'dessin_emprise', sprintf($button, 'dessin_emprise', "Dessiner l'emprise", "geolocalisation_treatment('$idx', 'dessin_emprise', redirection_elyxweb)"), build_message('dessin_emprise', $message_field, $rowDonneesSIG, $f));
208
209 printf($button_field, 'calcul_centroide', sprintf($button, 'calcul_centroide', "Calculer le centroïde", "geolocalisation_treatment('$idx', 'calcul_centroide', set_geolocalisation_centroide)"), build_message('calcul_centroide', $message_field, $rowDonneesSIG, $f));
210
211 printf($button_field, 'recup_contrainte', sprintf($button, 'recup_contrainte', "Récupérer les contraintes", "geolocalisation_treatment('$idx', 'recup_contrainte', set_geolocalisation_contrainte, '"._("Etes vous sur de vouloir recuperer les contraintes ?")."')"), build_message('recup_contrainte', $message_field, $rowDonneesSIG, $f));
212
213 //
214 printf("</div>");
215
216 // Le formulaire n'a pas été validé
217 $validation = 1;
218 // Le formulaire est en mode consultation
219 $maj = 3;
220
221 // Champs du formulaire
222 $champs = array("centroide", "contrainte", "adresse", "references_cadastrales");
223
224 // Création d'un nouvel objet de type formulaire
225 $form = new formulaire(NULL, $validation, $maj, $champs);
226
227 // Configuration des types de champs
228 foreach ($champs as $key) {
229 $form->setType($key, 'static');
230 }
231 $form->setType("references_cadastrales", "referencescadastralesstatic");
232
233 // Configuration des libellés
234 $form->setLib("references_cadastrales", _("terrain_references_cadastrales"));
235 $form->setLib("adresse", _("adresse"));
236 $form->setLib("centroide", _("centroide"));
237 $form->setLib("contrainte", _("contrainte"));
238
239 // Configuration des données
240 $form->setVal("references_cadastrales", $rowDonneesDI["terrain_references_cadastrales"]);
241 $form->setVal("adresse", $rowDonneesDI["terrain_adresse_voie_numero"]." ".$rowDonneesDI["terrain_adresse_voie"]." ".$rowDonneesDI["terrain_adresse_lieu_dit"]." ".$rowDonneesDI["terrain_adresse_code_postal"]." ".$rowDonneesDI["terrain_adresse_localite"]." ".$rowDonneesDI["terrain_adresse_bp"]." ".$rowDonneesDI["terrain_adresse_cedex"]);
242 if($geom != "") {
243 $form->setVal('centroide',
244 "<a id='action-form-localiser'".
245 " target='_SIG' href='../app/redirect_plan_sig.php?idx=".$rowDonneesDI["dossier"]."'>".
246 "<span class='om-icon om-icon-16 om-icon-fix sig-16' title='Localiser'>Localiser</span> ".
247 $geom.
248 " </a>");
249 } else {
250 $form->setVal('centroide', $geom);
251 }
252 $form->setVal("contrainte", $contrainte_val);
253
254 // Affichage des champs
255 $form->setBloc("centroide", "D", _("Donnees du dossier d'instruction"), "alignForm col_12");
256 $form->setBloc("centroide", "DF", "", "geoloc_form alignForm col_12");
257 $form->setBloc("contrainte", "DF", "", "geoloc_form alignForm col_12");
258 $form->setBloc("adresse", "DF", "", "geoloc_form alignForm col_12");
259 $form->setBloc("references_cadastrales", "DF", "", "geoloc_form alignForm col_12");
260 $form->setBloc("references_cadastrales", "F");
261
262 $form->afficher($champs, $validation, false, false);
263 // Ferme le tableau pour l'affichage sur deux colonnes
264 printf("</div></div>");
265
266 //Ajout d'un div vide pour éviter les superspositions des div
267 printf("<div class=\"both\"></div>");
268
269 // Fin du formulaire
270 printf("</div></div>");
271
272 // Affiche le bouton de retour
273 printf($button_return);
274
275 }
276 ?>

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26