/[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 20 by fraynaud, Mon Jul 18 15:27:17 2011 UTC revision 44 by fraynaud, Mon Jul 25 16:06:39 2011 UTC
# Line 6  require_once ("../gen/obj/dossier.class. Line 6  require_once ("../gen/obj/dossier.class.
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){
# Line 20  class dossier extends dossier_gen { Line 17  class dossier extends dossier_gen {
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']);
# Line 37  class dossier extends dossier_gen { Line 33  class dossier extends dossier_gen {
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)
# Line 69  class dossier extends dossier_gen { Line 66  class dossier extends dossier_gen {
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
# Line 230  class dossier extends dossier_gen { Line 228  class dossier extends dossier_gen {
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');
# Line 275  class dossier extends dossier_gen { Line 276  class dossier extends dossier_gen {
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
# Line 661  class dossier extends dossier_gen { Line 662  class dossier extends dossier_gen {
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');
# Line 848  class dossier extends dossier_gen { Line 849  class dossier extends dossier_gen {
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);
# Line 868  class dossier extends dossier_gen { Line 869  class dossier extends dossier_gen {
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  ?>  ?>

Legend:
Removed from v.20  
changed lines
  Added in v.44

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26