1 |
<?php |
2 |
/** |
3 |
* Ce script est utilisé comme variable de remplacement dans les éditions PDF. |
4 |
* |
5 |
* Il est inclus/requis par les scripts dyn/varetatpdf.inc et |
6 |
* dyn/varlettretypepdf.inc et permet de populer la variable $contraintes |
7 |
* avec la liste des contraintes d'un dossier pour une édition. |
8 |
* |
9 |
* @package openfoncier |
10 |
* @version SVN : $Id: dossier_contrainte_edition.php 5737 2016-01-11 10:10:19Z jymadier $ |
11 |
*/ |
12 |
|
13 |
// Fichiers requis |
14 |
require_once "../obj/utils.class.php"; |
15 |
$this->f->set_submitted_value(); |
16 |
// Par déaut $idx est utilisé comme identifiant de la table dossier |
17 |
$idx = ($this->f->get_submitted_get_value('idx') !== null) ? $this->f->get_submitted_get_value('idx') : ""; |
18 |
|
19 |
// Variable à afficher à la place de "&contraintes" |
20 |
$contraintes = ""; |
21 |
// Tableau associatif à 2 dimensions, qui contient l'ensemble des paramètres fournis à |
22 |
// &contraintes explosés, une ligne du tableau contient un nom de groupe, sous-groupe |
23 |
// ou une valeur. |
24 |
$conditions = array(); |
25 |
|
26 |
// SELECT |
27 |
$selectContraintes = "SELECT |
28 |
dossier_contrainte.texte_complete as dossier_contrainte_texte, |
29 |
lower(contrainte.groupe) as contrainte_groupe, |
30 |
lower(contrainte.sousgroupe) as contrainte_sousgroupe "; |
31 |
|
32 |
// FROM |
33 |
$fromContraintes = " FROM ".DB_PREFIXE."contrainte |
34 |
LEFT JOIN ".DB_PREFIXE."dossier_contrainte |
35 |
ON dossier_contrainte.contrainte = contrainte.contrainte "; |
36 |
|
37 |
// WHERE |
38 |
$whereContraintes = " WHERE dossier_contrainte.dossier = '$idx' "; |
39 |
|
40 |
// Si la variable de remplacement est utilisée dans une lettre type |
41 |
if (isset($var_remplacement_pdf) && $var_remplacement_pdf == "lettretype") { |
42 |
// |
43 |
$fromContraintes .= " LEFT JOIN ".DB_PREFIXE."dossier |
44 |
ON dossier_contrainte.dossier = dossier.dossier |
45 |
LEFT JOIN ".DB_PREFIXE."instruction |
46 |
ON instruction.dossier = dossier.dossier"; |
47 |
|
48 |
// |
49 |
$whereContraintes = " WHERE instruction.instruction = ".$idx; |
50 |
} |
51 |
|
52 |
// Si la variable de remplacement est utilisée dans un etat |
53 |
if (isset($var_remplacement_pdf) && $var_remplacement_pdf == "etat") { |
54 |
// Si c'est une consultation |
55 |
if (strstr($this->f->get_submitted_get_value('obj'), 'consultation_') !== false) { |
56 |
// Ajoute au FROM |
57 |
$fromContraintes .= " LEFT JOIN ".DB_PREFIXE."dossier |
58 |
ON dossier_contrainte.dossier = dossier.dossier |
59 |
LEFT JOIN ".DB_PREFIXE."consultation |
60 |
ON consultation.dossier = dossier.dossier"; |
61 |
|
62 |
// Modifie la condition |
63 |
$whereContraintes = " WHERE consultation.consultation = ".$idx; |
64 |
} |
65 |
|
66 |
// Si c'est un rapport d'instruction |
67 |
if ($this->f->get_submitted_get_value('obj') == 'rapport_instruction') { |
68 |
// Ajoute au FROM |
69 |
$fromContraintes .= " LEFT JOIN ".DB_PREFIXE."dossier |
70 |
ON dossier_contrainte.dossier = dossier.dossier |
71 |
LEFT JOIN ".DB_PREFIXE."rapport_instruction |
72 |
ON rapport_instruction.dossier_instruction = dossier.dossier"; |
73 |
|
74 |
// Modifie la condition |
75 |
$whereContraintes = " WHERE rapport_instruction.rapport_instruction = ".$idx; |
76 |
} |
77 |
} |
78 |
|
79 |
// S'il y a des paramètres &contraintes dans la requête SQL |
80 |
if (isset($contraintes_sql) && $contraintes_sql[0] !== "&contraintes") { |
81 |
// Explose les paramètres et valeurs récupérées dans un tableau |
82 |
$conditions = $this->f->explodeConditionContrainte($contraintes_sql[1]); |
83 |
// Récupération des conditions à ajouter au WHERE de la requête SQL |
84 |
$whereContraintes .= $this->f->traitement_condition_contrainte(NULL, $conditions); |
85 |
} |
86 |
|
87 |
// S'il y a des paramètres &contraintes dans le titre |
88 |
if (isset($contraintes_titre) && $contraintes_titre[0] !== "&contraintes") { |
89 |
// Explose les paramètres et valeurs récupérées dans un tableau |
90 |
$conditions = $this->f->explodeConditionContrainte($contraintes_titre[1]); |
91 |
// Récupération des conditions à ajouter au WHERE de la requête SQL |
92 |
$whereContraintes .= $this->f->traitement_condition_contrainte(NULL, $conditions); |
93 |
} |
94 |
|
95 |
// S'il y a des paramètres &contraintes dans le corps |
96 |
if (isset($contraintes_corps) && $contraintes_corps[0] !== "&contraintes") { |
97 |
// Explose les paramètres et valeurs récupérées dans un tableau |
98 |
$conditions = $this->f->explodeConditionContrainte($contraintes_corps[1]); |
99 |
// Récupération des conditions à ajouter au WHERE de la requête SQL |
100 |
$whereContraintes .= $this->f->traitement_condition_contrainte(NULL, $conditions); |
101 |
} |
102 |
|
103 |
// Tri différent sur les contraintes si l'affichage est sans arborescence |
104 |
if (isset($conditions['affichage_sans_arborescence']) && $conditions['affichage_sans_arborescence'] == 't') { |
105 |
$triContraintes = " ORDER BY contrainte.no_ordre, contrainte.libelle "; |
106 |
} |
107 |
else { |
108 |
$triContraintes = " ORDER BY contrainte_groupe DESC, |
109 |
contrainte_sousgroupe, |
110 |
contrainte.no_ordre, |
111 |
contrainte.libelle "; |
112 |
} |
113 |
|
114 |
// Requête |
115 |
$sqlContraintes = $selectContraintes.$fromContraintes.$whereContraintes.$triContraintes; |
116 |
$resContraintes = $this->f->db->query($sqlContraintes); |
117 |
$this->f->addToLog("app/dossier_contrainte_edition.php: db->query(\"".$sqlContraintes."\");", |
118 |
VERBOSE_MODE); |
119 |
$this->f->isDatabaseError($resContraintes); |
120 |
|
121 |
// S'il y a un résultat |
122 |
if ($resContraintes->numRows() != 0) { |
123 |
|
124 |
// Sauvegarde des données pour les comparer |
125 |
$lastRowContrainte = array(); |
126 |
$lastRowContrainte['contrainte_groupe'] = 'empty'; |
127 |
$lastRowContrainte['contrainte_sousgroupe'] = 'empty'; |
128 |
$contraintes .= "<table width=\"auto\" >"; |
129 |
// Tant qu'il y a un résultat |
130 |
while ($rowContrainte =& $resContraintes->fetchRow(DB_FETCHMODE_ASSOC)) { |
131 |
// Si l'identifiant du groupe de la contrainte présente et celui d'avant sont |
132 |
// différents, et si l'option affichage_sans_arborescence est désactivée |
133 |
if ($rowContrainte['contrainte_groupe'] != $lastRowContrainte['contrainte_groupe'] |
134 |
&& (!isset($conditions['affichage_sans_arborescence']) |
135 |
|| $conditions['affichage_sans_arborescence'] != 't')) { |
136 |
$contraintes .= |
137 |
"<tr><td style=\"width:10px; text-align:right;\"> - </td> |
138 |
<td style=\"width:5px;\"></td><td>". |
139 |
mb_strtoupper($rowContrainte['contrainte_groupe'], 'UTF-8')."</td></tr>"; |
140 |
|
141 |
} |
142 |
|
143 |
// Si l'identifiant du sousgroupe de la contrainte présente et celui d'avant sont |
144 |
// différents, ou s'ils sont identiques mais n'appartiennent pas au même groupe |
145 |
// Et si l'option affichage_sans_arborescence est désactivée |
146 |
if (($rowContrainte['contrainte_sousgroupe'] != $lastRowContrainte['contrainte_sousgroupe'] |
147 |
|| $rowContrainte['contrainte_groupe'] != $lastRowContrainte['contrainte_groupe']) |
148 |
&& $rowContrainte['contrainte_sousgroupe'] != "" && (!isset($conditions['affichage_sans_arborescence']) |
149 |
|| $conditions['affichage_sans_arborescence'] != 't')) { |
150 |
$contraintes .= |
151 |
"<tr><td style=\"width:30px; text-align:right;\"> - </td> |
152 |
<td style=\"width:5px;\"></td><td>". |
153 |
mb_strtoupper($rowContrainte['contrainte_sousgroupe'], 'UTF-8')."</td></tr>"; |
154 |
|
155 |
} |
156 |
// Si l'option d'affichage sans arborescence n'est pas activée, on ajoute les |
157 |
// contraintes avec alinéas avec tirets. |
158 |
// Sinon on affiche les contraintes sans tirets et alinéas. |
159 |
if (!isset($conditions['affichage_sans_arborescence']) || $conditions['affichage_sans_arborescence'] != 't') { |
160 |
$contraintes .= |
161 |
"<tr><td style=\"width:50px; text-align:right;\"> - </td> |
162 |
<td style=\"width:5px;\"></td><td>". |
163 |
ucfirst($rowContrainte['dossier_contrainte_texte'])."</td></tr>"; |
164 |
} |
165 |
else { |
166 |
$contraintes .= |
167 |
"<tr><td>".ucfirst($rowContrainte['dossier_contrainte_texte'])."</td></tr>"; |
168 |
} |
169 |
// sauvegarde des valeurs avant nouvelle itération |
170 |
$lastRowContrainte=$rowContrainte; |
171 |
} |
172 |
$contraintes .= "</table>"; |
173 |
} |
174 |
|
175 |
|
176 |
?> |