/[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 3 by fraynaud, Thu Feb 10 20:46:18 2011 UTC revision 369 by fraynaud, Thu Aug 2 08:19:16 2012 UTC
# Line 5  require_once ("../gen/obj/dossier.class. Line 5  require_once ("../gen/obj/dossier.class.
5    
6  class dossier extends dossier_gen {  class dossier extends dossier_gen {
7    
8  function dossier($id,&$db,$debug) {      var $maj;
9          $this->constructeur($id,$db,$debug);      var $sig;
10  }// fin constructeur      var $servitude="";
11        var $auto_pos;
12        var $auto_servitude_surfacique;
13        var $auto_servitude_ligne;
14        var $auto_servitude_point;
15        var $auto_parcelle;
16        var $auto_parcelle_lot;
17        
18    
19        function setvalF($val){
20            parent::setvalF($val);  
21            // cles secondaires numerique (contrainte integrite  pgsql)
22            if(!is_numeric($val['instructeur'])) $this->valF['instructeur']= null;
23            if(!is_numeric($val['architecte'])) $this->valF['architecte']= null;
24            if(!is_numeric($val['travaux'])) $this->valF['travaux']= null;
25            if(!is_numeric($val['demandeur_categorie'])) $this->valF['demandeur_categorie']= null;
26            // cle secondaire alpha vide (contrainte integrite pgsql)
27            if($val['demandeur_civilite']=='') $this->valF['demandeur_civilite']= null;
28            if($val['delegataire_civilite']=='') $this->valF['delegataire_civilite']= null;
29            // zone numerique non valorisée a 0
30            if(!is_numeric($val['delai'])) unset ($this->valF['delai']);
31            if(!is_numeric($val['terrain_surface'])) unset ($this->valF['terrain_surface']);
32            if(!is_numeric($val['batiment_nombre'])) unset ($this->valF['batiment_nombre']);
33            if(!is_numeric($val['logement_nombre'])) unset ($this->valF['logement_nombre']);
34            if(!is_numeric($val['shon'])) unset ($this->valF['shon']);
35            if(!is_numeric($val['shob'])) unset ($this->valF['shob']);
36            if(!is_numeric($val['lot'])) unset ($this->valF['lot']);
37            if(!is_numeric($val['hauteur'])) unset ($this->valF['hauteur']);
38            if(!is_numeric($val['piece_nombre'])) unset ($this->valF['piece_nombre']);
39            if(!is_numeric($val['parcelle_lot'])) unset ($this->valF['parcelle_lot']);
40            // enlever les valeurs a ne pas saisir -> recherche en trigger ajouter et modifier
41            // $sig = 1
42            unset ($this->valF['geom']);
43            unset ($this->valF['geom1']);
44            // valeurs hiddenstatic (calcule)
45            if($this->maj==1){
46                // par defaut
47                unset ($this->valF['etat']);
48                unset ($this->valF['delai']);
49                unset ($this->valF['accord_tacite']);
50                unset ($this->valF['types']);
51            }
52            unset ($this->valF['avis']); // avis + libelle avis
53            unset ($this->valF['terrain_surface_calcul']);
54            unset ($this->valF['shon_calcul']);
55            unset ($this->valF['parcelle_archive']);
56            unset ($this->valF['parcelle_lot_archive']);
57            unset ($this->valF['date_notification_delai']);
58            unset ($this->valF['date_decision']);
59            unset ($this->valF['date_limite']);
60            unset ($this->valF['date_validite']);
61            unset ($this->valF['date_chantier']);
62            unset ($this->valF['date_achevement']);
63            unset ($this->valF['date_conformite']);  
64        }
65    
66        // specifique
67        function setId($db){
68            // id automatique nextid
69            // departement      13
70            // ville            004
71            // nature           2 caracteres
72            // lettre           R arles F vitrolles
73            // numero sur       6 caracteres
74            // om_parametre
75            $lettre=$this->f->collectivite["lettre"];
76            $numero_unique = $this->f->collectivite["numero_unique"];
77            if($numero_unique==1){
78            // numero unique (voir dyn/var.inc)
79            $temp=$db->nextId(DB_PREFIXE.$this->table);
80            }else{
81            // numero suivant nature
82            $temp=$db->nextId(DB_PREFIXE."dossier_".$this->nature);
83            }
84            $temp=str_pad($temp,4,"0", STR_PAD_LEFT);
85            $this->valF['dossier'] = $this->valF['nature'].$this->valF['annee'].
86                                     $lettre.$temp;
87        }
88    
89        // fonction a surcharger car utilisation d un nextID alpha
90        function verifierAjout(){
91        }
92    
93        function verifier($val,&$db,$DEBUG){
94            $this->correct=True;
95            // obligatoire
96            if($val['date_depot']==""){
97            //    $this->valF['date_depot'] = $this->dateDB($val['date_depot']);
98            //}else{
99                $this->correct=false;
100                $this->addToMessage("<br>date_depot obligatoire");
101            }
102            if($val['parcelle']!="" and $val['sig']!='Oui'){
103                if  (!preg_match('/^[A-Z0-9]{1}[A-Z]{1}[0-9]{4}$/', $val['parcelle'])){    
104                    $this->correct=false;
105                    $this->addToMessage("<br>format parcelle AANNNN");
106                }
107            }
108            // regles travaux verification
109            if ($this->valF['travaux']!=""){
110                $sql= "select * from ".DB_PREFIXE."regle where id = '".$this->valF['travaux'].
111                "' and controle = 'travaux' order by ordre";
112                $res = $db->query($sql);
113                 if (database :: isError($res)) die($res->getMessage().$sql);
114                $this->addToLog("requete ".$sql." execute <br>", EXTRA_VERBOSE_MODE);
115                $regle=0;
116                $msg="";
117                while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
118                    if(isset($this->valF[$row['champ']]))
119                        $champvaleur=$this->valF[$row['champ']];
120                    else
121                        $champvaleur=0;
122                    switch ($row['operateur']) {
123                    case ">" :
124                        if($row['sens']=="plus"){
125                            if($champvaleur > $row['valeur'])
126                                $condition = 1;
127                            else
128                                $condition = 0;
129                            if($regle==1 or $condition == 1)
130                                $regle=1;
131                            else
132                                $regle=0;
133                            $msg=$msg."<br> + ".$row['message']." [".$row['champ']." = ".
134                            $champvaleur."]";        
135                        }else{
136                            if($champvaleur > $row['valeur']){
137                                $condition = 0;
138                            }else{
139                                $condition = 1;
140                                $regle=0;
141                            }
142                            $msg=$msg."<br> ou ".$row['message']." [".$row['champ']." = ".
143                            $champvaleur."]";
144                        }
145                        break;
146                    case ">=":
147                        if($row['sens']=="plus"){
148                            if($champvaleur >= $row['valeur'])
149                                $condition = 1;
150                            else
151                                $condition = 0;
152                            if($regle==1 or $condition == 1)
153                                $regle=1;
154                            else
155                                $regle=0;
156                            $msg=$msg."<br> + ".$row['message']." [".$row['champ']." = ".
157                            $champvaleur."]";
158                        }else{
159                            if($champvaleur >= $row['valeur']){
160                                $condition = 0;
161              
162                            }else{
163                                $condition = 1;
164                                $regle=0;
165                            }
166                            $msg=$msg."<br> ou ".$row['message']." [".$row['champ']." = ".
167                            $champvaleur."]";
168                        }
169                    break;
170                    case "<" :
171                        if($row['sens']=="plus"){
172                            if($champvaleur < $row['valeur'])
173                                $condition = 1;
174                            else
175                                $condition = 0;
176                            if($regle==1 or $condition == 1)
177                                $regle=1;
178                            else
179                                $regle=0;
180                            $msg=$msg."<br> + ".$row['message']." [".$row['champ']." = ".
181                            $champvaleur."]";
182                        }else{
183                            if($champvaleur < $row['valeur']){
184                                $condition = 0;
185                            }else{
186                                $condition = 1;
187                                $regle=0;
188                            }
189                            $msg=$msg."<br> et ".$row['message']." [".$row['champ']." = ".
190                                $champvaleur."]";
191                        }
192                    break;
193                    case "==":
194                        if($row['sens']=="plus"){
195                            if($champvaleur == $row['valeur'])
196                                $condition = 1;
197                            else
198                                $condition = 0;
199                            if($regle==1 or $condition == 1)
200                                $regle=1;
201                            else
202                                $regle=0;
203                            $msg=$msg."<br> + ".$row['message']." [".$row['champ']." = ".
204                            $champvaleur."]";
205                        }else{
206                            if($champvaleur == $row['valeur']){
207                                $condition = 0;
208              
209                            }else{
210                                $condition = 1;
211                                $regle=0;
212                            }
213                            $msg=$msg."<br> ou ".$row['message']." [".$row['champ']." = ".
214                            $champvaleur."]";
215                        }
216                    break;
217                    //break;
218                    } // switch
219                    if($regle==0)
220                        $this->addToMessage($msg." <br>");
221                } // while
222            } // travaux
223        }//verifier
224    
225    
226        function setType(&$form,$maj) {
227            //parent::setType($form,$maj);
228            if ($maj < 2) { //ajouter et modifier
229                // cache
230                if($maj==0) $form->setType('dossier', 'hidden');
231                $form->setType('annee', 'hidden');
232                $form->setType('nature', 'hidden');
233                $form->setType('parcelle_archive','hidden');
234                $form->setType('parcelle_lot_archive','hidden');
235                $form->setType('objet_dossier','hidden'); // PC
236                $form->setType('amenagement','hidden'); // PC
237                $form->setType('parcelle_lot','hidden'); // PC
238                $form->setType('parcelle_lot_lotissement','hidden'); // PC
239                
240                $form->setType('geom1', 'hidden');
241                $form->setType('geom', 'geom');
242                $form->setType('servitude', 'hiddenstatic');
243                $form->setType('description', 'textarea');
244                                      
245                // date
246                $form->setType('date_depot','date');
247                $form->setType('date_demande','date');
248                
249                //select
250                $form->setType('travaux','select');
251                $form->setType('instructeur','select');
252                $form->setType('terrain_numero_complement','select');
253                $form->setType('delegataire_civilite','select');
254                $form->setType('demandeur_civilite','select');
255                $form->setType('demandeur_categorie','select');
256                
257    
258                // combo
259                $form->setType('rivoli','comboD');
260                $form->setType('terrain_adresse','comboG');
261                $form->setType('architecte_nom','comboG');
262                $form->setType('architecte','comboD');
263    
264    
265                // hiddenstatic
266                if($maj==1) $form->setType('dossier', 'hiddenstatic');
267                $form->setType('etat','hiddenstatic');
268                $form->setType('avis','hiddenstatic');
269                $form->setType('delai','hiddenstatic');
270                $form->setType('terrain_surface_calcul','hiddenstatic');
271                $form->setType('shon_calcul','hiddenstatic');
272                
273                $form->setType('accord_tacite','hiddenstatic');
274                $form->setType('types', 'hiddenstatic'); // transfert modificatif
275    
276                
277                // hiddenstaticdate
278                $form->setType('date_notification_delai','hiddenstaticdate');
279                $form->setType('date_decision','hiddenstaticdate');
280                $form->setType('date_limite','hiddenstaticdate');
281                $form->setType('date_rejet','hiddenstaticdate');
282                $form->setType('date_complet','hiddenstaticdate');
283                $form->setType('date_limite','hiddenstaticdate');
284                $form->setType('date_validite','hiddenstaticdate');
285                $form->setType('date_chantier','hiddenstaticdate');
286                $form->setType('date_achevement','hiddenstaticdate');
287                $form->setType('date_conformite','hiddenstaticdate');
288              
289                // checkbox    
290                $form->setType('sig','checkbox');
291                $form->setType('delegataire','checkbox');
292                          
293                // mail
294                $form->setType('delegataire_email','mail');
295                $form->setType('demandeur_email','mail');          
296                
297                // zones temp et strategysig
298                
299    
300                // temp
301                if (file_exists ("../dyn/var.inc"))
302                    include ("../dyn/var.inc");
303                if(!isset($auto_pos))
304                    $auto_pos=0;              
305                if($auto_pos==1)
306                   $form->setType('pos','hiddenstatic');
307                else
308                    $form->setType('pos','select');
309                $form->setType('temp1',$temp1_type);
310                $form->setType('temp2',$temp2_type);
311                $form->setType('temp3',$temp3_type);
312                $form->setType('temp4',$temp4_type);
313                $form->setType('temp5',$temp5_type);
314            }else{ // supprimer
315                 $form->setType('dossier', 'hiddenstatic');
316                 $form->setType('sig', 'hiddenstatic');
317            }
318        }
319    
320        function setVal(&$form,$maj,$validation){
321            $this->maj=$maj;
322            if ($validation==0) {
323                if ($maj == 0){
324                    $dossier_cp = $this->f->collectivite["cp"];
325                    $dossier_ville = $this->f->collectivite["ville"];
326                    $form->setVal('nature', $this->nature);
327                  
328                    $form->setVal('annee', date('y'));
329                    $form->setVal('date_demande', date('Y-m-d'));
330                    $form->setVal('date_depot', date('Y-m-d'));
331                  
332                    $form->setVal('demandeur_cp', $dossier_cp);
333                    $form->setVal('demandeur_ville', $dossier_ville);
334                  
335                    $form->setVal('delegataire_cp', $dossier_cp);
336                    $form->setVal('delegataire_ville', $dossier_ville);
337                  
338                    $form->setVal('terrain_cp', $dossier_cp);
339                    $form->setVal('terrain_ville', $dossier_ville);
340                  
341                    $form->setVal('accord_tacite', 'Non');
342                    $form->setVal('etat', 'initialiser');
343                    $form->setVal('types', 'Initial');
344               }
345            }
346        }
347    
348        function setSelect(&$form, $maj,&$db,$debug) {
349            //optimisation sur table importante parcelle -> pas d appel methode parent
350            if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
351                    include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
352            if($maj<2){
353                // travaux
354                $contenu=array();
355                // prise en compte du solde en ajout
356                if($maj==0)
357                    $sql_travaux = $sql_travaux.
358                    " and solde = 'Non' order by libelle";
359                else
360                    $sql_travaux = $sql_travaux.
361                    " order by libelle";                
362                $res = $db->query($sql_travaux);
363                if (database::isError($res)) die($res->getMessage()).$sql_travaux;
364                $this->addToLog(" la requete ".$sql_travaux." est executee", VERBOSE_MODE);
365                $contenu[0][0]="";
366                $contenu[1][0]=_('choisir')." "._('travaux');
367                $k=1;
368                while ($row=& $res->fetchRow()){
369                    $contenu[0][$k]=$row[0];
370                    $contenu[1][$k]=$row[1];
371                    $k++;
372                }
373                $form->setSelect("travaux",$contenu);
374    
375                //// instructeur
376                $contenu=array();
377                $res = $db->query($sql_instructeur);
378                if (database::isError($res))  die($res->getMessage().$sql_instructeur);
379                $this->addToLog(" la requete ".$sql_instructeur." est executee", VERBOSE_MODE);
380                $contenu[0][0]="";
381                $contenu[1][0]=_('choisir')." "._('instructeur');
382                $k=1;
383                while ($row=& $res->fetchRow()){
384                    $contenu[0][$k]=$row[0];
385                    $contenu[1][$k]=$row[1];
386                    $k++;
387                }
388                $form->setSelect("instructeur",$contenu);
389                
390                // demandeur et delegataire civilite
391                $contenu=array();
392                $res = $db->query($sql_civilite);
393                if (database::isError($res))  die($res->getMessage().$sql_);
394                $this->addToLog(" la requete ".$sql_civilite." est executee", VERBOSE_MODE);
395                $contenu[0][0]="";
396                $contenu[1][0]=_('choisir')." "._('civilite');
397                $k=1;
398                while ($row=& $res->fetchRow()){
399                    $contenu[0][$k]=$row[0];
400                    $contenu[1][$k]=$row[1];
401                    $k++;
402                }
403                $form->setSelect("demandeur_civilite",$contenu);
404                $form->setSelect("delegataire_civilite",$contenu);
405                
406                // demandeur categorie
407                $contenu=array();
408                $res = $db->query($sql_categorie_demandeur);
409                if (database::isError($res))  die($res->getMessage().$sql_categorie_demandeur);
410                $this->addToLog(" la requete ".$sql_categorie_demandeur." est executee", VERBOSE_MODE);
411                $contenu[0][0]="";
412                $contenu[1][0]=_('choisir')." "._('categorie');
413                $k=1;
414                while ($row=& $res->fetchRow()){
415                    $contenu[0][$k]=$row[0];
416                    $contenu[1][$k]=$row[1];
417                    $k++;
418                }
419                $form->setSelect("demandeur_categorie",$contenu);
420                
421                // pos
422                $contenu=array();
423                $res = $db->query($sql_pos);
424                if (database::isError($res))  die($res->getMessage().$sql_pos);
425                $this->addToLog(" la requete ".$sql_pos." est executee", VERBOSE_MODE);
426                $contenu[0][0]="";
427                $contenu[1][0]=_('choisir')." "._('pos');
428                $k=1;
429                while ($row=& $res->fetchRow()){
430                    $contenu[0][$k]=$row[0];
431                    $contenu[1][$k]=$row[1];
432                    $k++;
433                }
434                $form->setSelect("pos",$contenu);
435    
436                // code et libelle voie
437                $contenu="";
438                $contenu[0][0]="rivoli";// table
439                $contenu[0][1]="rivoli"; // zone origine
440                $contenu[1][0]="libelle";
441                $contenu[1][1]="terrain_adresse";
442                $form->setSelect("rivoli",$contenu);
443                //terrain_adresse
444                $contenu="";
445                $contenu[0][0]="rivoli";// table
446                $contenu[0][1]="libelle"; // zone origine
447                $contenu[1][0]="rivoli";
448                $contenu[1][1]="rivoli";
449                $form->setSelect("terrain_adresse",$contenu);
450                // code et libelle architecte
451                $contenu="";
452                $contenu[0][0]="architecte";// table
453                $contenu[0][1]="architecte"; // zone origine
454                $contenu[1][0]="nom";
455                $contenu[1][1]="architecte_nom";
456                $form->setSelect("architecte",$contenu);
457                $contenu="";
458                $contenu[0][0]="architecte";// table
459                $contenu[0][1]="nom"; // zone origine
460                $contenu[1][0]="architecte";
461                $contenu[1][1]="architecte";
462                $form->setSelect("architecte_nom",$contenu);
463                // parcelle_lot
464                $contenu="";
465                $contenu[0][0]="parcelle_lot";// table
466                $contenu[0][1]="parcelle_lot"; // zone origine
467                $contenu[1][0]="lotissement";
468                $contenu[1][1]="parcelle_lot_lotissement";
469                $form->setSelect("parcelle_lot",$contenu);
470                $contenu="";
471                $contenu[0][0]="parcelle_lot";// table
472                $contenu[0][1]="lotissement"; // zone origine
473                $contenu[1][0]="parcelle_lot";
474                $contenu[1][1]="parcelle_lot";
475                $form->setSelect("parcelle_lot_lotissement",$contenu);
476                // accord tacite
477                $contenu=array();
478                $contenu[0]=array('Non','Oui');
479                $contenu[1]=array('Non','Oui');
480                $form->setSelect("etat",$contenu);
481                $form->setSelect("accord_tacite",$contenu);
482                // terrain_numero_complement
483                $contenu=array();
484                $contenu[0]=array('','bis','ter','quater');
485                $contenu[1]=array('','bis','ter','quater');
486                $form->setSelect("terrain_numero_complement",$contenu);
487                // geom *** a voir
488                if($maj==1){ //modification
489                    $contenu=array();
490                    $contenu[0]=array("dossier",$this->getParameter("idx"));
491                    $form->setSelect('geom',$contenu);
492                }
493                
494            }
495        }
496    
497        
498        function setLib(&$form,$maj) {
499            parent::setLib($form,$maj);
500            $form->setLib('geom','');
501        }    
502        
503    
504        function setGroupe(&$form,$maj){
505            If ($maj==0){
506                $form->setGroupe('date_demande','D');
507                $form->setGroupe('date_depot','G');
508                $form->setGroupe('instructeur','F');
509            }else{
510                $form->setGroupe('dossier','D');
511                $form->setGroupe('nature','G');
512                $form->setGroupe('annee','G');
513                $form->setGroupe('date_demande','G');
514                $form->setGroupe('date_depot','G');
515                $form->setGroupe('instructeur','F');
516            }
517            $form->setGroupe('demandeur_categorie','D');
518            $form->setGroupe('demandeur_civilite','G');
519            $form->setGroupe('demandeur_nom','F');
520            
521            $form->setGroupe('demandeur_societe','D');
522            $form->setGroupe('demandeur_adresse','G');
523            $form->setGroupe('demandeur_adresse_complement','F');
524    
525            $form->setGroupe('demandeur_cp','D');
526            $form->setGroupe('demandeur_ville','G');
527            $form->setGroupe('demandeur_pays','F');
528          
529            $form->setGroupe('demandeur_email','D');
530            $form->setGroupe('demandeur_telephone','F');
531            
532            $form->setGroupe('delegataire','D');
533            $form->setGroupe('delegataire_civilite','G');
534            $form->setGroupe('delegataire_nom','F');
535    
536            $form->setGroupe('delegataire_societe','D');
537            $form->setGroupe('delegataire_adresse','G');
538            $form->setGroupe('delegataire_adresse_complement','F');
539            $form->setGroupe('delegataire_cp','D');
540            $form->setGroupe('delegataire_ville','G');
541            $form->setGroupe('delegataire_pays','F');
542          
543            $form->setGroupe('delegataire_email','D');
544            $form->setGroupe('delegataire_telephone','F');
545                  
546            $form->setGroupe('architecte','D');
547            $form->setGroupe('architecte_nom','G');
548            $form->setGroupe('saisie_architecte','F');
549            
550            $form->setGroupe('travaux','D');  
551            $form->setGroupe('travaux_complement','F');
552            
553            // terrain
554            $form->setGroupe('terrain_numero','D');
555            $form->setGroupe('terrain_numero_complement','G');
556            $form->setGroupe('rivoli','F');
557            $form->setGroupe('terrain_adresse','D');
558            $form->setGroupe('terrain_adresse_complement','F');
559    
560            $form->setGroupe('terrain_cp','D');
561            $form->setGroupe('terrain_ville','F');        
562            
563            // surface
564            $form->setGroupe('terrain_surface','D');
565            $form->setGroupe('terrain_surface_calcul','F');
566            
567            // instruction
568            $form->setGroupe('date_complet','D');
569            $form->setGroupe('date_rejet','G');
570            $form->setGroupe('rejet','G');
571            $form->setGroupe('delai','F');
572            
573            $form->setGroupe('date_limite','D');
574            $form->setGroupe('date_notification_delai','G');
575            $form->setGroupe('accord_tacite','G');
576            $form->setGroupe('etat','F');
577            
578            $form->setGroupe('date_decision','D');
579            $form->setGroupe('avis','G');
580            $form->setGroupe('date_validite','G');
581            $form->setGroupe('types','F');
582            
583            $form->setGroupe('date_chantier','D');
584            $form->setGroupe('date_achevement','G');
585            $form->setGroupe('date_conformite','F');
586            
587            // localisation
588            $form->setGroupe('parcelle','D');
589            $form->setGroupe('pos','G');
590            $form->setGroupe('sig','F');
591            if($maj==1){
592                $form->setGroupe('sig','G');
593                $form->setGroupe('geom','F');
594            }
595            
596            // description
597            $form->setGroupe('batiment_nombre','D');
598            $form->setGroupe('logement_nombre','G');
599            $form->setGroupe('hauteur','G');
600            $form->setGroupe('piece_nombre','F');
601            
602            $form->setGroupe('shon','D');
603            $form->setGroupe('shon_calcul','G');
604            $form->setGroupe('shob','G');
605            $form->setGroupe('lot','F');
606            
607            $form->setGroupe('amenagement','D');
608            $form->setGroupe('parcelle_lot','G');
609            $form->setGroupe('parcelle_lot_lotissement','F');
610        }
611    
612        function setOnchange(&$form,$maj){
613            parent::setOnchange($form,$maj);
614            // mise en majuscule
615            $form->setOnchange("demandeur_nom","this.value=this.value.toUpperCase()");
616            $form->setOnchange("demandeur_societe","this.value=this.value.toUpperCase()");
617            $form->setOnchange("delegataire_nom","this.value=this.value.toUpperCase()");
618            $form->setOnchange("delegataire_societe","this.value=this.value.toUpperCase()");
619            $form->setOnchange("architecte_nom","this.value=this.value.toUpperCase()");
620            $form->setOnchange("terrain_adresse","this.value=this.value.toUpperCase()");
621            $form->setOnchange('shon','VerifNumdec(this)');
622            $form->setOnchange('shob','VerifNumdec(this)');
623            $form->setOnchange('hauteur','VerifNumdec(this)');
624            $form->setOnchange('terrain_surface','VerifNumdec(this)');
625        }
626    
627        function setRegroupe(&$form,$maj){
628            // depot
629            If ($maj==0){
630                $form->setRegroupe('date_demande','D',_("Depot"),$this->aff_depot );
631            }
632            If ($maj==1){
633                $form->setRegroupe('dossier','D',_("Depot"), $this->aff_depot);
634                $form->setRegroupe('date_demande','G','');
635            }
636            $form->setRegroupe('date_depot','G','');
637            $form->setRegroupe('instructeur','F','');
638            
639            // travaux
640            $form->setRegroupe('architecte','D',_('Architecte')." / "._("Travaux"), $this->aff_travaux);
641            $form->setRegroupe('architecte_nom','G','');
642            $form->setRegroupe('travaux','G','');
643            $form->setRegroupe('travaux_complement','F','');
644            
645            // instruction
646            $form->setRegroupe('date_complet','D',_('Instruction'), $this->aff_instruction);
647            $form->setRegroupe('date_rejet','G','');
648            $form->setRegroupe('date_notification_delai','G','');
649            $form->setRegroupe('delai','G','');
650            $form->setRegroupe('date_limite','G','Decision ');
651            $form->setRegroupe('accord_tacite','G','');
652            $form->setRegroupe('etat','G','');
653            $form->setRegroupe('date_decision','G','');
654            $form->setRegroupe('avis','G','');
655            $form->setRegroupe('date_validite','G','');
656            $form->setRegroupe('types','G','');
657            $form->setRegroupe('date_chantier','G','');
658            $form->setRegroupe('date_achevement','G','');
659            $form->setRegroupe('date_conformite','F','');
660            
661            // demandeur
662            $form->setRegroupe('demandeur_categorie','D',_('Demandeur'), $this->aff_demandeur);
663            $form->setRegroupe('demandeur_civilite','G','');
664            $form->setRegroupe('demandeur_nom','G','');
665            $form->setRegroupe('demandeur_societe','G','');
666            $form->setRegroupe('demandeur_adresse','G','Decision ');
667            $form->setRegroupe('demandeur_cp','G','');
668            $form->setRegroupe('demandeur_ville','G','');
669            $form->setRegroupe('demandeur_pays','G','');
670            $form->setRegroupe('demandeur_email','G','');
671            $form->setRegroupe('demandeur_telephone','F','');
672            
673            
674            // delegataire
675            $form->setRegroupe('delegataire','D',_('delegataire'), $this->aff_delegataire);
676            $form->setRegroupe('delegataire_civilite','G','');
677            $form->setRegroupe('delegataire_nom','G','');
678            $form->setRegroupe('delegataire_societe','G','');
679            $form->setRegroupe('delegataire_adresse','G','Decision ');
680            $form->setRegroupe('delegataire_cp','G','');
681            $form->setRegroupe('delegataire_ville','G','');
682            $form->setRegroupe('delegataire_pays','G','');
683            $form->setRegroupe('delegataire_email','G','');
684            $form->setRegroupe('delegataire_telephone','F','');
685    
686            // terrain
687            $form->setRegroupe('terrain_numero','D',_('terrain'), $this->aff_terrain);
688            $form->setRegroupe('terrain_numero_complement','G','');
689            $form->setRegroupe('rivoli','G','');
690            $form->setRegroupe('terrain_adresse','G','');
691            $form->setRegroupe('terrain_adresse_complement','G','');
692            $form->setRegroupe('terrain_cp','G','');
693            $form->setRegroupe('terrain_ville','G','');      
694            $form->setRegroupe('terrain_surface','G',_('surface'),'');// $this->aff_surface);
695            $form->setRegroupe('terrain_surface_calcul','F','');
696            
697            // localisation
698            $form->setRegroupe('parcelle','D',_('localisation'), $this->aff_localisation);
699            $form->setRegroupe('pos','G','');
700            $form->setRegroupe('sig','F','');
701            if($maj==1){
702                $form->setRegroupe('sig','G','');
703                $form->setRegroupe('geom','F','');
704            }
705            
706            // description
707            $form->setRegroupe('batiment_nombre','D',_('statistique'), $this->aff_description);
708            $form->setRegroupe('logement_nombre','G','');
709            $form->setRegroupe('hauteur','G','');
710            $form->setRegroupe('piece_nombre','G','');        
711            $form->setRegroupe('shon','G','');
712            $form->setRegroupe('shon_calcul','G','');
713            $form->setRegroupe('shob','G','');
714            $form->setRegroupe('lot','F','');
715            
716            $form->setRegroupe('description','D',_('description').' '._('servitude'), $this->aff_amenagement);
717            $form->setRegroupe('servitude','F','');
718            
719            // amenagement
720            $form->setRegroupe('amenagement','D',_('Amenagement'), $this->aff_amenagement);
721            $form->setRegroupe('parcelle_lot','G','');
722            $form->setRegroupe('parcelle_lot_lotissement','F','');
723            
724            
725            // temp
726        }
727    
728    
729    
730        /* =============================================================
731        * fonction trigger relative a la connexion SIG
732        * $sig = 1 dans dyn/var.inc
733        * ===============================================================
734        */
735    
736        function triggerajouterapres($id,&$db,$val,$DEBUG) {
737            $this->sig_parametre($db);
738            $id=$this->valF['dossier']; // id n est pas valorise en ajout
739            if($this->sig==1 and $val['sig']!='Oui'){
740                if($val['parcelle']!=''or $val['parcelle_lot']!='')
741                    $this->sig_interne($id,$db,$val,$DEBUG);
742                else
743                    $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");    
744            }
745        }
746    
747        function triggermodifierapres($id,&$db,$val,$DEBUG) {
748            $this->sig_parametre($db);
749            // si la parcelle est changée
750            if(($this->sig==1 and $val['sig']!='Oui' and ($val['parcelle']!=$val['parcelle_archive'])
751               or $val['parcelle_lot']!=$val['parcelle_lot_archive'])){ // parcelle_lot_archive
752                if($val['parcelle']!='' or $val['parcelle_lot']!='')
753                    $this->sig_interne($this->valF['dossier'],$db,$val,$DEBUG);
754                else{
755                    if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante
756                    $sql ="update ".DB_PREFIXE."dossier set geom = null, servitude = '', pos= '' where dossier ='".$id."'";
757                    $res = $db -> query($sql);
758                    $this->addToLog("requete trigger modifier parcelle vide -> maj pos et servitude :".$sql, VERBOSE_MODE);
759                    if (database :: isError($res))
760                        die($res->getMessage()."erreur ".$sql);
761                }
762                    $this->addToMessage("<br>"._("Parcelle ou parcelle_lot non renseignee dans dossier")." ".$id." <br>");    
763                }
764           }
765        }
766    
767        function sig_parametre(&$db){
768            if (file_exists ("../dyn/var.inc"))
769                include ("../dyn/var.inc");
770            if(!isset($sig))
771                $this->sig=0;
772            else
773                $this->sig=1;
774            if(!isset($auto_pos))
775                $this->auto_pos=0;
776            else
777                $this->auto_pos=$auto_pos;
778            if(!isset($auto_servitude_surfacique))
779                $this->auto_servitude_surfacique=0;
780            else
781                $this->auto_servitude_surfacique=$auto_servitude_surfacique;
782            if(!isset($auto_servitude_ligne))
783                $this->auto_servitude_ligne=0;
784            else
785                $this->auto_servitude_ligne=$auto_servitude_ligne;
786            if(!isset($auto_servitude_point))
787                $this->auto_servitude_point=0;
788            else
789                $this->auto_servitude_point=$auto_servitude_point;
790            if(!isset($auto_parcelle))
791                $this->auto_parcelle=0;
792            else
793                $this->auto_parcelle=$auto_parcelle;
794            if(!isset($auto_parcelle_lot))
795                $this->auto_parcelle_lot=0;
796            else
797                $this->auto_parcelle_lot=$auto_parcelle_lot;
798            $this->addToLog("trigger valeur sig :".$this->sig, VERBOSE_MODE);
799            $this->addToLog("trigger valeur auto_pos :". $this->auto_pos, VERBOSE_MODE);
800            $this->addToLog("trigger valeur auto_servitude_surfacique :".$this->auto_servitude_surfacique, VERBOSE_MODE);
801            $this->addToLog("trigger valeur auto_servitude_ligne :". $this->auto_servitude_ligne, VERBOSE_MODE);
802            $this->addToLog("trigger valeur auto_servitude_point :".$this->auto_servitude_point, VERBOSE_MODE);
803            $this->addToLog("trigger valeur auto_parcelle :". $this->auto_parcelle, VERBOSE_MODE);
804            $this->addToLog("trigger valeur auto_parcelle_lot :".$this->auto_parcelle_lot, VERBOSE_MODE);
805        }
806    
807    
808        function sig_interne($id,&$db,$val,$DEBUG){
809            // Strategy interne dans var.inc
810            // si la parcelle existe, il est cree un point au milieu de la parcelle
811            // de maniere automatique
812            $geom='';
813            $parcelle=$val["parcelle"];
814            $projection = $db -> getOne("select srid from geometry_columns where f_table_name='dossier'");
815            if($this->auto_parcelle==1  and $val["parcelle"]!=''){
816                $sql= "select astext(centroid(geom)) from ".DB_PREFIXE."parcelle where parcelle ='".$val["parcelle"]."'";
817                $this->addToLog("recherche centroid parcelle :".$sql, VERBOSE_MODE);
818                $geom = $db -> getOne($sql);
819                if (database :: isError($geom))die($res->getMessage()."erreur ".$sql);
820            }
821            if($geom=='' and $this->auto_parcelle_lot==1 and $val["parcelle_lot"]!=''){ // lot
822                $sql= "select astext(centroid(geom)) from ".DB_PREFIXE."parcelle_lot where parcelle_lot ='".$val["parcelle_lot"]."'";
823                $this->addToLog("recherche centroid parcelle lot :".$sql, VERBOSE_MODE);
824                $geom = $db -> getOne($sql);
825                if (database :: isError($geom))die($res->getMessage()."erreur ".$sql);
826                $parcelle=$val["parcelle_lot"]." ".$val["parcelle_lot_lotissement"];
827            }
828            if($geom!=''){ // la parcelle est exitante dans la table ou vue parcelle
829                $sql ="update ".DB_PREFIXE."dossier set geom =geometryfromtext('".$geom."', ".$projection." ) where dossier ='".$id."'";
830                $this->addToLog("sig_interne maj geom  :".$sql, VERBOSE_MODE);    
831                $res = $db -> query($sql);
832                if (database :: isError($res)) die($res->getMessage()."erreur ".$sql);
833                $this->addToMessage(""._("centroid de parcelle calcule")." ".$parcelle." ");
834                if($this->auto_pos==1) // recherche du pos
835                    $this->calcul_auto_pos($id,$db,$geom,$projection);
836                if($this->auto_servitude_surfacique==1) // recherche de servitude surfacique
837                    $this->calcul_auto_servitude_surfacique($id,$db,$geom,$projection);
838                if($this->auto_servitude_ligne==1) // recherche de servitude ligne
839                    $this->calcul_auto_servitude_ligne($id,$db,$geom,$projection);
840                if($this->auto_servitude_point==1) // recherche de servitude point
841                    $this->calcul_auto_servitude_point($id,$db,$geom,$projection);
842                $temp=strtr($this->servitude,"'"," "); // enleve le '
843                $sql1 ="update ".DB_PREFIXE."dossier set servitude = '".$temp."' where dossier = '".$id."'";
844                $res1 = $db -> query($sql1);
845                $this->addToLog("maj servitudes :".$sql1, VERBOSE_MODE);
846                if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);
847            }else{ // parcelle inexistante //***
848                if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante
849                    $sql ="update ".DB_PREFIXE."dossier set geom = null, servitude = '', pos= '' where dossier ='".$id."'";
850                    $res = $db -> query($sql);
851                    $this->addToLog("requete sig_interne maj parcelle inexistante :".$sql, VERBOSE_MODE);
852                    if (database :: isError($res))
853                        die($res->getMessage()."erreur ".$sql);
854                }
855                $this->addToMessage("<br> parcelle ".$parcelle." "._("inexistante")." ".$id."");
856            }
857        }
858    
859        function calcul_auto_pos($id,&$db,$geom,$projection){
860            // recherche du pos automatique
861            $sql="select pos from ".DB_PREFIXE."pos  WHERE ST_contains(geom,  geometryfromtext('".$geom."', ".$projection."))";
862            $pos = $db -> getOne($sql);
863            $this->addToLog("recherche auto_pos :".$sql, VERBOSE_MODE);
864            if($pos!=''){
865                $sql1 ="update ".DB_PREFIXE."dossier set pos = '".$pos."' where dossier = '".$id."'";
866                $res1 = $db -> query($sql1);
867                $this->addToLog("maj auto_pos :".$sql1, VERBOSE_MODE);
868                if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);
869                $this->addToMessage("<br>"._("POS/PLU")." : ".$pos."");
870            }else{
871                $this->addToMessage("<br>"._("POS/PLU non trouve")." ".$id."");
872            }
873        }
874    
875        function calcul_auto_servitude_surfacique($id,&$db,$geom,$projection){
876            // recherche servitude surfacique
877            $sql="select * from ".DB_PREFIXE."servitude_surfacique WHERE ST_contains(geom,  geometryfromtext('".$geom."', ".$projection."))";
878            $res=$db->query($sql);
879            if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
880            $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);
881            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
882                $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);
883                $this->servitude.="  [".$row['libelle']."] ".$row['observation']." - ";
884           }
885        }
886    
887        function calcul_auto_servitude_ligne($id,&$db,$geom,$projection){
888            // recherche servitude ligne
889            $sql="select * from ".DB_PREFIXE."servitude_ligne WHERE ST_contains(ST_buffer(geom, perimetre),  geometryfromtext('".$geom."', ".$projection."))";
890            $res=$db->query($sql);
891            if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
892            $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);
893            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
894                $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);
895                $this->servitude.="  [".$row['libelle']."] ".$row['observation']." - ";
896           }
897        }
898    
899        function calcul_auto_servitude_point($id,&$db,$geom,$projection){
900            // recherche servitude point
901            $sql="select libelle,observation, perimetre, distance(geom, geometryfromtext('".$geom."', ".$projection.")) as distance from ".
902                DB_PREFIXE."servitude_point WHERE distance(geom,  geometryfromtext('".$geom."', ".$projection."))<perimetre";
903            $res=$db->query($sql);
904            if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
905            $this->addToLog("requete  :".$sql." executee ", VERBOSE_MODE);
906            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
907                $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']." a ".round($row['distance'],2)." m ");
908                $this->servitude.="  [".$row['libelle']."] ".$row['observation']." a ".round($row['distance'],2)." m - ";
909           }
910        }
911    
912    
913  }// fin classe  }// fin classe
914  ?>  ?>

Legend:
Removed from v.3  
changed lines
  Added in v.369

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26