6 |
|
|
7 |
class demande extends demande_gen { |
class demande extends demande_gen { |
8 |
|
|
9 |
var $valIdDemandeur = array(); |
var $valIdDemandeur = array("petitionnaire_principal" => "", |
10 |
|
"delegataire" => "", |
11 |
|
"petitionnaire" => array()); |
12 |
|
var $postedIdDemandeur = array("petitionnaire_principal" => "", |
13 |
|
"delegataire" => "", |
14 |
|
"petitionnaire" => array()); |
15 |
|
|
16 |
function demande($id,&$db,$debug) { |
function demande($id,&$db,$debug) { |
17 |
$this->constructeur($id,$db,$debug); |
$this->constructeur($id,$db,$debug); |
27 |
} |
} |
28 |
} |
} |
29 |
|
|
30 |
|
/** |
31 |
|
* Méthode de verification du contenu |
32 |
|
*/ |
33 |
|
function verifier($val, &$db, $DEBUG) { |
34 |
|
parent::verifier($val, $db, $DEBUG); |
35 |
|
$this->getPostedValues(); |
36 |
|
if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR |
37 |
|
empty($this->postedIdDemandeur["petitionnaire_principal"])) { |
38 |
|
$this->correct = false; |
39 |
|
$this->addToMessage("La saisie d'un petitionnaire principal est obligatoire."); |
40 |
|
$this->valIdDemandeur=$this->postedIdDemandeur; |
41 |
|
} |
42 |
|
} |
43 |
/* |
/* |
44 |
* Ajout du fielset |
* Ajout du fielset |
45 |
* Add fieldset |
* Add fieldset |
99 |
* Ajout des délégataires et pétitionnaires |
* Ajout des délégataires et pétitionnaires |
100 |
**/ |
**/ |
101 |
function triggerAjouterApres($id, &$db, $val, $DEBUG){ |
function triggerAjouterApres($id, &$db, $val, $DEBUG){ |
102 |
|
$this->listeDemandeur(); |
103 |
$this->insertLinkDemandeDemandeur($db, $DEBUG); |
$this->insertLinkDemandeDemandeur($db, $DEBUG); |
104 |
|
$this->valIdDemandeur=$this->postedIdDemandeur; |
105 |
|
|
106 |
} |
} |
107 |
function triggerModifierApres($id, &$db, $val, $DEBUG){ |
function triggerModifierApres($id, &$db, $val, $DEBUG){ |
108 |
|
$this->listeDemandeur(); |
109 |
$this->insertLinkDemandeDemandeur($db, $DEBUG); |
$this->insertLinkDemandeDemandeur($db, $DEBUG); |
110 |
|
$this->valIdDemandeur=$this->postedIdDemandeur; |
111 |
|
|
112 |
} |
} |
113 |
|
|
114 |
/** |
/** |
115 |
* Insertion des liens entre la demande et les demendeurs recement ajoutés |
* Gestion des liens entre la demande et les demendeurs recement ajoutés |
116 |
**/ |
**/ |
117 |
function insertLinkDemandeDemandeur($db, $DEBUG) { |
function insertLinkDemandeDemandeur($db, $DEBUG) { |
|
$postedValues=$this->getPostedValues(); |
|
118 |
// |
// |
119 |
require_once "../obj/lien_demande_demandeur.class.php"; |
require_once "../obj/lien_demande_demandeur.class.php"; |
|
$lien_demande_demandeur = new lien_demande_demandeur("]", $db, $DEBUG); |
|
|
// Traitement du tableau des des valeurs postées |
|
|
foreach ($postedValues as $type => $demandeur) { |
|
|
// Liste des petitionnaires secondaires |
|
|
if($type == "petitionnaire" AND count($postedValues["petitionnaire"]) > 0) { |
|
|
foreach ($demandeur as $petitionnaire) { |
|
|
// Enregistrement des liens demande petitionnaire |
|
|
$lien = array('lien_demande_demandeur' => "", |
|
|
'petitionnaire_principal' => "f", |
|
|
'demande' => $this->valF['demande'], |
|
|
'demandeur' => $petitionnaire); |
|
|
$lien_demande_demandeur -> ajouter($lien, $db, $DEBUG); |
|
|
} |
|
|
} else { |
|
|
// Enregistrement des liens demande, patitionnaire_principal/delegataire |
|
|
$lien = array('lien_demande_demandeur' => "", |
|
|
'petitionnaire_principal' => |
|
|
(($type == "petitionnaire_principal")? "t":"f" ), |
|
|
'demande' => $this->valF['demande'], |
|
|
'demandeur' => $demandeur); |
|
|
$lien_demande_demandeur -> ajouter($lien, $db, $DEBUG); |
|
120 |
|
|
121 |
|
// Comparaison de l'id petitionnaire principal |
122 |
|
if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND |
123 |
|
!empty($this->postedIdDemandeur['petitionnaire_principal']) AND |
124 |
|
$this->valIdDemandeur['petitionnaire_principal'] != |
125 |
|
$this->postedIdDemandeur['petitionnaire_principal']) { |
126 |
|
// Ajout du nouveau lien |
127 |
|
$this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG); |
128 |
|
if(!empty($this->valIdDemandeur['petitionnaire_principal'])) { |
129 |
|
$this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG); |
130 |
|
} |
131 |
|
} |
132 |
|
|
133 |
|
// Comparaison du delegataire |
134 |
|
if(isset($this->postedIdDemandeur['delegataire']) AND |
135 |
|
!empty($this->postedIdDemandeur['delegataire']) AND |
136 |
|
$this->valIdDemandeur['delegataire'] != |
137 |
|
$this->postedIdDemandeur['delegataire']) { |
138 |
|
// Ajout du nouveau lien |
139 |
|
$this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG); |
140 |
|
if(!empty($this->valIdDemandeur['delegataire'])) { |
141 |
|
$this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG); |
142 |
|
} |
143 |
|
} |
144 |
|
|
145 |
|
// Comparaison des different petitionnaires |
146 |
|
if(isset($this->postedIdDemandeur['petitionnaire'])) { |
147 |
|
// Suppression des liens non valides |
148 |
|
foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) { |
149 |
|
if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) { |
150 |
|
$this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG); |
151 |
|
} |
152 |
|
} |
153 |
|
// Ajout des nouveaux liens |
154 |
|
foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) { |
155 |
|
if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) { |
156 |
|
$this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG); |
157 |
|
} |
158 |
} |
} |
159 |
} |
} |
160 |
// Affichage du nombre de liaisons |
} |
161 |
if(count($postedValues) > 1) { |
|
162 |
$this->addToMessage(count($postedValues)." "._("demandeurs ont ete ajoutes")); |
|
163 |
|
/** |
164 |
|
* Fonction permettant d'ajouter un lien |
165 |
|
* entre la table demande et demandeur |
166 |
|
**/ |
167 |
|
function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) { |
168 |
|
$lienAjout = new lien_demande_demandeur( |
169 |
|
"]", |
170 |
|
$db, |
171 |
|
$DEBUG); |
172 |
|
$lien = array('lien_demande_demandeur' => "", |
173 |
|
'petitionnaire_principal' => (($principal)?"t":"f"), |
174 |
|
'demande' => $this->valF['demande'], |
175 |
|
'demandeur' => $id); |
176 |
|
$lienAjout->ajouter($lien, $db, $DEBUG); |
177 |
|
$lienAjout->__destruct(); |
178 |
|
} |
179 |
|
|
180 |
|
/** |
181 |
|
* Fonction permettant de supprimer un lien |
182 |
|
* entre la table demande et demandeur |
183 |
|
**/ |
184 |
|
function deleteLinkDemandeDemandeur($id, $db, $DEBUG) { |
185 |
|
// Suppression |
186 |
|
$sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ". |
187 |
|
"WHERE demande=".$this->valF['demande']. |
188 |
|
" AND demandeur=".$id; |
189 |
|
// Execution de la requete de suppression de l'objet |
190 |
|
$res = $db->query($sql); |
191 |
|
// Logger |
192 |
|
$this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE); |
193 |
|
$this->f->isDatabaseError(); |
194 |
|
|
195 |
|
} |
196 |
|
|
197 |
|
function isLinkDemandeDemandeurExist($idDemandeur) { |
198 |
|
$sql = "SELECT count(*) |
199 |
|
FROM ".DB_PREFIXE."lien_demande_demandeur |
200 |
|
WHERE demande = ".$this->valF['demande']. |
201 |
|
"AND demandeur = ".$idDemandeur; |
202 |
|
$count = $this->f->db->getOne($sql); |
203 |
|
$this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE); |
204 |
|
$this->f->isDatabaseError($count); |
205 |
|
if ($count === 0) { |
206 |
|
return false; |
207 |
} else { |
} else { |
208 |
$this->addToMessage(_("Un demandeur a ete ajoute")); |
return true; |
209 |
} |
} |
210 |
|
|
211 |
} |
} |
212 |
|
|
213 |
/** |
/** |
215 |
**/ |
**/ |
216 |
function getPostedValues() { |
function getPostedValues() { |
217 |
// Récupération des demandeurs dans POST |
// Récupération des demandeurs dans POST |
|
$values=array(); |
|
218 |
if (isset($_POST['petitionnaire_principal']) OR |
if (isset($_POST['petitionnaire_principal']) OR |
219 |
isset($_POST['delegataire']) OR |
isset($_POST['delegataire']) OR |
220 |
isset($_POST['petitionnaire'])) { |
isset($_POST['petitionnaire'])) { |
221 |
if( isset($_POST['petitionnaire_principal']) AND |
if( isset($_POST['petitionnaire_principal']) AND |
222 |
!empty($_POST['petitionnaire_principal'])) { |
!empty($_POST['petitionnaire_principal'])) { |
223 |
$values['petitionnaire_principal'] = $_POST['petitionnaire_principal']; |
$this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal']; |
224 |
} |
} |
225 |
if( isset($_POST['delegataire']) AND |
if( isset($_POST['delegataire']) AND |
226 |
!empty($_POST['delegataire'])) { |
!empty($_POST['delegataire'])) { |
227 |
$values['delegataire'] = $_POST['delegataire']; |
$this->postedIdDemandeur['delegataire'] = $_POST['delegataire']; |
228 |
} |
} |
229 |
if( isset($_POST['petitionnaire']) AND |
if( isset($_POST['petitionnaire']) AND |
230 |
!empty($_POST['petitionnaire'])) { |
!empty($_POST['petitionnaire'])) { |
231 |
$values['petitionnaire'] = $_POST['petitionnaire']; |
$this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire']; |
232 |
} |
} |
233 |
} |
} |
|
return $values; |
|
234 |
} |
} |
235 |
/** |
/** |
236 |
* Méthode permettant de récupérer les id des demandeur lié à la demande |
* Méthode permettant de récupérer les id des demandeur lié à la demande |
237 |
**/ |
**/ |
238 |
function setValIdDemandeur() { |
function listeDemandeur() { |
239 |
// Récupération des demandeurs de la base |
// Récupération des demandeurs de la base |
240 |
$sql = "SELECT demandeur.demandeur, |
$sql = "SELECT demandeur.demandeur, |
241 |
demandeur.type_demandeur, |
demandeur.type_demandeur, |
245 |
ON demandeur.demandeur=lien_demande_demandeur.demandeur |
ON demandeur.demandeur=lien_demande_demandeur.demandeur |
246 |
WHERE demande = ".$this->val[array_search('demande', $this->champs)]; |
WHERE demande = ".$this->val[array_search('demande', $this->champs)]; |
247 |
$res = $this->f->db->query($sql); |
$res = $this->f->db->query($sql); |
248 |
$this->f->addToLog("setValIdDemandeur() : ".$sql); |
$this->f->addToLog("listeDemandeur() : ".$sql); |
249 |
$this->f->isDatabaseError($res); |
$this->f->isDatabaseError($res); |
250 |
// Stoquage du résultat dans un tableau |
// Stoquage du résultat dans un tableau |
251 |
while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
259 |
$this->valIdDemandeur['delegataire']=$row['demandeur']; |
$this->valIdDemandeur['delegataire']=$row['demandeur']; |
260 |
} |
} |
261 |
} |
} |
|
// Demandeurs de la base ÉCRASÉS dans le tableau par ceux du POST |
|
|
$this->valIdDemandeur = array_merge($this->valIdDemandeur, $this->getPostedValues()); |
|
262 |
} |
} |
263 |
|
|
264 |
/** |
/** |
265 |
* Ajout de la liste des demandeurs |
* Ajout de la liste des demandeurs |
266 |
*/ |
*/ |
267 |
function formSpecificContent($maj) { |
function formSpecificContent($maj) { |
268 |
$this->setValIdDemandeur(); |
if(!$this->correct) { |
269 |
|
$this->listeDemandeur(); |
270 |
|
} |
271 |
|
if($maj < 2 AND !$this->correct) { |
272 |
|
$linkable = true; |
273 |
|
} else { |
274 |
|
$linkable = false; |
275 |
|
} |
276 |
// Conteneur de la listes des demandeurs |
// Conteneur de la listes des demandeurs |
277 |
echo "<div class=\"demande_hidden_bloc col_12\">"; |
echo "<div class=\"demande_hidden_bloc col_12\">"; |
278 |
echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">"; |
echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">"; |
283 |
require_once "../obj/delegataire.class.php"; |
require_once "../obj/delegataire.class.php"; |
284 |
|
|
285 |
// Affichage du bloc pétitionnaire principal / délégataire |
// Affichage du bloc pétitionnaire principal / délégataire |
286 |
|
// L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS |
287 |
echo "<div id=\"petitionnaire_principal_delegataire\">"; |
echo "<div id=\"petitionnaire_principal_delegataire\">"; |
288 |
// Affichage de la synthèse |
// Affichage de la synthèse |
289 |
if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND |
if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND |
291 |
$demandeur = new petitionnaire( |
$demandeur = new petitionnaire( |
292 |
$this->valIdDemandeur["petitionnaire_principal"], |
$this->valIdDemandeur["petitionnaire_principal"], |
293 |
$this->f->db,false); |
$this->f->db,false); |
294 |
$demandeur -> afficherSynthese("petitionnaire_principal"); |
$demandeur -> afficherSynthese("petitionnaire_principal", $linkable); |
295 |
$demandeur -> __destruct(); |
$demandeur -> __destruct(); |
296 |
} else { |
} |
297 |
// Si en édition de formulaire |
// Si en édition de formulaire |
298 |
if($maj < 2 AND $this->correct != true) { |
if($maj < 2 AND $this->correct != true) { |
299 |
// Bouton d'ajout du pétitionnaire principal |
// Bouton d'ajout du pétitionnaire principal |
300 |
echo "<input id=\"add_petitionnaire_principal\" |
// L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS |
301 |
class=\"ui-button ui-widget ui-state-default ui-corner-all\" |
echo "<input id=\"add_petitionnaire_principal\" |
302 |
type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>"; |
class=\"ui-button ui-widget ui-state-default ui-corner-all\" |
303 |
} |
type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>"; |
304 |
|
echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> "; |
305 |
|
// Bouton d'ajout du delegataire |
306 |
|
// L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS |
307 |
|
echo "<input id=\"add_delegataire\" |
308 |
|
class=\"ui-button ui-widget ui-state-default ui-corner-all\" |
309 |
|
type=\"button\" value=\""._("Saisir le delegataire")."\"/>"; |
310 |
} |
} |
311 |
// Affichage de la synthèse |
// Affichage de la synthèse |
312 |
if (isset ($this->valIdDemandeur["delegataire"]) AND |
if (isset ($this->valIdDemandeur["delegataire"]) AND |
313 |
!empty($this->valIdDemandeur["delegataire"])) { |
!empty($this->valIdDemandeur["delegataire"])) { |
|
echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> "; |
|
314 |
$demandeur = new delegataire($this->valIdDemandeur["delegataire"], |
$demandeur = new delegataire($this->valIdDemandeur["delegataire"], |
315 |
$this->f->db,false); |
$this->f->db,false); |
316 |
$demandeur -> afficherSynthese("delegataire"); |
$demandeur -> afficherSynthese("delegataire", $linkable); |
317 |
$demandeur -> __destruct(); |
$demandeur -> __destruct(); |
|
} else { |
|
|
if($maj < 2 AND $this->correct != true AND |
|
|
isset ($this->valIdDemandeur["petitionnaire_principal"]) AND |
|
|
!empty($this->valIdDemandeur["petitionnaire_principal"])) { |
|
|
echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> "; |
|
|
// Bouton d'ajout du pétitionnaire principal |
|
|
echo "<input id=\"add_delegataire\" |
|
|
class=\"ui-button ui-widget ui-state-default ui-corner-all\" |
|
|
type=\"button\" value=\""._("Saisir le delegataire")."\"/>"; |
|
|
} |
|
318 |
} |
} |
319 |
|
|
320 |
echo "</div>"; |
echo "</div>"; |
321 |
|
|
322 |
// Bloc des pétitionnaires secondaires |
// Bloc des pétitionnaires secondaires |
323 |
|
// L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS |
324 |
echo "<div id=\"listePetitionnaires\">"; |
echo "<div id=\"listePetitionnaires\">"; |
325 |
|
|
326 |
// Affichage de la synthèse |
// Affichage de la synthèse |
330 |
foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) { |
foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) { |
331 |
$demandeur = new petitionnaire($petitionnaire, |
$demandeur = new petitionnaire($petitionnaire, |
332 |
$this->f->db,false); |
$this->f->db,false); |
333 |
$demandeur -> afficherSynthese("petitionnaire"); |
$demandeur -> afficherSynthese("petitionnaire", $linkable); |
334 |
$demandeur -> __destruct(); |
$demandeur -> __destruct(); |
335 |
} |
} |
336 |
|
|
337 |
} |
} |
338 |
if ($maj < 2 AND $this->correct != true AND |
if ($maj < 2 AND !$this->correct) { |
339 |
isset ($this->valIdDemandeur["petitionnaire_principal"]) AND |
// L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS |
|
!empty($this->valIdDemandeur["petitionnaire_principal"])) { |
|
340 |
echo "<input id=\"add_petitionnaire\" |
echo "<input id=\"add_petitionnaire\" |
341 |
class=\"ui-button ui-widget ui-state-default ui-corner-all\" |
class=\"ui-button ui-widget ui-state-default ui-corner-all\" |
342 |
type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>"; |
type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>"; |