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

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

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

revision 3087 by vpihour, Fri Jul 4 13:27:55 2014 UTC revision 3317 by vpihour, Mon Feb 23 12:10:46 2015 UTC
# Line 383  class dossier extends dossier_gen { Line 383  class dossier extends dossier_gen {
383                  $this->f->addToError("", $numeroVersionDossierInstructionType, $numeroVersionDossierInstructionType);                  $this->f->addToError("", $numeroVersionDossierInstructionType, $numeroVersionDossierInstructionType);
384                  return false;                  return false;
385              }              }
386                
387                // Requête SQL
388                $sql = "SELECT
389                            substring(dossier, '.{2}$')::int as last_num_dossier
390                        FROM ".DB_PREFIXE."dossier
391                        WHERE dossier_instruction_type = ".$dossier_instruction_type."
392                        AND dossier_autorisation = '".$dossier_autorisation."'
393                        AND version = (
394                            SELECT max(version)
395                            FROM ".DB_PREFIXE."dossier
396                            WHERE dossier_instruction_type = ".$dossier_instruction_type."
397                            AND dossier_autorisation = '".$dossier_autorisation."'
398                            GROUP BY dossier_instruction_type, dossier_autorisation
399                        )";
400                $res = $this->db->query($sql);
401                $this->f->addToLog(__METHOD__."(): db->query(\"".$sql."\")", VERBOSE_MODE);
402                $this->f->isDatabaseError($res);
403                $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);
404    
405                $num_version_last_dossier = $row['last_num_dossier'];
406    
407                if (!empty($num_version_last_dossier)
408                    && $num_version_last_dossier >= $numeroVersionDossierInstructionType) {
409                    // Modifie le numéro suivant
410                    $numeroVersionDossierInstructionType = $num_version_last_dossier;
411                }
412              //              //
413              if ($increment === true) {              if ($increment === true) {
414                  $numeroVersionDossierInstructionType = ++$numeroVersionDossierInstructionType;                  $numeroVersionDossierInstructionType = ++$numeroVersionDossierInstructionType;
# Line 651  class dossier extends dossier_gen { Line 676  class dossier extends dossier_gen {
676                  $form->setType('numero_versement_archive', 'static');                  $form->setType('numero_versement_archive', 'static');
677                  $form->setType('enjeu_urba', 'checkboxstatic');                  $form->setType('enjeu_urba', 'checkboxstatic');
678                  $form->setType('enjeu_erp', 'checkboxstatic');                  $form->setType('enjeu_erp', 'checkboxstatic');
                 $form->setType('terrain_references_cadastrales','referencescadastralesstatic');  
                 $form->setType('terrain_adresse_voie_numero','static');  
                 $form->setType('terrain_adresse_voie','static');  
                 $form->setType('terrain_adresse_lieu_dit','static');  
                 $form->setType('terrain_adresse_localite','static');  
                 $form->setType('terrain_adresse_code_postal','static');  
                 $form->setType('terrain_adresse_bp','static');  
                 $form->setType('terrain_adresse_cedex','static');  
                 $form->setType('terrain_superficie','static');  
679              }              }
680          }          }
681    
# Line 674  class dossier extends dossier_gen { Line 690  class dossier extends dossier_gen {
690          if ($maj == 0) {          if ($maj == 0) {
691              $form->setType('dossier_autorisation', 'select');              $form->setType('dossier_autorisation', 'select');
692          }          }
         // On cache enjeu_ERP si l'option n'est pas activée  
         if($this->f->getParameter('option_erp') != 'true') {  
             $form->setType('erp', 'hidden');  
             $form->setType('enjeu_erp', 'hidden');  
         }  
693    
694          // En mode modifier, supprimer et consulter          // En mode modifier, supprimer et consulter
695          if ($maj != 0) {          if ($maj != 0) {
# Line 693  class dossier extends dossier_gen { Line 704  class dossier extends dossier_gen {
704          $form->setType('date_chantier', 'hiddendate');          $form->setType('date_chantier', 'hiddendate');
705          $form->setType('date_achevement', 'hiddendate');          $form->setType('date_achevement', 'hiddendate');
706          $form->setType('date_conformite', 'hiddendate');          $form->setType('date_conformite', 'hiddendate');
707            
708            // On cache les champs geom si aucun SIG n'est configuré
709            if($this->f->getParameter('option_sig') == ''
710                || $this->f->getParameter('option_sig') == 'aucun'){
711                $form->setType('geom', 'hidden');
712                $form->setType('geom1', 'hidden');
713            }
714      }      }
715    
716      function setVal(&$form,$maj,$validation){      function setVal(&$form,$maj,$validation){
# Line 733  class dossier extends dossier_gen { Line 751  class dossier extends dossier_gen {
751      }      }
752    
753      function setSelect(&$form, $maj,&$db,$debug) {      function setSelect(&$form, $maj,&$db,$debug) {
754          parent::setSelect($form, $maj, $db, $debug);          // XXX Commenté pour patcher le problème de montée en charge de la base
755            // de données en cas de reprise de données d'un gros volume de dossier
756            // d'instruction
757            //parent::setSelect($form, $maj, $db, $debug);
758    
759          //optimisation sur table importante parcelle -> pas d appel methode parent          //optimisation sur table importante parcelle -> pas d appel methode parent
760          if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))          if(file_exists ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php"))
761                  include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");                  include ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php");
762    
763          /*          /*
764           *  Pour chaque init_select d'un select non modifiable on teste           *  Pour chaque init_select d'un select non modifiable on teste
# Line 747  class dossier extends dossier_gen { Line 768  class dossier extends dossier_gen {
768    
769          // instructeur          // instructeur
770          $this->init_select($form, $db, $maj, $debug, "instructeur",          $this->init_select($form, $db, $maj, $debug, "instructeur",
771                                 $sql_instructeur, $sql_instructeur_by_id, false);                                 $sql_instructeur, $sql_instructeur_by_id, true);
772    
773          // etat          // etat
774          if ($maj == 1) {          if ($maj == 1) {
# Line 861  class dossier extends dossier_gen { Line 882  class dossier extends dossier_gen {
882          if($this->f->getParameter('option_afficher_division')==='true') {          if($this->f->getParameter('option_afficher_division')==='true') {
883              // instructeur              // instructeur
884              $this->init_select($form, $db, $maj, $debug, "instructeur",              $this->init_select($form, $db, $maj, $debug, "instructeur",
885              $sql_instructeur_div, $sql_instructeur_div_by_id, false);              $sql_instructeur_div, $sql_instructeur_div_by_id, true);
886          }          }
887      }      }
888    
# Line 1045  class dossier extends dossier_gen { Line 1066  class dossier extends dossier_gen {
1066          }          }
1067                    
1068                    
1069          if ($this->f->getParameter('option_erp') != "") {          if ($this->f->getParameter('option_erp') === 'true') {
1070              // envoi du message a ERP en cas d'un depot du dossier dat              // envoi du message a ERP en cas d'un depot du dossier dat
1071              if ($this->f->getDATDCode($this->valF['dossier']) ==              if ($this->f->getDATDCode($this->valF['dossier']) ==
1072                      $this->f->getParameter('erp_depot_dossier_dat')) {                      $this->f->getParameter('erp_depot_dossier_dat')) {
# Line 1144  class dossier extends dossier_gen { Line 1165  class dossier extends dossier_gen {
1165                      }                      }
1166                  }                  }
1167              }              }
1168          } // fin de if ($this->f->getParameter('option_erp') != "")            } // fin de if ($this->f->getParameter('option_erp') === 'true')
1169            
1170            //On ajoute les données techniques
1171            if($this->ajoutDonneesTechniquesDI($id, $db, $val, $DEBUG) === false){
1172                //
1173                $this -> addToMessage(
1174                    _("Erreur lors de l'enregistrement du dossier.")." ".
1175                    _("Contactez votre  administrateur.")
1176                );
1177                $this->correct = false;
1178                return false;
1179            }
1180            
1181          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1182          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1183          $da = new dossier_autorisation($this->valF["dossier_autorisation"], $this->db, DEBUG);          $da = new dossier_autorisation($this->valF["dossier_autorisation"], $this->db, DEBUG);
# Line 1421  class dossier extends dossier_gen { Line 1453  class dossier extends dossier_gen {
1453          }          }
1454                                    
1455          // verification si envoi vers ERP est active          // verification si envoi vers ERP est active
1456          if ($this->f->getParameter('option_erp') != "") {          if ($this->f->getParameter('option_erp') === 'true') {
1457              if ($this->val[array_search('a_qualifier', $this->champs)] == 't'              if ($this->val[array_search('a_qualifier', $this->champs)] == 't'
1458                  && $this->valF['a_qualifier'] === false) {                  && $this->valF['a_qualifier'] === false) {
1459                                                                    
# Line 1502  class dossier extends dossier_gen { Line 1534  class dossier extends dossier_gen {
1534                      }                      }
1535                  }                  }
1536              }              }
1537          } // fin de if($this->f->getParameter('option_erp'))            } // fin de if($this->f->getParameter('option_erp') === 'true')  
1538    
1539          // Ajout ou modification des demandeurs          // Ajout ou modification des demandeurs
1540          $this->insertLinkDemandeDemandeur($db, $DEBUG);          $this->insertLinkDemandeDemandeur($db, $DEBUG);
# Line 1785  class dossier extends dossier_gen { Line 1817  class dossier extends dossier_gen {
1817       **/       **/
1818      function getPostedValues() {      function getPostedValues() {
1819          // Récupération des demandeurs dans POST          // Récupération des demandeurs dans POST
1820          if (isset($_POST['petitionnaire_principal']) OR          if ($this->f->get_submitted_post_value('petitionnaire_principal') !== null OR
1821                  isset($_POST['delegataire']) OR                  $this->f->get_submitted_post_value('delegataire') !== null OR
1822                      isset($_POST['petitionnaire'])) {                      $this->f->get_submitted_post_value('petitionnaire') !== null) {
1823              if( isset($_POST['petitionnaire_principal']) AND              if($this->f->get_submitted_post_value('petitionnaire_principal') !== null AND
1824                      !empty($_POST['petitionnaire_principal'])) {                      $this->f->get_submitted_post_value('petitionnaire_principal') != '') {
1825                  $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];                  $this->postedIdDemandeur['petitionnaire_principal'] = $this->f->get_submitted_post_value('petitionnaire_principal');
1826              }              }
1827              if( isset($_POST['delegataire']) AND              if($this->f->get_submitted_post_value('delegataire') !== null AND
1828                      !empty($_POST['delegataire'])) {                      $this->f->get_submitted_post_value('delegataire') != '') {
1829                  $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];                  $this->postedIdDemandeur['delegataire'] = $this->f->get_submitted_post_value('delegataire');
1830              }              }
1831              if( isset($_POST['petitionnaire']) AND              if($this->f->get_submitted_post_value('petitionnaire') !== null AND
1832                      !empty($_POST['petitionnaire'])) {                      $this->f->get_submitted_post_value('petitionnaire') != '') {
1833                  $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];                  $this->postedIdDemandeur['petitionnaire'] = $this->f->get_submitted_post_value('petitionnaire');
1834              }              }
1835          }          }
1836      }      }
# Line 2075  class dossier extends dossier_gen { Line 2107  class dossier extends dossier_gen {
2107           */           */
2108          $this->listeDemandeur("dossier", $this->getVal('dossier'));          $this->listeDemandeur("dossier", $this->getVal('dossier'));
2109    
2110          if($maj < 2 AND !$this->correct AND !$this->f->isUserQualificateur()) {          if($maj < 2 AND !$this->correct) {
2111              $linkable = true;              $linkable = true;
2112          } else {          } else {
2113              $linkable = false;              $linkable = false;
# Line 2267  class dossier extends dossier_gen { Line 2299  class dossier extends dossier_gen {
2299                  echo "tab.php?";                  echo "tab.php?";
2300              }              }
2301              // Permet de retourner sur la bonne page              // Permet de retourner sur la bonne page
2302              if (isset($_GET['retourformulaire']) && $_GET['retourformulaire'] != '') {              if ($this->f->get_submitted_get_value('retourformulaire') !== null && $this->f->get_submitted_get_value('retourformulaire') != '') {
2303                  echo "obj=".$_GET['retourformulaire'];                  echo "obj=".$this->f->get_submitted_get_value('retourformulaire');
2304              } else {              } else {
2305                  echo "obj=".get_class($this);                  echo "obj=".get_class($this);
2306              }              }
2307              if (isset($_GET['retourformulaire2']) && $_GET['retourformulaire2'] != '') {              if ($this->f->get_submitted_get_value('retourformulaire2') !== null && $this->f->get_submitted_get_value('retourformulaire2') != '') {
2308                  echo "&retourformulaire=".$_GET['retourformulaire2'];                  echo "&retourformulaire=".$this->f->get_submitted_get_value('retourformulaire2');
2309              }              }
2310              if($this->getParameter("retour")=="form") {              if($this->getParameter("retour")=="form") {
2311                  echo "&amp;idx=".$this->getParameter("idx");                  echo "&amp;idx=".$this->getParameter("idx");
# Line 2523  class dossier extends dossier_gen { Line 2555  class dossier extends dossier_gen {
2555          return $quartier;          return $quartier;
2556      }      }
2557            
2558        /**
2559         * Méthode permettant d'ajouter les données techniques d'un DI.
2560         *
2561         * @param integer  $id    identifiant de la demande
2562         * @param database &$db   handler de la base de donnée
2563         * @param array    $val   tableau de valeurs postées via le formulaire
2564         * @param boolean  $DEBUG debug
2565         *
2566         * @return boolean false si erreur
2567         */
2568        function ajoutDonneesTechniquesDI($id, &$db, $val, $DEBUG) {
2569    
2570            //On vérifie que le dossier d'autorisation a des données techniques
2571            $sql = "SELECT * "
2572                ."FROM ".DB_PREFIXE."donnees_techniques "
2573                ."WHERE dossier_autorisation = '".$this->valF["dossier_autorisation"]."'";
2574            $dtda = $this->db->query($sql);
2575            $this->addToLog(__METHOD__."(): db->query(\"".$sql."\")", VERBOSE_MODE);
2576            if($this->f->isDatabaseError($dtda, true)){
2577                $this->f->addToLog(__METHOD__."() : ERROR - Erreur de base de données. Impossible d'ajouter les données techniques du dossier d'instruction.", DEBUG_MODE);
2578                return false;
2579            }
2580            
2581            //Si le dossier d'autorisation a des données techniques
2582            if ( $dtda->numrows() == 1 ){
2583                //
2584                require_once '../obj/donnees_techniques.class.php';
2585                $dtdi = new donnees_techniques(']', $db, $DEBUG);
2586                //Préparation des données
2587                $valF = $dtda->fetchRow(DB_FETCHMODE_ASSOC);
2588                //Suppression de l'identifiant
2589                $valF["donnees_techniques"] = null;
2590                // Ajout du numéro de dossier d'instruction
2591                $valF['dossier_instruction'] = $this->valF['dossier'];
2592                // Suppression du numéro de dossier d'autorisation
2593                $valF['dossier_autorisation'] = null;
2594                // Ajout des données techniques
2595                if($dtdi->ajouter($valF, $db, $DEBUG) === false) {
2596                    $this->f->addToLog(__METHOD__."() : ERROR - Impossible d'ajouter les données techniques du dossier d'instruction.", DEBUG_MODE);
2597                    return false;
2598                }
2599            }
2600            else {
2601                //Le dossier d'autorisation n'a pas de données techniques
2602                $this->f->addToLog(__METHOD__."() : ERROR - le DA n'a pas de données techniques.", DEBUG_MODE);
2603                return -1;
2604            }
2605    
2606            //
2607            return true;
2608        }
2609        
2610  }// fin classe  }// fin classe
2611  ?>  ?>

Legend:
Removed from v.3087  
changed lines
  Added in v.3317

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26