/[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 3310 by softime, Fri Feb 20 10:16:59 2015 UTC
# Line 387  class dossier extends dossier_gen { Line 387  class dossier extends dossier_gen {
387              //              //
388              if ($increment === true) {              if ($increment === true) {
389                  $numeroVersionDossierInstructionType = ++$numeroVersionDossierInstructionType;                  $numeroVersionDossierInstructionType = ++$numeroVersionDossierInstructionType;
390    
391                    // Reqûête SQL
392                    $sql = "SELECT
393                                MAX(version),
394                                substring(dossier, '.{2}$')::int as last_num_dossier
395                            FROM ".DB_PREFIXE."dossier
396                            WHERE dossier_instruction_type = ".$dossier_instruction_type."
397                            AND dossier_autorisation = '".$dossier_autorisation."'
398                            GROUP BY dossier";
399                    $res = $this->db->query($sql);
400                    $this->f->addToLog(__METHOD__."(): db->query(\"".$sql."\")", VERBOSE_MODE);
401                    $this->f->isDatabaseError($res);
402                    $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);
403                    $num_version_last_dossier = $row['last_num_dossier'];
404    
405                    // S'il y a un résultat et que le numéro du dernier dossier du même
406                    // type est supérieur ou égal numéro suivant
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    
414              //On compléte par des 0 à gauche              //On compléte par des 0 à gauche
415              $numeroVersionDossierInstructionType = str_pad($numeroVersionDossierInstructionType, 2, "0", STR_PAD_LEFT);              $numeroVersionDossierInstructionType = str_pad($numeroVersionDossierInstructionType, 2, "0", STR_PAD_LEFT);
416                            
# Line 651  class dossier extends dossier_gen { Line 674  class dossier extends dossier_gen {
674                  $form->setType('numero_versement_archive', 'static');                  $form->setType('numero_versement_archive', 'static');
675                  $form->setType('enjeu_urba', 'checkboxstatic');                  $form->setType('enjeu_urba', 'checkboxstatic');
676                  $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');  
677              }              }
678          }          }
679    
# Line 674  class dossier extends dossier_gen { Line 688  class dossier extends dossier_gen {
688          if ($maj == 0) {          if ($maj == 0) {
689              $form->setType('dossier_autorisation', 'select');              $form->setType('dossier_autorisation', 'select');
690          }          }
         // 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');  
         }  
691    
692          // En mode modifier, supprimer et consulter          // En mode modifier, supprimer et consulter
693          if ($maj != 0) {          if ($maj != 0) {
# Line 693  class dossier extends dossier_gen { Line 702  class dossier extends dossier_gen {
702          $form->setType('date_chantier', 'hiddendate');          $form->setType('date_chantier', 'hiddendate');
703          $form->setType('date_achevement', 'hiddendate');          $form->setType('date_achevement', 'hiddendate');
704          $form->setType('date_conformite', 'hiddendate');          $form->setType('date_conformite', 'hiddendate');
705            
706            // On cache les champs geom si aucun SIG n'est configuré
707            if($this->f->getParameter('option_sig') == ''
708                || $this->f->getParameter('option_sig') == 'aucun'){
709                $form->setType('geom', 'hidden');
710                $form->setType('geom1', 'hidden');
711            }
712      }      }
713    
714      function setVal(&$form,$maj,$validation){      function setVal(&$form,$maj,$validation){
# Line 733  class dossier extends dossier_gen { Line 749  class dossier extends dossier_gen {
749      }      }
750    
751      function setSelect(&$form, $maj,&$db,$debug) {      function setSelect(&$form, $maj,&$db,$debug) {
752          parent::setSelect($form, $maj, $db, $debug);          // XXX Commenté pour patcher le problème de montée en charge de la base
753            // de données en cas de reprise de données d'un gros volume de dossier
754            // d'instruction
755            //parent::setSelect($form, $maj, $db, $debug);
756    
757          //optimisation sur table importante parcelle -> pas d appel methode parent          //optimisation sur table importante parcelle -> pas d appel methode parent
758          if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))          if(file_exists ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php"))
759                  include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");                  include ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php");
760    
761          /*          /*
762           *  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 766  class dossier extends dossier_gen {
766    
767          // instructeur          // instructeur
768          $this->init_select($form, $db, $maj, $debug, "instructeur",          $this->init_select($form, $db, $maj, $debug, "instructeur",
769                                 $sql_instructeur, $sql_instructeur_by_id, false);                                 $sql_instructeur, $sql_instructeur_by_id, true);
770    
771          // etat          // etat
772          if ($maj == 1) {          if ($maj == 1) {
# Line 861  class dossier extends dossier_gen { Line 880  class dossier extends dossier_gen {
880          if($this->f->getParameter('option_afficher_division')==='true') {          if($this->f->getParameter('option_afficher_division')==='true') {
881              // instructeur              // instructeur
882              $this->init_select($form, $db, $maj, $debug, "instructeur",              $this->init_select($form, $db, $maj, $debug, "instructeur",
883              $sql_instructeur_div, $sql_instructeur_div_by_id, false);              $sql_instructeur_div, $sql_instructeur_div_by_id, true);
884          }          }
885      }      }
886    
# Line 1045  class dossier extends dossier_gen { Line 1064  class dossier extends dossier_gen {
1064          }          }
1065                    
1066                    
1067          if ($this->f->getParameter('option_erp') != "") {          if ($this->f->getParameter('option_erp') === 'true') {
1068              // 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
1069              if ($this->f->getDATDCode($this->valF['dossier']) ==              if ($this->f->getDATDCode($this->valF['dossier']) ==
1070                      $this->f->getParameter('erp_depot_dossier_dat')) {                      $this->f->getParameter('erp_depot_dossier_dat')) {
# Line 1144  class dossier extends dossier_gen { Line 1163  class dossier extends dossier_gen {
1163                      }                      }
1164                  }                  }
1165              }              }
1166          } // fin de if ($this->f->getParameter('option_erp') != "")            } // fin de if ($this->f->getParameter('option_erp') === 'true')
1167            
1168            //On ajoute les données techniques
1169            if($this->ajoutDonneesTechniquesDI($id, $db, $val, $DEBUG) === false){
1170                //
1171                $this -> addToMessage(
1172                    _("Erreur lors de l'enregistrement du dossier.")." ".
1173                    _("Contactez votre  administrateur.")
1174                );
1175                $this->correct = false;
1176                return false;
1177            }
1178            
1179          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1180          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1181          $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 1451  class dossier extends dossier_gen {
1451          }          }
1452                                    
1453          // verification si envoi vers ERP est active          // verification si envoi vers ERP est active
1454          if ($this->f->getParameter('option_erp') != "") {          if ($this->f->getParameter('option_erp') === 'true') {
1455              if ($this->val[array_search('a_qualifier', $this->champs)] == 't'              if ($this->val[array_search('a_qualifier', $this->champs)] == 't'
1456                  && $this->valF['a_qualifier'] === false) {                  && $this->valF['a_qualifier'] === false) {
1457                                                                    
# Line 1502  class dossier extends dossier_gen { Line 1532  class dossier extends dossier_gen {
1532                      }                      }
1533                  }                  }
1534              }              }
1535          } // fin de if($this->f->getParameter('option_erp'))            } // fin de if($this->f->getParameter('option_erp') === 'true')  
1536    
1537          // Ajout ou modification des demandeurs          // Ajout ou modification des demandeurs
1538          $this->insertLinkDemandeDemandeur($db, $DEBUG);          $this->insertLinkDemandeDemandeur($db, $DEBUG);
# Line 1785  class dossier extends dossier_gen { Line 1815  class dossier extends dossier_gen {
1815       **/       **/
1816      function getPostedValues() {      function getPostedValues() {
1817          // Récupération des demandeurs dans POST          // Récupération des demandeurs dans POST
1818          if (isset($_POST['petitionnaire_principal']) OR          if ($this->f->get_submitted_post_value('petitionnaire_principal') !== null OR
1819                  isset($_POST['delegataire']) OR                  $this->f->get_submitted_post_value('delegataire') !== null OR
1820                      isset($_POST['petitionnaire'])) {                      $this->f->get_submitted_post_value('petitionnaire') !== null) {
1821              if( isset($_POST['petitionnaire_principal']) AND              if($this->f->get_submitted_post_value('petitionnaire_principal') !== null AND
1822                      !empty($_POST['petitionnaire_principal'])) {                      $this->f->get_submitted_post_value('petitionnaire_principal') != '') {
1823                  $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];                  $this->postedIdDemandeur['petitionnaire_principal'] = $this->f->get_submitted_post_value('petitionnaire_principal');
1824              }              }
1825              if( isset($_POST['delegataire']) AND              if($this->f->get_submitted_post_value('delegataire') !== null AND
1826                      !empty($_POST['delegataire'])) {                      $this->f->get_submitted_post_value('delegataire') != '') {
1827                  $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];                  $this->postedIdDemandeur['delegataire'] = $this->f->get_submitted_post_value('delegataire');
1828              }              }
1829              if( isset($_POST['petitionnaire']) AND              if($this->f->get_submitted_post_value('petitionnaire') !== null AND
1830                      !empty($_POST['petitionnaire'])) {                      $this->f->get_submitted_post_value('petitionnaire') != '') {
1831                  $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];                  $this->postedIdDemandeur['petitionnaire'] = $this->f->get_submitted_post_value('petitionnaire');
1832              }              }
1833          }          }
1834      }      }
# Line 2075  class dossier extends dossier_gen { Line 2105  class dossier extends dossier_gen {
2105           */           */
2106          $this->listeDemandeur("dossier", $this->getVal('dossier'));          $this->listeDemandeur("dossier", $this->getVal('dossier'));
2107    
2108          if($maj < 2 AND !$this->correct AND !$this->f->isUserQualificateur()) {          if($maj < 2 AND !$this->correct) {
2109              $linkable = true;              $linkable = true;
2110          } else {          } else {
2111              $linkable = false;              $linkable = false;
# Line 2267  class dossier extends dossier_gen { Line 2297  class dossier extends dossier_gen {
2297                  echo "tab.php?";                  echo "tab.php?";
2298              }              }
2299              // Permet de retourner sur la bonne page              // Permet de retourner sur la bonne page
2300              if (isset($_GET['retourformulaire']) && $_GET['retourformulaire'] != '') {              if ($this->f->get_submitted_get_value('retourformulaire') !== null && $this->f->get_submitted_get_value('retourformulaire') != '') {
2301                  echo "obj=".$_GET['retourformulaire'];                  echo "obj=".$this->f->get_submitted_get_value('retourformulaire');
2302              } else {              } else {
2303                  echo "obj=".get_class($this);                  echo "obj=".get_class($this);
2304              }              }
2305              if (isset($_GET['retourformulaire2']) && $_GET['retourformulaire2'] != '') {              if ($this->f->get_submitted_get_value('retourformulaire2') !== null && $this->f->get_submitted_get_value('retourformulaire2') != '') {
2306                  echo "&retourformulaire=".$_GET['retourformulaire2'];                  echo "&retourformulaire=".$this->f->get_submitted_get_value('retourformulaire2');
2307              }              }
2308              if($this->getParameter("retour")=="form") {              if($this->getParameter("retour")=="form") {
2309                  echo "&amp;idx=".$this->getParameter("idx");                  echo "&amp;idx=".$this->getParameter("idx");
# Line 2523  class dossier extends dossier_gen { Line 2553  class dossier extends dossier_gen {
2553          return $quartier;          return $quartier;
2554      }      }
2555            
2556        /**
2557         * Méthode permettant d'ajouter les données techniques d'un DI.
2558         *
2559         * @param integer  $id    identifiant de la demande
2560         * @param database &$db   handler de la base de donnée
2561         * @param array    $val   tableau de valeurs postées via le formulaire
2562         * @param boolean  $DEBUG debug
2563         *
2564         * @return boolean false si erreur
2565         */
2566        function ajoutDonneesTechniquesDI($id, &$db, $val, $DEBUG) {
2567    
2568            //On vérifie que le dossier d'autorisation a des données techniques
2569            $sql = "SELECT * "
2570                ."FROM ".DB_PREFIXE."donnees_techniques "
2571                ."WHERE dossier_autorisation = '".$this->valF["dossier_autorisation"]."'";
2572            $dtda = $this->db->query($sql);
2573            $this->addToLog(__METHOD__."(): db->query(\"".$sql."\")", VERBOSE_MODE);
2574            if($this->f->isDatabaseError($dtda, true)){
2575                $this->f->addToLog(__METHOD__."() : ERROR - Erreur de base de données. Impossible d'ajouter les données techniques du dossier d'instruction.", DEBUG_MODE);
2576                return false;
2577            }
2578            
2579            //Si le dossier d'autorisation a des données techniques
2580            if ( $dtda->numrows() == 1 ){
2581                //
2582                require_once '../obj/donnees_techniques.class.php';
2583                $dtdi = new donnees_techniques(']', $db, $DEBUG);
2584                //Préparation des données
2585                $valF = $dtda->fetchRow(DB_FETCHMODE_ASSOC);
2586                //Suppression de l'identifiant
2587                $valF["donnees_techniques"] = null;
2588                // Ajout du numéro de dossier d'instruction
2589                $valF['dossier_instruction'] = $this->valF['dossier'];
2590                // Suppression du numéro de dossier d'autorisation
2591                $valF['dossier_autorisation'] = null;
2592                // Ajout des données techniques
2593                if($dtdi->ajouter($valF, $db, $DEBUG) === false) {
2594                    $this->f->addToLog(__METHOD__."() : ERROR - Impossible d'ajouter les données techniques du dossier d'instruction.", DEBUG_MODE);
2595                    return false;
2596                }
2597            }
2598            else {
2599                //Le dossier d'autorisation n'a pas de données techniques
2600                $this->f->addToLog(__METHOD__."() : ERROR - le DA n'a pas de données techniques.", DEBUG_MODE);
2601                return -1;
2602            }
2603    
2604            //
2605            return true;
2606        }
2607        
2608  }// fin classe  }// fin classe
2609  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26