/[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 2005 by softime, Wed Jun 12 10:52:42 2013 UTC revision 2006 by softime, Fri Jun 14 10:45:44 2013 UTC
# Line 20  class document_numerise extends document Line 20  class document_numerise extends document
20              "groupe_instruction" => 'getGroupeInstruction',              "groupe_instruction" => 'getGroupeInstruction',
21              "type_doc" => 'getTypeDoc',              "type_doc" => 'getTypeDoc',
22          ),          ),
23            "document_arrete" => array(
24                "numArrete" => "getNumArrete",
25                "specialiteArrete" => "getSpecialiteArrete",
26                "decisionArrete" => "getDecisionArrete",
27                "chketatReglementaire" => "getChketatReglementaire",
28                "chkNotification" => "getChkNotification",
29                "dateNotification" => "getDateNotification",
30                "chkCreationdroit" => "getChkCreationdroit",
31                "chkPublication" => "getChkPublication",
32                "datePublication" => "getDatePublication",
33                "chkControleLegalite" => "getChkControleLegalite",
34                "dateSignatureArrete" => "getDateSignatureArrete",
35                "nomSignataire" => "getNomSignataire",
36                "qualiteSignataire" => "getQualiteSignataire",
37                "chkDelegation" => "getChkDelegation",
38                "ap_numRue" => "getAp_numRue",
39                "ap_nomDeLaVoie" => "getAp_nomDeLaVoie",
40                "ap_codePostal" => "getAp_codePostal",
41                "ap_ville" => "getAp_ville",
42            ),
43      );      );
44    
45      var $abstract_type = array(      var $abstract_type = array(
# Line 128  class document_numerise extends document Line 148  class document_numerise extends document
148    
149          //Génération automatique nom du fichier          //Génération automatique nom du fichier
150          $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);
151            
152            // Si c'est un arrêté alors on ajoute les métadonnées pour ce type de document
153            if ($this->get_document_numerise_type_categorie_libelle($val["document_numerise_type"]) == 'Arrêté') {
154    
155              // rassemble les elément des deux tableau
156              $this->metadata['uid'] = array_merge($this->metadata['uid'], $this->metadata['document_arrete']);
157            }
158      }      }
159    
160      /**      /**
# Line 190  class document_numerise extends document Line 216  class document_numerise extends document
216          }          }
217      }      }
218    
219        // {{{
220        // Méthodes de récupération des métadonnées document
221      /**      /**
222       * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées       * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées
223       * @return [type] [description]       * @return [type] [description]
# Line 293  class document_numerise extends document Line 321  class document_numerise extends document
321          //Retourne le code du type de document          //Retourne le code du type de document
322          return $document_numerise_type_libelle;          return $document_numerise_type_libelle;
323      }      }
324        // Fin des méthodes de récupération des métadonnées
325        // }}}
326    
327        // {{{
328        // Méthodes de récupération des métadonnées arrêté
329        /**
330         * @return string Retourne le numéro d'arrêté
331         */
332        function getNumArrete() {
333            return '';
334        }
335        /**
336         * @return string ads
337         */
338        function getSpecialiteArrete() {
339            return "ADS";
340        }
341        /**
342         * @return string decision
343         */
344        function getDecisionArrete() {
345            if (empty($this->metadonneesArrete)) {
346                $this->getArreteMetadata();
347            }
348            return $this->metadonneesArrete["decisionarrete"];
349        }
350        /**
351         * @return chaîne vide
352         */
353        function getChketatReglementaire() {
354            return 'true';
355        }
356        /**
357         * @return boolean de notification au pétitionnaire
358         */
359        function getChkNotification() {
360            return 'true';
361        }
362        /**
363         * @return date de notification au pétitionnaire
364         */
365        function getDateNotification() {
366            if (empty($this->metadonneesArrete)) {
367                $this->getArreteMetadata();
368            }
369            return $this->metadonneesArrete["datenotification"];
370        }
371        /**
372         * @return chaîne vide
373         */
374        function getChkCreationdroit() {
375            return "true";
376        }
377        /**
378         * @return chaîne vide
379         */
380        function getChkPublication() {
381            return "true";
382        }
383        /**
384         * @return chaîne vide
385         */
386        function getDatePublication() {
387            return "";
388        }
389        /**
390         * @return boolean check si le document est passé au contrôle de légalité
391         */
392        function getChkControleLegalite() {
393            return 'true';
394        }
395        /**
396         * @return date de signature de l'arrêté
397         */
398        function getDateSignatureArrete() {
399            if (empty($this->metadonneesArrete)) {
400                $this->getArreteMetadata();
401            }
402            return $this->metadonneesArrete["datesignaturearrete"];
403        }
404        /**
405         * @return string nom du signataire
406         */
407        function getNomSignataire() {
408            if (empty($this->metadonneesArrete)) {
409                $this->getArreteMetadata();
410            }
411            return $this->metadonneesArrete["nomsignataire"];
412        }
413        /**
414         * @return string qualité du signataire
415         */
416        function getQualiteSignataire() {
417            if (empty($this->metadonneesArrete)) {
418                $this->getArreteMetadata();
419            }
420            return $this->metadonneesArrete["qualitesignataire"];
421        }
422        /**
423         * @return string chaîne vide
424         */
425        function getChkDelegation() {
426            return "true";
427        }
428        /**
429         * @return string numéro du terrain
430         */
431        function getAp_numRue() {
432            if (empty($this->metadonneesArrete)) {
433                $this->getArreteMetadata();
434            }
435            return $this->metadonneesArrete["ap_numrue"];
436        }
437        /**
438         * @return string nom de la rue du terrain
439         */
440        function getAp_nomDeLaVoie() {
441            if (empty($this->metadonneesArrete)) {
442                $this->getArreteMetadata();
443            }
444            return $this->metadonneesArrete["ap_nomdelavoie"];
445        }
446        /**
447         * @return string code postal du terrain
448         */
449        function getAp_codePostal() {
450            if (empty($this->metadonneesArrete)) {
451                $this->getArreteMetadata();
452            }
453            return $this->metadonneesArrete["ap_codepostal"];
454        }
455        /**
456         * @return string ville du terrain
457         */
458        function getAp_ville() {
459            if (empty($this->metadonneesArrete)) {
460                $this->getArreteMetadata();
461            }
462            return $this->metadonneesArrete["ap_ville"];
463        }
464    
465        // Fin des méthodes de récupération des métadonnées
466        // }}}
467    
468      /**      /**
469       * Génère le nom du fichier avec les information du formulaire       * Génère le nom du fichier avec les information du formulaire
# Line 333  class document_numerise extends document Line 504  class document_numerise extends document
504          return $document_numerise_type_code;          return $document_numerise_type_code;
505      }      }
506    
507        /**
508         * Permet de récupérer le libellé de la catégorie du type de document
509         * @param  int $document_numerise_type    Clé primaire d'un donnée de document_numerise_type
510         * @return string                         Libellé de la catégorie du type de document
511         */
512        private function get_document_numerise_type_categorie_libelle($document_numerise_type) {
513    
514          // Requête sql
515          $sql = "SELECT document_numerise_type_categorie.libelle
516                  FROM ".DB_PREFIXE."document_numerise_type
517                    LEFT JOIN ".DB_PREFIXE."document_numerise_type_categorie
518                      ON document_numerise_type.document_numerise_type_categorie = document_numerise_type_categorie.document_numerise_type_categorie
519                  WHERE document_numerise_type.document_numerise_type = ".$document_numerise_type;
520          $document_numerise_type_categorie_libelle = $this->db->getOne($sql);
521          $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
522          $this->f->addToLog("obj/document_numerise.class.php : db->getOne(".$sql.")", VERBOSE_MODE);
523          if (database::isError($document_numerise_type_categorie_libelle)) {
524              die();
525          }
526    
527          //Retourne le code du type de document
528          return $document_numerise_type_categorie_libelle;
529        }
530    
531    
532      /**      /**
533       * Cette méthode permet de stocker en attribut toutes les métadonnées       * Cette méthode permet de stocker en attribut toutes les métadonnées
534       * nécessaire à l'ajout d'un document.       * nécessaire à l'ajout d'un document.
535       */       */
536      public function getSpecificMetadata() {      public function getSpecificMetadata() {
           
537    
538          //Requête pour récupérer les informations essentiels sur le dossier d'instruction          //Requête pour récupérer les informations essentiels sur le dossier d'instruction
539          $sql = "SELECT dossier.dossier as dossier,          $sql = "SELECT dossier.dossier as dossier,
# Line 364  class document_numerise extends document Line 558  class document_numerise extends document
558                          ON dossier_autorisation_type.groupe = groupe.groupe                          ON dossier_autorisation_type.groupe = groupe.groupe
559                  WHERE dossier.dossier = '".$this->valF["dossier"]."'";                  WHERE dossier.dossier = '".$this->valF["dossier"]."'";
560          $res = $this->db->query($sql);          $res = $this->db->query($sql);
561          $this->f->addToLog("obj/document_numerise.class.php : db->query(".$sql.")", VERBOSE_MODE);          $this->f->addToLog("getSpecificMetadata : db->query(".$sql.")", VERBOSE_MODE);
562          if ( database::isError($res)){          if ( database::isError($res)){
563              die();              die();
564          }          }
# Line 382  class document_numerise extends document Line 576  class document_numerise extends document
576      }      }
577    
578      /**      /**
579         * Méthode de récupération des métadonnées arrêtés dans la base de données,
580         * les données sont stockés dans l'attribut $this->metadonneesArrete
581         */
582        function getArreteMetadata() {
583            $sqlArrete = "SELECT    signataire_arrete.nom as \"nomsignataire\",
584                                    signataire_arrete.qualite as \"qualitesignataire\",
585                                    instruction.date_evenement as \"datesignaturearrete\",
586                                    instruction.etat as \"decisionarrete\",
587                                    instruction.date_retour_rar as \"datenotification\",
588                                    instruction.date_retour_signature as \"datesignaturesrrete\",
589                                    dossier.terrain_adresse_voie_numero as \"ap_numrue\",
590                                    dossier.complement as \"ap_nomdelavoie\",
591                                    dossier.terrain_adresse_code_postal as \"ap_codepostal\",
592                                    dossier.terrain_adresse_localite as \"ap_ville\"
593                                FROM ".DB_PREFIXE."instruction
594                                LEFT JOIN ".DB_PREFIXE."signataire_arrete ON
595                                    instruction.signataire_arrete = signataire_arrete.signataire_arrete
596                                LEFT JOIN ".DB_PREFIXE."dossier ON
597                                    instruction.dossier = dossier.dossier
598                                LEFT JOIN ".DB_PREFIXE."donnees_techniques ON
599                                        donnees_techniques.dossier_instruction = dossier.dossier
600                                WHERE dossier.dossier = '".$this->valF["dossier"]."'
601                                  AND instruction.instruction = ".$this->getLastInstruction($this->valF["dossier"]);
602            $resArrete = $this->db->query($sqlArrete);
603            $this->f->addToLog("getArreteMetadata(): db->query(\"".$sqlArrete."\");", VERBOSE_MODE);
604            if ( database::isError($resArrete)){
605                die();
606            }
607    
608            $this->metadonneesArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);
609        }
610    
611        /**
612       * Cette methode est à surcharger elle permet de tester dans chaque classe       * Cette methode est à surcharger elle permet de tester dans chaque classe
613       * des droits spécifiques en fonction des données       * des droits spécifiques en fonction des données
614       */       */
615      function canAccess() {      function canAccess() {
616          $retourformulaire = $this->getParameter("retourformulaire");        
617          // Si l'utilisateur est un instructeur et que le dossier d'instruction est cloturé          // Si l'utilisateur est un intructeur qui ne correspond pas à la
618          if ( $this->f->isUserInstructeur() &&          // division du dossier
619              $this->getStatutDossier($this->getParameter("idxformulaire")) == "cloture" &&          if ($this->f->isUserInstructeur()
620              (              && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()
621                  $retourformulaire == 'dossier' ||              && $this->getParameter("maj") != 3) {
622                  $retourformulaire == 'dossier_instruction' ||              //
                 $retourformulaire == 'dossier_instruction_mes_encours' ||  
                 $retourformulaire == 'dossier_instruction_tous_encours' ||  
                 $retourformulaire == 'dossier_instruction_mes_clotures' ||  
                 $retourformulaire == 'dossier_instruction_tous_clotures'  
             ) &&  
             $this->getParameter("maj") != 3) {  
               
623              return false;              return false;
624          }          }
625          //          //
# Line 435  class document_numerise extends document Line 655  class document_numerise extends document
655          }          }
656          return $statut;          return $statut;
657      }      }
658    
659        /**
660         * Cette variable permet de stocker le résultat de la méthode
661         * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
662         * ces appels.
663         * @var string Code de la division du dossier en cours
664         */
665        var $_division_from_dossier = NULL;
666    
667        /**
668         * Cette méthode permet de récupérer le code de division correspondant
669         * au dossier sur lequel on se trouve.
670         *
671         * @return string Code de la division du dossier en cours
672         */
673        function getDivisionFromDossier() {
674    
675            // Cette méthode peut être appelée plusieurs fois lors d'une requête.
676            // Pour éviter de refaire le traitement de recherche de la division
677            // alors on vérifie si nous ne l'avons pas déjà calculé.
678            if ($this->_division_from_dossier != NULL) {
679                // Logger
680                $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
681                // On retourne la valeur déjà calculée
682                return $this->_division_from_dossier;
683            }
684    
685            // Par défaut, on définit la valeur du dossier à NULL
686            $dossier = NULL;
687            // Test sur le mode et le contexte du formulaire
688            if ($this->getParameter("maj") == 0
689                && ($this->getParameter("retourformulaire") == "dossier"
690                    || $this->getParameter("retourformulaire") == "dossier_instruction"
691                    || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
692                    || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
693                    || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
694                    || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
695                // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
696                // n'existe pas en base de données) ET que nous nous trouvons
697                // dans le contexte d'un dossier d'instruction alors on récupère
698                // le numéro de dossier depuis le paramètre 'idxformulaire'
699                $dossier = $this->getParameter("idxformulaire");
700            } else {
701                // Sinon on récupère le numéro de dossier dans le champs dossier de
702                // l'enregistrement (en base de données)
703                $dossier = $this->getVal("dossier");
704            }
705    
706            // On appelle la méthode de la classe utils qui renvoi le code de la
707            // division d'un dossier, on la stocke pour ne pas refaire le calcul au
708            // prochain appel de cette méthode
709            $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
710            // Logger
711            $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
712            // On retourne la valeur retournée
713            return $this->_division_from_dossier;
714    
715        }
716    
717        function getLastInstruction($dossier) {
718    
719          //
720          $sql = "SELECT max(instruction) FROM ".DB_PREFIXE."instruction
721                    JOIN ".DB_PREFIXE."dossier ON instruction.dossier = dossier.dossier
722                    WHERE dossier.dossier='".$dossier."'";
723          $lastInstruction = $this->db->getOne($sql);
724          $this->f->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
725          if ( database::isError($lastInstruction)){
726              die();
727          }
728    
729          return $lastInstruction;
730        }
731  }// fin classe  }// fin classe
732  ?>  ?>

Legend:
Removed from v.2005  
changed lines
  Added in v.2006

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26