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

Contents of /trunk/obj/rapport_instruction.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2290 - (show annotations)
Fri Sep 13 10:42:10 2013 UTC (11 years, 4 months ago) by vpihour
File size: 28813 byte(s)
Amélioration de la gestion des erreurs dans la finalisation des documents

1 <?php
2 //$Id$
3 //gen openMairie le 07/01/2013 15:28
4
5 require_once ("../gen/obj/rapport_instruction.class.php");
6
7 class rapport_instruction extends rapport_instruction_gen {
8
9 var $metadata = array(
10 "om_fichier_rapport_instruction" => array(
11 "dossier" => "getDossier",
12 "dossier_version" => "getDossierVersion",
13 "numDemandeAutor" => "getNumDemandeAutor",
14 "anneemoisDemandeAutor" => "getAnneemoisDemandeAutor",
15 "typeInstruction" => "getTypeInstruction",
16 "statutAutorisation" => "getStatutAutorisation",
17 "typeAutorisation" => "getTypeAutorisation",
18 "dateEvenementDocument" => "getDateEvenementDocument",
19 "groupeInstruction" => 'getGroupeInstruction',
20 "title" => 'getTitle',
21 ),
22 );
23
24 var $abstract_type = array(
25 "om_fichier_rapport_instruction" => "file",
26 );
27
28 function rapport_instruction($id,&$db,$debug) {
29 $this->constructeur($id,$db,$debug);
30 }// fin constructeur
31
32 // Modification du style de certains champs
33 function setType(&$form,$maj) {
34 parent::setType($form,$maj);
35
36 $form->setType('dossier_instruction', 'hidden');
37
38 if( $maj < 2 ){
39 // Select pour le proposition de décision
40 $form->setType('proposition_decision', 'select');
41 }
42
43 // Modification
44 $form->setType('dossier_libelle', 'hiddenstatic');
45
46 //Cache les champs pour la finalisation
47 $form->setType('om_fichier_rapport_instruction', 'hidden');
48 $form->setType('om_final_rapport_instruction', 'hidden');
49 }
50
51 // Pré-remplir les champs
52 function setValsousformulaire(&$form, $maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db,$DEBUG=null) {
53
54 parent::setValsousformulaire($form, $maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,$db,$DEBUG);
55
56 if($maj == 0) {
57
58 // Analyse réglementaire
59 // Choisi par l'administrateur
60 $analyse_reglementaire = $this->f->getParameter('rapport_instruction_analyse_reglementaire');
61
62 $form->setVal("analyse_reglementaire",$analyse_reglementaire);
63
64 // Description du projet
65 // Libellé des travaux du dossier en cours
66 // Création de la requête
67 $sql = "SELECT dossier_libelle,
68 CONCAT(donnees_techniques.am_projet_desc,' ',donnees_techniques.co_projet_desc) as libelle
69 FROM
70 ".DB_PREFIXE."dossier
71 LEFT JOIN ".DB_PREFIXE."donnees_techniques ON
72 donnees_techniques.dossier_instruction = dossier.dossier
73 WHERE
74 dossier.dossier = '".$idxformulaire."'";
75
76 // Exécution de la requête
77 $res = $db->query($sql);
78 $this->f->addToLog("setVal(): db->query(\"".$sql."\");", VERBOSE_MODE);
79 if ( database::isError($res)){
80 die();
81 }
82
83 // Si le champ travaux est rempli
84 while ($row=&$res->fetchrow(DB_FETCHMODE_ASSOC)){
85
86 if ( $row['libelle'] != "" ){
87
88 $description_projet = $row['libelle'];
89
90 $form->setVal("description_projet",$description_projet);
91 }
92
93 // Ajout automatique du numéro de dossier d'instruction
94 $form->setVal("dossier_libelle", $row['dossier_libelle']);
95 }
96
97 // Ajout automatique du numéro de dossier d'instruction
98 $form->setVal("dossier_instruction",$idxformulaire);
99 }
100 }
101
102 /*
103 * Select pour le proposition_decision
104 */
105 function setSelect(&$form, $maj,&$db,$debug) {
106 parent::setSelect($form, $maj,$db,$debug);
107
108 // Lors d'un ajout ou d'une modification
109 if( $maj < 2 ){
110
111 // proposition_decision
112 $contenu=array();
113
114 $k = 0;
115 $contenu[0][$k]="";
116 $contenu[1][$k++]=_('choisir')." "._('proposition_decision');
117
118 // Si le paramètre existe et a été remplie
119 if ( !is_null($this->f->getParameter('rapport_instruction_proposition_decision'))){
120
121 $donnees = $this->f->getParameter('rapport_instruction_proposition_decision');
122 $donnees = explode('<br />', nl2br(htmlentities($donnees)));
123
124 // Pour chaque ligne du paramètre, faire une ligne dans le select
125 foreach ($donnees as $value) {
126
127 $contenu[0][$k]=$value;
128 $contenu[1][$k++]=$value;
129 }
130 }
131 $form->setSelect("proposition_decision",$contenu);
132
133 }
134
135 }
136
137
138 /**
139 * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées
140 * @return string numéro de dossier d'autorisation
141 */
142 protected function getDossier() {
143 if(empty($this->specificMetadata)) {
144 $this->getSpecificMetadata();
145 }
146 return $this->specificMetadata->dossier;
147 }
148 /**
149 * Récupération la version du dossier d'instruction à ajouter aux métadonnées
150 * @return int Version
151 */
152 protected function getDossierVersion() {
153 if(empty($this->specificMetadata)) {
154 $this->getSpecificMetadata();
155 }
156 return $this->specificMetadata->version;
157 }
158 /**
159 * Récupération du numéro de dossier d'autorisation à ajouter aux métadonnées
160 * @return string numéro de dossier d'autorisation
161 */
162 protected function getNumDemandeAutor() {
163 if(empty($this->specificMetadata)) {
164 $this->getSpecificMetadata();
165 }
166 return $this->specificMetadata->dossier_autorisation;
167 }
168 /**
169 * Récupération de la date de demande initiale du dossier à ajouter aux métadonnées
170 * @return date date de la demande initiale
171 */
172 protected function getAnneemoisDemandeAutor() {
173 if(empty($this->specificMetadata)) {
174 $this->getSpecificMetadata();
175 }
176 return $this->specificMetadata->date_demande_initiale;
177 }
178 /**
179 * Récupération du type de dossier d'instruction à ajouter aux métadonnées
180 * @return string type du dossier d'instruction
181 */
182 protected function getTypeInstruction() {
183 if(empty($this->specificMetadata)) {
184 $this->getSpecificMetadata();
185 }
186 return $this->specificMetadata->dossier_instruction_type;
187 }
188 /**
189 * Récupération du statut du dossier d'autorisation à ajouter aux métadonnées
190 * @return string avis
191 */
192 protected function getStatutAutorisation() {
193 if(empty($this->specificMetadata)) {
194 $this->getSpecificMetadata();
195 }
196 return $this->specificMetadata->statut;
197 }
198 /**
199 * Récupération du type de dossier d'autorisation à ajouter aux métadonnées
200 * @return string type de dossier d'autorisation
201 */
202 protected function getTypeAutorisation() {
203 if(empty($this->specificMetadata)) {
204 $this->getSpecificMetadata();
205 }
206 return $this->specificMetadata->dossier_autorisation_type;
207 }
208 /**
209 * Récupération de la date d'ajout de document à ajouter aux métadonnées
210 * @return date de l'évènement
211 */
212 protected function getDateEvenementDocument() {
213 return date("Y-m-d");
214 }
215 /**
216 * Récupération du groupe d'instruction à ajouter aux métadonnées
217 * @return string Groupe d'instruction
218 */
219 protected function getGroupeInstruction() {
220 if(empty($this->specificMetadata)) {
221 $this->getSpecificMetadata();
222 }
223 return $this->specificMetadata->groupe_instruction;
224 }
225 /**
226 * Récupération du type du document à ajouter aux métadonnées
227 * @return string Type de document
228 */
229 protected function getTitle() {
230 return "Rapport d'instruction";
231 }
232
233 /**
234 * Cette méthode permet de stocker en attribut toutes les métadonnées
235 * nécessaire à l'ajout d'un document.
236 */
237 public function getSpecificMetadata() {
238 //Requête pour récupérer les informations essentiels sur le dossier d'instruction
239 $sql = "SELECT dossier.dossier as dossier,
240 dossier_autorisation.dossier_autorisation as dossier_autorisation,
241 to_char(dossier.date_demande, 'YYYY/MM') as date_demande_initiale,
242 dossier_instruction_type.code as dossier_instruction_type,
243 etat_dossier_autorisation.libelle as statut,
244 dossier_autorisation_type.code as dossier_autorisation_type,
245 groupe.code as groupe_instruction
246 FROM ".DB_PREFIXE."dossier
247 LEFT JOIN ".DB_PREFIXE."dossier_instruction_type
248 ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
249 LEFT JOIN ".DB_PREFIXE."dossier_autorisation
250 ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
251 LEFT JOIN ".DB_PREFIXE."etat_dossier_autorisation
252 ON dossier_autorisation.etat_dossier_autorisation = etat_dossier_autorisation.etat_dossier_autorisation
253 LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
254 ON dossier_autorisation.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
255 LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type
256 ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type
257 LEFT JOIN ".DB_PREFIXE."groupe
258 ON dossier_autorisation_type.groupe = groupe.groupe
259 WHERE dossier.dossier = '".$this->getVal("dossier_instruction")."'";
260 $res = $this->db->query($sql);
261 $this->f->addToLog("getSpecificMetadata() : db->query(".$sql.")", VERBOSE_MODE);
262 if ( database::isError($res)){
263 die();
264 }
265
266 //Le résultat est récupéré dans un objet
267 $row =& $res->fetchRow(DB_FETCHMODE_OBJECT);
268
269 //Si il y a un résultat
270 if ($row !== null) {
271
272 //Génération du numéro de version
273 $sql = "SELECT
274 count(*)
275 FROM
276 ".DB_PREFIXE."dossier
277 LEFT JOIN
278 ".DB_PREFIXE."dossier_autorisation
279 ON
280 dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation
281 LEFT JOIN
282 ".DB_PREFIXE."dossier_instruction_type
283 ON
284 dossier_instruction_type.dossier_instruction_type = dossier.dossier_instruction_type
285 WHERE
286 dossier_autorisation.dossier_autorisation = '".$row->dossier_autorisation."'
287 AND
288 dossier_instruction_type.code = '".$row->dossier_instruction_type."'";
289 $row->version = $this->db->getOne($sql);
290 $this->f->addToLog("getSpecificMetadata() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
291 if ( database::isError($row->version)){
292 $this->f->addToError("", $row->version, $row->version);
293 return false;
294 }
295
296 //Formatage du numéro de version
297 $row->version = str_pad($row->version, 2, "0", STR_PAD_LEFT);
298
299 //Alors on créé l'objet dossier_instruction
300 $this->specificMetadata = $row;
301 }
302 }
303
304 /**
305 * Surcharge du bouton retour afin de retourner sur le dossier d'instruction selon de cas
306 */
307 function retoursousformulaire($idxformulaire, $retourformulaire, $val,
308 $objsf, $premiersf, $tricolsf, $validation,
309 $idx, $maj, $retour) {
310
311 // Ajout et consultation, retour dossier
312 if ( ( $maj == 0 && $validation == 0 ) ||
313 ( $maj == 3 && $validation == 0 ) ||
314 ( $maj == 0 && $validation == 1 ) ){
315
316 echo "\n<a class=\"retour\" ";
317 echo "href=\"#\" ";
318 echo "onclick=\"redirectPortletAction(1,'main');\" ";
319 echo ">";
320 echo _("Retour");
321 echo "</a>\n";
322 }
323 //Sinon affiche un retour normal
324 else {
325
326 parent::retoursousformulaire($idxformulaire, $retourformulaire, $val,
327 $objsf, $premiersf, $tricolsf, $validation,
328 $idx, $maj, $retour);
329 }
330 }
331
332 /**
333 * Surcharge pour gérer les actions disponibles dans le portlet
334 */
335 function checkAccessibility() {
336 //
337 parent::checkAccessibility();
338
339 //Si le document est déjà finalisé, on affiche uniquement le lien de
340 //dé-finalisation
341 $om_final_rapport_instruction = $this->getVal("om_final_rapport_instruction");
342 if ( isset($this->actions_sup["finalisation"]) &&
343 $om_final_rapport_instruction== "t" ){
344
345 //On cache le lien d'action
346 $this->parameters["actions"]["modifier"] = NULL;
347 //On cache le lien de finalisation et on affiche le bon lien pour l'édition
348 unset($this->actions_sup["finalisation"]);
349 $this->actions_sup["edition"]["lien"] = "../spg/file.php?id=";
350 $this->actions_sup["edition"]["id"] =
351 "&amp;obj=rapport_instruction&amp;champ=om_fichier_rapport_instruction";
352 }
353 //Si le document n'est pas finalisé, on affiche uniquement le lien de
354 //finalisation
355 if ( isset($this->actions_sup["definalisation"]) &&
356 $om_final_rapport_instruction!= "t" ){
357
358 //On cache le lien de finalisation et on affiche le bon lien pour l'édition
359 unset($this->actions_sup["definalisation"]);
360 $this->actions_sup["edition"]["lien"] = "../pdf/pdfetat.php?idx=";
361 $this->actions_sup["edition"]["id"] = "&amp;obj=rapport_instruction";
362 }
363
364 $idxformulaire = $this->getParameter("idxformulaire");
365 //Si le dossier d'instruction auquel sont rattachées les données techniques
366 //est cloturé, on affiche pas les liens du portlet
367 if ( $idxformulaire != '' ){
368
369 //On récuppère le statut du dossier d'instruction
370 $statut = $this->f->getStatutDossier($idxformulaire);
371 if ( $this->f->isUserInstructeur() && $statut == "cloture" ){
372
373 //On cache le lien de modification
374 $this->parameters["actions"]["modifier"] = NULL;
375 $this->actions_sup["finalisation"] = NULL;
376 $this->actions_sup["definalisation"] = NULL;
377 }
378 }
379
380 // Si l'utilisateur est un intructeur qui en correspond pas à la
381 // division du dossier
382 if ($this->f->isUserInstructeur()
383 && isset($this->f->om_utilisateur["division"])
384 && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()) {
385 //
386 $this->parameters["actions"]["modifier"] = NULL;
387 $this->actions_sup["finalisation"] = NULL;
388 $this->actions_sup["definalisation"] = NULL;
389 }
390 }
391
392 /**
393 * Cette methode est à surcharger elle permet de tester dans chaque classe
394 * des droits des droits spécifiques en fonction des données
395 */
396 function canAccess() {
397 // Si l'utilisateur est un instructeur et que le dossier est cloturé
398 if ( $this->f->isUserInstructeur() &&
399 $this->f->getStatutDossier($this->getVal("idxformulaire")) == "cloture"
400 && $this->getParameter("maj") != 3) {
401
402 return false;
403 }
404 //
405 return true;
406 }
407
408 /**
409 * Finalisation des documents.
410 * @param string $champ champ du fichier à finaliser
411 * @param booleen $status permet de définir si on finalise ou définalise
412 * @param string $sousform permet de savoir si se trouve dans un sousformulaire (passé au javascript)
413 */
414 function finaliser( $champ = '', $status, $sousform, $retourformulaire){
415
416 //Si on finalise le document
417 if ( $status == 1 ){
418
419 //Génération du PDF
420 $_GET['output'] = "string";
421 $f = $this->f;
422 include '../pdf/pdfetat.php';
423
424 //Métadonnées du document
425 $metadata = array(
426 'filename' => 'rapport_instruction_'.$idx.'.pdf',
427 'mimetype' => 'application/pdf',
428 'size' => strlen($pdf_output)
429 );
430 // Récupération des métadonnées calculées après validation
431 $spe_metadata = $this->getMetadata("om_fichier_rapport_instruction");
432
433 $metadata = array_merge($metadata, $spe_metadata);
434 //Si le document a déjà été finalisé
435 //on met à jour le document mais pas son uid
436 if ( $this->getVal("om_fichier_rapport_instruction") != '' ){
437 $uid = $this->f->storage->update(
438 $this->getVal("om_fichier_rapport_instruction"), $pdf_output, $metadata);
439 }
440 //Sinon, on joute le document et on récupère son uid
441 else {
442 //Stockage du PDF
443 $uid = $this->f->storage->create($pdf_output, $metadata);
444 }
445 }
446 else {
447 //Récupération de l'uid du document finalisé
448 $uid = $this->getVal("om_fichier_rapport_instruction");
449
450 //On dé-finalise avant de finaliser
451 if ( $uid == '' ){
452 return -1;
453 }
454 }
455
456 //Mise à jour des données
457 if ( $uid != '' ){
458 // Logger
459 $this->addToLog("finaliser() - begin", EXTRA_VERBOSE_MODE);
460 // Recuperation de la valeur de la cle primaire de l'objet
461 if($this->getVal($this->clePrimaire)!='')
462 $id = $this->getVal($this->clePrimaire);
463 else
464 $id=$this->id;
465
466 $actions = array();
467 //Tableau contenant le lien vers le PDF et lien du portlet pour la mise
468 //à jour de l'interface
469 if ( $status == 0 ){
470 $lien = '../pdf/pdfetat.php?obj=rapport_instruction&idx='.$id;
471
472 //Ajout des actions
473 //Si l'utilisateur a le droit de modifier l'objet
474 if ( $this->f->isAccredited('instruction') ||
475 $this->f->isAccredited('instruction_modifier') ){
476
477 $actions["modifier"] = ($sousform!='')?
478 '<li><a href="#" onclick="ajaxIt(\'instruction\',
479 \'../scr/sousform.php?obj=rapport_instruction&amp;action=1&amp;idx='.
480 $this->getVal($this->clePrimaire).
481 '&amp;premiersf=0&amp;trisf=&amp;retourformulaire='.$retourformulaire.'&amp;idxformulaire='.
482 $this->getVal("dossier").
483 '&amp;retour=form\');">
484 <span class="om-prev-icon om-icon-16 edit-16" title="'.
485 _('Modifier').'">'.
486 _('Modifier').
487 '</span></a></li>':
488 '<li>
489 <a href="form.php?obj=rapport_instruction&amp;action=1'.'&amp;idx='.
490 $this->getVal($this->clePrimaire).
491 '&amp;premier=&amp;advs_id=&amp;recherche=&amp;tricol=&amp;selectioncol=&amp;valide=&amp;retour=form">
492 <span class="om-prev-icon om-icon-16 edit-16" title="'.
493 _('Modifier').'">'.
494 _('Modifier').
495 '</span></a></li>';
496 }
497 //Si l'utilisateur a le droit de supprimer l'objet
498 if ( $this->f->isAccredited('instruction') ||
499 $this->f->isAccredited('instruction_supprimer') ){
500
501 $actions["supprimer"] = ($sousform!='')?
502 '<li><a href="#" onclick="ajaxIt(\'instruction\',
503 \'../scr/sousform.php?obj=rapport_instruction&amp;action=2&amp;idx='.
504 $this->getVal($this->clePrimaire).
505 '&amp;premiersf=0&amp;trisf=&amp;retourformulaire='.$retourformulaire.'&amp;idxformulaire='.
506 $this->getVal("dossier").
507 '&amp;retour=form\');">
508 <span class="om-prev-icon om-icon-16 delete-16" title="'.
509 _('Supprimer').'">'.
510 _('Supprimer').
511 '</span></a></li>':
512 '<li>
513 <a href="form.php?obj=rapport_instruction&amp;action=1'.'&amp;idx='.
514 $this->getVal($this->clePrimaire).
515 '&amp;premier=&amp;advs_id=&amp;recherche=&amp;tricol=&amp;selectioncol=&amp;valide=&amp;retour=form">
516 <span class="om-prev-icon om-icon-16 delete-16" title="'.
517 _('Supprimer').'">'.
518 _('Supprimer').
519 '</span></a></li>';
520 }
521 }
522 else {
523 $lien = '../spg/file.php?obj=rapport_instruction&'.
524 'champ=om_fichier_rapport_instruction&id='.$id;
525 }
526
527
528
529 $retour = array(
530 "portlet"=> "<a href=\"#\" onclick=\"finalizeDocument(".
531 $id.", 'rapport_instruction', '".$sousform."', ".(($status==0)?1:0).")\">
532 <span class=\"om-prev-icon om-icon-16 om-icon-fix "
533 .(($status==1)?"de":"")."finalise\" title=\"".
534 (($status==1)?_("Reprendre la redaction du document"):_("Finaliser le document"))."\">".
535 (($status==1)?_("Reprendre la redaction du document"):_("Finaliser le document"))."</span>
536 </a>",
537 "pdf" => $lien,
538 "actions" => $actions
539 );
540
541 //Modifie uniquement les valeurs des champs concernant la finalisation
542 //du document
543 $this->valF = '';
544 $this->valF["om_final_rapport_instruction"] = ($status==1)?TRUE:FALSE;
545 $this->valF["om_fichier_rapport_instruction"] = $uid;
546
547 // Verification de la validite des donnees
548 $this->verifier($this->val, $this->db, DEBUG);
549 // Verification du verrou
550 $this->testverrou();
551 // Si les verifications precedentes sont correctes, on procede a
552 // la modification, sinon on ne fait rien et on retourne une erreur
553 if ($this->correct) {
554 // Execution du trigger 'before' specifique au MODE 'update'
555 $this->triggermodifier( $id, $this->db, $this->val, DEBUG);
556
557 // Execution de la requête de modification des donnees de l'attribut
558 // valF de l'objet dans l'attribut table de l'objet
559 $res = $this->db->autoExecute(DB_PREFIXE.$this->table, $this->valF,
560 DB_AUTOQUERY_UPDATE, $this->getCle($id));
561 // Si une erreur survient
562 if (database::isError($res)) {
563 // Appel de la methode de recuperation des erreurs
564 $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
565 } else {
566 // Log
567 $this->addToLog(_("Requete executee"), VERBOSE_MODE);
568 // Log
569 $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
570 $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
571 $message .= "[&nbsp;".$this->db->affectedRows()."&nbsp;";
572 $message .= _("enregistrement(s) mis a jour")."&nbsp;]";
573 $this->addToLog($message, VERBOSE_MODE);
574 // Mise en place du verrou pour ne pas finaliser plusieurs fois
575 // le meme document
576 $this->verrouille();
577 // Execution du trigger 'after' specifique au MODE 'update'
578 $this->triggermodifierapres($id, $this->db, $this->val, DEBUG);
579
580 return $retour;
581 }
582 } else {
583 // Message d'echec (saut d'une ligne supplementaire avant le
584 // message pour qu'il soit mis en evidence)
585 $this->addToLog(_("Finalisation non enregistree"));
586 return -1;
587 }
588 }
589 // Si le document n'a pas été stocké
590 else{
591 return -1;
592 }
593 }
594
595 /**
596 * Cette variable permet de stocker le résultat de la méthode
597 * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
598 * ces appels.
599 * @var string Code de la division du dossier en cours
600 */
601 var $_division_from_dossier = NULL;
602
603 /**
604 * Cette méthode permet de récupérer le code de division correspondant
605 * au dossier sur lequel on se trouve.
606 *
607 * @return string Code de la division du dossier en cours
608 */
609 function getDivisionFromDossier() {
610
611 // Cette méthode peut être appelée plusieurs fois lors d'une requête.
612 // Pour éviter de refaire le traitement de recherche de la division
613 // alors on vérifie si nous ne l'avons pas déjà calculé.
614 if ($this->_division_from_dossier != NULL) {
615 // Logger
616 $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
617 // On retourne la valeur déjà calculée
618 return $this->_division_from_dossier;
619 }
620
621 // Par défaut, on définit la valeur du dossier à NULL
622 $dossier = NULL;
623 // Test sur le mode et le contexte du formulaire
624 if ($this->getParameter("maj") == 0
625 && ($this->getParameter("retourformulaire") == "dossier"
626 || $this->getParameter("retourformulaire") == "dossier_instruction"
627 || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
628 || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
629 || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
630 || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
631 // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
632 // n'existe pas en base de données) ET que nous nous trouvons
633 // dans le contexte d'un dossier d'instruction alors on récupère
634 // le numéro de dossier depuis le paramètre 'idxformulaire'
635 $dossier = $this->getParameter("idxformulaire");
636 } else {
637 // Sinon on récupère le numéro de dossier dans le champs dossier de
638 // l'enregistrement (en base de données)
639 $dossier = $this->getVal("dossier_instruction");
640 }
641
642 // On appelle la méthode de la classe utils qui renvoi le code de la
643 // division d'un dossier, on la stocke pour ne pas refaire le calcul au
644 // prochain appel de cette méthode
645 $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
646 // Logger
647 $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
648 // On retourne la valeur retournée
649 return $this->_division_from_dossier;
650
651 }
652 }// fin classe
653 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26