1 |
<?php |
2 |
/** |
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 |
|
11 |
require_once "../gen/obj/instructeur.class.php"; |
12 |
|
13 |
class instructeur extends instructeur_gen { |
14 |
|
15 |
/** |
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 |
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 |
/** |
86 |
* SETTER_FORM - setSelect. |
87 |
* |
88 |
* @return void |
89 |
*/ |
90 |
function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) { |
91 |
// parent::setSelect($form, $maj); |
92 |
// 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 |
// Ne fait pas appel au parent car une requête SQL doit être modifiée |
100 |
// dans le cas d'un ajout afin de permettre le bon tri du champ |
101 |
// om_utilisateur |
102 |
|
103 |
// 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 |
// 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 |
$sql_om_utilisateur = $this->get_var_sql_forminc__sql("om_utilisateur"); |
119 |
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 |
$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 |
|
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 |
$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 |
} |
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 |
} elseif ($this->getParameter('division') != "") { |
175 |
$id_division = $this->getParameter('division'); |
176 |
} elseif (isset($form->val['division'])) { |
177 |
$id_division = $form->val['division']; |
178 |
} |
179 |
|
180 |
// |
181 |
if ($id_division !== "") { |
182 |
// Tri les utilisateurs par la collectivité de la division |
183 |
$sql_utilisateur_by_division = str_replace( |
184 |
'<id_division>', |
185 |
$id_division, |
186 |
$this->get_var_sql_forminc__sql("utilisateur_by_division") |
187 |
); |
188 |
// |
189 |
$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 |
} |
200 |
} |
201 |
return; |
202 |
} |
203 |
// 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 |
} |
224 |
// 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 |
} |
244 |
} |