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

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

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

revision 1828 by nhaye, Fri May 3 14:33:53 2013 UTC revision 2104 by vpihour, Thu Jul 18 14:55:14 2013 UTC
# Line 20  class donnees_techniques extends donnees Line 20  class donnees_techniques extends donnees
20              $sql = "SELECT cerfa_lot FROM ".DB_PREFIXE."dossier_instruction_type              $sql = "SELECT cerfa_lot FROM ".DB_PREFIXE."dossier_instruction_type
21                  JOIN ".DB_PREFIXE."dossier ON dossier.dossier_instruction_type=                  JOIN ".DB_PREFIXE."dossier ON dossier.dossier_instruction_type=
22                                  dossier_instruction_type.dossier_instruction_type                                  dossier_instruction_type.dossier_instruction_type
23                  JOIN ".DB_PREFIXE."lien_dossier_lot ON dossier.dossier=lien_dossier_lot.dossier                  JOIN ".DB_PREFIXE."lot ON dossier.dossier=lot.dossier
24                  WHERE lien_dossier_lot.lot = ".$this->getParameter("idxformulaire");                  WHERE lot.lot = ".$this->getParameter("idxformulaire");
25    
26          } else {          } else {
27              $sql = "SELECT cerfa  FROM ".DB_PREFIXE."dossier_instruction_type              $sql = "SELECT cerfa  FROM ".DB_PREFIXE."dossier_instruction_type
# Line 41  class donnees_techniques extends donnees Line 41  class donnees_techniques extends donnees
41          if(!empty($cerfa)) {          if(!empty($cerfa)) {
42              require_once ("../obj/cerfa.class.php");              require_once ("../obj/cerfa.class.php");
43              $this->cerfa = new cerfa($cerfa, $this->db, DEBUG);              $this->cerfa = new cerfa($cerfa, $this->db, DEBUG);
44                //On vérifie que le cerfa est en cours de validité
45                $date_debut = new DateTime($this->cerfa->getVal("om_validite_debut"));
46                $date_debut = $date_debut->format('Ymd');
47                
48                $date_fin = new DateTime($this->cerfa->getVal("om_validite_fin"));
49                $date_fin = $date_fin->format('Ymd');
50                
51                $date_aujourdhui = date('Ymd');
52                
53                // Teste si le cerfa est en cours de validité
54                $this->correct = true;
55                if ( $date_aujourdhui < $date_debut || $date_aujourdhui > $date_fin ){
56                    $this->correct = false;
57                }
58                
59                //Si le cerfa n'est pas en cours de validité, on affiche pas le formulaire
60                //et on affiche un message d'erreur
61                if ( $this->correct == false){
62                    $this->f->displayMessage("error", _("Aucun cerfa en cours de validite lie a ce dossier"));
63                    die();
64                }
65          } else {          } else {
66              $this->f->displayMessage("error", _("Aucun cerfa lie a ce type de dossier"));              $this->f->displayMessage("error", _("Aucun cerfa lie a ce type de dossier"));
67              die();              die();
# Line 161  class donnees_techniques extends donnees Line 182  class donnees_techniques extends donnees
182          }          }
183          // Renumérotation          // Renumérotation
184          $this->champs = array_values($this->champs);          $this->champs = array_values($this->champs);
185            
186            $idxformulaire = $this->getParameter("idxformulaire");
187            //Si le dossier d'instruction auquel sont rattachées les données techniques
188            //est cloturé, on affiche pas le lien de modification du portlet
189            if ( $idxformulaire != '' ){
190                    
191                //On récuppère le statut du dossier d'instruction        
192                $statut = $this->f->getStatutDossier($idxformulaire);
193                if ( $this->f->isUserInstructeur() && $statut == "cloture" ){
194                    
195                    //On cache le lien de modification
196                    $this->parameters["actions"]["modifier"] = NULL;
197                }
198            }
199      }      }
200        
201        /**
202         * Cette methode est à surcharger elle permet de tester dans chaque classe
203         * des droits spécifiques en fonction des données
204         */
205        function canAccess() {
206            // Si l'utilisateur est un instructeur et que le dossier est cloturé
207            if ( $this->f->isUserInstructeur() &&
208                $this->f->getStatutDossier($this->getParameter("idxformulaire")) == "cloture"
209                && $this->getParameter("maj") != 3) {
210                
211                return false;
212            }
213            //
214            return true;
215        }
216        
217      /**      /**
218       * Méthode permettant de définir le type des différents tableaux en fonction       * Méthode permettant de définir le type des différents tableaux en fonction
219       * des valeurs du cerfa       * des valeurs du cerfa
# Line 415  class donnees_techniques extends donnees Line 466  class donnees_techniques extends donnees
466          $form->setBloc('tr_desc','F');          $form->setBloc('tr_desc','F');
467    
468          /*Fieldset n°4 Ouverture de chantier */          /*Fieldset n°4 Ouverture de chantier */
469          $form->setBloc('doc_date_ouv','D',"","col_12");          $form->setBloc('doc_date','D',"","col_12");
470              $form->setFieldset('doc_date_ouv','D'              $form->setFieldset('doc_date','D'
471                                 ,_("Ouverture de chantier"));                                 ,_("Ouverture de chantier"));
472    
473              $form->setFieldset('doc_nb_log_autre','F','');              $form->setFieldset('doc_nb_log_autre','F','');
474          $form->setBloc('doc_nb_log_autre','F');          $form->setBloc('doc_nb_log_autre','F');
475    
476          /*Fieldset n°4  Achèvement des travaux */          /*Fieldset n°4  Achèvement des travaux */
477          $form->setBloc('daact_date_ouv','D',"","col_12");          $form->setBloc('daact_date','D',"","col_12");
478              $form->setFieldset('daact_date_ouv','D'              $form->setFieldset('daact_date','D'
479                                 ,_("Achevement des travaux"));                                 ,_("Achevement des travaux"));
480    
481              $form->setFieldset('daact_nb_log_autre','F','');              $form->setFieldset('daact_nb_log_autre','F','');
# Line 526  class donnees_techniques extends donnees Line 577  class donnees_techniques extends donnees
577                    
578          $form->setBloc('co_statio_apr_surf','F');          $form->setBloc('co_statio_apr_surf','F');
579    
580            // Description de modification
581            $form->setBloc('mod_desc','D',"","col_12");
582                $form->setFieldset('mod_desc','D'
583                                   ,_("Objet de la modification"));
584                $form->setFieldset('mod_desc','F','');
585            $form->setBloc('mod_desc','F');
586            
587          /*Fieldset n°6 Projet necessitant demolitions */          /*Fieldset n°6 Projet necessitant demolitions */
588          $form->setBloc('dm_constr_dates','D',"","col_12");          $form->setBloc('dm_constr_dates','D',"","col_12");
589              $form->setFieldset('dm_constr_dates','D'              $form->setFieldset('dm_constr_dates','D'
# Line 628  class donnees_techniques extends donnees Line 685  class donnees_techniques extends donnees
685              }              }
686          }          }
687      }      }
688    
689        /**
690         * Cette variable permet de stocker le résultat de la méthode
691         * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
692         * ces appels.
693         * @var string Code de la division du dossier en cours
694         */
695        var $_division_from_dossier = NULL;
696    
697        /**
698         * Cette méthode permet de récupérer le code de division correspondant
699         * au dossier sur lequel on se trouve.
700         *
701         * @return string Code de la division du dossier en cours
702         */
703        function getDivisionFromDossier() {
704    
705            // Cette méthode peut être appelée plusieurs fois lors d'une requête.
706            // Pour éviter de refaire le traitement de recherche de la division
707            // alors on vérifie si nous ne l'avons pas déjà calculé.
708            if ($this->_division_from_dossier != NULL) {
709                // Logger
710                $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
711                // On retourne la valeur déjà calculée
712                return $this->_division_from_dossier;
713            }
714    
715            // Par défaut, on définit la valeur du dossier à NULL
716            $dossier = NULL;
717            // Test sur le mode et le contexte du formulaire
718            if ($this->getParameter("maj") == 0
719                && ($this->getParameter("retourformulaire") == "dossier"
720                    || $this->getParameter("retourformulaire") == "dossier_instruction"
721                    || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
722                    || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
723                    || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
724                    || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
725                // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
726                // n'existe pas en base de données) ET que nous nous trouvons
727                // dans le contexte d'un dossier d'instruction alors on récupère
728                // le numéro de dossier depuis le paramètre 'idxformulaire'
729                $dossier = $this->getParameter("idxformulaire");
730            } else {
731                // Sinon on récupère le numéro de dossier dans le champs dossier de
732                // l'enregistrement (en base de données)
733                $dossier = $this->getVal("dossier");
734            }
735    
736            // On appelle la méthode de la classe utils qui renvoi le code de la
737            // division d'un dossier, on la stocke pour ne pas refaire le calcul au
738            // prochain appel de cette méthode
739            $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
740            // Logger
741            $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
742            // On retourne la valeur retournée
743            return $this->_division_from_dossier;
744    
745        }
746  }// fin classe  }// fin classe
747  ?>  ?>

Legend:
Removed from v.1828  
changed lines
  Added in v.2104

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26