/[openfoncier]/trunk/app/sitadel.php
ViewVC logotype

Annotation of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 258 - (hide annotations)
Thu Dec 1 15:57:09 2011 UTC (13 years, 2 months ago) by fraynaud
File size: 18277 byte(s)
correction de bugs en schema



1 fraynaud 178 <?php
2 fraynaud 193 // $Id: sitadel.php,v 1.20 2010-11-15 14:50:40 fraynaud Exp $
3 fraynaud 178 /*
4     transfert de dossier à SITADEL
5     realisé ville arles par fr+jlb
6     voir parametrage trt/sitadel.inc
7     */
8     require_once "../obj/utils.class.php";
9     require_once "../app/sitadel.class.php";
10 fraynaud 184 require_once "../dyn/locales.inc.php";
11     require_once "../dyn/version.inc.php";
12     require_once "sitadel.inc";
13 fraynaud 178 $f = new utils(NULL, "export", _("export SITADEL"), "ico_reqmo.png", "export");
14     $f->addHTMLHeadJs(array("../js/script.js"));
15     // GET
16     if (isset ($_GET['validation'])){
17     $validation=$_GET['validation'];
18     }else{
19     $validation=0;
20     }
21     /**
22     * Description de la page
23     */
24     $description = _("Cette page vous permet de Transmettre les dossiers suivant la procedure SITADEL");
25     $f->displayDescription($description);
26     //controle
27     $DEBUG=1;
28 fraynaud 193 $t10 = "||||||||||"; // 10 |
29 fraynaud 184
30 fraynaud 178 // parametres collectivite
31     // =============================================================================
32     // validation = 0
33     // =============================================================================
34     if($validation==0){
35     $validation=1;
36     echo "<form method=\"POST\" action=\"sitadel.php?validation=".$validation."\" name=f1>";
37     echo " "._("debut")." ";
38     echo "<input type='text' name='datedebut' id=\"datedebut\" value=\"";
39     echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />";
40     echo " "._("fin")." ";
41     echo "<input type='text' name='datefin' id=\"datefin\" value=\"";
42     echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />";
43     echo " "._("Numero d ordre d envoi")." : "."<SELECT name='numero'>";
44     for($i=1;$i<11;$i++){
45     echo "<option value ='".$i."'>".$i."</option>";
46     }
47     echo "</select>";
48     echo "<br><br><input type='submit' value='export SITADEL'>";
49     echo "<br><br></form>";
50 fraynaud 187 }else{ // ===================== extraction =================================
51 fraynaud 178 $correct=true;
52 fraynaud 193 $longueurenregistrement= 0 ;
53     $t10 = "||||||||||"; // 10 |
54     $datedebut ='';
55     $datefin='';
56 fraynaud 190 if($_POST["datedebut"]=="")
57     $correct=false;
58     else
59     $datedebut = substr($_POST["datedebut"],6,4).
60     "-".substr($_POST["datedebut"],3,2)."-".
61     substr($_POST["datedebut"],0,2);
62     if($_POST["datefin"]=="")
63     $correct=false;
64     else
65     $datefin = substr($_POST["datefin"],6,4).
66     "-".substr($_POST["datefin"],3,2)."-".
67     substr($_POST["datefin"],0,2);
68 fraynaud 178 if ($correct==true){ // ***
69 fraynaud 187 // dossiers concernés
70 fraynaud 247 $sql= "select * from ".DB_PREFIXE."dossier";
71 fraynaud 187 $sql.= " where (nature='PC' or nature = 'PD' or nature = 'PA' or nature = 'DP')";
72 fraynaud 190 $sql.= " AND ((date_depot >='".$datedebut."' AND date_depot<='".$datefin."')";
73     $sql.= " OR (date_decision>='".$datedebut."' AND date_decision<='".$datefin."')";
74     $sql.= " OR (date_chantier>='".$datedebut."' AND date_chantier<='".$datefin."'))";
75     $sql.= " order by date_depot";
76 fraynaud 178 $res = $f->db -> query ($sql);
77     $f->isDatabaseError($res);
78 fraynaud 190 $export="";
79 fraynaud 178 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
80 fraynaud 187 // initialisation
81     $g = new sitadel($row['dossier']);
82     $g->row=$row;
83     // sitadel
84     $g->val=$val;
85     // parametre
86 fraynaud 247 $sql = "select parametre, valeur from ".DB_PREFIXE."statistique where dossier ='".$row['dossier']."'";
87 fraynaud 187 $res1 = $f->db -> query ($sql);
88     $f->isDatabaseError($res1);
89     while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){
90     $g->parametre[$row1['parametre']]=$row1['valeur'];
91     }
92     $departement =$f->collectivite["departement"];
93     $commune =$f->collectivite["commune"];
94     $region =$f->collectivite["region"];
95     // depot
96     $depot="";
97     // type different de transfert
98 fraynaud 190 if($row['types']!='Transfert'
99     and (($row['date_depot'] >= $datedebut
100     and $row['date_depot']<=$datefin)
101     or ($row['date_decision'] >= $datedebut
102     and $row['date_decision']<=$datefin))){
103 fraynaud 193 $depot.=$g->entete("DEPOT",$departement,$commune,$pf_departement);
104 fraynaud 187 $depot.=$g->etatcivil();
105     $depot.=$g->adresse();
106     $depot.=$g->delegataire();
107     $depot.=$g->meltel($row['types']);
108     $depot.=$g->adresse_terrain();
109     $depot.=$g->parcelle();
110     // ===========================
111     // contrat maison individuelle
112     // ===========================
113     // sitadel : contrat|
114     // openfoncier : non renseigne
115     $depot.= $g->p('contrat')."|";
116     // ==========
117     // architecte
118     // ==========
119     // sitadel : architecte|
120     // openfoncier : architecte >0
121     if($row['architecte']>0)
122     $depot.= "1|";
123     else
124     $depot.= "0|";
125     // =====================
126     // utilisation data cnil
127     // ======================
128     // sitadel : cnil
129     // openfoncier : non renseigne
130     $depot.= $g->p('cnil');
131     // fin d enregistrement depot
132     $depot.="\n";
133 fraynaud 178 }
134 fraynaud 187
135     // transfert
136     $transfert ="";
137 fraynaud 190 if($row['types']=='Transfert'
138     and $row['date_depot'] >= $datedebut
139     and $row['date_depot']<=$datefin){
140 fraynaud 193 $transfert.=$g->entete("TRANSFERT",$departement,$commune,$pf_departement);
141 fraynaud 187 $transfert.=$g->etatcivil();
142     $transfert.=$g->adresse();
143     $transfert.=$g->meltel($row['types']);
144     $transfert.="\n";
145 fraynaud 178 }
146 fraynaud 187
147    
148     //decision
149     // type different de modificatif
150     $decision="";
151 fraynaud 200 if($row['types']!='Modificatif'
152     and $row['types']!='Transfert'
153     and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin)
154     or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))){
155 fraynaud 187 $avis_sitadel="";
156     $avis_sitadel_motif="";
157     // enregistrement decision dans tous les cas
158 fraynaud 193 $decision.=$g->entete("DECISION",$departement,$commune,$pf_departement);
159 fraynaud 187 //if ($row['date_decision']== '0000-00-00'
160     // or !isset($row['date_decision'])){
161 fraynaud 190 //if(isset($row['date_decision']) and $row['date_decision']!=""){
162 fraynaud 187 // avis_sitadel et avis_sitadel_motif
163     if($row['avis']!=''){
164 fraynaud 190 $avis_sitadel = "0";
165     $avis_sitadel_motif="0" ;
166 fraynaud 258 $sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis where avis ='".
167 fraynaud 187 $row['avis']."'";
168     $res1 = $f->db -> query ($sql);
169     $f->isDatabaseError($res1);
170     while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){
171     $avis_sitadel = $row1['sitadel'];
172     $avis_sitadel_motif = $row1['sitadel_motif'];
173     }
174 fraynaud 200 $decision.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure);
175 fraynaud 193 }else{
176 fraynaud 200 $decision.= $g->decision_groupe1("0","",$structure); // pas d avis
177     //$decision.= "***".$t10.$t10.$t10.$t10.$t10.$t10.$t10.$t10."|||"; //83
178 fraynaud 193 }
179 fraynaud 187 // si la decision est favorable, envoi des informations statistiques
180     if($avis_sitadel==2 or $avis_sitadel==4
181     or $avis_sitadel==5){
182     // si decision favorable, expresse ou tacite GROUPE 2
183     $decision.= $g->terrain();
184     $decision.= $g->amenagement();
185     if($row['travaux']!=''){
186     $sql= "select codelascot,libelle
187 fraynaud 258 from ".DB_PREFIXE."travaux where travaux=".$row['travaux'];
188 fraynaud 187 $res2 = $f->db -> query ($sql);
189     $f->isDatabaseError($res2);
190 fraynaud 258 $temp=$row['description'];
191     // enlever les RC
192     $temp = str_replace( chr(10), " ", $temp);
193     $temp = str_replace( chr(13), " ", $temp);
194 fraynaud 187 while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){
195 fraynaud 258 $travaux = $row2['libelle']."*"; // ***
196 fraynaud 187 $lascot = $row2['codelascot'];
197     }
198 fraynaud 258 $travaux.=" ".$temp;
199 fraynaud 187 $decision.= $g->travaux($travaux,$lascot, $row['types']);
200     }
201 fraynaud 247 $sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '".
202 fraynaud 187 $row['dossier']."' order by destination";
203     $res3 = $f->db -> query ($sql3);
204     $f->isDatabaseError($res3);
205     $temp = array();
206     while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){
207     $shonant[$row3['destination']]=$row3["shon_anterieure"];
208     $shondem[$row3['destination']]=$row3["shon_demolie"];
209     $shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"];
210     $shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"];
211     $shoncr1[$row3['destination']]=$row3["shon_nouvelle"];
212     $shoncr2[$row3['destination']]=$row3["shon_shob_transformee"];
213     }
214     $decision.= $g->destination($shonant);
215     $decision.= $g->destination($shondem);
216     $decision.= $g->destination($shonanttr);
217     $decision.= $g->destination($shonprojtr);
218     $decision.= $g->destination($shoncr1);
219     $decision.= $g->destination($shoncr2);
220    
221     $decision.= $g->descriptif($row['types']);
222 fraynaud 200 }else // decision defavorable ou pas de decision
223     $decision.= $t10.$t10.$t10.$t10.$t10.$t10.$t10.$t10."|||"; //83 | + 12 | = 95 | pour 96 zones
224 fraynaud 187 $decision.="\n";
225     }
226    
227     // modificatif
228     $modificatif='';
229 fraynaud 190 if($row['types']=='Modificatif'
230     and $row['date_depot'] >= $datedebut
231     and $row['date_depot']<=$datefin){
232 fraynaud 193 $modificatif.=$g->entete("MODIFICATIF",$departement,$commune,$pf_departement);
233 fraynaud 187 if(isset($row['date_decision']) or $row['date_decision']==""){
234     // avis_sitadel et avis_sitadel_motif
235     if($row['avis']!=''){
236     $avis_sitadel = 0;
237     $avis_sitadel_motif=0 ;
238 fraynaud 247 $sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis where avis ='".
239 fraynaud 187 $row['avis']."'";
240     $res1 = $f->db -> query ($sql);
241     $f->isDatabaseError($res1);
242     while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){
243     $avis_sitadel = $row1['sitadel'];
244     $avis_sitadel_motif = $row1['sitadel_motif'];
245     }
246 fraynaud 200 $modificatif.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure);
247 fraynaud 178 }
248 fraynaud 187 // si la decision est favorable, envoi des informations statistiques
249     if($avis_sitadel==2 or $avis_sitadel==4
250     or $avis_sitadel==5){
251     // si decision favorable, expresse ou tacite GROUPE 2
252     $modificatif.=$g->adresse_terrain(); //***
253     $modificatif.=$g->parcelle(); //***
254     $modificatif.=$g->terrain(); //***
255     if($row['travaux']!=''){
256     $sql= "select codelascot,libelle
257 fraynaud 258 from ".DB_PREFIXE."travaux where ".DB_PREFIXE."travaux=".$row['travaux'];
258 fraynaud 187 $res2 = $f->db -> query ($sql);
259     $f->isDatabaseError($res2);
260     while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){
261 fraynaud 258 $travaux = $row2['libelle']." ".$row['description']; // ***;
262 fraynaud 187 $lascot = $row2['codelascot'];
263     }
264     $modificatif.= $g->travaux($travaux,$lascot, $row['types']);
265     }
266 fraynaud 258 $sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '".
267 fraynaud 187 $row['dossier']."' order by destination";
268     $res3 = $f->db -> query ($sql3);
269     $f->isDatabaseError($res3);
270     $temp = array();
271     while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){
272     $shonant[$row3['destination']]=$row3["shon_anterieure"];
273     $shondem[$row3['destination']]=$row3["shon_demolie"];
274     $shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"];
275     $shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"];
276     $shoncr1[$row3['destination']]=$row3["shon_nouvelle"];
277     $shoncr2[$row3['destination']]=$row3["shon_shob_transformee"];
278     }
279     $modificatif.= $g->destination($shonant);
280     $modificatif.= $g->destination($shondem);
281     $modificatif.= $g->destination($shonanttr);
282     $modificatif.= $g->destination($shonprojtr);
283     $modificatif.= $g->destination($shoncr1);
284     $modificatif.= $g->destination($shoncr2);
285    
286     $modificatif.= $g->descriptif($row['types']);
287     $modificatif.="\n";
288     }
289     }
290     }
291 fraynaud 178
292 fraynaud 200 // suivi DOC
293 fraynaud 187 $suivi1="";
294 fraynaud 190 if($row['date_chantier'] >= $datedebut and $row['date_chantier']<=$datefin){
295 fraynaud 193 $suivi1.=$g->entete("SUIVI",$departement,$commune,$pf_departement);
296 fraynaud 190 $suivi1.=$g->chantier();
297     $suivi1.="\n";
298     }
299 fraynaud 187 // suivi DAT
300     $suivi2="";
301 fraynaud 190 if($row['date_achevement'] >= $datedebut and $row['date_achevement']<=$datefin){
302 fraynaud 193 $suivi2.=$g->entete("SUIVI",$departement,$commune,$pf_departement);
303 fraynaud 190 $suivi2.=$g->achevement();
304     $suivi2.="\n";
305 fraynaud 178 }
306 fraynaud 190 // export
307     $export.=$depot.$decision.$transfert.$modificatif.$suivi1.$suivi2;
308 fraynaud 187 } // fin while
309 fraynaud 190 // ***************************************
310     // entete de l enregistrement page 8 et 9
311     // ***************************************
312     // numero
313     // $numero= $db -> nextId('sitadel');
314     $numero=$_POST["numero"];
315 fraynaud 193 $fichiertransmis = date('ymj').$pf_departement.$departement.$commune;
316 fraynaud 190 $longueurenregistrement= 0 ; // a calculer *** enregistrement le plus long
317 fraynaud 193 $entete = "SITADEL|".$pf_departement.$departement."|".$commune."|".$region."|".$fichiertransmis."|".$numero."|";
318 fraynaud 190 // calcul enregistrement le plus long
319     if(CHARSET=='UTF8'){
320     $export=utf8_decode($export);
321     }
322     // nombreenrgistremment et longueurenregistrement
323     $nbenr = explode("\n",$export);
324     $tmp=array();
325     $cpt=0;
326     for($i=0;$i<sizeof($nbenr);$i++){
327     // mb_strlen( variable,encoding) PHP 4 >= 4.0.6, PHP 5
328     // Le paramètre encoding est l'encodage des caractères.
329     // S'il est omis, l'encodage de caracteres interne sera utilisé.
330     $tmp[$i] = strlen($nbenr[$i]);
331     //echo strlen($nbenr[$i])." ".$nbenr[$i]."<br>";
332     $cpt++;
333     }
334     $longueurenregistrement=max($tmp);
335     $nombreenregistrement=$cpt; // + entete
336     // Date de modification
337     $datemodification = date('y').str_pad (DATE('m'), 2, "0", STR_PAD_LEFT).str_pad (DATE('j'), 2, "0", STR_PAD_LEFT);
338     // export
339     $version = substr($version,0,8);
340 fraynaud 200 $entete.= $longueurenregistrement."|".$datemodification."|".
341     $nombreenregistrement."|openFoncier|".$version."\n";
342 fraynaud 190 $export=$entete.$export;
343 fraynaud 193 // $str = htmlentities($str, ENT_QUOTES);
344 fraynaud 190 // ecriture des fichiers en tmp
345     $fichier = "../tmp/SITADEL".substr($_POST["datedebut"],3,2).
346     "".substr($_POST["datedebut"],8,4)."_test";
347     $inf = fopen($fichier,"w");
348     fwrite($inf,$export);
349     fclose($inf);
350 fraynaud 200 echo "<br>"._("Fichier")." ".$fichier." "._("sauvegarde")."<br /><br /><br />";
351 fraynaud 190 // affichage
352     echo "<br /><br />Pour telecharger le fichier, cliquer ici : <a href=\"".$fichier."\" target=\"_blank\">";
353     echo "<img src=\"../app/img/ico_trace.png\" alt=\"Telecharger le fichier CNEN\" title=\"Telecharger le fichier CNEN\" />";
354 fraynaud 200 echo "</a>"._("avec le bouton droit et enregistrer la cible du lien sous.")."<br /><br />";
355 fraynaud 190 if($DEBUG==1){
356     $affiche="";
357     $affiche= str_replace("\n","<br>",$export);
358     echo $affiche;
359     }
360 fraynaud 187 }else // correct = false
361 fraynaud 200 echo _("remplissez les 2 dates");
362 fraynaud 178 }//validation
363 fraynaud 200 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26