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); |
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 |
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."'"; |
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); |
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=500; // monuments historiques |
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($row['distance'],2)." m "; |
998 |
|
$this->servitude.=" [".$row['libelle']."] ".$row['observation']." a ".round($row['distance'],2)." m - "; |
999 |
|
} |
1000 |
|
} |
1001 |
|
|
1002 |
|
|
1003 |
}// fin classe |
}// fin classe |