1 |
mbroquet |
3730 |
<?php |
2 |
softime |
7996 |
/** |
3 |
|
|
* DBFORM - 'instructeur' - Surcharge gen. |
4 |
|
|
* |
5 |
|
|
* Ce script permet de définir la classe 'instructeur'. |
6 |
|
|
* |
7 |
|
|
* @package openads |
8 |
|
|
* @version SVN : $Id: instructeur.class.php 5839 2016-01-29 08:50:12Z fmichon $ |
9 |
|
|
*/ |
10 |
mbroquet |
3730 |
|
11 |
|
|
require_once "../gen/obj/instructeur.class.php"; |
12 |
|
|
|
13 |
|
|
class instructeur extends instructeur_gen { |
14 |
|
|
|
15 |
softime |
8722 |
/** |
16 |
|
|
* |
17 |
|
|
* @return string |
18 |
|
|
*/ |
19 |
|
|
function get_var_sql_forminc__sql_utilisateur_by_division() { |
20 |
|
|
// Récupère la liste des utilisateurs appartement à la même collectivité que la |
21 |
|
|
// direction de la division sur laquelle la condition est faite |
22 |
|
|
return "SELECT |
23 |
|
|
om_utilisateur.om_utilisateur, |
24 |
|
|
om_utilisateur.nom as lib |
25 |
|
|
FROM " . DB_PREFIXE . "division |
26 |
|
|
INNER JOIN " . DB_PREFIXE . "direction |
27 |
|
|
ON division.direction = direction.direction |
28 |
|
|
INNER JOIN " . DB_PREFIXE . "om_utilisateur |
29 |
|
|
ON om_utilisateur.om_collectivite = direction.om_collectivite |
30 |
|
|
WHERE division.division = '<id_division>' |
31 |
|
|
AND ((division.om_validite_debut IS NULL AND (division.om_validite_fin IS NULL |
32 |
|
|
OR division.om_validite_fin > CURRENT_DATE)) OR (division.om_validite_debut |
33 |
|
|
<= CURRENT_DATE AND (division.om_validite_fin IS NULL |
34 |
|
|
OR division.om_validite_fin > CURRENT_DATE))) |
35 |
|
|
ORDER BY om_utilisateur.nom"; |
36 |
|
|
} |
37 |
|
|
|
38 |
|
|
/** |
39 |
|
|
* |
40 |
|
|
* @return string |
41 |
|
|
*/ |
42 |
|
|
function get_var_sql_forminc__sql_division_by_utilisateur() { |
43 |
|
|
// Récuperation des division par l'utilisateur |
44 |
|
|
return "SELECT |
45 |
|
|
division.division, |
46 |
|
|
division.libelle as lib |
47 |
|
|
FROM " . DB_PREFIXE . "division |
48 |
|
|
INNER JOIN " . DB_PREFIXE . "direction |
49 |
|
|
ON division.direction = direction.direction |
50 |
|
|
INNER JOIN " . DB_PREFIXE . "om_utilisateur |
51 |
|
|
ON om_utilisateur.om_collectivite = direction.om_collectivite |
52 |
|
|
WHERE om_utilisateur.om_utilisateur = '<id_utilisateur>' |
53 |
|
|
ORDER BY division.libelle"; |
54 |
|
|
} |
55 |
|
|
|
56 |
|
|
/** |
57 |
|
|
* |
58 |
|
|
* @return string |
59 |
|
|
*/ |
60 |
|
|
function get_var_sql_forminc__sql_division_by_collectivite() { |
61 |
|
|
// Si on est en mono on doit voir que les divisions de sa collectivite |
62 |
|
|
return "SELECT |
63 |
|
|
division.division, division.libelle |
64 |
|
|
FROM " . DB_PREFIXE . "division |
65 |
|
|
INNER JOIN " . DB_PREFIXE . "direction |
66 |
|
|
ON division.direction = direction.direction |
67 |
|
|
WHERE ((division.om_validite_debut IS NULL AND (division.om_validite_fin |
68 |
|
|
IS NULL OR division.om_validite_fin > CURRENT_DATE)) |
69 |
|
|
OR (division.om_validite_debut <= CURRENT_DATE AND (division.om_validite_fin |
70 |
|
|
IS NULL OR division.om_validite_fin > CURRENT_DATE))) |
71 |
|
|
AND om_collectivite = <id_collectivite> |
72 |
|
|
ORDER BY division.libelle ASC"; |
73 |
|
|
} |
74 |
|
|
|
75 |
softime |
7366 |
function setOnchange(&$form, $maj){ |
76 |
|
|
parent::setOnchange($form, $maj); |
77 |
|
|
|
78 |
|
|
// Si on n'est pas dans le contexte d'un sous-formulaire |
79 |
|
|
if ($this->getParameter('retourformulaire') === null) { |
80 |
|
|
// |
81 |
|
|
$form->setOnchange("division", "filterSelect(this.value, 'om_utilisateur', 'division', 'instructeur');"); |
82 |
|
|
} |
83 |
|
|
} |
84 |
|
|
|
85 |
softime |
8722 |
/** |
86 |
|
|
* SETTER_FORM - setSelect. |
87 |
|
|
* |
88 |
|
|
* @return void |
89 |
|
|
*/ |
90 |
|
|
function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) { |
91 |
|
|
// parent::setSelect($form, $maj); |
92 |
softime |
7366 |
// On recupere l'objet en cours et son identifiant |
93 |
|
|
$idx = $this->getParameter('idxformulaire'); |
94 |
|
|
$retourformulaire = $this->f->get_submitted_get_value('retourformulaire'); |
95 |
|
|
$obj = $this->f->get_submitted_get_value('obj'); |
96 |
|
|
// Si on est dans le contexte d' "instructeur" en ajout ou en filter select |
97 |
|
|
if (($obj === "instructeur" && $retourformulaire === null) |
98 |
|
|
|| $obj === null) { |
99 |
softime |
8722 |
// Ne fait pas appel au parent car une requête SQL doit être modifiée |
100 |
softime |
7366 |
// dans le cas d'un ajout afin de permettre le bon tri du champ |
101 |
|
|
// om_utilisateur |
102 |
|
|
|
103 |
softime |
8722 |
// L'initialisation des select récupérée depuis la classe générée |
104 |
|
|
// instructeur_qualite |
105 |
|
|
$this->init_select( |
106 |
|
|
$form, |
107 |
|
|
$this->f->db, |
108 |
|
|
$maj, |
109 |
|
|
null, |
110 |
|
|
"instructeur_qualite", |
111 |
|
|
$this->get_var_sql_forminc__sql("instructeur_qualite"), |
112 |
|
|
$this->get_var_sql_forminc__sql("instructeur_qualite_by_id"), |
113 |
|
|
false |
114 |
|
|
); |
115 |
|
|
// om_utilisateur |
116 |
softime |
7366 |
// En mode ajout, on modifie la requête permettant de récupérer la liste |
117 |
|
|
// des utilisateurs afin qu'elle ne retourne raucun résultat |
118 |
softime |
8722 |
$sql_om_utilisateur = $this->get_var_sql_forminc__sql("om_utilisateur"); |
119 |
softime |
7366 |
if ($maj == 0) { |
120 |
|
|
// |
121 |
|
|
$sql_om_utilisateur="SELECT om_utilisateur.om_utilisateur, om_utilisateur.nom FROM ".DB_PREFIXE."om_utilisateur WHERE om_utilisateur = 0"; |
122 |
|
|
} |
123 |
softime |
8722 |
$this->init_select( |
124 |
|
|
$form, |
125 |
|
|
$this->f->db, |
126 |
|
|
$maj, |
127 |
|
|
null, |
128 |
|
|
"om_utilisateur", |
129 |
|
|
$sql_om_utilisateur, |
130 |
|
|
$this->get_var_sql_forminc__sql("om_utilisateur_by_id"), |
131 |
|
|
false |
132 |
|
|
); |
133 |
softime |
7366 |
|
134 |
|
|
// Filtre des division en fonction des niveaux |
135 |
|
|
if ($this->f->isCollectiviteMono($_SESSION['collectivite']) === true) { |
136 |
|
|
// Bloque l'accès aux division autre que celles de sa collectivité |
137 |
softime |
8722 |
$sql_division_by_collectivite = str_replace( |
138 |
|
|
'<id_collectivite>', |
139 |
|
|
$_SESSION['collectivite'], |
140 |
|
|
$this->get_var_sql_forminc__sql("division_by_collectivite") |
141 |
|
|
); |
142 |
|
|
$this->init_select( |
143 |
|
|
$form, |
144 |
|
|
$this->f->db, |
145 |
|
|
$maj, |
146 |
|
|
null, |
147 |
|
|
"division", |
148 |
|
|
$sql_division_by_collectivite, |
149 |
|
|
$this->get_var_sql_forminc__sql("division_by_id"), |
150 |
|
|
true |
151 |
|
|
); |
152 |
|
|
} else { |
153 |
|
|
$this->init_select( |
154 |
|
|
$form, |
155 |
|
|
$this->f->db, |
156 |
|
|
$maj, |
157 |
|
|
null, |
158 |
|
|
"division", |
159 |
|
|
$this->get_var_sql_forminc__sql("division"), |
160 |
|
|
$this->get_var_sql_forminc__sql("division_by_id"), |
161 |
|
|
true |
162 |
|
|
); |
163 |
softime |
7366 |
} |
164 |
|
|
|
165 |
|
|
/** |
166 |
|
|
* Gestion du filtre sur les utilisateurs en fonction de la division |
167 |
|
|
* sélectionnée. |
168 |
|
|
*/ |
169 |
|
|
if ($maj == 0 || $maj == 1) { |
170 |
|
|
// Récupère l'identifiant de la division |
171 |
|
|
$id_division = ""; |
172 |
|
|
if ($this->f->get_submitted_post_value('division') !== null) { |
173 |
|
|
$id_division = $this->f->get_submitted_post_value('division'); |
174 |
softime |
8722 |
} elseif ($this->getParameter('division') != "") { |
175 |
softime |
7366 |
$id_division = $this->getParameter('division'); |
176 |
softime |
8722 |
} elseif (isset($form->val['division'])) { |
177 |
softime |
7366 |
$id_division = $form->val['division']; |
178 |
|
|
} |
179 |
|
|
|
180 |
|
|
// |
181 |
|
|
if ($id_division !== "") { |
182 |
|
|
// Tri les utilisateurs par la collectivité de la division |
183 |
softime |
8722 |
$sql_utilisateur_by_division = str_replace( |
184 |
|
|
'<id_division>', |
185 |
|
|
$id_division, |
186 |
|
|
$this->get_var_sql_forminc__sql("utilisateur_by_division") |
187 |
|
|
); |
188 |
softime |
7366 |
// |
189 |
softime |
8722 |
$this->init_select( |
190 |
|
|
$form, |
191 |
|
|
$this->f->db, |
192 |
|
|
$this->getParameter("maj"), |
193 |
|
|
null, |
194 |
|
|
"om_utilisateur", |
195 |
|
|
$sql_utilisateur_by_division, |
196 |
|
|
$this->get_var_sql_forminc__sql("om_utilisateur_by_id"), |
197 |
|
|
true |
198 |
|
|
); |
199 |
softime |
7366 |
} |
200 |
|
|
} |
201 |
softime |
8722 |
return; |
202 |
softime |
7366 |
} |
203 |
softime |
8722 |
// Si on est dans un autre context que "instructeur" on appelle le parent |
204 |
|
|
parent::setSelect($form, $maj); |
205 |
|
|
// Si on est dans les utilisateurs |
206 |
|
|
if ($idx != null && $retourformulaire !== null && $retourformulaire === "om_utilisateur") { |
207 |
|
|
$sql_division_by_utilisateur = str_replace( |
208 |
|
|
'<id_utilisateur>', |
209 |
|
|
$idx, |
210 |
|
|
$this->get_var_sql_forminc__sql("division_by_utilisateur") |
211 |
|
|
); |
212 |
|
|
$this->init_select( |
213 |
|
|
$form, |
214 |
|
|
$this->f->db, |
215 |
|
|
$this->getParameter("maj"), |
216 |
|
|
null, |
217 |
|
|
"division", |
218 |
|
|
$sql_division_by_utilisateur, |
219 |
|
|
$this->get_var_sql_forminc__sql("division_by_id"), |
220 |
|
|
true |
221 |
|
|
); |
222 |
|
|
return; |
223 |
softime |
7366 |
} |
224 |
softime |
8722 |
// Si on est dans la division |
225 |
|
|
if ($idx != null && $retourformulaire !== null && $retourformulaire === "division") { |
226 |
|
|
$sql_utilisateur_by_division = str_replace( |
227 |
|
|
'<id_division>', |
228 |
|
|
$idx, |
229 |
|
|
$this->get_var_sql_forminc__sql("utilisateur_by_division") |
230 |
|
|
); |
231 |
|
|
$this->init_select( |
232 |
|
|
$form, |
233 |
|
|
$this->f->db, |
234 |
|
|
$this->getParameter("maj"), |
235 |
|
|
null, |
236 |
|
|
"om_utilisateur", |
237 |
|
|
$sql_utilisateur_by_division, |
238 |
|
|
$this->get_var_sql_forminc__sql("om_utilisateur_by_id"), |
239 |
|
|
true |
240 |
|
|
); |
241 |
|
|
return; |
242 |
|
|
} |
243 |
softime |
7366 |
} |
244 |
mbroquet |
3730 |
} |