/[openfoncier]/trunk/app/dossier_contrainte_edition.php
ViewVC logotype

Contents of /trunk/app/dossier_contrainte_edition.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (show annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 7980 byte(s)
Actualisation du trunk
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 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26