/[openfoncier]/trunk/obj/consultation.class.php
ViewVC logotype

Annotation of /trunk/obj/consultation.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1908 - (hide annotations)
Mon May 27 07:54:33 2013 UTC (11 years, 8 months ago) by fmichon
File size: 25429 byte(s)
Correction de la gestion des permissions en fonction de la division sur les objets en onglet dans le contexte d'un dossier d'instruction.

1 fraynaud 3 <?php
2     //$Id$
3     //gen openMairie le 10/02/2011 20:32
4     require_once ("../gen/obj/consultation.class.php");
5 mlimic 843 require_once("../services/outgoing/messageenqueuer.php");
6 fraynaud 3
7     class consultation extends consultation_gen {
8 nhaye 601
9 fraynaud 20 function consultation($id,&$db,$debug) {
10     $this->constructeur($id,$db,$debug);
11     }// fin constructeur
12 fmichon 943
13     // {{{ Gestion de la confidentialité des données spécifiques
14    
15     /**
16     * Surcharge pour gérer les actions disponibles dans le portlet
17     */
18     function checkAccessibility() {
19     //
20     parent::checkAccessibility();
21     // Si l'utilisateur est un intructeur qui en correspond pas à la
22     // division du dossier
23     if ($this->f->isUserInstructeur()
24     && isset($this->f->om_utilisateur["division"])
25     && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()) {
26     //
27     $this->actions_sup = array();
28     $this->setParameter("actions", array());
29     }
30     // Si une action 'lu' est présente et que le champ lu est à true
31     // on supprime l'action
32     if (isset($this->actions_sup["lu"])
33     && isset($this->val[array_search("lu", $this->champs)])
34     && $this->val[array_search("lu", $this->champs)]== "t") {
35     unset($this->actions_sup["lu"]);
36     }
37     }
38    
39     /**
40     * Cette methode est à surcharger elle permet de tester dans chaque classe
41     * des droits des droits spécifiques en fonction des données
42     */
43     function canAccess() {
44     // Si l'utilisateur est un utilisateur de service externe
45     // on vérifie qu'il peut accéder à la consultation
46     if ($this->f->isUserServiceExt()) {
47     // On compare l'id du service de la consultation
48     // aux id des services de utilisateur connecté
49     foreach($this->f->om_utilisateur['service'] as $service) {
50     if($this->val[array_search("service",$this->champs)]===$service['service']) {
51     return true;
52     }
53     }
54 fmichon 1088 //
55     $this->f->addToLog("canAccess(): utilisateur de service sur une consultation d'un autre service", EXTRA_VERBOSE_MODE);
56 fmichon 943 return false;
57     }
58     // Si l'utilisateur est un intructeur qui ne correspond pas à la
59     // division du dossier
60     if ($this->f->isUserInstructeur()
61     && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()
62     && $this->getParameter("maj") != 3) {
63     //
64 fmichon 1088 $this->f->addToLog("canAccess(): utilisateur instructeur sur un dossier d'une autre division", EXTRA_VERBOSE_MODE);
65 fmichon 943 return false;
66     }
67     //
68     return true;
69     }
70    
71     /**
72 fmichon 1908 * Cette variable permet de stocker le résultat de la méthode
73     * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
74     * ces appels.
75     * @var string Code de la division du dossier en cours
76 fmichon 943 */
77 fmichon 1908 var $_division_from_dossier = NULL;
78    
79     /**
80     * Cette méthode permet de récupérer le code de division correspondant
81     * au dossier sur lequel on se trouve.
82     *
83     * @return string Code de la division du dossier en cours
84     */
85 fmichon 943 function getDivisionFromDossier() {
86 fmichon 1908
87     // Cette méthode peut être appelée plusieurs fois lors d'une requête.
88     // Pour éviter de refaire le traitement de recherche de la division
89     // alors on vérifie si nous ne l'avons pas déjà calculé.
90     if ($this->_division_from_dossier != NULL) {
91     // Logger
92     $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
93     // On retourne la valeur déjà calculée
94     return $this->_division_from_dossier;
95     }
96    
97     // Par défaut, on définit la valeur du dossier à NULL
98     $dossier = NULL;
99     // Test sur le mode et le contexte du formulaire
100     if ($this->getParameter("maj") == 0
101     && ($this->getParameter("retourformulaire") == "dossier"
102     || $this->getParameter("retourformulaire") == "dossier_instruction"
103     || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
104     || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
105     || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
106     || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
107     // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
108     // n'existe pas en base de données) ET que nous nous trouvons
109     // dans le contexte d'un dossier d'instruction alors on récupère
110     // le numéro de dossier depuis le paramètre 'idxformulaire'
111     $dossier = $this->getParameter("idxformulaire");
112 fmichon 1088 } else {
113 fmichon 1908 // Sinon on récupère le numéro de dossier dans le champs dossier de
114     // l'enregistrement (en base de données)
115     $dossier = $this->getVal("dossier");
116 fmichon 943 }
117 fmichon 1088
118 fmichon 1908 // On appelle la méthode de la classe utils qui renvoi le code de la
119     // division d'un dossier, on la stocke pour ne pas refaire le calcul au
120     // prochain appel de cette méthode
121     $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
122     // Logger
123     $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
124     // On retourne la valeur retournée
125     return $this->_division_from_dossier;
126    
127 fmichon 943 }
128    
129     // }}}
130    
131 fraynaud 20 function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
132 nhaye 1683 // ajout du retourformulaire aux attributs de l'objet
133     $this->retourformulaire = $retourformulaire;
134 fraynaud 20 if ($validation==0) {
135     if ($maj == 0){
136 nhaye 569 $form->setVal("dossier", $idxformulaire);
137     $form->setVal("date_envoi",date('d/m/Y'));
138 fraynaud 20 }
139 nhaye 587 if($maj == 1) {
140 nhaye 594 if($this->f->isAccredited('consultation_retour_avis_suivi') OR
141     $this->f->isAccredited('consultation_retour_avis_service')) {
142     $form->setVal("date_retour",date('d/m/Y'));
143     }
144 nhaye 587 }
145 fraynaud 20 }
146     }
147 nhaye 587
148     function setVal(&$form, $maj, $validation, &$db) {
149     if($maj == 1) {
150     $form->setVal("date_retour",date('d/m/Y'));
151     }
152     }
153 fraynaud 20
154 nhaye 561 function setvalF($val) {
155 fmichon 1730 //
156 nhaye 561 parent::setValF($val);
157 fmichon 1730 //
158     if ($this->getParameter('maj') == 0) {
159     //
160     if (isset($this->valF["date_envoi"])) {
161     $this->valF["date_reception"] = $this->valF["date_envoi"];
162     }
163     //
164 fmichon 1172 $this->valF["lu"] = true;
165 nhaye 587 }
166 nhaye 598
167 nhaye 561 // Si un retour d'avis est modifie on passe "lu" a false
168 nhaye 598 if($this->getParameter('maj')==1 AND (
169     $this->val[array_search("avis_consultation",$this->champs)] != $val["avis_consultation"] OR
170     $this->val[array_search("date_retour",$this->champs)] != $val["date_retour"] OR
171     $this->val[array_search("motivation",$this->champs)] != $val["motivation"] OR
172 nhaye 674 $this->val[array_search("fichier",$this->champs)] != $val["fichier"])
173 nhaye 598 ) {
174     $this->valF["lu"]=false;
175 nhaye 561 }
176 nhaye 675 }
177 fmichon 1730
178     function setLib(&$form, $maj) {
179     //
180     parent::setLib($form, $maj);
181     //
182     $form->setLib($this->clePrimaire, _("id"));
183     }
184    
185 fraynaud 20 function setType(&$form,$maj) {
186 fmichon 671 // Appel du parent
187 nhaye 459 parent::setType($form,$maj);
188 fmichon 671 // MODE - AJOUTER
189     if ($maj == 0) {
190     // On cache alors tous les champs que nous ne voulons pas voir
191     // apparaître dans le formulaire d'ajout (principalement les
192     // informations sur le retour d'avis)
193     $form->setType('date_retour', 'hidden');
194     $form->setType('date_reception', 'hidden');
195     $form->setType('date_limite', 'hidden');
196     $form->setType('avis_consultation', 'hidden');
197     $form->setType('motivation', 'hidden');
198     $form->setType('fichier', 'hidden');
199     $form->setType('lu', 'hidden');
200     // On permet la modification de certains champs
201     $form->setType('dossier', 'hiddenstatic');
202     $form->setType('service', 'select');
203     $form->setType('date_envoi', 'date2');
204     }
205     // MODE - MODIFIER
206     if ($maj == 1) {
207    
208     // On affiche en statique les informations qui ne sont plus
209     // modifiables
210     $form->setType('dossier', 'hiddenstatic');
211     $form->setType('date_envoi', 'hiddenstaticdate');
212     $form->setType('date_limite', 'hiddenstaticdate');
213     $form->setType('service', 'selecthiddenstatic');
214    
215     // La date de réception ne peut être modifiée que par un
216     // utilisateur en ayant spécifiquement la permission
217     if($this->f->isAccredited('consultation_modifier_date_reception')) {
218     $form->setType('date_reception', 'date2');
219     } else {
220     $form->setType('date_reception', 'hiddenstaticdate');
221     }
222    
223     // Le marqueur lu/non lu ne peut être modifié que par un
224     // utilisateur en ayant spécifiquement la permission
225     if ($this->f->isAccredited('consultation_modifier_lu')) {
226     $form->setType('lu', 'checkbox');
227     } else {
228     $form->setType('lu', 'hidden');
229     }
230    
231     // Gestion du type du widget sur le champ fichier
232 nhaye 1683 if($this->getVal("fichier") == "" OR
233 fmichon 671 $this->f->isAccredited('consultation_modifier_fichier')) {
234     // Si il n'y a jamais eu de fichier enregistré ou que
235     // l'utilisateur a spécifiquement les droits pour modifier
236     // un fichier déjà enregistré alors on positionne un type
237     // de widget modifiable
238 nhaye 1683 if($this->retourformulaire == "demande_avis_encours") {
239     $form->setType('fichier', 'upload2');
240     } else {
241     $form->setType('fichier', 'upload');
242     }
243 fmichon 671 } else {
244     // Si non on affiche uniquement le nom du fichier
245 nhaye 1683 $form->setType('fichier', 'file');
246 fmichon 671 }
247    
248     // Modification layout : écran de retour d'avis permettant
249     // uniquement la saisie des trois champs : avis, motivation et fichier
250     if (!$this->f->isAccredited('consultation_consulter_autre_que_retour_avis')) {
251    
252     // On cache alors tous les champs que nous ne voulons pas voir
253     $form->setType('dossier', 'hidden');
254     $form->setType('service', 'hidden');
255     $form->setType('date_envoi', 'hidden');
256     $form->setType('date_retour', 'hidden');
257     $form->setType('date_reception', 'hidden');
258 fraynaud 20 $form->setType('date_limite', 'hidden');
259 nhaye 561 $form->setType('lu', 'hidden');
260 fmichon 671
261 fraynaud 20 }
262 vpihour 1784
263 fraynaud 20 }
264 nhaye 1895 // Mode supprimer
265     if ($maj == 2) {
266     $form->setType('fichier', 'filestatic');
267     }
268 nhaye 674 // MODE - CONSULTER
269     if ( $maj == 3 ) {
270 nhaye 1683 $form->setType('fichier', 'file');
271 nhaye 674 }
272 fmichon 671 //// On cache la clé primaire
273     //$form->setType('consultation', 'hidden');
274 fmichon 1730 //
275     if ($this->getParameter("retourformulaire") == "dossier"
276     || $this->getParameter("retourformulaire") == "dossier_instruction"
277     || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
278     || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
279     || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
280     || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures") {
281     //
282     $form->setType('dossier', 'hidden');
283     }
284 vpihour 1784
285     $form->setType('code_barres', 'hidden');
286 vpihour 1899
287     //Cache les champs pour la finalisation
288     $form->setType('om_fichier_consultation', 'hidden');
289     $form->setType('om_final_consultation', 'hidden');
290 fraynaud 20 }
291    
292 fmichon 1170 // Cette méthode permet de calculer la date limite en fonction de la date
293     // de réception et du délai de consultation du service consulté
294     function calculDateLimite() {
295 fraynaud 20 // mise a jour instruction avec evenement [return delay]
296 fmichon 1170 if ($this->valF["date_reception"] != "") {
297     //
298     $sql = " select delai from ".DB_PREFIXE."service ";
299     $sql .= " where service='".$this->valF["service"]."' ";
300     //
301     $delai = $this->db->getOne($sql);
302     $this->addToLog("triggerajouter(): db->getone(\"".$sql."\")", VERBOSE_MODE);
303     //
304     $this->valF["date_limite"] = $this->moisdate($this->valF["date_reception"], $delai);
305     //
306 nhaye 532 $this->addToMessage(_("delai")." ".
307 fraynaud 41 _("retour")." ".$delai." "._("mois")." -> ".
308 fmichon 1170 _("retour")." ".date("d/m/Y", strtotime($this->valF["date_limite"])));
309 fraynaud 41 }
310 fraynaud 20 }
311 fmichon 1170
312     // TRIGGER AVANT MODIFICATION DE DONNEES
313     // trigger before modification data
314     function triggerajouter($id,&$db,$val,$DEBUG) {
315     //
316     $this->calculDateLimite();
317 vpihour 1784
318     // Identifiant du type de courrier
319     $idTypeCourrier = '12';
320     $idCourrier = str_pad($this->valF["consultation"], 10, "0", STR_PAD_LEFT);
321     // Code barres
322     $this->valF["code_barres"] = $idTypeCourrier . $idCourrier;
323 fmichon 1170 }
324    
325     //
326     function triggermodifier($id,&$db,$val,$DEBUG) {
327     //
328     $this->calculDateLimite();
329     }
330    
331     //
332 nhaye 532 function triggerajouterapres($id,&$db,$val,$DEBUG) {
333    
334     // Verification de la demande de notif par mail
335 fmichon 1168 $sql= "SELECT abrege, libelle, notification_email, email FROM ".DB_PREFIXE.
336 nhaye 532 "service WHERE service ='".$this->valF['service']."'";
337     $res=$db->query($sql);
338     $notif = $res->fetchrow(DB_FETCHMODE_ASSOC);
339     if (database :: isError($sql))die($res->getMessage()."erreur ".$sql);
340     if ($notif['notification_email']=='t') {
341    
342     // Recuperation des infos du dossier
343     $sql= "SELECT dossier, terrain_adresse, terrain_adresse_complement, terrain_cp, terrain_ville
344     FROM ".DB_PREFIXE."dossier WHERE dossier ='".$this->valF['dossier']."'";
345     $res=$db->query($sql);
346     $dossier = $res->fetchrow(DB_FETCHMODE_ASSOC);
347    
348     // Definition des parametres d'envoi du mail
349     $title=_("Consultation de services : dossier no")." ".$dossier['dossier'];
350     $corps=_("Votre service est consulte concernant le dossier no")." ".$dossier['dossier']."<br/>".
351     _("Il concerne le terrain situe a l'adresse :")." ".utf8_decode($dossier['terrain_adresse']).
352     " ".utf8_decode($dossier['terrain_adresse_complement'])." ".utf8_decode($dossier['terrain_cp'])." ".$dossier['terrain_ville']."<br/>".
353 fmichon 668 _("Vous pouvez y acceder et rendre votre avis a l'adresse")." <a href='".$this->f->getParameter('services_consultes_lien_interne').
354 nhaye 532 "scr/form.php?obj=consultation&action=3&idx=".$this->valF['consultation']."' >".
355 fmichon 668 _("Lien interne (services VDM)")."</a> "._("ou")." <a href='".$this->f->getParameter('services_consultes_lien_externe').
356 nhaye 532 "scr/form.php?obj=consultation&action=3&idx=".$this->valF['consultation']."' >".
357     _("Lien externe (hors VDM)")."</a>";
358     // Envoi du mail avec message de retour
359     if($this->f->sendMail($title, $corps, $notif['email'])) {
360 fmichon 1168 $this->addToMessage(_("Envoi d'un mail de notification au service")." \"(".$notif['abrege'].") ".$notif["libelle"]."\"");
361 nhaye 532 } else {
362     $this->addToMessage(_("L'envoi du mail de notification a echoue"));
363     }
364     }
365    
366 fmichon 1005
367     // verification si envoi vers ERP est active
368     if ($this->f->getParameter('option_erp') != "") {
369     // s'il s'agit de la consultation ERP Secu, ERP Accessibilite, ou
370     // deenvoie un
371     // message a ERP
372     $dossier_erp = $this->getFromDB("SELECT erp FROM ".DB_PREFIXE.
373     "dossier WHERE dossier = '" .$this->valF['dossier'] . "'");
374 nhaye 1140 $dossier_nature = $this->getFromDB("SELECT dossier_autorisation_type_detaille.code FROM ".DB_PREFIXE.
375     "dossier
376     INNER JOIN ".DB_PREFIXE."dossier_autorisation
377     ON dossier.dossier_autorisation=dossier_autorisation.dossier_autorisation
378     INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
379     ON dossier_autorisation.dossier_autorisation_type_detaille
380     = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
381     WHERE dossier = '" . $this->valF['dossier'] . "'");
382 fmichon 1005 if ($dossier_erp == 't'
383     && substr($dossier_nature, 0, 2) == $this->f->getParameter('erp_dossier_nature_pc')) {
384     // envoi du message "Demande d'instruction d'un dossier PC pour un ERP"
385     if (($this->valF['service'] == $this->f->getParameter('erp_service_accessibilite')
386     || $this->valF['service'] == $this->f->getParameter('erp_service_securite'))) {
387     $msgenque = new MessageEnqueuer();
388     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
389     $msgenque->setConsultationIdentifier($this->valF['consultation']);
390     $msgenque->enqueueMessage($msgenque::$ERP_DEMANDE_INSTRUCTION_PC);
391     }
392    
393     // envoi du message "Consultation ERP pour conformite" en cas de creation de la
394     // consultation du service ERP Conformite
395     if ($this->valF['service'] == $this->f->getParameter('erp_service_conformite')) {
396     $msgenque = new MessageEnqueuer();
397     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
398     $msgenque->setConsultationIdentifier($this->valF['consultation']);
399     $msgenque->enqueueMessage($msgenque::$ERP_CONSULTATION_CONFORMITE);
400     }
401 mlimic 936 }
402 fmichon 1005 } // fin de if($this->f->getParameter('option_erp'))
403 nhaye 532 }
404 mlimic 843
405 mlimic 936 /**
406     * Fait une requette sql pour extraire la valeur d'un champ, et retourne
407     * cette valeur
408     * @param string $sql La requete sql a executer
409     * @return La valeur du champs cherche, sinon NULL. En cas d'erreur de la BD
410     * l'execution s'arrete.
411     */
412     function getFromDB($sql) {
413     //$sql = "SELECT libelle FROM ".DB_PREFIXE."dossier WHERE dossier = '" . $dossier . "'";
414     $res = $this->db->limitquery($sql, 0, 1);
415 vpihour 1777 $this->f->addToLog("getDossierERPSpecification(): db->limitquery(\"".
416 mlimic 936 str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
417     // Si une erreur survient on die
418     if (database::isError($res, true)) {
419     // Appel de la methode de recuperation des erreurs
420     $this->erreur_db($res->getDebugInfo(), $res->getMessage(), 'instruction');
421     }
422     // retourne la nature du dossier
423     while ($row =& $res->fetchRow()) {
424     return $row[0];
425     }
426     // la nature n'etait pas trouve, ce qui ne devrait pas se passer
427     return NULL;
428    
429     }
430    
431 fraynaud 20 // =============================================
432     // calcul de date avec ajout de mois (delais)
433     // [add months (delay) and calculation final date]
434     // limite ? => voir fonction instruction
435     // =============================================
436     function moisdate($date,$delaimois) {
437     // rajout de mois à une date (moins de 12)
438     $temp = explode("-" , $date);
439     $jour = (int) $temp[2];
440     $mois = (int) $temp[1];
441     $annee = (int) $temp[0];
442     $mois=$mois+$delaimois;
443     // calcul mois annee
444     if($mois>12){
445     $mois=$mois-12;
446     $annee=$annee+1;
447     }
448     // Calcul du nombre de jours dans le mois sélectionné
449     switch($mois) {
450     case "2":
451     if ($annee % 4 == 0 && $annee % 100 != 0 || $annee % 400 == 0)
452     $jourmax = 29;
453     else
454     $jourmax = 28;
455     break;
456     case "4":
457     case "6":
458     case "9":
459     case "11":
460     $jourmax = 30;
461     break;
462     default:
463     $jourmax = 31;
464     }
465     if ($jour > $jourmax)
466     $jour = $jourmax;
467     return $annee."-".$mois."-".$jour ;
468     }
469 vpihour 497
470 nhaye 569 // =============================================
471 vpihour 497 // Ajout du fielset
472     // Add fieldset
473     // =============================================
474 nhaye 569 function setLayout(&$form, $maj){
475 fmichon 671
476     // Modification layout : écran de retour d'avis permettant
477     // uniquement la saisie des trois champs : avis, motivation et fichier
478     if ($this->f->isAccredited('consultation_consulter_autre_que_retour_avis')) {
479    
480 nhaye 569 //Champs sur lequel s'ouvre le fieldset
481     $form->setBloc('dossier','D',"");
482     $form->setFieldset('dossier','D',_('Consultation'));
483    
484     //Champs sur lequel se ferme le fieldset
485     $form->setFieldset('date_envoi','F','');
486     $form->setBloc('date_envoi','F');
487 fmichon 671
488 nhaye 569 }
489 fmichon 671
490     // MODE - autre que AJOUTER alors on affiche un fieldset retour
491     // d'avis
492     if ($maj != 0) {
493    
494 nhaye 569 //Champs sur lequel s'ouvre le fieldset
495     $form->setBloc('date_reception','D',"");
496     $form->setFieldset('date_reception','D',_('Retour d\'avis'));
497 fmichon 671
498 nhaye 569 //Champs sur lequel se ferme le fieldset
499     $form->setFieldset('lu','F','');
500     $form->setBloc('lu','F');
501 fmichon 671
502 nhaye 569 }
503     }
504 nhaye 595
505     /** Surcharge de la methode retour afin de retourner sur la page de saisie de
506     * code barre si besoin
507     **/
508     function retour($premier = 0, $recherche = "", $tricol = "") {
509     $params ="obj=".get_class($this);
510     if($this->getParameter("retour")=="form") {
511     $params .= "&amp;idx=".$this->getParameter("idx");
512     $params .= "&amp;action=3";
513     }
514     $params .= "&amp;premier=".$this->getParameter("premier");
515     $params .= "&amp;tricol=".$this->getParameter("tricol");
516     $params .= "&amp;recherche=".$this->getParameter("recherche");
517     $params .= "&amp;selectioncol=".$this->getParameter("selectioncol");
518     $params .= "&amp;advs_id=".$this->getParameter("advs_id");
519     $params .= "&amp;valide=".$this->getParameter("valide");
520     echo "\n<a class=\"retour\" ";
521     echo "href=\"";
522     //
523    
524     if($this->getParameter("retour")=="form" AND !($this->getParameter("validation")>0 AND $this->getParameter("maj")==2 AND $this->correct)) {
525     echo "form.php?".$params;
526 fmichon 1666 } elseif($this->getParameter("retour")=="suivi_retours_de_consultation") {
527     echo "../app/suivi_retours_de_consultation.php";
528 nhaye 595 } else {
529     echo "tab.php?".$params;
530     }
531     //
532     echo "\"";
533     echo ">";
534     //
535     echo _("Retour");
536     //
537     echo "</a>\n";
538     }
539 fmichon 938
540     /**
541 nhaye 802 * Surcharge du bouton retour pour popup
542     */
543     function retoursousformulaire($idxformulaire, $retourformulaire, $val,
544     $objsf, $premiersf, $tricolsf, $validation,
545     $idx, $maj, $retour) {
546     if($retourformulaire === "demande_avis_encours") {
547     echo "\n<a class=\"retour\" ";
548     echo "href=\"";
549     echo "#";
550     echo "\" ";
551     echo ">";
552     //
553     echo _("Retour");
554     //
555     echo "</a>\n";
556     } else {
557     parent::retoursousformulaire($idxformulaire, $retourformulaire, $val,
558     $objsf, $premiersf, $tricolsf, $validation,
559     $idx, $maj, $retour);
560     }
561     }
562 vpihour 1784
563 vpihour 1881 /**
564     * Ajout des contraintes spécifiques pour l'ajout d'un fichier en retour de
565     * consultation
566     */
567     function setSelect(&$form, $maj,&$db,$debug) {
568     parent::setSelect($form, $maj,$db,$debug);
569    
570     //Seulement dans le cas d'un retour d'avis
571     if($this->retourformulaire == "demande_avis_encours") {
572    
573     //Tableau des contraintes spécifiques
574     $params = array(
575     "constraint" => array(
576     "size_max" => 2,
577     "extension" => ".pdf"
578     ),
579     "metadata" => array()
580     );
581    
582     $form->setSelect("fichier", $params);
583     }
584     }
585 fraynaud 3 }// fin classe
586 nhaye 509 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26