1 |
<?php |
2 |
//$Id: demande_avis.class.php 4418 2015-02-24 17:30:28Z tbenita $ |
3 |
//gen openMairie le 17/10/2012 18:01 |
4 |
|
5 |
require_once ("../obj/consultation.class.php"); |
6 |
|
7 |
class demande_avis extends consultation { |
8 |
|
9 |
var $retourformulaire; |
10 |
|
11 |
var $required_field=array( |
12 |
"avis_consultation", |
13 |
); |
14 |
|
15 |
function __construct($id) { |
16 |
parent::__construct($id, $this->db, null); |
17 |
$this->setParameter("retourformulaire", "consultation"); |
18 |
} |
19 |
|
20 |
/** |
21 |
* Définition des actions disponibles sur la classe. |
22 |
* |
23 |
* @return void |
24 |
*/ |
25 |
function init_class_actions() { |
26 |
|
27 |
$this->class_actions[3]["view"] = "view_synthese_demande_avis"; |
28 |
$this->class_actions[3]["condition"] = array("is_from_good_service"); |
29 |
|
30 |
// ACTION - 080 - consulter_pdf |
31 |
// Pour qu'un cadre valide l'analyse |
32 |
$this->class_actions[80] = array( |
33 |
"identifier" => "consulter_pdf", |
34 |
"portlet" => array( |
35 |
"type" => "action-blank", |
36 |
"libelle" => _("Edition"), |
37 |
"order" => 50, |
38 |
"class" => "pdf-16", |
39 |
), |
40 |
"view" => "view_consulter_pdf", |
41 |
"condition" => array("is_from_good_service"), |
42 |
"permission_suffix" => "consulter", |
43 |
); |
44 |
|
45 |
// ACTION - 090 - rendre_avis |
46 |
// Pour qu'un service rende l'avis |
47 |
$this->class_actions[90] = array( |
48 |
"identifier" => "rendre_avis", |
49 |
"portlet" => array( |
50 |
"type" => "action-self", |
51 |
"libelle" => _("Rendre un avis"), |
52 |
"order" => 40, |
53 |
"class" => "edit-16", |
54 |
), |
55 |
"view" => "formulaire", |
56 |
"method" => "modifier", |
57 |
"permission_suffix" => "modifier", |
58 |
"condition" => array("is_consultation_retour_avis_service", "is_avis_encours"), |
59 |
"button" => _("Modifier"), |
60 |
); |
61 |
} |
62 |
|
63 |
/** |
64 |
* Défini si l'utilisateur est de service interne. |
65 |
* |
66 |
* @return boolean true si correspond false sinon |
67 |
*/ |
68 |
function is_consultation_retour_avis_service() { |
69 |
|
70 |
return $this->f->isAccredited("consultation_retour_avis_service"); |
71 |
} |
72 |
|
73 |
/** |
74 |
* VIEW - view_document_numerise. |
75 |
* |
76 |
* Vue du tableau des pièces du dossier d'autorisation. |
77 |
* |
78 |
* Cette vue permet de gérer le contenu de l'onglet "Pièce(s)" sur un |
79 |
* dossier d'autorisation. Cette vue spécifique est nécessaire car |
80 |
* l'ergonomie standard du framework ne prend pas en charge ce cas. |
81 |
* C'est ici la vue spécifique des pièces liées au dossier qui est |
82 |
* affichée directement au clic de l'onglet au lieu du soustab. |
83 |
* |
84 |
* L'idée est donc de simuler l'ergonomie standard en créant un container |
85 |
* et d'appeler la méthode javascript 'ajaxit' pour charger le contenu |
86 |
* de la vue visualisation de l'objet lié. |
87 |
* |
88 |
* @return void |
89 |
*/ |
90 |
function view_document_numerise() { |
91 |
// Vérification de l'accessibilité sur l'élément |
92 |
$this->checkAccessibility(); |
93 |
// Récupération des variables GET |
94 |
($this->f->get_submitted_get_value('idxformulaire')!==null ? $idxformulaire = |
95 |
$this->f->get_submitted_get_value('idxformulaire') : $idxformulaire = ""); |
96 |
($this->f->get_submitted_get_value('retourformulaire')!==null ? $retourformulaire = |
97 |
$this->f->get_submitted_get_value('retourformulaire') : $retourformulaire = ""); |
98 |
// Objet à charger |
99 |
$obj = "document_numerise"; |
100 |
// Construction de l'url de sousformulaire à appeler |
101 |
$url = "../scr/sousform.php?obj=".$obj; |
102 |
$url .= "&idx=".$idxformulaire; |
103 |
$url .= "&action=4"; |
104 |
$url .= "&retourformulaire=".$retourformulaire; |
105 |
$url .= "&idxformulaire=".$idxformulaire; |
106 |
$url .= "&retour=form"; |
107 |
// Affichage du container permettant le reffraichissement du contenu |
108 |
// dans le cas des action-direct. |
109 |
printf(' |
110 |
<div id="sousform-href" data-href="%s"> |
111 |
</div>', |
112 |
$url |
113 |
); |
114 |
// Affichage du container permettant de charger le retour de la requête |
115 |
// ajax récupérant le sous formulaire. |
116 |
printf(' |
117 |
<div id="sousform-%s"> |
118 |
</div> |
119 |
<script> |
120 |
ajaxIt(\'%s\', \'%s\'); |
121 |
</script>', |
122 |
$obj, |
123 |
$obj, |
124 |
$url |
125 |
); |
126 |
} |
127 |
|
128 |
function view_synthese_demande_avis() { |
129 |
if(file_exists ("../sql/".OM_DB_PHPTYPE."/demande_avis.form.inc.php")) |
130 |
include ("../sql/".OM_DB_PHPTYPE."/demande_avis.form.inc.php"); |
131 |
// Concatenation des champs pour constitution de la clause select |
132 |
$listeChamp = implode(", ", $champs); |
133 |
|
134 |
// Concatenation de la requete de selection |
135 |
$sql = " select ".$listeChamp." from ".$tableSelect." "; |
136 |
// |
137 |
$sql .= "where consultation.consultation=".$this->getParameter("idx"); |
138 |
|
139 |
// Execution de la requete |
140 |
$res = $this->f->db->limitquery($sql, 0, 1); |
141 |
// Logger |
142 |
$this->addToLog(__METHOD__."(): db->limitquery(\"".str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE); |
143 |
// Si une erreur survient |
144 |
if (database::isError($res, true)) { |
145 |
// Appel de la methode de recuperation des erreurs |
146 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), $tableSelect); |
147 |
return false; |
148 |
} else { |
149 |
$info = $res->tableInfo(); |
150 |
// Initialisation de la cle a 0 |
151 |
$i = 0; |
152 |
// Recuperation du nom de chaque champ dans l'attribut 'champs' |
153 |
foreach ($info as $elem) { |
154 |
$this->champs[$i++] = $elem['name']; |
155 |
} |
156 |
// Recuperation de l'enregistrement resultat de la requete |
157 |
while ($row =& $res->fetchRow()) { |
158 |
// Initialisation de la cle a 0 |
159 |
$i = 0; |
160 |
// Recuperation de la valeur de chaque champ dans l'attribut 'val' |
161 |
foreach ($row as $elem) { |
162 |
$this->val[$i++] = $elem; |
163 |
} |
164 |
} |
165 |
|
166 |
$this->formulaire(); |
167 |
} |
168 |
} |
169 |
|
170 |
function is_from_good_service() { |
171 |
// Si l'utilisateur est un utilisateur de service externe |
172 |
// on vérifie qu'il peut accéder à la consultation |
173 |
if ($this->f->isUserService()) { |
174 |
// On compare l'id du service de la consultation |
175 |
// aux id des services de utilisateur connecté |
176 |
foreach($this->f->om_utilisateur['service'] as $service) { |
177 |
|
178 |
if($this->val[array_search("service",$this->champs)]===$service['service']) { |
179 |
|
180 |
return true; |
181 |
} |
182 |
} |
183 |
// |
184 |
$this->f->addToLog("is_from_good_service(): utilisateur de service sur une consultation d'un autre service", EXTRA_VERBOSE_MODE); |
185 |
} |
186 |
return false; |
187 |
} |
188 |
|
189 |
function is_avis_encours() { |
190 |
if($this->getVal('avis_consultation') != '') { |
191 |
return false; |
192 |
} |
193 |
return true; |
194 |
} |
195 |
|
196 |
//========================== |
197 |
// Formulaire [form] |
198 |
//========================== |
199 |
|
200 |
function setType(&$form, $maj) { |
201 |
parent::setType($form, $maj); |
202 |
|
203 |
if($this->getParameter("maj") == 3) { |
204 |
$form->setType('consultation', 'hidden'); |
205 |
$form->setType('service', 'hidden'); |
206 |
$form->setType('dossier', 'hidden'); |
207 |
$form->setType('autorite_competente', 'selectstatic'); |
208 |
$form->setType('date_depot', 'datestatic'); |
209 |
$form->setType('date_envoi', 'datestatic'); |
210 |
$form->setType('date_limite', 'datestatic'); |
211 |
$form->setType('zonages', 'datestatic'); |
212 |
$form->setType('commune_quartier', 'hidden'); |
213 |
$form->setType('autres_dispo', 'hidden'); |
214 |
$form->setType('travaux', 'hidden'); |
215 |
$form->setType('shon_total', 'hidden'); |
216 |
$form->setType('terrain_surface', 'hidden'); |
217 |
$form->setType('cu_operation', 'hidden'); |
218 |
$form->setType('avis_consultation', 'hidden'); |
219 |
} |
220 |
} |
221 |
|
222 |
function setLib(&$form, $maj) { |
223 |
parent::setLib($form, $maj); |
224 |
|
225 |
if($this->getParameter("maj") == 3) { |
226 |
//libelle des champs |
227 |
$form->setLib('consultation', _('consultation')); |
228 |
$form->setLib('dossier', _('dossier')); |
229 |
$form->setLib('date_retour', _('date_retour')); |
230 |
$form->setLib('service', _('service')); |
231 |
$form->setLib('avis_consultation', _('avis_consultation')); |
232 |
$form->setLib('date_reception', _('date_reception')); |
233 |
$form->setLib('motivation', _('motivation')); |
234 |
$form->setLib('fichier', _('fichier')); |
235 |
$form->setLib('lu', _('lu')); |
236 |
$form->setLib('dossier_libelle', _('dossier_libelle')); |
237 |
$form->setLib('responsable', _('responsable')); |
238 |
$form->setLib('etat', _('etat')); |
239 |
$form->setLib('division', _('division')); |
240 |
$form->setLib('instructeur', _('instructeur')); |
241 |
$form->setLib('date_depot', _('date_depot')); |
242 |
$form->setLib('date_dernier_depot', _('date_dernier_depot')); |
243 |
$form->setLib('dossier_date_limite', _("date limite d'instruction")); |
244 |
$form->setLib('autorite_competente', _('autorite_competente')); |
245 |
$form->setLib('petitionnaire', _('demandeur')); |
246 |
$form->setLib('adresse_petitionnaire', _('adresse_demandeur')); |
247 |
$form->setLib('parcelle', _('parcelle')); |
248 |
$form->setLib('terrain', _('terrain')); |
249 |
$form->setLib('geom', _('geolocalisaion')); |
250 |
$form->setLib('date_envoi', _('date_envoi')); |
251 |
$form->setLib('delai', _('delai de reponse')); |
252 |
$form->setLib('date_limite', _('date limite de reponse')); |
253 |
$form->setLib('description_projet', _('description_projet')); |
254 |
$form->setLib('surface_total_projet', _('surface_total_projet')); |
255 |
$form->setLib('surface', _('surface creee par destination')); |
256 |
$form->setLib('nombre_logement_crees_collectif', _('nombre_logement_crees_collectif')); |
257 |
$form->setLib('nombre_logement_crees_individuel', _('nombre_logement_crees_individuel')); |
258 |
$form->setLib('nombre_places_parking', _('nombre_places_parking')); |
259 |
} |
260 |
} |
261 |
|
262 |
function setSelect(&$form, $maj, &$db, $debug) { |
263 |
parent::setSelect($form, $maj, $db, $debug); |
264 |
|
265 |
if($this->getParameter("maj") == 3) { |
266 |
if(file_exists ("../sql/".OM_DB_PHPTYPE."/demande_avis.form.inc.php")) |
267 |
include ("../sql/".OM_DB_PHPTYPE."/demande_avis.form.inc.php"); |
268 |
|
269 |
// avis_consultation |
270 |
$this->init_select($form, $db, $maj, $debug, "avis_consultation", |
271 |
$sql_avis_consultation, $sql_avis_consultation_by_id, true); |
272 |
|
273 |
// dossier |
274 |
$this->init_select($form, $db, $maj, $debug, "dossier", |
275 |
$sql_dossier, $sql_dossier_by_id, false); |
276 |
|
277 |
// service |
278 |
$this->init_select($form, $db, $maj, $debug, "service", |
279 |
$sql_service, $sql_service_by_id, true); |
280 |
// autorite_competente |
281 |
$this->init_select($form, $db, $maj, $debug, "autorite_competente", |
282 |
$sql_autorite_competente, $sql_autorite_competente_by_id, false); |
283 |
} |
284 |
}// fin select |
285 |
|
286 |
/** |
287 |
* Permet de définir les valeurs des champs. |
288 |
* @param object &$form Instance om_formulaire |
289 |
* @param integer $maj Mode du formulaire |
290 |
* @param integer $validation État de la validation du formulaire |
291 |
*/ |
292 |
function setVal(&$form,$maj,$validation) { |
293 |
parent::setVal($form, $maj, $validation); |
294 |
|
295 |
if($this->getParameter("maj") == 3) { |
296 |
// |
297 |
if($this->getVal('geom') != "" |
298 |
&& $this->f->getParameter('option_sig') == 'sig_externe' |
299 |
&& $this->f->issetSIGParameter() === true) { |
300 |
$form->setVal('geom', |
301 |
"<a id='action-form-localiser'". |
302 |
" target='_SIG' href='../app/redirect_plan_sig.php?idx=".$this->getVal("dossier")."'>". |
303 |
"<span class='om-icon om-icon-16 om-icon-fix sig-16' title='Localiser'>Localiser</span> ". |
304 |
$this->getVal('geom'). |
305 |
" </a>"); |
306 |
} |
307 |
} |
308 |
} |
309 |
|
310 |
/** |
311 |
* Mise en page du formulaire |
312 |
* @param om_formulaire $form |
313 |
* @param integer $maj |
314 |
*/ |
315 |
function setLayout(&$form, $maj){ |
316 |
parent::setLayout($form, $maj); |
317 |
|
318 |
if($this->getParameter("maj") == 3) { |
319 |
// Fieldset 'Informations generales' |
320 |
$form->setFieldset('dossier', 'D', _('Informations generales')); |
321 |
|
322 |
// Fieldset 'Dossier' |
323 |
$form->setFieldset('dossier_libelle', 'D', _('Dossier')); |
324 |
|
325 |
// 1ere ligne |
326 |
$form->setBloc('dossier_libelle', 'D', '', 'col_12'); |
327 |
// 1ere colonne |
328 |
$form->setBloc('dossier_libelle', 'D', '', 'col_5'); |
329 |
$form->setBloc('etat', 'F'); |
330 |
// 2eme colonne |
331 |
$form->setBloc('division', 'D', '', 'col_7'); |
332 |
$form->setBloc('instructeur', 'F'); |
333 |
$form->setBloc('instructeur', 'F'); |
334 |
|
335 |
// 2eme ligne |
336 |
$form->setBloc('date_depot', 'D', '', 'col_12'); |
337 |
$form->setBloc('date_depot', 'D'); |
338 |
$form->setBloc('date_depot', 'D', '', 'col_4'); |
339 |
$form->setBloc('date_depot', 'F'); |
340 |
|
341 |
$form->setBloc('date_dernier_depot', 'D', '', 'col_4'); |
342 |
$form->setBloc('date_dernier_depot', 'F'); |
343 |
|
344 |
$form->setBloc('dossier_date_limite', 'D', '', 'col_4'); |
345 |
$form->setBloc('dossier_date_limite', 'F'); |
346 |
|
347 |
$form->setBloc('dossier_date_limite', 'F'); |
348 |
$form->setBloc('dossier_date_limite', 'F'); |
349 |
|
350 |
// 3eme ligne |
351 |
$form->setBloc('autorite_competente', 'DF', '', 'col_12'); |
352 |
|
353 |
// 4eme ligne |
354 |
$form->setBloc('petitionnaire', 'D', '', 'col_12'); |
355 |
$form->setBloc('geom', 'F'); |
356 |
|
357 |
// Fermeture fieldset 'Dossier' |
358 |
$form->setFieldset('geom', 'F', ''); |
359 |
|
360 |
// Fieldset 'Demande d'avis' |
361 |
$form->setFieldset('date_envoi', 'D', _("Demande d'avis")); |
362 |
|
363 |
// 1ere ligne |
364 |
$form->setBloc('date_envoi', 'D', '', 'col_12'); |
365 |
$form->setBloc('date_envoi', 'D', '', 'col_4'); |
366 |
$form->setBloc('date_envoi', 'F'); |
367 |
$form->setBloc('delai', 'D', '', 'col_4'); |
368 |
$form->setBloc('delai', 'F'); |
369 |
$form->setBloc('date_limite', 'D', '', 'col_4'); |
370 |
$form->setBloc('date_limite', 'F'); |
371 |
$form->setBloc('date_limite', 'F'); |
372 |
|
373 |
// Fermeture fieldset 'Demande d'avis' |
374 |
$form->setFieldset('date_limite', 'F', ''); |
375 |
|
376 |
// Fermeture fieldset 'Informations generales' |
377 |
$form->setFieldset('date_limite', 'F', ''); |
378 |
|
379 |
// Fieldset 'Principales caracteristiques du projet' |
380 |
$form->setFieldset('description_projet', 'D', _('Principales caracteristiques du projet')); |
381 |
$form->setBloc('description_projet', 'D', '', 'col_12'); |
382 |
$form->setBloc('nombre_places_parking', 'F'); |
383 |
// Fermeture fieldset 'Principales caracteristiques du projet' |
384 |
$form->setFieldset('nombre_places_parking', 'F'); |
385 |
} |
386 |
} |
387 |
|
388 |
/** |
389 |
* Récupère la liste des contraintes d'un dossier. |
390 |
* @param string $dossier Identifiant du dossier |
391 |
* |
392 |
* @return object Résultat de la requête |
393 |
*/ |
394 |
function getListContrainte($dossier) { |
395 |
|
396 |
// Construction de la requête SQL |
397 |
$select = "SELECT dossier_contrainte.dossier_contrainte as dossier_contrainte_id, |
398 |
dossier_contrainte.texte_complete as dossier_contrainte_texte, |
399 |
dossier_contrainte.reference as dossier_contrainte_reference, |
400 |
contrainte.libelle as contrainte_libelle, |
401 |
contrainte.nature as contrainte_nature, |
402 |
contrainte.texte as contrainte_texte, |
403 |
contrainte.reference as contrainte_reference, |
404 |
lower(contrainte.groupe) as contrainte_groupe, |
405 |
lower(contrainte.sousgroupe) as contrainte_sousgroupe "; |
406 |
|
407 |
$from = " FROM ".DB_PREFIXE."contrainte |
408 |
LEFT JOIN ".DB_PREFIXE."dossier_contrainte |
409 |
ON dossier_contrainte.contrainte = contrainte.contrainte "; |
410 |
|
411 |
// Filtrage sur les contraintes présentées aux services consultés |
412 |
$where = " WHERE contrainte.service_consulte = 't' |
413 |
AND dossier_contrainte.dossier = '".$dossier."' "; |
414 |
|
415 |
// Si le paramètre "option_contrainte_di" est définit |
416 |
if ($this->f->getParameter('option_contrainte_di') != 'aucun') { |
417 |
// Ajoute la condition |
418 |
$where .= $this->f->traitement_condition_contrainte( |
419 |
$this->f->getParameter('option_contrainte_di')); |
420 |
} |
421 |
|
422 |
$tri = " ORDER BY contrainte_groupe DESC, contrainte_sousgroupe, |
423 |
contrainte.no_ordre, contrainte.libelle "; |
424 |
|
425 |
$sql = $select.$from.$where.$tri; |
426 |
|
427 |
// Exécution de la requête SQL |
428 |
$res = $this->f->db->query($sql); |
429 |
$this->f->addToLog("listContrainte(): db->query(\"".$sql."\");", VERBOSE_MODE); |
430 |
$this->f->isDatabaseError($res); |
431 |
|
432 |
// Retourne le résultat |
433 |
return $res; |
434 |
} |
435 |
|
436 |
/** |
437 |
* Ajout de la liste des contraintes présentées aux services consultés |
438 |
*/ |
439 |
function formSpecificContent($maj) { |
440 |
|
441 |
$listContrainte = $this->getListContrainte($this->getVal('dossier')); |
442 |
|
443 |
// Si le dossier possède des contraintes |
444 |
if ($listContrainte->numRows() != 0) { |
445 |
|
446 |
// Affiche du fieldset |
447 |
printf("<div id=\"liste_contrainte\" class=\"demande_hidden_bloc\">"); |
448 |
printf("<fieldset class=\"cadre ui-corner-all ui-widget-content col_12 startClosed\">"); |
449 |
printf(" <legend class=\"ui-corner-all ui-widget-content ui-state-active\" |
450 |
id =\"fieldset_contraintes_liees\">" |
451 |
._('Caracteristiques principales du reglement en vigueur')."</legend>"); |
452 |
printf("<div class=\"fieldsetContent\" style=\"display: none;\">"); |
453 |
|
454 |
// Entête pour le groupe |
455 |
$groupeHeader = " |
456 |
<div class='dossier_contrainte_groupe'> |
457 |
<div class='dossier_contrainte_groupe_header'> |
458 |
<span class='name'> |
459 |
%s |
460 |
</span> |
461 |
</div> |
462 |
"; |
463 |
|
464 |
// Entête pour le sous-groupe |
465 |
$sousgroupeHeader = " |
466 |
<div class='dossier_contrainte_sousgroupe'> |
467 |
<div class='dossier_contrainte_sousgroupe_header'> |
468 |
<span class='name'> |
469 |
%s |
470 |
</span> |
471 |
</div> |
472 |
"; |
473 |
|
474 |
// Titres des colonnes |
475 |
$tableHeader = " |
476 |
<thead> |
477 |
<tr class='ui-tabs-nav ui-accordion ui-state-default tab-title'> |
478 |
<th class='title col-0 firstcol contrainte_th_texte_complete'> |
479 |
<span class='name'> |
480 |
"._('texte_complete')." |
481 |
</span> |
482 |
</th> |
483 |
<th class='title col-1 contrainte_th_reference'> |
484 |
<span class='name'> |
485 |
"._('reference')." |
486 |
</span> |
487 |
</th> |
488 |
<th class='title col-2 contrainte_th_nature'> |
489 |
<span class='name'> |
490 |
"._('nature')." |
491 |
</span> |
492 |
</th> |
493 |
</tr> |
494 |
</thead> |
495 |
"; |
496 |
|
497 |
// Ligne de données |
498 |
$line = " |
499 |
<tr class='tab-data %s'> |
500 |
<td class='col-0 firstcol contrainte_th_texte_complete'> |
501 |
%s |
502 |
</td> |
503 |
<td class='col-1 contrainte_th_reference'> |
504 |
%s |
505 |
</td> |
506 |
<td class='col-2 contrainte_th_nature'> |
507 |
%s |
508 |
</td> |
509 |
"; |
510 |
|
511 |
// Sauvegarde des données pour les comparer |
512 |
$lastRow = array(); |
513 |
$lastRow['contrainte_groupe'] = 'empty'; |
514 |
$lastRow['contrainte_sousgroupe'] = 'empty'; |
515 |
|
516 |
// Tant qu'il y a des résultats |
517 |
while($row = &$listContrainte->fetchRow(DB_FETCHMODE_ASSOC)) { |
518 |
// Si l'identifiant du groupe de la contrainte présente et |
519 |
// celle d'avant est différent |
520 |
if ($row['contrainte_groupe'] != $lastRow['contrainte_groupe']) { |
521 |
|
522 |
// Si l'identifiant du groupe d'avant est vide |
523 |
if ($lastRow['contrainte_groupe'] != 'empty') { |
524 |
// Ferme le tableau |
525 |
printf("</table>"); |
526 |
// Ferme le div |
527 |
printf("</div>"); |
528 |
// Ferme le div |
529 |
printf("</div>"); |
530 |
} |
531 |
|
532 |
// Affiche le header du groupe |
533 |
printf($groupeHeader, $row['contrainte_groupe']); |
534 |
} |
535 |
|
536 |
// Si l'identifiant du sous-groupe de la contrainte présente et |
537 |
// celle d'avant est différent |
538 |
// Ou qu'ils soient identique mais n'appartiennent pas au même groupe |
539 |
if ($row['contrainte_sousgroupe'] != $lastRow['contrainte_sousgroupe'] |
540 |
|| ($row['contrainte_sousgroupe'] == $lastRow['contrainte_sousgroupe'] |
541 |
&& $row['contrainte_groupe'] != $lastRow['contrainte_groupe'])) { |
542 |
|
543 |
// |
544 |
if($row['contrainte_groupe'] == $lastRow['contrainte_groupe']) { |
545 |
// Si l'identifiant de la sous-groupe d'avant est vide |
546 |
if ($lastRow['contrainte_sousgroupe'] != 'empty') { |
547 |
// Ferme le tableau |
548 |
printf("</table>"); |
549 |
// Ferme le div |
550 |
printf("</div>"); |
551 |
} |
552 |
} |
553 |
|
554 |
// Affiche le header du sous-groupe |
555 |
printf($sousgroupeHeader, $row['contrainte_sousgroupe']); |
556 |
|
557 |
// Ouvre le tableau |
558 |
printf("<table id='sousgroupe_".$row['contrainte_sousgroupe']."' class='tab-tab dossier_contrainte_view'>"); |
559 |
|
560 |
// Affiche le header des données |
561 |
printf($tableHeader); |
562 |
|
563 |
// Définis le style des lignes |
564 |
$style = 'odd'; |
565 |
} |
566 |
|
567 |
// Si toujours dans la même groupe et même sous-groupe, |
568 |
// on change le style de la ligne |
569 |
if ($row['contrainte_groupe'] == $lastRow['contrainte_groupe'] |
570 |
&& $row['contrainte_sousgroupe'] == $lastRow['contrainte_sousgroupe']) { |
571 |
// Définis le style |
572 |
$style = ($style=='even')?'odd':'even'; |
573 |
} |
574 |
|
575 |
// Affiche "Oui" ou "Non" pour le bouléen |
576 |
if ($row['dossier_contrainte_reference'] == 1 |
577 |
|| $row['dossier_contrainte_reference'] == "t" |
578 |
|| $row['dossier_contrainte_reference'] == "Oui") { |
579 |
// |
580 |
$contrainte_reference = "Oui"; |
581 |
} else { |
582 |
// |
583 |
$contrainte_reference = "Non"; |
584 |
} |
585 |
|
586 |
// Affiche les données |
587 |
printf($line, $style, |
588 |
$row['dossier_contrainte_texte'], |
589 |
$contrainte_reference, |
590 |
$row['contrainte_nature'] |
591 |
); |
592 |
|
593 |
// Sauvegarde les données |
594 |
$lastRow['contrainte_groupe'] = $row['contrainte_groupe']; |
595 |
$lastRow['contrainte_sousgroupe'] = $row['contrainte_sousgroupe']; |
596 |
|
597 |
} |
598 |
// Ferme le tableau |
599 |
printf("</table>"); |
600 |
// Ferme le sous-groupe |
601 |
printf("</div>"); |
602 |
// Ferme le groupe |
603 |
printf("</div>"); |
604 |
|
605 |
printf("</div>"); |
606 |
|
607 |
printf("<div class=\"visualClear\"></div>"); |
608 |
// Ferme le fieldset content |
609 |
printf("</div>"); |
610 |
printf("</fieldset>"); |
611 |
} |
612 |
} |
613 |
}// fin classe |
614 |
?> |