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

Diff of /trunk/obj/document_numerise.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1897 by softime, Thu May 23 17:31:27 2013 UTC revision 2016 by softime, Tue Jun 18 16:28:47 2013 UTC
# Line 6  require_once ("../gen/obj/document_numer Line 6  require_once ("../gen/obj/document_numer
6    
7  class document_numerise extends document_numerise_gen {  class document_numerise extends document_numerise_gen {
8    
9        //Métadonnées spécifiques
10        var $metadata = array(
11            "uid" => array(
12                "dossier" => "getDossier",
13                "dossier_version" => "getDossierVersion",
14                "numDemandeAutor" => "getDossierAutorisation",
15                "anneemoisDemandeAutori" => "getDateDemandeInitiale",
16                "typeInstructionAutorisation" => "getDossierInstructionType",
17                "statutAutorisation" => "getStatut",
18                "typeAutorisation" => "getDossierAutorisationType",
19                "dateEvenementDocument" => "getDateEvenement",
20                "filename" => "getFilename",
21                "groupeInstruction" => 'getGroupeInstruction',
22                "title" => 'getTypeDoc',
23            ),
24            "document_arrete" => array(
25                "numArrete" => "getNumArrete",
26                "specialiteArrete" => "getSpecialiteArrete",
27                "decisionArrete" => "getDecisionArrete",
28                "chketatReglementaire" => "getChketatReglementaire",
29                "chkNotification" => "getChkNotification",
30                "dateNotification" => "getDateNotification",
31                "chkCreationdroit" => "getChkCreationdroit",
32                "chkPublication" => "getChkPublication",
33                "datePublication" => "getDatePublication",
34                "chkControleLegalite" => "getChkControleLegalite",
35                "dateSignatureArrete" => "getDateSignatureArrete",
36                "nomSignataire" => "getNomSignataire",
37                "qualiteSignataire" => "getQualiteSignataire",
38                "chkDelegation" => "getChkDelegation",
39                "ap_numRue" => "getAp_numRue",
40                "ap_nomDeLaVoie" => "getAp_nomDeLaVoie",
41                "ap_codePostal" => "getAp_codePostal",
42                "ap_ville" => "getAp_ville",
43            ),
44        );
45    
46        var $abstract_type = array(
47            "uid" => "file",
48        );
49    
50      function document_numerise($id,&$db,$debug) {      function document_numerise($id,&$db,$debug) {
51          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
52      }// fin constructeur      }// fin constructeur
# Line 20  class document_numerise extends document Line 61  class document_numerise extends document
61              } else {              } else {
62                  $form->setType('uid','upload2');                  $form->setType('uid','upload2');
63              }              }
64              print_r("dossier : ".$form->val['dossier']);              if(($this->retourformulaire=='dossier_instruction'
65              if($this->retourformulaire=='dossier_instruction'                || $this->retourformulaire=='dossier_instruction_tous_clotures'
66                  || $this->retourformulaire=='dossier_instruction_mes_clotures'
67                  || $this->retourformulaire=='dossier_instruction_tous_encours'
68                  || $this->retourformulaire=='dossier_instruction_mes_encours')
69                 and $form->val['dossier'] == $this->getParameter('idxformulaire')) {                 and $form->val['dossier'] == $this->getParameter('idxformulaire')) {
70                  $form->setType('dossier','hidden');                  $form->setType('dossier','hidden');
71              } else {              } else {
# Line 35  class document_numerise extends document Line 79  class document_numerise extends document
79              } else {              } else {
80                  $form->setType('uid','upload2');                  $form->setType('uid','upload2');
81              }              }
82              if($this->retourformulaire=='dossier_instruction'              if(($this->retourformulaire=='dossier_instruction'
83                  || 'dossier_instruction_tous_clotures'
84                  || 'dossier_instruction_mes_clotures'
85                  || 'dossier_instruction_tous_encours'
86                  || 'dossier_instruction_mes_encours')
87                 and $form->val['dossier'] == $this->getParameter('idxformulaire')) {                 and $form->val['dossier'] == $this->getParameter('idxformulaire')) {
88                  $form->setType('dossier','hidden');                  $form->setType('dossier','hidden');
89              } else {              } else {
# Line 58  class document_numerise extends document Line 106  class document_numerise extends document
106                    
107          $this->retourformulaire = $retourformulaire;          $this->retourformulaire = $retourformulaire;
108    
109          if($retourformulaire =='dossier' OR $retourformulaire =='dossier_instruction') {          if($retourformulaire =='dossier' OR
110                ($retourformulaire =='dossier_instruction'
111                  || $retourformulaire=='dossier_instruction_tous_clotures'
112                  || $retourformulaire=='dossier_instruction_mes_clotures'
113                  || $retourformulaire=='dossier_instruction_tous_encours'
114                  || $retourformulaire=='dossier_instruction_mes_encours')) {
115              $form->setVal('dossier', $idxformulaire);              $form->setVal('dossier', $idxformulaire);
116              $form->setVal('date_creation', date("d/m/Y"));              $form->setVal('date_creation', date("d/m/Y"));
117          }          }
118    
119      }// fin setValsousformulaire      }// fin setValsousformulaire
120    
121        /**
122         * [setLib description]
123         * @param [type] $form [description]
124         * @param [type] $maj  [description]
125         */
126        function setLib(&$form, $maj) {
127            parent::setLib($form, $maj);
128    
129            //
130            $form->setLib("uid", _("fichier"));
131        }
132    
133    
134      /**      /**
135       * Méthode de traitement des données retournées par le formulaire       * Méthode de traitement des données retournées par le formulaire
# Line 84  class document_numerise extends document Line 149  class document_numerise extends document
149    
150          //Génération automatique nom du fichier          //Génération automatique nom du fichier
151          $this->valF['nom_fichier'] = $this->generateFilename($this->valF["date_creation"], $document_numerise_type);          $this->valF['nom_fichier'] = $this->generateFilename($this->valF["date_creation"], $document_numerise_type);
152    
153            // Si c'est un arrêté alors on ajoute les métadonnées pour ce type de document
154            if ($this->get_document_numerise_type_categorie_libelle($val["document_numerise_type"]) == 'Arrêté') {
155    
156              // rassemble les elément des deux tableau
157              $this->metadata['uid'] = array_merge($this->metadata['uid'], $this->metadata['document_arrete']);
158            }
159        }
160    
161        /**
162         * Permet de mettre à jour un champs dans la table instruction sans passer par ses triggers
163         * @param  string $uid Identifiant du fichier
164         */
165        private function updateInstructionAutoExecute($uid) {
166    
167          // valeurs à mettre à jour
168          $val = array("document_arrete"=>$uid);
169          // met à jour la table instruction sans passer par ses triggers
170          $res = $this->db->autoExecute(DB_PREFIXE."instruction", $val, DB_AUTOQUERY_UPDATE,"instruction=".$this->getLastInstruction($this->valF['dossier']));
171          // Exécution du traitement
172          $this->f->addToLog("updateInstructionDocumentArrete() : db->autoExecute(".$res.")", VERBOSE_MODE);
173          if (database::isError($res)) {
174              die();
175          }
176    
177        }
178    
179        /**
180         * Permet d’effectuer des actions après l’insertion des données dans la base
181         */
182        function triggerajouterapres($id,&$db,$val,$DEBUG) {
183    
184          // Si c'est un arrêté alors alors on met à jour la table instruction
185          if ($this->get_document_numerise_type_categorie_libelle($val["document_numerise_type"]) == 'Arrêté') {
186                    
187            // Met à jour la table instruction
188            $this->updateInstructionAutoExecute($this->valF['uid']);
189          }
190    
191      }      }
192    
193      /**      /**
# Line 94  class document_numerise extends document Line 197  class document_numerise extends document
197                                    $objsf, $premiersf, $tricolsf, $validation,                                    $objsf, $premiersf, $tricolsf, $validation,
198                                    $idx, $maj, $retour) {                                    $idx, $maj, $retour) {
199                                                                                
200          if( $maj == 0 && $retourformulaire === "dossier_instruction") {          if( $maj == 0 && ($retourformulaire === "dossier_instruction"
201              || $retourformulaire==='dossier_instruction_tous_clotures'
202              || $retourformulaire==='dossier_instruction_mes_clotures'
203              || $retourformulaire==='dossier_instruction_tous_encours'
204              || $retourformulaire==='dossier_instruction_mes_encours')) {
205                            
206              echo "\n<a class=\"retour\" ";              echo "\n<a class=\"retour\" ";
207              echo "href=\"#\" ";              echo "href=\"#\" ";
# Line 124  class document_numerise extends document Line 231  class document_numerise extends document
231      function setSelect(&$form, $maj,&$db,$debug) {      function setSelect(&$form, $maj,&$db,$debug) {
232          parent::setSelect($form, $maj,$db,$debug);          parent::setSelect($form, $maj,$db,$debug);
233                    
234          //Seulement dans le cas d'un retour d'avis          //Seulement dans le cas d'un dossier d'instruction
235          if($this->retourformulaire == "dossier_instruction") {          if($this->retourformulaire =='dossier_instruction'
236                  || $this->retourformulaire=='dossier_instruction_tous_clotures'
237                  || $this->retourformulaire=='dossier_instruction_mes_clotures'
238                  || $this->retourformulaire=='dossier_instruction_tous_encours'
239                  || $this->retourformulaire=='dossier_instruction_mes_encours') {
240                            
241              //Tableau des contraintes spécifiques              //Tableau des contraintes
242              $params = array(              $params = array(
243                  "constraint" => array(                  "constraint" => array(
244                      "extension" => ".pdf"                      "extension" => ".pdf"
245                  ),                  ),
                 "metadata" => array()  
246              );              );
247                            
248              $form->setSelect("uid", $params);              $form->setSelect("uid", $params);
249          }          }
250      }      }
251    
252        // {{{
253        // Méthodes de récupération des métadonnées document
254        /**
255         * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées
256         * @return [type] [description]
257         */
258        protected function getDossier() {
259            if(empty($this->specificMetadata)) {
260                $this->getSpecificMetadata();
261            }
262            return $this->specificMetadata->dossier;
263        }
264        /**
265         * Récupération la version du dossier d'instruction à ajouter aux métadonnées
266         * @return int Version
267         */
268        protected function getDossierVersion() {
269            if(empty($this->specificMetadata)) {
270                $this->getSpecificMetadata();
271            }
272            return $this->specificMetadata->version;
273        }
274        /**
275         * Récupération du numéro de dossier d'autorisation à ajouter aux métadonnées
276         * @return [type] [description]
277         */
278        protected function getDossierAutorisation() {
279            if(empty($this->specificMetadata)) {
280                $this->getSpecificMetadata();
281            }
282            return $this->specificMetadata->dossier_autorisation;
283        }
284        /**
285         * Récupération de la date de demande initiale du dossier à ajouter aux métadonnées
286         * @return [type] [description]
287         */
288        protected function getDateDemandeInitiale() {
289            if(empty($this->specificMetadata)) {
290                $this->getSpecificMetadata();
291            }
292            return $this->specificMetadata->date_demande_initiale;
293        }
294        /**
295         * Récupération du type de dossier d'instruction à ajouter aux métadonnées
296         * @return [type] [description]
297         */
298        protected function getDossierInstructionType() {
299            if(empty($this->specificMetadata)) {
300                $this->getSpecificMetadata();
301            }
302            return $this->specificMetadata->dossier_instruction_type;
303        }
304        /**
305         * Récupération du statut du dossier d'autorisation à ajouter aux métadonnées
306         * @return [type] [description]
307         */
308        protected function getStatut() {
309            if(empty($this->specificMetadata)) {
310                $this->getSpecificMetadata();
311            }
312            return $this->specificMetadata->statut;
313        }
314        /**
315         * Récupération du type de dossier d'autorisation à ajouter aux métadonnées
316         * @return [type] [description]
317         */
318        protected function getDossierAutorisationType() {
319            if(empty($this->specificMetadata)) {
320                $this->getSpecificMetadata();
321            }
322            return $this->specificMetadata->dossier_autorisation_type;
323        }
324        /**
325         * Récupération nom du fichier à ajouter aux métadonnées
326         * @return [type] [description]
327         */
328        protected function getFilename() {
329            return $this->valF["nom_fichier"];
330        }
331        /**
332         * Récupération de la date d'ajout de document à ajouter aux métadonnées
333         * @return [type] [description]
334         */
335        protected function getDateEvenement() {
336            return date("d/m/Y", strtotime($this->valF["date_creation"]));
337        }
338        /**
339         * Récupération du groupe d'instruction à ajouter aux métadonnées
340         * @return string Groupe d'instruction
341         */
342        protected function getGroupeInstruction() {
343            if(empty($this->specificMetadata)) {
344                $this->getSpecificMetadata();
345            }
346            return $this->specificMetadata->groupe_instruction;
347        }
348        /**
349         * Récupération du libellé du type du document à ajouter aux métadonnées
350         * @return string Groupe d'instruction
351         */
352        protected function getTypeDoc() {
353            //Requête sql
354            $sql = "SELECT libelle
355                    FROM ".DB_PREFIXE."document_numerise_type
356                    WHERE document_numerise_type = ".$this->valF["document_numerise_type"];
357            $document_numerise_type_libelle = $this->db->getOne($sql);
358            $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
359            $this->f->addToLog("getTypeDoc() : db->getOne(".$sql.")", VERBOSE_MODE);
360            if (database::isError($document_numerise_type_libelle)) {
361                die();
362            }
363    
364            //Retourne le code du type de document
365            return $document_numerise_type_libelle;
366        }
367        // Fin des méthodes de récupération des métadonnées
368        // }}}
369    
370        // {{{
371        // Méthodes de récupération des métadonnées arrêté
372        /**
373         * @return string Retourne le numéro d'arrêté
374         */
375        function getNumArrete() {
376            return '';
377        }
378        /**
379         * @return string ads
380         */
381        function getSpecialiteArrete() {
382            return "ADS";
383        }
384        /**
385         * @return string decision
386         */
387        function getDecisionArrete() {
388            if (empty($this->metadonneesArrete)) {
389                $this->getArreteMetadata();
390            }
391            return $this->metadonneesArrete["decisionarrete"];
392        }
393        /**
394         * @return chaîne vide
395         */
396        function getChketatReglementaire() {
397            return 'true';
398        }
399        /**
400         * @return boolean de notification au pétitionnaire
401         */
402        function getChkNotification() {
403            return 'true';
404        }
405        /**
406         * @return date de notification au pétitionnaire
407         */
408        function getDateNotification() {
409            if (empty($this->metadonneesArrete)) {
410                $this->getArreteMetadata();
411            }
412            return $this->metadonneesArrete["datenotification"];
413        }
414        /**
415         * @return chaîne vide
416         */
417        function getChkCreationdroit() {
418            return "true";
419        }
420        /**
421         * @return chaîne vide
422         */
423        function getChkPublication() {
424            return "true";
425        }
426        /**
427         * @return chaîne vide
428         */
429        function getDatePublication() {
430            return "";
431        }
432        /**
433         * @return boolean check si le document est passé au contrôle de légalité
434         */
435        function getChkControleLegalite() {
436            return 'true';
437        }
438        /**
439         * @return date de signature de l'arrêté
440         */
441        function getDateSignatureArrete() {
442            if (empty($this->metadonneesArrete)) {
443                $this->getArreteMetadata();
444            }
445            return $this->metadonneesArrete["datesignaturearrete"];
446        }
447        /**
448         * @return string nom du signataire
449         */
450        function getNomSignataire() {
451            if (empty($this->metadonneesArrete)) {
452                $this->getArreteMetadata();
453            }
454            return $this->metadonneesArrete["nomsignataire"];
455        }
456        /**
457         * @return string qualité du signataire
458         */
459        function getQualiteSignataire() {
460            if (empty($this->metadonneesArrete)) {
461                $this->getArreteMetadata();
462            }
463            return $this->metadonneesArrete["qualitesignataire"];
464        }
465        /**
466         * @return string chaîne vide
467         */
468        function getChkDelegation() {
469            return "true";
470        }
471        /**
472         * @return string numéro du terrain
473         */
474        function getAp_numRue() {
475            if (empty($this->metadonneesArrete)) {
476                $this->getArreteMetadata();
477            }
478            return $this->metadonneesArrete["ap_numrue"];
479        }
480        /**
481         * @return string nom de la rue du terrain
482         */
483        function getAp_nomDeLaVoie() {
484            if (empty($this->metadonneesArrete)) {
485                $this->getArreteMetadata();
486            }
487            return $this->metadonneesArrete["ap_nomdelavoie"];
488        }
489        /**
490         * @return string code postal du terrain
491         */
492        function getAp_codePostal() {
493            if (empty($this->metadonneesArrete)) {
494                $this->getArreteMetadata();
495            }
496            return $this->metadonneesArrete["ap_codepostal"];
497        }
498        /**
499         * @return string ville du terrain
500         */
501        function getAp_ville() {
502            if (empty($this->metadonneesArrete)) {
503                $this->getArreteMetadata();
504            }
505            return $this->metadonneesArrete["ap_ville"];
506        }
507    
508        // Fin des méthodes de récupération des métadonnées
509        // }}}
510    
511      /**      /**
512       * Génère le nom du fichier avec les information du formulaire       * Génère le nom du fichier avec les information du formulaire
513       * @param  string $date    Date de création du document       * @param  string $date    Date de création du document
# Line 169  class document_numerise extends document Line 538  class document_numerise extends document
538                  WHERE document_numerise_type = ".$document_numerise_type;                  WHERE document_numerise_type = ".$document_numerise_type;
539          $document_numerise_type_code = $this->db->getOne($sql);          $document_numerise_type_code = $this->db->getOne($sql);
540          $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);          $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
541            $this->f->addToLog("obj/document_numerise.class.php : db->getOne(".$sql.")", VERBOSE_MODE);
542          if (database::isError($document_numerise_type_code)) {          if (database::isError($document_numerise_type_code)) {
543              die();              die();
544          }          }
545    
546          //Retourne le code du type de document          //Retourne le code du type de document
547          return $document_numerise_type_code;          return $document_numerise_type_code;
548        }
549    
550        /**
551         * Permet de récupérer le libellé de la catégorie du type de document
552         * @param  int $document_numerise_type    Clé primaire d'un donnée de document_numerise_type
553         * @return string                         Libellé de la catégorie du type de document
554         */
555        private function get_document_numerise_type_categorie_libelle($document_numerise_type) {
556    
557          // Requête sql
558          $sql = "SELECT document_numerise_type_categorie.libelle
559                  FROM ".DB_PREFIXE."document_numerise_type
560                    LEFT JOIN ".DB_PREFIXE."document_numerise_type_categorie
561                      ON document_numerise_type.document_numerise_type_categorie = document_numerise_type_categorie.document_numerise_type_categorie
562                  WHERE document_numerise_type.document_numerise_type = ".$document_numerise_type;
563          $document_numerise_type_categorie_libelle = $this->db->getOne($sql);
564          $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
565          $this->f->addToLog("obj/document_numerise.class.php : db->getOne(".$sql.")", VERBOSE_MODE);
566          if (database::isError($document_numerise_type_categorie_libelle)) {
567              die();
568          }
569    
570          //Retourne le code du type de document
571          return $document_numerise_type_categorie_libelle;
572        }
573    
574    
575        /**
576         * Cette méthode permet de stocker en attribut toutes les métadonnées
577         * nécessaire à l'ajout d'un document.
578         */
579        public function getSpecificMetadata() {
580    
581            //Requête pour récupérer les informations essentiels sur le dossier d'instruction
582            $sql = "SELECT dossier.dossier as dossier,
583                            dossier_autorisation.dossier_autorisation as dossier_autorisation,
584                            to_char(dossier.date_demande, 'YYYY/MM') as date_demande_initiale,
585                            dossier.version as version,
586                            dossier_instruction_type.code as dossier_instruction_type,
587                            etat_dossier_autorisation.libelle as statut,
588                            dossier_autorisation_type.code as dossier_autorisation_type,
589                            groupe.code as groupe_instruction
590                    FROM ".DB_PREFIXE."dossier
591                        LEFT JOIN ".DB_PREFIXE."dossier_instruction_type  
592                            ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
593                        LEFT JOIN ".DB_PREFIXE."dossier_autorisation
594                            ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
595                        LEFT JOIN ".DB_PREFIXE."etat_dossier_autorisation
596                            ON  dossier_autorisation.etat_dossier_autorisation = etat_dossier_autorisation.etat_dossier_autorisation
597                        LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
598                            ON dossier_autorisation.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
599                        LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type
600                            ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type
601                        LEFT JOIN ".DB_PREFIXE."groupe
602                            ON dossier_autorisation_type.groupe = groupe.groupe
603                    WHERE dossier.dossier = '".$this->valF["dossier"]."'";
604            $res = $this->db->query($sql);
605            $this->f->addToLog("getSpecificMetadata : db->query(".$sql.")", VERBOSE_MODE);
606            if ( database::isError($res)){
607                die();
608            }
609            
610            //Le résultat est récupéré dans un objet
611            $row =& $res->fetchRow(DB_FETCHMODE_OBJECT);
612    
613            //Si il y a un résultat
614            if ($row !== null) {
615    
616                //Alors on créé l'objet dossier_instruction
617                $this->specificMetadata = $row;
618    
619            }
620        }
621    
622        /**
623         * Méthode de récupération des métadonnées arrêtés dans la base de données,
624         * les données sont stockés dans l'attribut $this->metadonneesArrete
625         */
626        function getArreteMetadata() {
627            $sqlArrete = "SELECT    signataire_arrete.nom as \"nomsignataire\",
628                                    signataire_arrete.qualite as \"qualitesignataire\",
629                                    instruction.date_evenement as \"datesignaturearrete\",
630                                    instruction.etat as \"decisionarrete\",
631                                    instruction.date_retour_rar as \"datenotification\",
632                                    instruction.date_retour_signature as \"datesignaturesrrete\",
633                                    dossier.terrain_adresse_voie_numero as \"ap_numrue\",
634                                    dossier.complement as \"ap_nomdelavoie\",
635                                    dossier.terrain_adresse_code_postal as \"ap_codepostal\",
636                                    dossier.terrain_adresse_localite as \"ap_ville\"
637                                FROM ".DB_PREFIXE."instruction
638                                LEFT JOIN ".DB_PREFIXE."signataire_arrete ON
639                                    instruction.signataire_arrete = signataire_arrete.signataire_arrete
640                                LEFT JOIN ".DB_PREFIXE."dossier ON
641                                    instruction.dossier = dossier.dossier
642                                LEFT JOIN ".DB_PREFIXE."donnees_techniques ON
643                                        donnees_techniques.dossier_instruction = dossier.dossier
644                                WHERE dossier.dossier = '".$this->valF["dossier"]."'
645                                  AND instruction.instruction = ".$this->getLastInstruction($this->valF["dossier"]);
646            $resArrete = $this->db->query($sqlArrete);
647            $this->f->addToLog("getArreteMetadata(): db->query(\"".$sqlArrete."\");", VERBOSE_MODE);
648            if ( database::isError($resArrete)){
649                die();
650            }
651    
652            $this->metadonneesArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);
653        }
654    
655        /**
656         * Cette methode est à surcharger elle permet de tester dans chaque classe
657         * des droits spécifiques en fonction des données
658         */
659        function canAccess() {
660          
661            // Si l'utilisateur est un intructeur qui ne correspond pas à la
662            // division du dossier
663            if ($this->f->isUserInstructeur()
664                && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()
665                && $this->getParameter("maj") != 3) {
666                //
667                return false;
668            }
669            //
670            return true;
671        }
672    
673        /**
674         * Retourne le statut du dossier d'instruction
675         * @param string $idx Identifiant du dossier d'instruction
676         * @return string Le statut du dossier d'instruction
677         */
678        function getStatutDossier($idx){
679            
680            $statut = '';
681            
682            //Si l'identifiant du dossier d'instruction fourni est correct
683            if ( $idx != '' ){
684                
685                //On récupère le statut de l'état du dossier d'instruction à partir de
686                            //l'identifiant du dossier d'instruction
687                $sql = "SELECT etat.statut
688                    FROM ".DB_PREFIXE."dossier
689                    LEFT JOIN
690                        ".DB_PREFIXE."etat
691                        ON
692                            dossier.etat = etat.etat
693                    WHERE dossier ='".$idx."'";
694                $statut = $this->db->getOne($sql);
695                $this->f->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
696                if ( database::isError($statut)){
697                    die();
698                }
699            }
700            return $statut;
701        }
702    
703        /**
704         * Cette variable permet de stocker le résultat de la méthode
705         * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
706         * ces appels.
707         * @var string Code de la division du dossier en cours
708         */
709        var $_division_from_dossier = NULL;
710    
711        /**
712         * Cette méthode permet de récupérer le code de division correspondant
713         * au dossier sur lequel on se trouve.
714         *
715         * @return string Code de la division du dossier en cours
716         */
717        function getDivisionFromDossier() {
718    
719            // Cette méthode peut être appelée plusieurs fois lors d'une requête.
720            // Pour éviter de refaire le traitement de recherche de la division
721            // alors on vérifie si nous ne l'avons pas déjà calculé.
722            if ($this->_division_from_dossier != NULL) {
723                // Logger
724                $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
725                // On retourne la valeur déjà calculée
726                return $this->_division_from_dossier;
727            }
728    
729            // Par défaut, on définit la valeur du dossier à NULL
730            $dossier = NULL;
731            // Test sur le mode et le contexte du formulaire
732            if ($this->getParameter("maj") == 0
733                && ($this->getParameter("retourformulaire") == "dossier"
734                    || $this->getParameter("retourformulaire") == "dossier_instruction"
735                    || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
736                    || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
737                    || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
738                    || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
739                // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
740                // n'existe pas en base de données) ET que nous nous trouvons
741                // dans le contexte d'un dossier d'instruction alors on récupère
742                // le numéro de dossier depuis le paramètre 'idxformulaire'
743                $dossier = $this->getParameter("idxformulaire");
744            } else {
745                // Sinon on récupère le numéro de dossier dans le champs dossier de
746                // l'enregistrement (en base de données)
747                $dossier = $this->getVal("dossier");
748            }
749    
750            // On appelle la méthode de la classe utils qui renvoi le code de la
751            // division d'un dossier, on la stocke pour ne pas refaire le calcul au
752            // prochain appel de cette méthode
753            $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
754            // Logger
755            $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
756            // On retourne la valeur retournée
757            return $this->_division_from_dossier;
758    
759      }      }
760    
761        function getLastInstruction($dossier) {
762    
763          //
764          $sql = "SELECT max(instruction) FROM ".DB_PREFIXE."instruction
765                    JOIN ".DB_PREFIXE."dossier ON instruction.dossier = dossier.dossier
766                    WHERE dossier.dossier='".$dossier."'";
767          $lastInstruction = $this->db->getOne($sql);
768          $this->f->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
769          if ( database::isError($lastInstruction)){
770              die();
771          }
772    
773          return $lastInstruction;
774        }
775  }// fin classe  }// fin classe
776  ?>  ?>

Legend:
Removed from v.1897  
changed lines
  Added in v.2016

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26