/[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 1397 by nhaye, Wed Mar 13 18:23:16 2013 UTC revision 2109 by vpihour, Mon Jul 22 14:13:01 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 32  class donnees_techniques extends donnees Line 32  class donnees_techniques extends donnees
32          }          }
33    
34          $cerfa = $this->db->getOne($sql);          $cerfa = $this->db->getOne($sql);
35          $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);          $this->f->addToLog("getCerfa() : db->getone(\"".$sql."\");", VERBOSE_MODE);
36          $this->f->isDatabaseError($cerfa);          if ( database::isError($cerfa)){
37                die();
38            }
39    
40          // Si le cerfa est défini dans dossier on instancie le cerfa correspondant          // Si le cerfa est défini dans dossier on instancie le cerfa correspondant
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                $is_encours = true;
55                if ( $date_aujourdhui < $date_debut || $date_aujourdhui > $date_fin ){
56                    $is_encours = 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 ( $is_encours == 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 85  class donnees_techniques extends donnees Line 108  class donnees_techniques extends donnees
108          $this->setTabSelect($tab_tax_su_tot, "tab_tax_su_tot");          $this->setTabSelect($tab_tax_su_tot, "tab_tax_su_tot");
109          $this->setTabSelect($tab_tax_su_tot, "tab_tax_su_non_habit_surf");          $this->setTabSelect($tab_tax_su_tot, "tab_tax_su_non_habit_surf");
110          $this->setTabSelect($tab_tax_am, "tab_tax_am");          $this->setTabSelect($tab_tax_am, "tab_tax_am");
111            
112            // Définition des champs Oui/Non/Je ne sais pas
113            $value[] = array("nesaispas","oui","non");
114            $value[] = array(_("Je ne sais pas"),_("Oui"),_("Non"));
115            
116            $form->setSelect('terr_juri_titul',$value);
117            $form->setSelect('terr_juri_lot',$value);
118            $form->setSelect('terr_juri_zac',$value);
119            $form->setSelect('terr_juri_afu',$value);
120            $form->setSelect('terr_juri_pup',$value);
121            $form->setSelect('terr_juri_oin',$value);
122            $form->setSelect('terr_juri_desc',$value);
123            $form->setSelect('terr_div_surf_etab',$value);
124            $form->setSelect('terr_div_surf_av_div',$value);
125    
126      }      }
127    
# Line 146  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 176  class donnees_techniques extends donnees Line 242  class donnees_techniques extends donnees
242              include ("../sql/".$this->db->phptype."/".$this->table.".form.inc");              include ("../sql/".$this->db->phptype."/".$this->table.".form.inc");
243          // Pour chaque champ dans la liste des champs du cerfa          // Pour chaque champ dans la liste des champs du cerfa
244          $tableau = $$tab;          $tableau = $$tab;
245          print_r($tableau[$this->cerfa->getVal($tab)]['values']);  
246          foreach ($this->champs as $champ) {          foreach ($this->champs as $champ) {
247              if(array_search($champ, $this->cerfa->champs) !== false) {              if(array_search($champ, $this->cerfa->champs) !== false) {
248                  // On les cache si décoché dans le formulaire de cerfa                  // On les cache si décoché dans le formulaire de cerfa
# Line 215  class donnees_techniques extends donnees Line 281  class donnees_techniques extends donnees
281          $this->setTabType("tab_tax_su_non_habit_surf");          $this->setTabType("tab_tax_su_non_habit_surf");
282          $this->setTabType("tab_tax_am");          $this->setTabType("tab_tax_am");
283    
284            //Champs select pour les liste a choix oui/non/je ne sais pas (terr_*)
285            if($maj == 0) {
286                $form->setType('terr_juri_titul','select');
287                $form->setType('terr_juri_lot','select');
288                $form->setType('terr_juri_zac','select');
289                $form->setType('terr_juri_afu','select');
290                $form->setType('terr_juri_pup','select');
291                $form->setType('terr_juri_oin','select');
292    
293            } elseif($maj == 1) {
294                $form->setType('terr_juri_titul','select');
295                $form->setType('terr_juri_lot','select');
296                $form->setType('terr_juri_zac','select');
297                $form->setType('terr_juri_afu','select');
298                $form->setType('terr_juri_pup','select');
299                $form->setType('terr_juri_oin','select');
300    
301            } elseif($maj == 2) {
302                $form->setType('terr_juri_titul','selectstatic');
303                $form->setType('terr_juri_lot','selectstatic');
304                $form->setType('terr_juri_zac','selectstatic');
305                $form->setType('terr_juri_afu','selectstatic');
306                $form->setType('terr_juri_pup','selectstatic');
307                $form->setType('terr_juri_oin','selectstatic');
308    
309            } elseif($maj == 3) {
310                $form->setType('terr_juri_titul','selectstatic');
311                $form->setType('terr_juri_lot','selectstatic');
312                $form->setType('terr_juri_zac','selectstatic');
313                $form->setType('terr_juri_afu','selectstatic');
314                $form->setType('terr_juri_pup','selectstatic');
315                $form->setType('terr_juri_oin','selectstatic');
316    
317            }
318    
319    
320          //Cache les champs des clés étrangères, elles sont renseignées automatiquement          //Cache les champs des clés étrangères, elles sont renseignées automatiquement
321          $form->setType('dossier_instruction', 'hidden');          $form->setType('dossier_instruction', 'hidden');
# Line 236  class donnees_techniques extends donnees Line 337  class donnees_techniques extends donnees
337                  $id_tab_tax_su_tot = $this->cerfa->getVal("tab_tax_su_tot");                  $id_tab_tax_su_tot = $this->cerfa->getVal("tab_tax_su_tot");
338                  $id_tab_tax_su_non_habit_surf = $this->cerfa->getVal("tab_tax_su_non_habit_surf");                  $id_tab_tax_su_non_habit_surf = $this->cerfa->getVal("tab_tax_su_non_habit_surf");
339                  $id_tab_tax_am = $this->cerfa->getVal("tab_tax_am");                  $id_tab_tax_am = $this->cerfa->getVal("tab_tax_am");
340                  $hidden = false;                  $hidden = true;
341    
342                    // On cache tous les champs
343                    $form->setType($champ,'hidden');
344    
345                    // On défini l'affichage des champs des tableaux de configuration
346                    // Si les tableau sont définis dans le cerfa on test si les champs des données
347                    // techniques sont définis dans les tableaux de configuration des tableaux
348                    // pour chaque cerfa  alors on les affiche en type "text"
349                  if(!empty($id_tab_surface)) {                  if(!empty($id_tab_surface)) {
350                      if(!in_array($champ, $tab_surface[$this->cerfa->getVal("tab_surface")]['values'])) {                      if(in_array($champ, $tab_surface[$this->cerfa->getVal("tab_surface")]['values'])) {
351                          $hidden = true;                          $hidden = false;
352                      }                      }
353                  }                  }
354                  if(!empty($id_tab_tax_su_princ)) {                  if(!empty($id_tab_tax_su_princ)) {
355                      if(!in_array($champ, $tab_tax_su_princ[$this->cerfa->getVal("tab_tax_su_princ")]['values'])) {                      if(in_array($champ, $tab_tax_su_princ[$this->cerfa->getVal("tab_tax_su_princ")]['values'])) {
356                          $hidden = true;                          $hidden = false;
357                      }                      }
358                  }                  }
359                  if(!empty($id_tab_tax_su_heber)) {                  if(!empty($id_tab_tax_su_heber)) {
360                      if(!in_array($champ, $tab_surface[$this->cerfa->getVal("tab_surface")]['values'])) {                      if(in_array($champ, $tab_tax_su_heber[$this->cerfa->getVal("tab_tax_su_heber")]['values'])) {
361                          $hidden = true;                          $hidden = false;
362                      }                      }
363                  }                  }
364                  if(!empty($id_tab_tax_su_secon)) {                  if(!empty($id_tab_tax_su_secon)) {
365                      if(!in_array($champ, $tab_tax_su_secon[$this->cerfa->getVal("tab_tax_su_secon")]['values'])) {                      if(in_array($champ, $tab_tax_su_secon[$this->cerfa->getVal("tab_tax_su_secon")]['values'])) {
366                          $hidden = true;                          $hidden = false;
367                      }                      }
368                  }                  }
369                  if(!empty($id_tab_tax_su_tot)) {                  if(!empty($id_tab_tax_su_tot)) {
370                      if(!in_array($champ, $tab_tax_su_tot[$this->cerfa->getVal("tab_tax_su_tot")]['values'])) {                      if(in_array($champ, $tab_tax_su_tot[$this->cerfa->getVal("tab_tax_su_tot")]['values'])) {
371                          $hidden = true;                          $hidden = false;
372                      }                      }
373                  }                  }
374                  if(!empty($id_tab_tax_su_non_habit_surf)) {                  if(!empty($id_tab_tax_su_non_habit_surf)) {
375                      if(!in_array($champ, $tab_tax_su_non_habit_surf[$this->cerfa->getVal("tab_tax_su_non_habit_surf")]['values'])) {                      if(in_array($champ, $tab_tax_su_non_habit_surf[$this->cerfa->getVal("tab_tax_su_non_habit_surf")]['values'])) {
376                          $hidden = true;                          $hidden = false;
377                      }                      }
378                  }                  }
379                  if(!empty($id_tab_tax_am)) {                  if(!empty($id_tab_tax_am)) {
380                      if(!in_array($champ, $tab_tax_am[$this->cerfa->getVal("tab_tax_am")]['values'])) {                      if(in_array($champ, $tab_tax_am[$this->cerfa->getVal("tab_tax_am")]['values'])) {
381                          $hidden = true;                          $hidden = false;
382                      }                      }
383                  }                  }
384                  if($hidden){  
385                      $form->setType($champ,'hidden');                  if(!$hidden){
386                        if($maj < 2) {
387                            $form->setType($champ,'text');
388                        } else {
389                            $form->setType($champ,'static');
390                        }
391                        
392                  }                  }
393              }              }
394          }          }
# Line 301  class donnees_techniques extends donnees Line 415  class donnees_techniques extends donnees
415          }// fin validation          }// fin validation
416      }// fin setValsousformulaire      }// fin setValsousformulaire
417    
418        function setLib(&$form,$maj) {
419            parent::setLib($form,$maj);
420            //libelle des champs
421            $form->setLib('tab_surface', "");
422            $form->setLib('tab_tax_su_princ', "");
423            $form->setLib('tab_tax_su_heber', "");
424            $form->setLib('tab_tax_su_secon', "");
425            $form->setLib('tab_tax_su_tot', "");
426            $form->setLib('tab_tax_su_non_habit_surf', "");
427            $form->setLib('tab_tax_am', "");
428        }
429    
430      function setLayout(&$form, $maj) {      function setLayout(&$form, $maj) {
431                  /*Fieldset Parametrage du cerfa */                  /*Fieldset Parametrage du cerfa */
432          $form->setBloc('cerfa','D',"","col_12");          $form->setBloc('cerfa','D',"","col_12");
# Line 311  class donnees_techniques extends donnees Line 437  class donnees_techniques extends donnees
437              $form->setFieldset('om_validite_fin','F','');              $form->setFieldset('om_validite_fin','F','');
438          $form->setBloc('om_validite_fin','F');          $form->setBloc('om_validite_fin','F');
439    
440            $form->setBloc('terr_juri_titul','D',"","col_12");
441                $form->setFieldset('terr_juri_titul','D'
442                                   ,_("Terrain"));
443                    $form->setBloc('terr_juri_titul','D',_("Situation juridique du terrain"),"col_12");
444                    $form->setBloc('terr_juri_desc','F');
445                    $form->setBloc('terr_div_surf_etab','D',_("Terrain issu d'une division de propriete"),"col_12");
446                    $form->setBloc('terr_div_surf_av_div','F');
447    
448                $form->setFieldset('terr_div_surf_av_div','F','');
449            $form->setBloc('terr_div_surf_av_div','F');
450    
451          $form->setBloc('avap_co_elt_pro','D',"","col_12");          $form->setBloc('avap_co_elt_pro','D',"","col_12");
452              $form->setFieldset('avap_co_elt_pro','D'              $form->setFieldset('avap_co_elt_pro','D'
453                                 ,_("Projet"));                                 ,_("Projet"));
# Line 328  class donnees_techniques extends donnees Line 465  class donnees_techniques extends donnees
465              $form->setFieldset('tr_desc','F','');              $form->setFieldset('tr_desc','F','');
466          $form->setBloc('tr_desc','F');          $form->setBloc('tr_desc','F');
467    
468            /*Fieldset n°4 Ouverture de chantier */
469            $form->setBloc('doc_date','D',"","col_12");
470                $form->setFieldset('doc_date','D'
471                                   ,_("Ouverture de chantier"));
472    
473                $form->setFieldset('doc_nb_log_autre','F','');
474            $form->setBloc('doc_nb_log_autre','F');
475    
476            /*Fieldset n°4  Achèvement des travaux */
477            $form->setBloc('daact_date','D',"","col_12");
478                $form->setFieldset('daact_date','D'
479                                   ,_("Achevement des travaux"));
480    
481                $form->setFieldset('daact_nb_log_autre','F','');
482            $form->setBloc('daact_nb_log_autre','F');
483    
484          /*Fieldset n°4 Projet d'aménagement */          /*Fieldset n°4 Projet d'aménagement */
485          $form->setBloc('am_lotiss','D',"","col_12");          $form->setBloc('am_lotiss','D',"","col_12");
# Line 362  class donnees_techniques extends donnees Line 513  class donnees_techniques extends donnees
513                                 ,_("Projet de construction"));                                 ,_("Projet de construction"));
514                  // bloc 5.1                  // bloc 5.1
515                  $form->setBloc('co_archi_recours','D',_("Architecte"),"col_12");                  $form->setBloc('co_archi_recours','D',_("Architecte"),"col_12");
516                    
517                        $form->setBloc('co_archi_recours','DF', "","group");
518                        
519                        $form->setBloc('co_archi_nom','D', "","group");
520                        $form->setBloc('co_archi_prenom','F');
521                        
522                        $form->setBloc('co_archi_adr_num','D', "","group");
523                        $form->setBloc('co_archi_adr_voie','F');
524    
525                        $form->setBloc('co_archi_adr_lieu_dit','D', "","group");
526                        $form->setBloc('co_archi_adr_localite','F');
527                        
528                        $form->setBloc('co_archi_adr_cp','D', "","group");
529                        $form->setBloc('co_archi_adr_cedex','F');
530                        
531                        $form->setBloc('co_archi_no_incri','DF', "","group");
532                        
533                        $form->setBloc('co_archi_cg','DF', "","group");
534                        
535                        $form->setBloc('co_archi_tel1','D', "","group");
536                        $form->setBloc('co_archi_tel2','F');
537                        
538                        $form->setBloc('co_archi_mail','DF', "","group");
539    
540                  $form->setBloc('co_archi_recours','F');                  $form->setBloc('co_archi_mail','F');
541                                    
542                  // bloc 5.2                  // bloc 5.2
543                  $form->setBloc('co_cstr_nouv','D',_("Nature du projet"),"col_12");                  $form->setBloc('co_cstr_nouv','D',_("Nature du projet"),"col_12");
# Line 403  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 505  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.1397  
changed lines
  Added in v.2109

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26