/[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 126 by fraynaud, Tue Sep 20 15:12:14 2011 UTC revision 134 by fraynaud, Thu Sep 22 10:41:33 2011 UTC
# Line 7  require_once ("../gen/obj/dossier.class. Line 7  require_once ("../gen/obj/dossier.class.
7  class dossier extends dossier_gen {  class dossier extends dossier_gen {
8    
9      var $maj;      var $maj;
10        var $sig;
11        var $servitude="";
12        var $auto_pos;
13        var $auto_servitude_surfacique;
14        
15        
16    
17      function setvalF($val){      function setvalF($val){
18          parent::setvalF($val);            parent::setvalF($val);  
# Line 844  class dossier extends dossier_gen { Line 850  class dossier extends dossier_gen {
850      * ===============================================================      * ===============================================================
851      */      */
852    
   
853      function triggerajouterapres($id,&$db,$val,$DEBUG) {      function triggerajouterapres($id,&$db,$val,$DEBUG) {
854          if (file_exists ("../dyn/var.inc"))          $this->sig_parametre($db);
             include ("../dyn/var.inc");  
         if(!isset($sig)) $sig=0;  
         if(!isset($auto_pos)) $auto_pos=0;  
         if(!isset($auto_servitude_surfacique)) $auto_servitude_surfacique=0;  
         $this->addToLog("trigger valeur sig :".$sig, VERBOSE_MODE);  
         $this->addToLog("trigger valeur auto_pos :".$auto_pos, VERBOSE_MODE);  
         $this->addToLog("trigger valeur auto_servitude_surfacique :".$auto_servitude_surfacique, VERBOSE_MODE);  
855          $id=$this->valF['dossier']; // id n est pas valorise en ajout          $id=$this->valF['dossier']; // id n est pas valorise en ajout
856          if($sig==1 ){          if($this->sig==1 ){
857              if($val['parcelle']!='')              if($val['parcelle']!='')
858                  $this->sig_interne($id,&$db,$val,$DEBUG,$auto_pos,$auto_servitude_surfacique);                  $this->sig_interne($id,&$db,$val,$DEBUG);
859              else              else
860                  $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");                      $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");    
861          }          }
862      }      }
863    
864      function triggermodifierapres($id,&$db,$val,$DEBUG) {      function triggermodifierapres($id,&$db,$val,$DEBUG) {
865          if (file_exists ("../dyn/var.inc"))          $this->sig_parametre($db);
                 include ("../dyn/var.inc");  
         if(!isset($sig)) $sig=0;  
         if(!isset($auto_pos)) $auto_pos=0;  
         if(!isset($auto_servitude_surfacique)) $auto_servitude_surfacique=0;  
         $this->addToLog("trigger valeur sig :".$sig, VERBOSE_MODE);  
         $this->addToLog("trigger valeur auto_pos :".$auto_pos, VERBOSE_MODE);  
         $this->addToLog("trigger valeur auto_servitude_surfacique :".$auto_servitude_surfacique, VERBOSE_MODE);  
866          // si la parcelle est changée          // si la parcelle est changée
867          if($sig==1 and $val['parcelle']!=$val['parcelle_archive']){          if($this->sig==1 and $val['parcelle']!=$val['parcelle_archive']){
868              if($val['parcelle']!='')              if($val['parcelle']!='')
869                  $this->sig_interne($this->valF['dossier'],&$db,$val,$DEBUG,$auto_pos,$auto_servitude_surfacique);                  $this->sig_interne($this->valF['dossier'],&$db,$val,$DEBUG);
870          }              else
871                    $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");    
872           }
873        }
874    
875        function sig_parametre(&$db){
876            if (file_exists ("../dyn/var.inc"))
877                include ("../dyn/var.inc");
878            if(!isset($sig))
879                $this->sig=0;
880            else
881                $this->sig=1;
882            if(!isset($auto_pos))
883                $this->auto_pos=0;
884            else
885                $this->auto_pos=$auto_pos;
886            if(!isset($auto_servitude_surfacique))
887                $this->auto_servitude_surfacique=0;
888            else
889                $this->auto_servitude_surfacique=$auto_servitude_surfacique;
890            if(!isset($auto_servitude_ligne))
891                $this->auto_servitude_ligne=0;
892            else
893                $this->auto_servitude_ligne=$auto_servitude_ligne;
894            if(!isset($auto_servitude_point))
895                $this->auto_servitude_point=0;
896            else
897                $this->auto_servitude_point=$auto_servitude_point;
898            $this->addToLog("trigger valeur sig :".$this->sig, VERBOSE_MODE);
899            $this->addToLog("trigger valeur auto_pos :". $this->auto_pos, VERBOSE_MODE);
900            $this->addToLog("trigger valeur auto_servitude_surfacique :".$this->auto_servitude_surfacique, VERBOSE_MODE);
901            $this->addToLog("trigger valeur auto_servitude_ligne :". $this->auto_servitude_ligne, VERBOSE_MODE);
902            $this->addToLog("trigger valeur auto_servitude_point :".$this->auto_servitude_point, VERBOSE_MODE);
903      }      }
904    
905      function sig_interne($id,&$db,$val,$DEBUG,$auto_pos,$auto_servitude_surfacique){  
906        function sig_interne($id,&$db,$val,$DEBUG){
907          // Strategy interne dans var.inc          // Strategy interne dans var.inc
908          // si la parcelle existe, il est cree un point au milieu de la parcelle          // si la parcelle existe, il est cree un point au milieu de la parcelle
909          // de maniere automatique          // de maniere automatique
# Line 887  class dossier extends dossier_gen { Line 911  class dossier extends dossier_gen {
911          $sql= "select astext(centroid(geom)) from parcelle where parcelle ='".$val["parcelle"]."'";          $sql= "select astext(centroid(geom)) from parcelle where parcelle ='".$val["parcelle"]."'";
912          $this->addToLog("recherche centroid parcelle :".$sql, VERBOSE_MODE);          $this->addToLog("recherche centroid parcelle :".$sql, VERBOSE_MODE);
913          $geom = $db -> getOne($sql);          $geom = $db -> getOne($sql);
914          if($geom!=''){ // la parcelle est exitante dans la table / vue parcelle          if($geom!=''){ // la parcelle est exitante dans la table ou vue parcelle
915              $sql ="update dossier set geom =geometryfromtext('".$geom."', ".$projection." ) where dossier ='".$id."'";              $sql ="update dossier set geom =geometryfromtext('".$geom."', ".$projection." ) where dossier ='".$id."'";
916              $this->addToLog("sig_interne maj geom  :".$sql, VERBOSE_MODE);                  $this->addToLog("sig_interne maj geom  :".$sql, VERBOSE_MODE);    
917              $res = $db -> query($sql);              $res = $db -> query($sql);
918              if (database :: isError($res)){              if (database :: isError($res)){
919                  die($res->getMessage()."erreur ".$sql);                  die($res->getMessage()."erreur ".$sql);
920              }else{              }else{
921                  $this->addToMessage("<br>"._("centroid de parcelle calculé")." ".$val["parcelle"].                  $this->addToMessage(""._("centroid de parcelle calculé")." ".$val["parcelle"]." ");
                     " "._("dossier")." ".$id."<br>");  
922              }              }
923              if($auto_pos==1) // recherche du pos              if($this->auto_pos==1) // recherche du pos
924                  $this->auto_pos($id,$db,$geom,$projection);                  $this->calcul_auto_pos($id,$db,$geom,$projection);
925              if($auto_servitude_surfacique==1) // recherche de servitude surfacique              if($this->auto_servitude_surfacique==1) // recherche de servitude surfacique
926                  $this->auto_servitude_surfacique($id,$db,$geom,$projection);                  $this->calcul_auto_servitude_surfacique($id,$db,$geom,$projection);
927                if($this->auto_servitude_ligne==1) // recherche de servitude ligne
928                    $this->calcul_auto_servitude_ligne($id,$db,$geom,$projection);
929                if($this->auto_servitude_point==1) // recherche de servitude point
930                    $this->calcul_auto_servitude_point($id,$db,$geom,$projection);
931                $temp=strtr($this->servitude,"'"," "); // enleve le '
932                $sql1 ="update dossier set servitude = '".$temp."' where dossier = '".$id."'";
933                $res1 = $db -> query($sql1);
934                $this->addToLog("maj servitudes :".$sql1, VERBOSE_MODE);
935                if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);
936          }else{ // parcelle inexistante          }else{ // parcelle inexistante
937              if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante              if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante
938                  $sql ="update dossier set geom = null where dossier ='".$id."'";                  $sql ="update dossier set geom = null where dossier ='".$id."'";
# Line 909  class dossier extends dossier_gen { Line 941  class dossier extends dossier_gen {
941                  if (database :: isError($res))                  if (database :: isError($res))
942                      die($res->getMessage()."erreur ".$sql);                      die($res->getMessage()."erreur ".$sql);
943              }              }
944              $this->addToMessage("<br> parcelle ".$val["parcelle"]." "._("inexistante")." ".$id."<br>");              $this->addToMessage("<br> parcelle ".$val["parcelle"]." "._("inexistante")." ".$id."");
945          }          }
946      }      }
947    
948      function auto_pos($id,&$db,$geom,$projection){      function calcul_auto_pos($id,&$db,$geom,$projection){
949          // recherche du pos automatique dans le geom de la table / vue pos          // recherche du pos automatique
950          $sql="select pos from pos  WHERE ST_contains(geom,  geometryfromtext('".$geom."', ".$projection."))";          $sql="select pos from pos  WHERE ST_contains(geom,  geometryfromtext('".$geom."', ".$projection."))";
951          $pos = $db -> getOne($sql);          $pos = $db -> getOne($sql);
952          $this->addToLog("recherche auto_pos :".$sql, VERBOSE_MODE);          $this->addToLog("recherche auto_pos :".$sql, VERBOSE_MODE);
# Line 923  class dossier extends dossier_gen { Line 955  class dossier extends dossier_gen {
955              $res1 = $db -> query($sql1);              $res1 = $db -> query($sql1);
956              $this->addToLog("maj auto_pos :".$sql1, VERBOSE_MODE);              $this->addToLog("maj auto_pos :".$sql1, VERBOSE_MODE);
957              if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);              if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);
958              $this->addToMessage("<br>"._("POS/PLU renseignee automatiquement")." ".$id." -> ".$pos."<br>");              $this->addToMessage("<br>"._("POS/PLU")." : ".$pos."");
959          }else{          }else{
960              $this->addToMessage("<br>"._("POS/PLU non trouvé")." ".$id."<br>");              $this->addToMessage("<br>"._("POS/PLU non trouvé")." ".$id."");
961          }          }
962      }      }
963    
964      function auto_servitude_surfacique($id,&$db,$geom,$projection){      function calcul_auto_servitude_surfacique($id,&$db,$geom,$projection){
965          // recherche du pos automatique dans le geom de la table / vue pos          // recherche servitude surfacique
966          $sql="select * from servitude_surfacique WHERE ST_contains(geom,  geometryfromtext('".$geom."', ".$projection."))";          $sql="select * from servitude_surfacique WHERE ST_contains(geom,  geometryfromtext('".$geom."', ".$projection."))";
967          $res=$db->query($sql);          $res=$db->query($sql);
         $temp="";  
968          if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);          if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
969          $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);          $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);
970          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
971              $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);              $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);
972              $temp.=" [ ".$row['libelle']." - ".$row['observation']." ] ";              $this->servitude.="  [".$row['libelle']."] ".$row['observation']." - ";
973              $sql1 ="update dossier set servitude = '".$temp."' where dossier = '".$id."'";         }
             $res1 = $db -> query($sql1);  
             $this->addToLog("maj auto_servitude_surfacique :".$sql1, VERBOSE_MODE);  
             if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);  
             $this->addToMessage(""._("renseignee automatiquement")."<br>");  
         }  
974      }      }
975    
976        function calcul_auto_servitude_ligne($id,&$db,$geom,$projection){
977            // recherche servitude ligne
978            $distance=100;
979            $sql="select * from servitude_ligne WHERE ST_contains(ST_buffer(geom, ".$distance."),  geometryfromtext('".$geom."', ".$projection."))";
980            $res=$db->query($sql);
981            if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
982            $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);
983            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
984                $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);
985                $this->servitude.="  [".$row['libelle']."] ".$row['observation']." - ";
986           }
987        }
988    
989        function calcul_auto_servitude_point($id,&$db,$geom,$projection){
990            // recherche servitude point
991            $distance=300;
992            $sql="select libelle,observation, distance(geom, geometryfromtext('".$geom."', ".$projection.")) as distance from servitude_point WHERE distance(geom,  geometryfromtext('".$geom."', ".$projection."))<".$distance."";
993            $res=$db->query($sql);
994            if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
995            $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);
996            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
997                $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation'])." a ".round($row4['distance'],2)." m ";;
998                $this->servitude.="  [".$row['libelle']."] ".$row['observation']." a ".round($row4['distance'],2)." m - ";
999           }
1000        }
1001    
1002    
1003  }// fin classe  }// fin classe

Legend:
Removed from v.126  
changed lines
  Added in v.134

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26