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

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

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

revision 1442 by nhaye, Fri Mar 15 15:08:29 2013 UTC revision 1723 by fmichon, Thu Apr 18 16:16:28 2013 UTC
# Line 81  class demande extends demande_gen { Line 81  class demande extends demande_gen {
81      }      }
82    
83      /**      /**
      * Méthode permettant de vérifier si un autre dossier d'instruction est en cour  
      * pour le même dossier d'autorisation.  
      */  
     function autreDossierEnCour() {  
   
         $idx_dossier = $this->getParameter("idx_dossier");  
   
         // Lorsqu'on se trouve sur un dossier existant  
         if(isset($idx_dossier) AND $idx_dossier != "") {  
   
             // Si on a pas encore défini si un autre dossier est en cours  
             if(!isset($this->autreDossierEnCour)) {  
   
                 if(file_exists ("../sql/".$this->db->phptype."/".$this->table.".form.inc.php"))  
                     include ("../sql/".$this->db->phptype."/".$this->table.".form.inc.php");  
                 elseif(file_exists ("../sql/".$this->db->phptype."/".$this->table.".form.inc"))  
                     include ("../sql/".$this->db->phptype."/".$this->table.".form.inc");  
                 $request = str_replace('<idx>', $idx_dossier,  
                                          $sql_autreDossierEnCour);  
   
                 $nbDossier = $this->db->getOne($request);  
                 $this->f->addToLog("db->getone(\"".$request."\");", VERBOSE_MODE);  
                 $this->f->isDatabaseError($nbDossier);  
                 // Si un dossier est en cour return true  
                 if($nbDossier>0) {  
                       
                     $this->autreDossierEnCour = true;  
                 } else {  
   
                     $this->autreDossierEnCour = false;  
                 }  
   
             }  
         } else {  
             $this->autreDossierEnCour = false;  
         }  
   
         return $this->autreDossierEnCour;  
     }  
   
     /**  
84       * Configuration des select       * Configuration des select
85       */       */
86      function setSelect(&$form, $maj,&$db,$debug) {      function setSelect(&$form, $maj,&$db,$debug) {
# Line 140  class demande extends demande_gen { Line 99  class demande extends demande_gen {
99    
100          // Ajout de filtre sur la requête (initial)          // Ajout de filtre sur la requête (initial)
101          if(isset($idx_dossier) AND $idx_dossier != "") {          if(isset($idx_dossier) AND $idx_dossier != "") {
102              $sql_demande_type .= " WHERE demande_nature = 2 ";              $sql_demande_type .= " WHERE demande_type.demande_nature = 2 ";
103    
104                // ajout du numéro de dossier existant pour tester l'état du DA
105                $sql_demande_type .= "AND dossier.dossier = '".$idx_dossier."' ";
106          } else {          } else {
107              $sql_demande_type .= " WHERE demande_nature = 1 ";              $sql_demande_type .= " WHERE demande_type.demande_nature = 1 ";
108          }          }
109          if(isset($_POST["dossier_autorisation_type_detaille"]) AND $_POST["dossier_autorisation_type_detaille"] != "") {          if(isset($_POST["dossier_autorisation_type_detaille"]) AND $_POST["dossier_autorisation_type_detaille"] != "") {
110              $datd = $_POST["dossier_autorisation_type_detaille"];              $datd = $_POST["dossier_autorisation_type_detaille"];
111          }          }
112          // Ajout de filtre sur la requête (dossier_autorisation_type_detaille)          // Ajout de filtre sur la requête (dossier_autorisation_type_detaille)
113          if(isset($datd) AND $datd != "") {          if(isset($datd) AND $datd != "") {
114              $sql_demande_type .= " AND dossier_autorisation_type_detaille = ".$datd;              $sql_demande_type .= " AND demande_type.dossier_autorisation_type_detaille = ".$datd;
115          } else {          } else {
116              $sql_demande_type .= " AND dossier_autorisation_type_detaille = ".$this->getVal("dossier_autorisation_type_detaille");              $datd = $this->getVal("dossier_autorisation_type_detaille");
117                if ($datd != "") {
118                    $sql_demande_type .= " AND demande_type.dossier_autorisation_type_detaille = ".$datd;
119                }
120          }          }
121    
122          $res = $db->query($sql_demande_type);          $res = $db->query($sql_demande_type);
# Line 166  class demande extends demande_gen { Line 131  class demande extends demande_gen {
131    
132          $k=1;          $k=1;
133          while($row =& $res->fetchRow()){          while($row =& $res->fetchRow()){
             $display = true;  
134    
135              // Vérification des contraintes              $contenu[0][$k] = $row[0];
136              if($row[2] != "") {              $contenu[1][$k] = $row[1];
137                  foreach(explode(";", $row[2]) as $meth) {              $k++;
                     if(method_exists($this, $row[2])) {  
                         // Si une des contrainte est validée on affiche pas l'option  
                         if($this->$row[2]() === true) {  
                             $display = false;  
                         }  
                    }  
                 }  
             }  
             // Affichage ou non de l'option  
             if($display) {  
                 $contenu[0][$k] = $row[0];  
                 $contenu[1][$k] = $row[1];  
                 $k++;  
             }  
138          }          }
139    
140          $form->setSelect("demande_type", $contenu);          $form->setSelect("demande_type", $contenu);
# Line 284  class demande extends demande_gen { Line 234  class demande extends demande_gen {
234      function ajoutDossierAutorisation($id, &$db, $val, $DEBUG){      function ajoutDossierAutorisation($id, &$db, $val, $DEBUG){
235          require_once '../obj/dossier_autorisation.class.php';          require_once '../obj/dossier_autorisation.class.php';
236          $dossier_autorisation = new dossier_autorisation("]",$db,$DEBUG);          $dossier_autorisation = new dossier_autorisation("]",$db,$DEBUG);
237          // Création du dossier          $id_etat_initial_da = $this->f->getParameter('etat_initial_dossier_autorisation');
238          foreach($dossier_autorisation->champs as $value) {          $error = false;
239              $valAuto[$value] = NULL;  
240          }          // Vérification de l'existance d'un état initial des DA dans la table om_parametre
241          $valAuto['dossier_autorisation']=NULL;          // afin d'éviter d'eventuelle erreur de base de données
242          $valAuto['exercice']=NULL;          if(isset($id_etat_initial_da)) {
243          $valAuto['insee']=NULL;              $sql = "SELECT count(*) FROM ".DB_PREFIXE."etat_dossier_autorisation
244          $valAuto['arrondissement']=NULL;                      WHERE etat_dossier_autorisation = ".$id_etat_initial_da;
245          $valAuto['etat_dossier_autorisation']=1;              $count = $this->db->getOne($sql);
246          $valAuto['erp_numero_batiment']=NULL;              $this->addToLog("ajoutDossierAutorisation() getOne() : ".$sql);
247          $valAuto['erp_ouvert']=NULL;              $this->f->isDatabaseError($count);
248          $valAuto['erp_arrete_decision']=NULL;              if($count != 1) {
249          $valAuto['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];                  $error = true;
250          $valAuto['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);              } else {
251          $valAuto['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];                  // La méthode ajouter prend en paramètre un tableau associatif
252          $valAuto['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];                  // contenant toutes les champs de la classe instanciée,
253          $valAuto['complement']=$this->valF['complement'];                  // d'où l'initialisation du tableau en bouclant sur la liste des champs du DA
254          $valAuto['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];                  foreach($dossier_autorisation->champs as $value) {
255          $valAuto['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];                      $valAuto[$value] = NULL;
256          $valAuto['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];                  }
257          $valAuto['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];                  // Définition des valeurs à insérer
258          $valAuto['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];                  $valAuto['dossier_autorisation']="";
259          $valAuto['terrain_superficie']=$this->valF['terrain_superficie'];                  $valAuto['exercice']=NULL;
260          $valAuto['numero_version']=-1;                  $valAuto['insee']=NULL;
261          // Ajout du dossier dans la base                  $valAuto['arrondissement']=NULL;
262          $dossier_autorisation->ajouter($valAuto, $db, $DEBUG);                  $valAuto['etat_dossier_autorisation']=$this->f->getParameter('etat_initial_dossier_autorisation');
263          // Liaison du dossier ajouter à la demande                  $valAuto['erp_numero_batiment']=NULL;
264          $this->valF['dossier_autorisation'] = $dossier_autorisation->valF['dossier_autorisation'];                  $valAuto['erp_ouvert']=NULL;
265                    $valAuto['erp_arrete_decision']=NULL;
266                    $valAuto['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];
267                    $valAuto['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);
268                    $valAuto['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
269                    $valAuto['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
270                    $valAuto['complement']=$this->valF['complement'];
271                    $valAuto['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
272                    $valAuto['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
273                    $valAuto['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
274                    $valAuto['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
275                    $valAuto['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
276                    $valAuto['terrain_superficie']=$this->valF['terrain_superficie'];
277                    $valAuto['numero_version']=-1;
278                    // Ajout du dossier dans la base
279                    $dossier_autorisation->ajouter($valAuto, $db, $DEBUG);
280                    // Liaison du dossier ajouter à la demande
281                    $this->valF['dossier_autorisation'] = $dossier_autorisation->valF['dossier_autorisation'];
282                }
283            } else {
284                $error = true;
285            }
286            // Affichage de l'erreur et stop de l'affichage
287            if( $error ) {
288                echo "</div>";
289                $class = "error";
290                $message = _("Erreur de parametrage. Contactez votre administrateur.");
291                $this->f->displayMessage($class, $message);
292                die();
293            }
294            
295      }      }
296    
297      function getCodeDemandeType($demande_type){      function getCodeDemandeType($demande_type){
# Line 349  class demande extends demande_gen { Line 329  class demande extends demande_gen {
329          // Définition des valeurs à entrée dans la table          // Définition des valeurs à entrée dans la table
330          $valInstr['dossier_instruction_type']=$dossier_instruction_type;          $valInstr['dossier_instruction_type']=$dossier_instruction_type;
331          $valInstr['date_depot']=$this->dateDBToForm($this->valF['date_demande']);          $valInstr['date_depot']=$this->dateDBToForm($this->valF['date_demande']);
332            $valInstr['date_dernier_depot']=$this->dateDBToForm($this->valF['date_demande']);
333          $valInstr['date_demande']=$this->dateDBToForm($this->valF['date_demande']);          $valInstr['date_demande']=$this->dateDBToForm($this->valF['date_demande']);
334          $valInstr['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);          $valInstr['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);
335          $valInstr['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];          $valInstr['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
# Line 598  class demande extends demande_gen { Line 579  class demande extends demande_gen {
579                  $valInstr['delai_notification']="1";                  $valInstr['delai_notification']="1";
580                  $valInstr['archive_delai']="0";                  $valInstr['archive_delai']="0";
581                  $valInstr['archive_date_complet']=NULL;                  $valInstr['archive_date_complet']=NULL;
582                    $valInstr['archive_date_dernier_depot']=NULL;
583                  $valInstr['archive_date_rejet']=NULL;                  $valInstr['archive_date_rejet']=NULL;
584                  $valInstr['archive_date_limite']=NULL;                  $valInstr['archive_date_limite']=NULL;
585                  $valInstr['archive_date_notification_delai']=NULL;                  $valInstr['archive_date_notification_delai']=NULL;
# Line 609  class demande extends demande_gen { Line 591  class demande extends demande_gen {
591                  $valInstr['archive_date_achevement']=NULL;                  $valInstr['archive_date_achevement']=NULL;
592                  $valInstr['archive_date_chantier']=NULL;                  $valInstr['archive_date_chantier']=NULL;
593                  $valInstr['archive_date_conformite']=NULL;                  $valInstr['archive_date_conformite']=NULL;
594                    $valInstr['archive_incompletude']=NULL;
595                    $valInstr['archive_evenement_suivant_tacite']="";
596                    $valInstr['archive_evenement_suivant_tacite_incompletude']=NULL;
597                    $valInstr['archive_etat_pendant_incompletude']=NULL;
598                    $valInstr['archive_date_limite_incompletude']=NULL;
599                    $valInstr['archive_delai_incompletude']=NULL;
600                  $valInstr['complement3']="";                  $valInstr['complement3']="";
601                  $valInstr['complement4']="";                  $valInstr['complement4']="";
602                  $valInstr['complement5']="";                  $valInstr['complement5']="";
# Line 873  class demande extends demande_gen { Line 861  class demande extends demande_gen {
861              }              }
862          }          }
863      }      }
864    
865      /**      /**
866       * Méthode permettant de récupérer les id des demandeur liés à la demande ou       * Méthode permettant de récupérer les id des demandeurs liés à la table
867       * liés au dossier d'autorisation       * liée passée en paramètre
868       **/       *
869         * @param string $from Table liée : "demande", "dossier", dossier_autorisation"
870         * @param string $id Identifiant (clé primaire de la table liée en question)
871         */
872      function listeDemandeur($from, $id) {      function listeDemandeur($from, $id) {
873          // Récupération des demandeurs de la base          // Récupération des demandeurs de la base
874          if(isset($this->valF['demande_type']) AND $this->getCodeDemandeType($this->valF['demande_type']) != "DT") {          $sql = "SELECT demandeur.demandeur,
875              $sql = "SELECT demandeur.demandeur,                          demandeur.type_demandeur,
876                              demandeur.type_demandeur,                          lien_".$from."_demandeur.petitionnaire_principal
877                              lien_".$from."_demandeur.petitionnaire_principal              FROM ".DB_PREFIXE."lien_".$from."_demandeur
878                  FROM ".DB_PREFIXE."lien_".$from."_demandeur              INNER JOIN ".DB_PREFIXE."demandeur
879                  INNER JOIN ".DB_PREFIXE."demandeur              ON demandeur.demandeur=lien_".$from."_demandeur.demandeur
880                  ON demandeur.demandeur=lien_".$from."_demandeur.demandeur              WHERE ".$from." = '".$id."'";
881                  WHERE ".$from." = '".$id."'";          $res = $this->f->db->query($sql);
882              $res = $this->f->db->query($sql);          $this->f->addToLog("listeDemandeur(): db->query(\"".$sql."\")", VERBOSE_MODE);
883              $this->f->addToLog("listeDemandeur() : ".$sql);          $this->f->isDatabaseError($res);
884              $this->f->isDatabaseError($res);          // Stockage du résultat dans un tableau
885              // Stoquage du résultat dans un tableau          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
886              while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){              if ($row['petitionnaire_principal'] == 't' AND
887                  if ($row['petitionnaire_principal'] == 't' AND                  $row['type_demandeur']=="petitionnaire") {
888                      $row['type_demandeur']=="petitionnaire") {                  $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
889                      $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];              } elseif ($row['petitionnaire_principal'] == 'f' AND
890                  } elseif ($row['petitionnaire_principal'] == 'f' AND                  $row['type_demandeur']=="petitionnaire"){
891                      $row['type_demandeur']=="petitionnaire"){                  $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
892                      $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];              } elseif ($row['type_demandeur']=="delegataire"){
893                  } elseif ($row['type_demandeur']=="delegataire"){                  $this->valIdDemandeur['delegataire']=$row['demandeur'];
                     $this->valIdDemandeur['delegataire']=$row['demandeur'];  
                 }  
894              }              }
895          }          }
896      }      }
# Line 949  class demande extends demande_gen { Line 939  class demande extends demande_gen {
939    
940    
941      /**      /**
942       * Ajout de la liste des demandeurs       * Cette méthode permet d'afficher des informations spécifiques dans le
943         * formulaire de l'objet
944         *
945         * @param integer $maj Mode de mise à jour
946       */       */
947      function formSpecificContent($maj) {      function formSpecificContent($maj) {
948          if(!$this->correct AND $maj != 0) {  
949            /**
950             * Gestion du bloc des demandeurs
951             */
952            // Si le mode est (modification ou suppression ou consultation) ET que
953            // le formulaire n'est pas correct (c'est-à-dire que le formulaire est
954            // actif)
955            if (!$this->correct AND $maj != 0) {
956                // Alors on récupère les demandeurs dans la table lien pour
957                // affectation des résultats dans this->valIdDemandeur
958              $this->listeDemandeur("demande", $this->val[array_search('demande', $this->champs)]);              $this->listeDemandeur("demande", $this->val[array_search('demande', $this->champs)]);
959          }          }
960          // Si le paramètre idx_dossier est défini on récupère les demandeurs liés au dossier d'instruction  
961          if($this->getParameter("idx_dossier") != "") {          // Si le mode est (ajout ou modification) ET que le formulaire n'est pas
962              $this->listeDemandeur("dossier", $this->getParameter("idx_dossier"));          // correct (c'est-à-dire que le formulaire est actif)
963          }          if ($maj < 2 AND !$this->correct) {
964          if($maj < 2 AND !$this->correct) {              // Alors on positionne le marqueur linkable a true qui permet
965                // d'afficher ou non les actions de gestion des demandeurs
966              $linkable = true;              $linkable = true;
967          } else {          } else {
968                // Sinon on positionne le marqueur linkable a false qui permet
969                // d'afficher ou non les actions de gestion des demandeurs
970              $linkable = false;              $linkable = false;
971          }          }
972    
973            // Affichage des demandeurs et des actions
974          // Conteneur de la listes des demandeurs          // Conteneur de la listes des demandeurs
975          echo "<div id=\"liste_demandeur\" class=\"demande_hidden_bloc col_12\">";          echo "<div id=\"liste_demandeur\" class=\"demande_hidden_bloc col_12\">";
976          echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";          echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
# Line 975  class demande extends demande_gen { Line 981  class demande extends demande_gen {
981          require_once "../obj/delegataire.class.php";          require_once "../obj/delegataire.class.php";
982          // Affichage du bloc pétitionnaire principal / délégataire          // Affichage du bloc pétitionnaire principal / délégataire
983          // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS          // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
984          echo "<div id=\"petitionnaire_principal_delegataire col_12\">";          echo "<div id=\"petitionnaire_principal_delegataire\">";
985          // Affichage de la synthèse          // Affichage de la synthèse
986          if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND          if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
987              !empty($this->valIdDemandeur["petitionnaire_principal"])) {              !empty($this->valIdDemandeur["petitionnaire_principal"])) {
# Line 1030  class demande extends demande_gen { Line 1036  class demande extends demande_gen {
1036          echo "</div>";          echo "</div>";
1037          // Bloc des pétitionnaires secondaires          // Bloc des pétitionnaires secondaires
1038          // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS          // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1039          echo "<div id=\"listePetitionnaires col_12\">";          echo "<div id=\"listePetitionnaires\">";
1040    
1041           // Affichage de la synthèse           // Affichage de la synthèse
1042          if (isset ($this->valIdDemandeur["petitionnaire"]) AND          if (isset ($this->valIdDemandeur["petitionnaire"]) AND

Legend:
Removed from v.1442  
changed lines
  Added in v.1723

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26