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

Annotation of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1785 - (hide annotations)
Wed Apr 24 16:10:22 2013 UTC (11 years, 9 months ago) by nhaye
File size: 21713 byte(s)
Mise à jour des commentaires et mise page du code

1 fraynaud 178 <?php
2 fmichon 1515 /**
3 nhaye 1785 * Ce script permet de générer un document type texte contenant
4     * la liste de toutes les demandes d'autorisation dd'occupation de droit du sol
5     * formulées entre deux dates.
6 fmichon 1515 *
7     * @package openfoncier
8     * @version SVN : $Id$
9     */
10    
11 nhaye 1785 // Appel des classes
12 fraynaud 178 require_once "../obj/utils.class.php";
13     require_once "../app/sitadel.class.php";
14 fraynaud 184 require_once "sitadel.inc";
15 fmichon 380 $f = new utils(NULL, "export_sitadel", _("export SITADEL"), "ico_reqmo.png", "export");
16 nhaye 1785
17 fraynaud 178 /**
18     * Description de la page
19     */
20     $description = _("Cette page vous permet de Transmettre les dossiers suivant la procedure SITADEL");
21     $f->displayDescription($description);
22 fraynaud 184
23 nhaye 1785 // 1ere étape : affichage du formulaire permettant le choix d'un interval de date
24     // ainsi que l'ordre
25     if (empty($_POST)) {
26     echo "<form method=\"POST\" action=\"sitadel.php\" name=f1>";
27     // champ date debut
28 fraynaud 178 echo " "._("debut")." ";
29     echo "<input type='text' name='datedebut' id=\"datedebut\" value=\"";
30     echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />";
31 nhaye 1785 // champ date fin
32 fraynaud 178 echo " "._("fin")." ";
33     echo "<input type='text' name='datefin' id=\"datefin\" value=\"";
34     echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />";
35 nhaye 1785 // numero d'ordre d'envoi
36     echo " "._("Numero d'ordre d'envoi")." : "."<select name='numero'>";
37     for ($i = 1; $i < 11; $i++) {
38 fraynaud 178 echo "<option value ='".$i."'>".$i."</option>";
39     }
40     echo "</select>";
41     echo "<br><br><input type='submit' value='export SITADEL'>";
42 nhaye 1785 echo "</form>";
43     } else { // Traitement après validation du formulaire
44    
45     // init de la valeur d'erreur
46 fraynaud 178 $correct=true;
47 nhaye 1785
48     // XXX
49 fraynaud 193 $longueurenregistrement= 0 ;
50 nhaye 1785
51     // XXX
52 fraynaud 193 $t10 = "||||||||||"; // 10 |
53 nhaye 1785
54     // Initialisation des dates de début et de fin
55 fraynaud 193 $datedebut ='';
56     $datefin='';
57 nhaye 1785
58     // Traitement des erreurs
59     if ($_POST["datedebut"] == "") {
60 fraynaud 190 $correct=false;
61 nhaye 1785 } else {
62 fraynaud 190 $datedebut = substr($_POST["datedebut"],6,4).
63     "-".substr($_POST["datedebut"],3,2)."-".
64     substr($_POST["datedebut"],0,2);
65 nhaye 1785 }
66     if ($_POST["datefin"] == "") {
67 fraynaud 190 $correct=false;
68 nhaye 1785 } else {
69 fraynaud 190 $datefin = substr($_POST["datefin"],6,4).
70     "-".substr($_POST["datefin"],3,2)."-".
71     substr($_POST["datefin"],0,2);
72 nhaye 1785 }
73 fraynaud 178 if ($correct==true){ // ***
74 nhaye 1785 // Requête permettant de lister tous les dossiers de l'export
75     $sql= "SELECT * from ".DB_PREFIXE."dossier";
76 nhaye 1138 $sql.= " INNER JOIN ".DB_PREFIXE."dossier_autorisation
77     ON dossier.dossier_autorisation=dossier_autorisation.dossier_autorisation
78     INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
79     ON dossier_autorisation.dossier_autorisation_type_detaille
80     = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille";
81 nhaye 1785 $sql.= " WHERE (dossier_autorisation_type_detaille.code='PCI'
82 nhaye 1138 or dossier_autorisation_type_detaille.code='PCA'
83     or dossier_autorisation_type_detaille.code = 'PD'
84     or dossier_autorisation_type_detaille.code = 'PA'
85     or dossier_autorisation_type_detaille.code = 'DP')";
86 nhaye 1650 $sql.= " AND ((dossier.date_depot >='".$datedebut."' AND dossier.date_depot<='".$datefin."')";
87     $sql.= " OR (dossier.date_decision>='".$datedebut."' AND dossier.date_decision<='".$datefin."')";
88     $sql.= " OR (dossier.date_chantier>='".$datedebut."' AND dossier.date_chantier<='".$datefin."'))";
89     $sql.= " order by dossier.date_depot";
90 fraynaud 178 $res = $f->db -> query ($sql);
91     $f->isDatabaseError($res);
92 fraynaud 190 $export="";
93 fraynaud 178 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
94 nhaye 1785 // initialisation de la classe permettant la mise en forme de chaque ligne de l'export
95 fraynaud 187 $g = new sitadel($row['dossier']);
96     $g->row=$row;
97     // sitadel
98     $g->val=$val;
99 nhaye 1785 //
100 fraynaud 187 // parametre
101 nhaye 1785 // $sql = "select parametre, valeur from ".DB_PREFIXE."statistique where dossier ='".$row['dossier']."'";
102     // $res1 = $f->db -> query ($sql);
103     // $f->isDatabaseError($res1);
104     // while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){
105     // $g->parametre[$row1['parametre']]=$row1['valeur'];
106     // }
107 fraynaud 187 $departement =$f->collectivite["departement"];
108     $commune =$f->collectivite["commune"];
109     $region =$f->collectivite["region"];
110     // depot
111     $depot="";
112 nhaye 1785
113     // Tous les types autres que transfert ont comme mouvement le code DEPOT
114     // les décisions devant êtres précédées par le dépôt correspondant,
115     // les dossiers avec date de décision comprise dans l'interval fourni sont
116     // réaffichés en tant que dépôts (mouvement DEPOT)
117     if ($row['types'] != 'Transfert'
118 fraynaud 190 and (($row['date_depot'] >= $datedebut
119 nhaye 1785 and $row['date_depot'] <= $datefin)
120 fraynaud 190 or ($row['date_decision'] >= $datedebut
121 nhaye 1785 and $row['date_decision'] <= $datefin))) {
122 fraynaud 193 $depot.=$g->entete("DEPOT",$departement,$commune,$pf_departement);
123 fraynaud 187 $depot.=$g->etatcivil();
124     $depot.=$g->adresse();
125     $depot.=$g->delegataire();
126     $depot.=$g->meltel($row['types']);
127     $depot.=$g->adresse_terrain();
128     $depot.=$g->parcelle();
129     // ===========================
130     // contrat maison individuelle
131     // ===========================
132     // sitadel : contrat|
133     // openfoncier : non renseigne
134     $depot.= $g->p('contrat')."|";
135     // ==========
136     // architecte
137     // ==========
138     // sitadel : architecte|
139     // openfoncier : architecte >0
140     if($row['architecte']>0)
141     $depot.= "1|";
142     else
143     $depot.= "0|";
144     // =====================
145     // utilisation data cnil
146     // ======================
147     // sitadel : cnil
148     // openfoncier : non renseigne
149     $depot.= $g->p('cnil');
150     // fin d enregistrement depot
151     $depot.="\n";
152 fraynaud 178 }
153 fraynaud 187
154 nhaye 1785 // Seuls les dossier de type transfert ont comme mouvement le code TRANSFERT
155 fraynaud 187 $transfert ="";
156 fraynaud 190 if($row['types']=='Transfert'
157     and $row['date_depot'] >= $datedebut
158     and $row['date_depot']<=$datefin){
159 fraynaud 193 $transfert.=$g->entete("TRANSFERT",$departement,$commune,$pf_departement);
160 fraynaud 187 $transfert.=$g->etatcivil();
161     $transfert.=$g->adresse();
162     $transfert.=$g->meltel($row['types']);
163     $transfert.="\n";
164 fraynaud 178 }
165 fraynaud 187
166    
167 nhaye 1785 // Une ligne de mouvement DECISION est insérée après chaque ligne
168     // de mouvement DEPOT
169 fraynaud 187 $decision="";
170 nhaye 1785 if ($row['types'] != 'Modificatif'
171     and $row['types'] != 'Transfert'
172 fraynaud 200 and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin)
173 nhaye 1785 or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))) {
174 fraynaud 187 $avis_sitadel="";
175     $avis_sitadel_motif="";
176     // enregistrement decision dans tous les cas
177 fraynaud 193 $decision.=$g->entete("DECISION",$departement,$commune,$pf_departement);
178 fraynaud 187 //if ($row['date_decision']== '0000-00-00'
179     // or !isset($row['date_decision'])){
180 fraynaud 190 //if(isset($row['date_decision']) and $row['date_decision']!=""){
181 nhaye 1785 // avis_sitadel et avis_sitadel_motif
182     if($row['avis_decision'] != '') {
183     $avis_sitadel = "0";
184     $avis_sitadel_motif="0" ;
185     $sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis_decision where avis_decision ='".
186     $row['avis_decision']."'";
187     $res1 = $f->db -> query ($sql);
188     $f->isDatabaseError($res1);
189     while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)) {
190     $avis_sitadel = $row1['sitadel'];
191     $avis_sitadel_motif = $row1['sitadel_motif'];
192     }
193     $decision.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure);
194     } else {
195     $decision.= $g->decision_groupe1("0","",$structure); // pas d avis
196     //$decision.= "***".$t10.$t10.$t10.$t10.$t10.$t10.$t10.$t10."|||"; //83
197     }
198     // si la decision est favorable, envoi des informations statistiques
199     if ($avis_sitadel==2 or $avis_sitadel==4 or $avis_sitadel==5) {
200     // si decision favorable, expresse ou tacite GROUPE 2
201     $decision.= $g->terrain();
202     $decision.= $g->amenagement();
203     if($row['travaux']!='') {
204     $sql= "select codelascot,libelle
205     from ".DB_PREFIXE."travaux where travaux=".$row['travaux'];
206     $res2 = $f->db -> query ($sql);
207     $f->isDatabaseError($res2);
208     $temp=$row['description'];
209     // enlever les RC
210     $temp = str_replace( chr(10), " ", $temp);
211     $temp = str_replace( chr(13), " ", $temp);
212     while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)) {
213     $travaux = $row2['libelle']." "; // ***
214     $lascot = $row2['codelascot'];
215 fraynaud 187 }
216 nhaye 1785 $travaux.=" ".$temp;
217     $decision.= $g->travaux($travaux,$lascot, $row['types']);
218 fraynaud 193 }
219 nhaye 1785 // $sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '".
220     // $row['dossier']."' order by destination";
221     // $res3 = $f->db -> query ($sql3);
222     // $f->isDatabaseError($res3);
223     // ***
224     $temp = array();
225     $shonant = array();
226     $shondem = array();
227     $shonanttr = array();
228     $shonprojtr = array();
229     $shoncr1 = array();
230     $shoncr2 = array();
231     // while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){
232     // // round(8.5, 0, PHP_ROUND_HALF_DOWN);
233     // if(isset($row3["shon_anterieure"]))
234     // $shonant[$row3['destination']]=round($row3["shon_anterieure"], 0);
235     // else
236     // $shonant[$row3['destination']]=0;
237     // if(isset($row3["shon_demolie"]))
238     // $shondem[$row3['destination']]=round($row3["shon_demolie"], 0);
239     // else
240     // $shondem[$row3['destination']]=0;
241     // if(isset($row3["shon_anterieure_supprimee"]))
242     // $shonanttr[$row3['destination']]=round($row3["shon_anterieure_supprimee"], 0);
243     // else
244     // $shonanttr[$row3['destination']]=0;
245     // if(isset($row3["shon_nouvelle_transformee"]))
246     // $shonprojtr[$row3['destination']]=round($row3["shon_nouvelle_transformee"], 0);
247     // else
248     // $shonprojtr[$row3['destination']]=0;
249     // if(isset($row3["shon_nouvelle"]))
250     // $shoncr1[$row3['destination']]=round($row3["shon_nouvelle"], 0);
251     // else
252     // $shoncr1[$row3['destination']]=0;
253     // if(isset($row3["shon_shob_transformee"]))
254     // $shoncr2[$row3['destination']]=round($row3["shon_shob_transformee"], 0);
255     // else
256     // $shoncr2[$row3['destination']]=0;
257    
258     // //$shonant[$row3['destination']]=$row3["shon_anterieure"];
259     // //$shondem[$row3['destination']]=$row3["shon_demolie"];
260     // //$shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"];
261     // //$shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"];
262     // //$shoncr1[$row3['destination']]=$row3["shon_nouvelle"];
263     // //$shoncr2[$row3['destination']]=$row3["shon_shob_transformee"];
264 fraynaud 322
265 nhaye 1785 // }
266     $decision.= $g->destination($shonant);
267     $decision.= $g->destination($shondem);
268     $decision.= $g->destination($shonanttr);
269     $decision.= $g->destination($shonprojtr);
270     $decision.= $g->destination($shoncr1);
271     $decision.= $g->destination($shoncr2);
272     $decision.= $g->descriptif($row['types']);
273     } else {// decision defavorable ou pas de decision
274     $decision.= $t10.$t10.$t10.$t10.$t10.$t10.$t10.$t10."|||"; //83 | + 12 | = 95 | pour 96 zones
275     }
276     $decision.="\n";
277 fraynaud 187 }
278    
279     // modificatif
280     $modificatif='';
281 nhaye 1785 if($row['types'] == 'Modificatif'
282 fraynaud 190 and $row['date_depot'] >= $datedebut
283 nhaye 1785 and $row['date_depot'] <= $datefin) {
284 fraynaud 193 $modificatif.=$g->entete("MODIFICATIF",$departement,$commune,$pf_departement);
285 fraynaud 187 if(isset($row['date_decision']) or $row['date_decision']==""){
286     // avis_sitadel et avis_sitadel_motif
287 vpihour 510 if($row['avis_decision']!=''){
288 fraynaud 187 $avis_sitadel = 0;
289     $avis_sitadel_motif=0 ;
290 vpihour 510 $sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis_decision where avis_decision ='".
291     $row['avis_decision']."'";
292 fraynaud 187 $res1 = $f->db -> query ($sql);
293     $f->isDatabaseError($res1);
294     while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){
295     $avis_sitadel = $row1['sitadel'];
296     $avis_sitadel_motif = $row1['sitadel_motif'];
297     }
298 fraynaud 200 $modificatif.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure);
299 fraynaud 178 }
300 fraynaud 187 // si la decision est favorable, envoi des informations statistiques
301     if($avis_sitadel==2 or $avis_sitadel==4
302     or $avis_sitadel==5){
303     // si decision favorable, expresse ou tacite GROUPE 2
304     $modificatif.=$g->adresse_terrain(); //***
305     $modificatif.=$g->parcelle(); //***
306     $modificatif.=$g->terrain(); //***
307 fraynaud 259 // enlever les RC
308     $temp=$row['description'];
309     $temp = str_replace( chr(10), " ", $temp);
310     $temp = str_replace( chr(13), " ", $temp);
311 fraynaud 187 if($row['travaux']!=''){
312     $sql= "select codelascot,libelle
313 fraynaud 267 from ".DB_PREFIXE."travaux where travaux=".$row['travaux'];
314 fraynaud 187 $res2 = $f->db -> query ($sql);
315     $f->isDatabaseError($res2);
316     while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){
317 fraynaud 258 $travaux = $row2['libelle']." ".$row['description']; // ***;
318 fraynaud 187 $lascot = $row2['codelascot'];
319     }
320 fraynaud 259 $travaux.=" ".$temp;
321 fraynaud 187 $modificatif.= $g->travaux($travaux,$lascot, $row['types']);
322     }
323 fraynaud 258 $sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '".
324 fraynaud 187 $row['dossier']."' order by destination";
325     $res3 = $f->db -> query ($sql3);
326     $f->isDatabaseError($res3);
327     $temp = array();
328     while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){
329     $shonant[$row3['destination']]=$row3["shon_anterieure"];
330     $shondem[$row3['destination']]=$row3["shon_demolie"];
331     $shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"];
332     $shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"];
333     $shoncr1[$row3['destination']]=$row3["shon_nouvelle"];
334     $shoncr2[$row3['destination']]=$row3["shon_shob_transformee"];
335     }
336     $modificatif.= $g->destination($shonant);
337     $modificatif.= $g->destination($shondem);
338     $modificatif.= $g->destination($shonanttr);
339     $modificatif.= $g->destination($shonprojtr);
340     $modificatif.= $g->destination($shoncr1);
341     $modificatif.= $g->destination($shoncr2);
342    
343     $modificatif.= $g->descriptif($row['types']);
344     $modificatif.="\n";
345     }
346     }
347     }
348 fraynaud 178
349 fraynaud 200 // suivi DOC
350 fraynaud 187 $suivi1="";
351 fraynaud 190 if($row['date_chantier'] >= $datedebut and $row['date_chantier']<=$datefin){
352 fraynaud 193 $suivi1.=$g->entete("SUIVI",$departement,$commune,$pf_departement);
353 fraynaud 190 $suivi1.=$g->chantier();
354     $suivi1.="\n";
355     }
356 fraynaud 187 // suivi DAT
357     $suivi2="";
358 fraynaud 190 if($row['date_achevement'] >= $datedebut and $row['date_achevement']<=$datefin){
359 fraynaud 193 $suivi2.=$g->entete("SUIVI",$departement,$commune,$pf_departement);
360 fraynaud 190 $suivi2.=$g->achevement();
361     $suivi2.="\n";
362 fraynaud 178 }
363 fraynaud 190 // export
364     $export.=$depot.$decision.$transfert.$modificatif.$suivi1.$suivi2;
365 fraynaud 187 } // fin while
366 fraynaud 190 // ***************************************
367     // entete de l enregistrement page 8 et 9
368     // ***************************************
369     // numero
370 nhaye 1197 // $numero= $db -> nextId('sitadel');
371     $departement =$f->collectivite["departement"];
372     $commune =$f->collectivite["commune"];
373     $region =$f->collectivite["region"];
374 fraynaud 190 $numero=$_POST["numero"];
375 fraynaud 193 $fichiertransmis = date('ymj').$pf_departement.$departement.$commune;
376 fraynaud 190 $longueurenregistrement= 0 ; // a calculer *** enregistrement le plus long
377 fraynaud 193 $entete = "SITADEL|".$pf_departement.$departement."|".$commune."|".$region."|".$fichiertransmis."|".$numero."|";
378 fraynaud 190 // calcul enregistrement le plus long
379 fmichon 323 if(DBCHARSET=='UTF8'){
380 fraynaud 190 $export=utf8_decode($export);
381     }
382     // nombreenrgistremment et longueurenregistrement
383     $nbenr = explode("\n",$export);
384     $tmp=array();
385     $cpt=0;
386     for($i=0;$i<sizeof($nbenr);$i++){
387     // mb_strlen( variable,encoding) PHP 4 >= 4.0.6, PHP 5
388 vpihour 510 // Le param�tre encoding est l'encodage des caract�res.
389     // S'il est omis, l'encodage de caracteres interne sera utilis�.
390 fraynaud 190 $tmp[$i] = strlen($nbenr[$i]);
391     //echo strlen($nbenr[$i])." ".$nbenr[$i]."<br>";
392     $cpt++;
393     }
394     $longueurenregistrement=max($tmp);
395     $nombreenregistrement=$cpt; // + entete
396     // Date de modification
397     $datemodification = date('y').str_pad (DATE('m'), 2, "0", STR_PAD_LEFT).str_pad (DATE('j'), 2, "0", STR_PAD_LEFT);
398     // export
399     $version = substr($version,0,8);
400 fraynaud 200 $entete.= $longueurenregistrement."|".$datemodification."|".
401     $nombreenregistrement."|openFoncier|".$version."\n";
402 fraynaud 190 $export=$entete.$export;
403 fraynaud 193 // $str = htmlentities($str, ENT_QUOTES);
404 fraynaud 190 // ecriture des fichiers en tmp
405     $fichier = "../tmp/SITADEL".substr($_POST["datedebut"],3,2).
406 fraynaud 322 "".substr($_POST["datedebut"],8,4)."";
407 fraynaud 190 $inf = fopen($fichier,"w");
408     fwrite($inf,$export);
409     fclose($inf);
410 fraynaud 200 echo "<br>"._("Fichier")." ".$fichier." "._("sauvegarde")."<br /><br /><br />";
411 fraynaud 190 // affichage
412     echo "<br /><br />Pour telecharger le fichier, cliquer ici : <a href=\"".$fichier."\" target=\"_blank\">";
413 fraynaud 322 echo "<img src=\"../app/img/ico_trace.png\" alt=\"Telecharger le fichier CNEN\" title=\"Telecharger le fichier Sitadel\" />";
414 fraynaud 200 echo "</a>"._("avec le bouton droit et enregistrer la cible du lien sous.")."<br /><br />";
415 nhaye 1785 if(DEBUG != "PRODUCTION_MODE"){
416 fraynaud 190 $affiche="";
417     $affiche= str_replace("\n","<br>",$export);
418     echo $affiche;
419     }
420 fraynaud 187 }else // correct = false
421 fraynaud 200 echo _("remplissez les 2 dates");
422 fraynaud 178 }//validation
423 fraynaud 200 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26