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

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

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

revision 1730 by fmichon, Fri Apr 19 09:43:18 2013 UTC revision 1917 by nhaye, Mon May 27 15:35:06 2013 UTC
# Line 6  require_once("../services/outgoing/messa Line 6  require_once("../services/outgoing/messa
6    
7  class consultation extends consultation_gen {  class consultation extends consultation_gen {
8    
9        var $abstract_type = array(
10            "fichier" => "file",
11        );
12    
13      function consultation($id,&$db,$debug) {      function consultation($id,&$db,$debug) {
14          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
15      }// fin constructeur      }// fin constructeur
# Line 69  class consultation extends consultation_ Line 73  class consultation extends consultation_
73      }      }
74    
75      /**      /**
76       * Cette méthode permet de récupérer la division d'un dossier       * Cette variable permet de stocker le résultat de la méthode
77         * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
78         * ces appels.
79         * @var string Code de la division du dossier en cours
80         */
81        var $_division_from_dossier = NULL;
82    
83        /**
84         * Cette méthode permet de récupérer le code de division correspondant
85         * au dossier sur lequel on se trouve.
86         *
87         * @return string Code de la division du dossier en cours
88       */       */
89      function getDivisionFromDossier() {      function getDivisionFromDossier() {
90          // Si on se trouve en mode MODIFIER ou SUPPRIMER ou CONSULTER alors on  
91          // récupère le numéro de dossier dans la consultation et on en retourne          // Cette méthode peut être appelée plusieurs fois lors d'une requête.
92          // sa division          // Pour éviter de refaire le traitement de recherche de la division
93          if ($this->getParameter("maj") == 1 || $this->getParameter("maj") == 2          // alors on vérifie si nous ne l'avons pas déjà calculé.
94              || $this->getParameter("maj") == 3) {          if ($this->_division_from_dossier != NULL) {
95              //              // Logger
96              if (!isset($this->val[array_search("dossier", $this->champs)])) {              $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
97                  return NULL;              // On retourne la valeur déjà calculée
98              }              return $this->_division_from_dossier;
99              //          }
100              $sql = "select division from ".DB_PREFIXE."dossier ";  
101              $sql .= " where dossier='".$this->val[array_search("dossier", $this->champs)]."'";          // Par défaut, on définit la valeur du dossier à NULL
102              //          $dossier = NULL;
103              $division = $this->db->getOne($sql);          // Test sur le mode et le contexte du formulaire
104              $this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);          if ($this->getParameter("maj") == 0
105              database::isError($division);              && ($this->getParameter("retourformulaire") == "dossier"
106              //                  || $this->getParameter("retourformulaire") == "dossier_instruction"
107              return $division;                  || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
108          } elseif ($this->getParameter("maj") == 0                  || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
109                    && ($this->getParameter("retourformulaire") == "dossier"                  || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
110                        || $this->getParameter("retourformulaire") == "dossier_instruction"                  || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
111                        || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"              // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
112                        || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"              // n'existe pas en base de données) ET que nous nous trouvons
113                        || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"              // dans le contexte d'un dossier d'instruction alors on récupère
114                        || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {              // le numéro de dossier depuis le paramètre 'idxformulaire'
115              // Si on se trouve en mode AJOUTER et en sous formulaire alors on              $dossier = $this->getParameter("idxformulaire");
             // récupère le numéro de dossier dans les paramètres de sous  
             // formulaires et on en retourne sa division  
             $sql = "select division from ".DB_PREFIXE."dossier ";  
             $sql .= " where dossier='".$this->getParameter("idxformulaire")."'";  
             //  
             $division = $this->db->getOne($sql);  
             $this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);  
             database::isError($division);  
             //  
             return $division;  
116          } else {          } else {
117              return NULL;              // Sinon on récupère le numéro de dossier dans le champs dossier de
118                // l'enregistrement (en base de données)
119                $dossier = $this->getVal("dossier");
120          }          }
121    
122            // On appelle la méthode de la classe utils qui renvoi le code de la
123            // division d'un dossier, on la stocke pour ne pas refaire le calcul au
124            // prochain appel de cette méthode
125            $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
126            // Logger
127            $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
128            // On retourne la valeur retournée
129            return $this->_division_from_dossier;
130    
131      }      }
132    
133      // }}}      // }}}
# Line 247  class consultation extends consultation_ Line 263  class consultation extends consultation_
263                  $form->setType('lu', 'hidden');                  $form->setType('lu', 'hidden');
264    
265              }              }
266                
267            }
268            // Mode supprimer
269            if ($maj == 2) {
270                $form->setType('fichier', 'filestatic');
271          }          }
272          // MODE - CONSULTER          // MODE - CONSULTER
273          if ( $maj == 3 ) {          if ( $maj == 3 ) {
# Line 265  class consultation extends consultation_ Line 285  class consultation extends consultation_
285              //              //
286              $form->setType('dossier', 'hidden');              $form->setType('dossier', 'hidden');
287          }          }
288                
289            $form->setType('code_barres', 'hidden');
290            
291            //Cache les champs pour la finalisation
292            $form->setType('om_fichier_consultation', 'hidden');
293            $form->setType('om_final_consultation', 'hidden');
294      }      }
295    
296      // Cette méthode permet de calculer la date limite en fonction de la date      // Cette méthode permet de calculer la date limite en fonction de la date
# Line 292  class consultation extends consultation_ Line 318  class consultation extends consultation_
318      function triggerajouter($id,&$db,$val,$DEBUG) {      function triggerajouter($id,&$db,$val,$DEBUG) {
319          //          //
320          $this->calculDateLimite();          $this->calculDateLimite();
321            
322            // Identifiant du type de courrier
323            $idTypeCourrier = '12';
324            $idCourrier = str_pad($this->valF["consultation"], 10, "0", STR_PAD_LEFT);
325            // Code barres
326            $this->valF["code_barres"] = $idTypeCourrier . $idCourrier;
327      }      }
328    
329      //      //
# Line 384  class consultation extends consultation_ Line 416  class consultation extends consultation_
416      function getFromDB($sql) {      function getFromDB($sql) {
417          //$sql = "SELECT libelle FROM ".DB_PREFIXE."dossier WHERE dossier = '" . $dossier . "'";          //$sql = "SELECT libelle FROM ".DB_PREFIXE."dossier WHERE dossier = '" . $dossier . "'";
418          $res = $this->db->limitquery($sql, 0, 1);          $res = $this->db->limitquery($sql, 0, 1);
419          $this->addToLog("getDossierERPSpecification(): db->limitquery(\"".          $this->f->addToLog("getDossierERPSpecification(): db->limitquery(\"".
420                          str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);                          str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
421          // Si une erreur survient on die          // Si une erreur survient on die
422          if (database::isError($res, true)) {          if (database::isError($res, true)) {
# Line 531  class consultation extends consultation_ Line 563  class consultation extends consultation_
563                                    $idx, $maj, $retour);                                    $idx, $maj, $retour);
564          }          }
565      }      }
566        
567        /**
568         * Ajout des contraintes spécifiques pour l'ajout d'un fichier en retour de
569         * consultation
570         */
571        function setSelect(&$form, $maj,&$db,$debug) {
572            parent::setSelect($form, $maj,$db,$debug);
573            
574            //Seulement dans le cas d'un retour d'avis
575            if($this->retourformulaire == "demande_avis_encours") {
576                
577                //Tableau des contraintes spécifiques
578                $params = array(
579                    "constraint" => array(
580                        "size_max" => 2,
581                        "extension" => ".pdf"
582                    ),
583                    "metadata" => array()
584                );
585                
586                $form->setSelect("fichier", $params);
587            }
588        }
589  }// fin classe  }// fin classe
590  ?>  ?>

Legend:
Removed from v.1730  
changed lines
  Added in v.1917

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26