6 |
|
|
7 |
class dossier extends dossier_gen { |
class dossier extends dossier_gen { |
8 |
|
|
|
//function dossier($id,&$db,$debug) { |
|
|
// $this->constructeur($id,$db,$debug); |
|
|
//}// fin constructeur |
|
9 |
var $maj; |
var $maj; |
10 |
|
|
11 |
function setvalF($val){ |
function setvalF($val){ |
17 |
if(!is_numeric($val['travaux'])) $this->valF['travaux']= null; |
if(!is_numeric($val['travaux'])) $this->valF['travaux']= null; |
18 |
if(!is_numeric($val['demandeur_categorie'])) $this->valF['demandeur_categorie']= null; |
if(!is_numeric($val['demandeur_categorie'])) $this->valF['demandeur_categorie']= null; |
19 |
|
|
20 |
// cle secondaire alpha vide (contrainte integrite) |
// cle secondaire alpha vide (contrainte integrite pgsql) |
21 |
if($val['demandeur_civilite']=='') $this->valF['demandeur_civilite']= null; |
if($val['demandeur_civilite']=='') $this->valF['demandeur_civilite']= null; |
22 |
if($val['delegataire_civilite']=='') $this->valF['delegataire_civilite']= null; |
if($val['delegataire_civilite']=='') $this->valF['delegataire_civilite']= null; |
23 |
|
|
24 |
// zone numerique |
// zone numerique non valorisée a 0 |
|
|
|
25 |
if(!is_numeric($val['delai'])) unset ($this->valF['delai']); |
if(!is_numeric($val['delai'])) unset ($this->valF['delai']); |
26 |
if(!is_numeric($val['terrain_surface'])) unset ($this->valF['terrain_surface']); |
if(!is_numeric($val['terrain_surface'])) unset ($this->valF['terrain_surface']); |
27 |
if(!is_numeric($val['batiment_nombre'])) unset ($this->valF['batiment_nombre']); |
if(!is_numeric($val['batiment_nombre'])) unset ($this->valF['batiment_nombre']); |
33 |
if(!is_numeric($val['piece_nombre'])) unset ($this->valF['piece_nombre']); |
if(!is_numeric($val['piece_nombre'])) unset ($this->valF['piece_nombre']); |
34 |
|
|
35 |
|
|
36 |
// enlever les valeurs a ne pas saisir |
// enlever les valeurs a ne pas saisir -> recherche en trigger ajouter et modifier |
37 |
|
// $sig = 1 |
38 |
unset ($this->valF['geom']); |
unset ($this->valF['geom']); |
39 |
|
|
40 |
// valeurs hiddenstatic (calcule) |
// valeurs hiddenstatic (calcule) |
66 |
// nature 2 caracteres |
// nature 2 caracteres |
67 |
// lettre R arles F vitrolles |
// lettre R arles F vitrolles |
68 |
// numero sur 6 caracteres |
// numero sur 6 caracteres |
69 |
include ("../dyn/var.inc"); |
if (file_exists ("../dyn/var.inc")) |
70 |
|
include ("../dyn/var.inc"); |
71 |
if($numero_unique==1){ |
if($numero_unique==1){ |
72 |
// numero unique |
// numero unique (voir dyn/var.inc) |
73 |
$temp=$db->nextId($this->table); |
$temp=$db->nextId($this->table); |
74 |
}else{ |
}else{ |
75 |
// numero suivant nature |
// numero suivant nature |
228 |
$form->setType('objet_dossier','hidden'); // PC |
$form->setType('objet_dossier','hidden'); // PC |
229 |
$form->setType('amenagement','hidden'); // PC |
$form->setType('amenagement','hidden'); // PC |
230 |
|
|
231 |
|
// a voir a quoi cela peut servir |
232 |
|
$form->setType('sig','hidden'); // PC |
233 |
|
$form->setType('siglien','hidden'); // PC |
234 |
|
|
235 |
// date |
// date |
236 |
$form->setType('date_depot','date'); |
$form->setType('date_depot','date'); |
276 |
$form->setType('date_conformite','hiddenstaticdate'); |
$form->setType('date_conformite','hiddenstaticdate'); |
277 |
|
|
278 |
// checkbox |
// checkbox |
279 |
$form->setType('sig','checkbox'); |
//$form->setType('sig','checkbox'); |
280 |
$form->setType('delegataire','checkbox'); |
$form->setType('delegataire','checkbox'); |
281 |
|
|
282 |
// http |
// http |
283 |
$form->setType('siglien','http'); |
//$form->setType('siglien','http'); |
284 |
$form->setType('saisie_architecte', 'httpclick'); |
$form->setType('saisie_architecte', 'httpclick'); |
285 |
|
|
286 |
// mail |
// mail |
662 |
$form->setGroupe('date_conformite','F'); |
$form->setGroupe('date_conformite','F'); |
663 |
// localisation |
// localisation |
664 |
$form->setGroupe('parcelle','D'); |
$form->setGroupe('parcelle','D'); |
665 |
$form->setGroupe('pos','G'); |
$form->setGroupe('pos','F'); |
666 |
$form->setGroupe('sig','G'); |
//$form->setGroupe('sig','G'); |
667 |
$form->setGroupe('siglien','F'); |
//$form->setGroupe('siglien','F'); |
668 |
|
|
669 |
// description |
// description |
670 |
$form->setGroupe('batiment_nombre','D'); |
$form->setGroupe('batiment_nombre','D'); |
849 |
|
|
850 |
// localisation |
// localisation |
851 |
$form->setRegroupe('parcelle','D',_('localisation'), $this->aff_localisation); |
$form->setRegroupe('parcelle','D',_('localisation'), $this->aff_localisation); |
852 |
$form->setRegroupe('pos','G',''); |
$form->setRegroupe('pos','F',''); |
853 |
$form->setRegroupe('sig','G',''); |
//$form->setRegroupe('sig','G',''); |
854 |
$form->setRegroupe('siglien','F',''); |
//$form->setRegroupe('siglien','F',''); |
855 |
|
|
856 |
// description |
// description |
857 |
$form->setRegroupe('batiment_nombre','D',_('description'), $this->aff_description); |
$form->setRegroupe('batiment_nombre','D',_('description'), $this->aff_description); |
869 |
|
|
870 |
/* ============================================================= |
/* ============================================================= |
871 |
* fonction trigger relative a la connexion SIG |
* fonction trigger relative a la connexion SIG |
872 |
* mise a jour de service web SIG via SOAP |
* $sig = 1 dans dyn/var.inc |
|
* voir /sig |
|
|
* -> si le traitement est fait correctement sig = 'Oui' |
|
|
* sinon SIG = 'Non' |
|
|
* dans var.inc il y a la strategie de sauvegarde SIG |
|
|
* pour deconnecter un objet dossier |
|
|
* mettre var acces_sig = 'Non' dans les classes PC, PA, DP et PD ??? a voir |
|
873 |
* =============================================================== |
* =============================================================== |
874 |
*/ |
*/ |
875 |
|
|
876 |
|
|
|
function triggerajouter($id,&$db,$val,$DEBUG) { |
|
|
if (file_exists ("../dyn/var.inc")) |
|
|
include ("../dyn/var.inc"); |
|
|
if(!isset($sauvegardeDossier)) $sauvegardeDossier=''; |
|
|
if($sauvegardeDossier != '' and $this->valF['parcelle']!=''){ |
|
|
$this->strategySig=new $sauvegardeDossier($this); |
|
|
if($this->strategySig->correct){ // strategie |
|
|
$pos=$this->strategySig->ajouterDossier($this->valF['parcelle'],$this->valF['dossier']); |
|
|
$this->msg = $this->msg."".$this->strategySig->dmsg."<br>"; |
|
|
// si c'est correct |
|
|
if ($this->strategySig->correct){ |
|
|
$this->valF['sig']='Oui'; |
|
|
$this->valF['pos']=$pos[0]; |
|
|
}else |
|
|
$this->valF['sig']='Non'; |
|
|
}else{ |
|
|
$this->msg = $this->msg."<br> serveur non accessible pour ". |
|
|
$sauvegardeDossier."<br>".$this->strategySig->dmsg."<br>"; |
|
|
} |
|
|
}else // pas de strategie |
|
|
$this->msg = $this->msg."<br>SIG pas de strategie externe active dans var.inc ou parcelle vide<br>"; |
|
|
} |
|
|
|
|
877 |
function triggerajouterapres($id,&$db,$val,$DEBUG) { |
function triggerajouterapres($id,&$db,$val,$DEBUG) { |
878 |
if (file_exists ("../dyn/var.inc")) |
if (file_exists ("../dyn/var.inc")) |
879 |
include ("../dyn/var.inc"); |
include ("../dyn/var.inc"); |
880 |
if(!isset($sig)) $sig=0; |
if(!isset($sig)) $sig=0; |
881 |
if($sig==1){ |
if(!isset($auto_pos)) $auto_pos=0; |
882 |
$this->sig_interne($id,&$db,$val,$DEBUG); |
$id=$this->valF['dossier']; // id n est pas valorise en ajout |
883 |
|
if($sig==1 ){ |
884 |
|
if($val['parcelle']!='') |
885 |
|
$this->sig_interne($id,&$db,$val,$DEBUG,$auto_pos); |
886 |
|
else |
887 |
|
$this->msg = $this->msg."<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>"; |
888 |
} |
} |
889 |
} |
} |
890 |
|
|
891 |
function triggermodifier($id,&$db,$val,$DEBUG) { |
function triggermodifierapres($id,&$db,$val,$DEBUG) { |
|
// parametre sig dans var.inc |
|
892 |
if (file_exists ("../dyn/var.inc")) |
if (file_exists ("../dyn/var.inc")) |
893 |
include ("../dyn/var.inc"); |
include ("../dyn/var.inc"); |
894 |
if(!isset($sauvegardeDossier)) $sauvegardeDossier=''; |
if(!isset($sig)) $sig=0; |
895 |
if(!isset($sig)) $sig=0; |
if(!isset($auto_pos)) $auto_pos=0; |
896 |
// strategy externe dans var.inc |
// si la parcelle est changée |
897 |
if($sauvegardeDossier != ''){ |
if($sig==1 and $val['parcelle']!=$val['parcelle_archive']){ |
898 |
if($val['sig']== 'Oui'){ // modification SIG |
if($val['parcelle']!='') |
899 |
if($val["parcelle_archive"]!=$this->valF['parcelle']){ // la parcelle doit etre modifie |
$this->sig_interne($this->valF['dossier'],&$db,$val,$DEBUG,$auto_pos); |
|
$this->strategySig=new $sauvegardeDossier($this); |
|
|
if($this->strategySig->correct){ // connexion correct |
|
|
$pos=$this->strategySig->modifierDossier($this->valF['parcelle'],$this->valF['dossier']); |
|
|
$this->msg = $this->msg."".$this->strategySig->dmsg."<br>"; |
|
|
$this->valF['sig']='Oui'; |
|
|
$this->valF['pos']=$pos[0]; |
|
|
}else{ // connexion incorrecte |
|
|
$this->msg = $this->msg."<br> serveur non accessible pour ". |
|
|
$sauvegardeDossier."<br>".$this->strategySig->dmsg."<br>"; |
|
|
$this->valF['sig']='Non'; |
|
|
} |
|
|
}else // parcelle inchangee |
|
|
$this->msg = $this->msg." SIG aucune modification SIG car meme parcelle et saisie sig ok"; |
|
|
}else{ // ajout SIG = Non |
|
|
if($this->valF['parcelle']!=''){ // la parcelle ne doit pas etre vide |
|
|
$this->strategySig=new $sauvegardeDossier($this); |
|
|
if($this->strategySig->correct){ // connexion correcte |
|
|
$pos= $this->strategySig->ajouterDossier($this->valF['parcelle'],$this->valF['dossier']); |
|
|
$this->msg = $this->msg."".$this->strategySig->dmsg."<br>"; |
|
|
// sig transaction correcte |
|
|
if ($this->strategySig->correct){ |
|
|
$this->valF['sig']='Oui'; |
|
|
$this->valF['pos']=$pos[0]; |
|
|
}else |
|
|
$this->valF['sig']='Non'; |
|
|
}else{ // connexion incorrecte |
|
|
$this->msg = $this->msg."<br> serveur non accessible pour ". |
|
|
$sauvegardeDossier."<br>".$this->strategySig->dmsg."<br>"; |
|
|
$this->valF['sig']='Non'; |
|
|
} |
|
|
}else |
|
|
$this->msg = $this->msg."<br> parcelle vide, pas d'ajout SIG <br>"; |
|
|
} |
|
|
}else // autres dossier ou pas de lien |
|
|
$this->msg = $this->msg." SIG pas de strategie externe active dans var.inc"; |
|
|
if($sig==1){ |
|
|
$this->sig_interne($this->valF['dossier'],&$db,$val,$DEBUG); |
|
900 |
} |
} |
901 |
} |
} |
902 |
|
|
903 |
function triggersupprimer($id,&$db,$val,$DEBUG) { |
function sig_interne($id,&$db,$val,$DEBUG,$auto_pos){ |
|
// Parametres var.inc sig |
|
|
if (file_exists ("../dyn/var.inc")) |
|
|
include ("../dyn/var.inc"); |
|
|
if(!isset($sauvegardeDossier)) $sauvegardeDossier=''; |
|
|
// strategy externe -> si le dossier a ete creer dans le sig (val(sig)= Oui) |
|
|
if($val['sig']== 'Oui'){ |
|
|
if($sauvegardeDossier != ''){ // strategie |
|
|
$this->strategySig=new $sauvegardeDossier($this); |
|
|
if($this->strategySig->correct){ // SIG connexion |
|
|
$this->strategySig->supprimerDossier($id); |
|
|
$this->msg = $this->msg."".$this->strategySig->dmsg."<br><br>"; |
|
|
}else // SIG pas de connexion |
|
|
$this->msg = $this->msg."<br> serveur non accessible pour ". |
|
|
$sauvegardeDossier."<br>".$this->strategySig->dmsg."<br>"; |
|
|
}else // pas de strategie |
|
|
$this->msg = $this->msg." SIG pas de strategie active dans var.inc"; |
|
|
}else // SIG pas de dossier |
|
|
$this->msg = $this->msg."<br>"."SIG pas de dossier ". |
|
|
$id." [sig = ".$val['sig']." ]<br>"; |
|
|
} |
|
|
|
|
|
|
|
|
function sig_interne($id,&$db,$val,$DEBUG){ |
|
904 |
// Strategy interne dans var.inc |
// Strategy interne dans var.inc |
905 |
// 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 |
906 |
// de maniere automatique |
// de maniere automatique |
907 |
// a voir si $this->valF['sig'] = oui -> parametrage manuel |
$projection = $db -> getOne("select srid from geometry_columns where f_table_name='dossier'"); |
908 |
$this->msg = $this->msg."<br> SIG strategie interne active dans var.inc"; |
$sql= "select astext(centroid(geom)) from parcelle where parcelle ='".$val["parcelle"]."'"; |
909 |
if($this->valF['parcelle']!=''){ //si la parcelle est renseignée |
$geom = $db -> getOne($sql); |
910 |
$projection = $db -> getOne("select srid from geometry_columns where f_table_name='dossier'"); |
if($geom!=''){ // la parcelle est exitante dans la table / vue parcelle |
911 |
$sql= "select astext(centroid(geom)) from parcelle where parcelle ='".$val["parcelle"]."'"; |
$sql ="update dossier set geom =geometryfromtext('".$geom."', ".$projection." ) where dossier ='".$id."'"; |
|
$geom = $db -> getOne($sql); |
|
|
if($geom!=''){ // parcelle exitante |
|
|
// pb des guillemets a voir |
|
|
//$this->valF['geom']= "geometryfromtext('".$geom."', ".$projection.") "; |
|
|
$sql ="update dossier set geom =geometryfromtext('".$geom."', ".$projection." ) where dossier ='".$id."'"; |
|
|
$res = $db -> query($sql); |
|
|
if (DB :: isError($res)){ |
|
|
die($res->getMessage()."erreur ".$sql); |
|
|
}else{ |
|
|
$this->msg = $this->msg."<br> geom = centroid de parcelle ".$val["parcelle"]." dans dossier ".$id; |
|
|
} |
|
|
|
|
|
}else |
|
|
$this->msg = $this->msg."<br> parcelle ".$val["parcelle"]." inexistante -> saisie manuelle ".$id; |
|
|
}else{ |
|
|
$sql ="update dossier set geom = null where dossier ='".$id."'"; |
|
912 |
$res = $db -> query($sql); |
$res = $db -> query($sql); |
913 |
if (DB :: isError($res)){ |
if (database :: isError($res)){ |
914 |
die($res->getMessage()."erreur ".$sql); |
die($res->getMessage()."erreur ".$sql); |
915 |
}else{ |
}else{ |
916 |
$this->msg = $this->msg."<br> geom=vide car parcelle non renseignee dans dossier ".$id." <br>"; |
$this->msg = $this->msg."<br>"._("centroid de parcelle calculé")." ".$val["parcelle"]. |
917 |
} |
" "._("dossier")." ".$id."<br>"; |
918 |
|
} |
919 |
|
if($auto_pos==1) // recherche du pos |
920 |
|
$this->auto_pos($id,$db,$geom,$projection); |
921 |
|
}else{ // parcelle inexistante |
922 |
|
if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante |
923 |
|
$sql ="update dossier set geom = null where dossier ='".$id."'"; |
924 |
|
$res = $db -> query($sql); |
925 |
|
if (database :: isError($res)) |
926 |
|
die($res->getMessage()."erreur ".$sql); |
927 |
|
} |
928 |
|
$this->msg = $this->msg."<br> parcelle ".$val["parcelle"]." "._("inexistante")." ".$id."<br>"; |
929 |
|
} |
930 |
|
} |
931 |
|
|
932 |
|
function auto_pos($id,&$db,$geom,$projection){ |
933 |
|
// recherche du pos automatique dans le geom de la table / vue pos |
934 |
|
$sql="select pos from pos WHERE ST_contains(geom, geometryfromtext('".$geom."', ".$projection."))"; |
935 |
|
$pos = $db -> getOne($sql); |
936 |
|
if($pos!=''){ |
937 |
|
$sql1 ="update dossier set pos = '".$pos."' where dossier = '".$id."'"; |
938 |
|
$res1 = $db -> query($sql1); |
939 |
|
if (database:: isError($res1)){ // ok |
940 |
|
die($res1->getMessage()."erreur ".$sql1); |
941 |
|
}else{ |
942 |
|
$this->msg = $this->msg."<br>"._("POS/PLU renseignee automatiquement dans dossier")." ".$id." -> ".$pos."<br>"; |
943 |
|
} |
944 |
|
}else{ |
945 |
|
$this->msg = $this->msg."<br>"._("POS/PLU non trouvé pour dossier")." ".$id."<br>"; |
946 |
} |
} |
947 |
} |
} |
948 |
|
|
949 |
|
|
950 |
}// fin classe |
}// fin classe |
|
/* |
|
|
var pfenetre; |
|
|
var fenetreouverte=false; |
|
|
function saisie3() |
|
|
{ |
|
|
if(fenetreouverte==true) |
|
|
pfenetre.close(); |
|
|
pfenetre=window.open("../scr/form_fenetre.php?obj=dossier_architecte","delegataire","width=780,height=430,top=120,left=10"); |
|
|
fenetreouverte=true; |
|
|
} |
|
|
*/ |
|
951 |
?> |
?> |