1 |
<?php |
2 |
// $Id: sitadel.php,v 1.20 2010-11-15 14:50:40 fraynaud Exp $ |
3 |
/* |
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 |
require_once "../dyn/locales.inc.php"; |
11 |
require_once "../dyn/version.inc.php"; |
12 |
require_once "sitadel.inc"; |
13 |
$f = new utils(NULL, "export_sitadel", _("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 |
$t10 = "||||||||||"; // 10 | |
29 |
|
30 |
// 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 |
}else{ // ===================== extraction ================================= |
51 |
$correct=true; |
52 |
$longueurenregistrement= 0 ; |
53 |
$t10 = "||||||||||"; // 10 | |
54 |
$datedebut =''; |
55 |
$datefin=''; |
56 |
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 |
if ($correct==true){ // *** |
69 |
// dossiers concern�s |
70 |
$sql= "select * from ".DB_PREFIXE."dossier"; |
71 |
$sql.= " INNER JOIN ".DB_PREFIXE."dossier_autorisation |
72 |
ON dossier.dossier_autorisation=dossier_autorisation.dossier_autorisation |
73 |
INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille |
74 |
ON dossier_autorisation.dossier_autorisation_type_detaille |
75 |
= dossier_autorisation_type_detaille.dossier_autorisation_type_detaille"; |
76 |
$sql.= " where (dossier_autorisation_type_detaille.code='PCI' |
77 |
or dossier_autorisation_type_detaille.code='PCA' |
78 |
or dossier_autorisation_type_detaille.code = 'PD' |
79 |
or dossier_autorisation_type_detaille.code = 'PA' |
80 |
or dossier_autorisation_type_detaille.code = 'DP')"; |
81 |
$sql.= " AND ((date_depot >='".$datedebut."' AND date_depot<='".$datefin."')"; |
82 |
$sql.= " OR (date_decision>='".$datedebut."' AND date_decision<='".$datefin."')"; |
83 |
$sql.= " OR (date_chantier>='".$datedebut."' AND date_chantier<='".$datefin."'))"; |
84 |
$sql.= " order by date_depot"; |
85 |
$res = $f->db -> query ($sql); |
86 |
$f->isDatabaseError($res); |
87 |
$export=""; |
88 |
while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
89 |
// initialisation |
90 |
$g = new sitadel($row['dossier']); |
91 |
$g->row=$row; |
92 |
// sitadel |
93 |
$g->val=$val; |
94 |
// parametre |
95 |
$sql = "select parametre, valeur from ".DB_PREFIXE."statistique where dossier ='".$row['dossier']."'"; |
96 |
$res1 = $f->db -> query ($sql); |
97 |
$f->isDatabaseError($res1); |
98 |
while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){ |
99 |
$g->parametre[$row1['parametre']]=$row1['valeur']; |
100 |
} |
101 |
$departement =$f->collectivite["departement"]; |
102 |
$commune =$f->collectivite["commune"]; |
103 |
$region =$f->collectivite["region"]; |
104 |
// depot |
105 |
$depot=""; |
106 |
// type different de transfert |
107 |
if($row['types']!='Transfert' |
108 |
and (($row['date_depot'] >= $datedebut |
109 |
and $row['date_depot']<=$datefin) |
110 |
or ($row['date_decision'] >= $datedebut |
111 |
and $row['date_decision']<=$datefin))){ |
112 |
$depot.=$g->entete("DEPOT",$departement,$commune,$pf_departement); |
113 |
$depot.=$g->etatcivil(); |
114 |
$depot.=$g->adresse(); |
115 |
$depot.=$g->delegataire(); |
116 |
$depot.=$g->meltel($row['types']); |
117 |
$depot.=$g->adresse_terrain(); |
118 |
$depot.=$g->parcelle(); |
119 |
// =========================== |
120 |
// contrat maison individuelle |
121 |
// =========================== |
122 |
// sitadel : contrat| |
123 |
// openfoncier : non renseigne |
124 |
$depot.= $g->p('contrat')."|"; |
125 |
// ========== |
126 |
// architecte |
127 |
// ========== |
128 |
// sitadel : architecte| |
129 |
// openfoncier : architecte >0 |
130 |
if($row['architecte']>0) |
131 |
$depot.= "1|"; |
132 |
else |
133 |
$depot.= "0|"; |
134 |
// ===================== |
135 |
// utilisation data cnil |
136 |
// ====================== |
137 |
// sitadel : cnil |
138 |
// openfoncier : non renseigne |
139 |
$depot.= $g->p('cnil'); |
140 |
// fin d enregistrement depot |
141 |
$depot.="\n"; |
142 |
} |
143 |
|
144 |
// transfert |
145 |
$transfert =""; |
146 |
if($row['types']=='Transfert' |
147 |
and $row['date_depot'] >= $datedebut |
148 |
and $row['date_depot']<=$datefin){ |
149 |
$transfert.=$g->entete("TRANSFERT",$departement,$commune,$pf_departement); |
150 |
$transfert.=$g->etatcivil(); |
151 |
$transfert.=$g->adresse(); |
152 |
$transfert.=$g->meltel($row['types']); |
153 |
$transfert.="\n"; |
154 |
} |
155 |
|
156 |
|
157 |
//decision |
158 |
// type different de modificatif |
159 |
$decision=""; |
160 |
if($row['types']!='Modificatif' |
161 |
and $row['types']!='Transfert' |
162 |
and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin) |
163 |
or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))){ |
164 |
$avis_sitadel=""; |
165 |
$avis_sitadel_motif=""; |
166 |
// enregistrement decision dans tous les cas |
167 |
$decision.=$g->entete("DECISION",$departement,$commune,$pf_departement); |
168 |
//if ($row['date_decision']== '0000-00-00' |
169 |
// or !isset($row['date_decision'])){ |
170 |
//if(isset($row['date_decision']) and $row['date_decision']!=""){ |
171 |
// avis_sitadel et avis_sitadel_motif |
172 |
if($row['avis_decision']!=''){ |
173 |
$avis_sitadel = "0"; |
174 |
$avis_sitadel_motif="0" ; |
175 |
$sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis_decision where avis_decision ='". |
176 |
$row['avis_decision']."'"; |
177 |
$res1 = $f->db -> query ($sql); |
178 |
$f->isDatabaseError($res1); |
179 |
while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){ |
180 |
$avis_sitadel = $row1['sitadel']; |
181 |
$avis_sitadel_motif = $row1['sitadel_motif']; |
182 |
} |
183 |
$decision.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure); |
184 |
}else{ |
185 |
$decision.= $g->decision_groupe1("0","",$structure); // pas d avis |
186 |
//$decision.= "***".$t10.$t10.$t10.$t10.$t10.$t10.$t10.$t10."|||"; //83 |
187 |
} |
188 |
// si la decision est favorable, envoi des informations statistiques |
189 |
if($avis_sitadel==2 or $avis_sitadel==4 |
190 |
or $avis_sitadel==5){ |
191 |
// si decision favorable, expresse ou tacite GROUPE 2 |
192 |
$decision.= $g->terrain(); |
193 |
$decision.= $g->amenagement(); |
194 |
if($row['travaux']!=''){ |
195 |
$sql= "select codelascot,libelle |
196 |
from ".DB_PREFIXE."travaux where travaux=".$row['travaux']; |
197 |
$res2 = $f->db -> query ($sql); |
198 |
$f->isDatabaseError($res2); |
199 |
$temp=$row['description']; |
200 |
// enlever les RC |
201 |
$temp = str_replace( chr(10), " ", $temp); |
202 |
$temp = str_replace( chr(13), " ", $temp); |
203 |
while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){ |
204 |
$travaux = $row2['libelle']." "; // *** |
205 |
$lascot = $row2['codelascot']; |
206 |
} |
207 |
$travaux.=" ".$temp; |
208 |
$decision.= $g->travaux($travaux,$lascot, $row['types']); |
209 |
} |
210 |
$sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '". |
211 |
$row['dossier']."' order by destination"; |
212 |
$res3 = $f->db -> query ($sql3); |
213 |
$f->isDatabaseError($res3); |
214 |
// *** |
215 |
$temp = array(); |
216 |
$shonant = array(); |
217 |
$shondem = array(); |
218 |
$shonanttr = array(); |
219 |
$shonprojtr = array(); |
220 |
$shoncr1 = array(); |
221 |
$shoncr2 = array(); |
222 |
while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){ |
223 |
// round(8.5, 0, PHP_ROUND_HALF_DOWN); |
224 |
if(isset($row3["shon_anterieure"])) |
225 |
$shonant[$row3['destination']]=round($row3["shon_anterieure"], 0); |
226 |
else |
227 |
$shonant[$row3['destination']]=0; |
228 |
if(isset($row3["shon_demolie"])) |
229 |
$shondem[$row3['destination']]=round($row3["shon_demolie"], 0); |
230 |
else |
231 |
$shondem[$row3['destination']]=0; |
232 |
if(isset($row3["shon_anterieure_supprimee"])) |
233 |
$shonanttr[$row3['destination']]=round($row3["shon_anterieure_supprimee"], 0); |
234 |
else |
235 |
$shonanttr[$row3['destination']]=0; |
236 |
if(isset($row3["shon_nouvelle_transformee"])) |
237 |
$shonprojtr[$row3['destination']]=round($row3["shon_nouvelle_transformee"], 0); |
238 |
else |
239 |
$shonprojtr[$row3['destination']]=0; |
240 |
if(isset($row3["shon_nouvelle"])) |
241 |
$shoncr1[$row3['destination']]=round($row3["shon_nouvelle"], 0); |
242 |
else |
243 |
$shoncr1[$row3['destination']]=0; |
244 |
if(isset($row3["shon_shob_transformee"])) |
245 |
$shoncr2[$row3['destination']]=round($row3["shon_shob_transformee"], 0); |
246 |
else |
247 |
$shoncr2[$row3['destination']]=0; |
248 |
|
249 |
//$shonant[$row3['destination']]=$row3["shon_anterieure"]; |
250 |
//$shondem[$row3['destination']]=$row3["shon_demolie"]; |
251 |
//$shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"]; |
252 |
//$shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"]; |
253 |
//$shoncr1[$row3['destination']]=$row3["shon_nouvelle"]; |
254 |
//$shoncr2[$row3['destination']]=$row3["shon_shob_transformee"]; |
255 |
|
256 |
} |
257 |
$decision.= $g->destination($shonant); |
258 |
$decision.= $g->destination($shondem); |
259 |
$decision.= $g->destination($shonanttr); |
260 |
$decision.= $g->destination($shonprojtr); |
261 |
$decision.= $g->destination($shoncr1); |
262 |
$decision.= $g->destination($shoncr2); |
263 |
|
264 |
$decision.= $g->descriptif($row['types']); |
265 |
}else // decision defavorable ou pas de decision |
266 |
$decision.= $t10.$t10.$t10.$t10.$t10.$t10.$t10.$t10."|||"; //83 | + 12 | = 95 | pour 96 zones |
267 |
$decision.="\n"; |
268 |
} |
269 |
|
270 |
// modificatif |
271 |
$modificatif=''; |
272 |
if($row['types']=='Modificatif' |
273 |
and $row['date_depot'] >= $datedebut |
274 |
and $row['date_depot']<=$datefin){ |
275 |
$modificatif.=$g->entete("MODIFICATIF",$departement,$commune,$pf_departement); |
276 |
if(isset($row['date_decision']) or $row['date_decision']==""){ |
277 |
// avis_sitadel et avis_sitadel_motif |
278 |
if($row['avis_decision']!=''){ |
279 |
$avis_sitadel = 0; |
280 |
$avis_sitadel_motif=0 ; |
281 |
$sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis_decision where avis_decision ='". |
282 |
$row['avis_decision']."'"; |
283 |
$res1 = $f->db -> query ($sql); |
284 |
$f->isDatabaseError($res1); |
285 |
while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){ |
286 |
$avis_sitadel = $row1['sitadel']; |
287 |
$avis_sitadel_motif = $row1['sitadel_motif']; |
288 |
} |
289 |
$modificatif.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure); |
290 |
} |
291 |
// si la decision est favorable, envoi des informations statistiques |
292 |
if($avis_sitadel==2 or $avis_sitadel==4 |
293 |
or $avis_sitadel==5){ |
294 |
// si decision favorable, expresse ou tacite GROUPE 2 |
295 |
$modificatif.=$g->adresse_terrain(); //*** |
296 |
$modificatif.=$g->parcelle(); //*** |
297 |
$modificatif.=$g->terrain(); //*** |
298 |
// enlever les RC |
299 |
$temp=$row['description']; |
300 |
$temp = str_replace( chr(10), " ", $temp); |
301 |
$temp = str_replace( chr(13), " ", $temp); |
302 |
if($row['travaux']!=''){ |
303 |
$sql= "select codelascot,libelle |
304 |
from ".DB_PREFIXE."travaux where travaux=".$row['travaux']; |
305 |
$res2 = $f->db -> query ($sql); |
306 |
$f->isDatabaseError($res2); |
307 |
while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){ |
308 |
$travaux = $row2['libelle']." ".$row['description']; // ***; |
309 |
$lascot = $row2['codelascot']; |
310 |
} |
311 |
$travaux.=" ".$temp; |
312 |
$modificatif.= $g->travaux($travaux,$lascot, $row['types']); |
313 |
} |
314 |
$sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '". |
315 |
$row['dossier']."' order by destination"; |
316 |
$res3 = $f->db -> query ($sql3); |
317 |
$f->isDatabaseError($res3); |
318 |
$temp = array(); |
319 |
while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){ |
320 |
$shonant[$row3['destination']]=$row3["shon_anterieure"]; |
321 |
$shondem[$row3['destination']]=$row3["shon_demolie"]; |
322 |
$shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"]; |
323 |
$shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"]; |
324 |
$shoncr1[$row3['destination']]=$row3["shon_nouvelle"]; |
325 |
$shoncr2[$row3['destination']]=$row3["shon_shob_transformee"]; |
326 |
} |
327 |
$modificatif.= $g->destination($shonant); |
328 |
$modificatif.= $g->destination($shondem); |
329 |
$modificatif.= $g->destination($shonanttr); |
330 |
$modificatif.= $g->destination($shonprojtr); |
331 |
$modificatif.= $g->destination($shoncr1); |
332 |
$modificatif.= $g->destination($shoncr2); |
333 |
|
334 |
$modificatif.= $g->descriptif($row['types']); |
335 |
$modificatif.="\n"; |
336 |
} |
337 |
} |
338 |
} |
339 |
|
340 |
// suivi DOC |
341 |
$suivi1=""; |
342 |
if($row['date_chantier'] >= $datedebut and $row['date_chantier']<=$datefin){ |
343 |
$suivi1.=$g->entete("SUIVI",$departement,$commune,$pf_departement); |
344 |
$suivi1.=$g->chantier(); |
345 |
$suivi1.="\n"; |
346 |
} |
347 |
// suivi DAT |
348 |
$suivi2=""; |
349 |
if($row['date_achevement'] >= $datedebut and $row['date_achevement']<=$datefin){ |
350 |
$suivi2.=$g->entete("SUIVI",$departement,$commune,$pf_departement); |
351 |
$suivi2.=$g->achevement(); |
352 |
$suivi2.="\n"; |
353 |
} |
354 |
// export |
355 |
$export.=$depot.$decision.$transfert.$modificatif.$suivi1.$suivi2; |
356 |
} // fin while |
357 |
// *************************************** |
358 |
// entete de l enregistrement page 8 et 9 |
359 |
// *************************************** |
360 |
// numero |
361 |
// $numero= $db -> nextId('sitadel'); |
362 |
$numero=$_POST["numero"]; |
363 |
$fichiertransmis = date('ymj').$pf_departement.$departement.$commune; |
364 |
$longueurenregistrement= 0 ; // a calculer *** enregistrement le plus long |
365 |
$entete = "SITADEL|".$pf_departement.$departement."|".$commune."|".$region."|".$fichiertransmis."|".$numero."|"; |
366 |
// calcul enregistrement le plus long |
367 |
if(DBCHARSET=='UTF8'){ |
368 |
$export=utf8_decode($export); |
369 |
} |
370 |
// nombreenrgistremment et longueurenregistrement |
371 |
$nbenr = explode("\n",$export); |
372 |
$tmp=array(); |
373 |
$cpt=0; |
374 |
for($i=0;$i<sizeof($nbenr);$i++){ |
375 |
// mb_strlen( variable,encoding) PHP 4 >= 4.0.6, PHP 5 |
376 |
// Le param�tre encoding est l'encodage des caract�res. |
377 |
// S'il est omis, l'encodage de caracteres interne sera utilis�. |
378 |
$tmp[$i] = strlen($nbenr[$i]); |
379 |
//echo strlen($nbenr[$i])." ".$nbenr[$i]."<br>"; |
380 |
$cpt++; |
381 |
} |
382 |
$longueurenregistrement=max($tmp); |
383 |
$nombreenregistrement=$cpt; // + entete |
384 |
// Date de modification |
385 |
$datemodification = date('y').str_pad (DATE('m'), 2, "0", STR_PAD_LEFT).str_pad (DATE('j'), 2, "0", STR_PAD_LEFT); |
386 |
// export |
387 |
$version = substr($version,0,8); |
388 |
$entete.= $longueurenregistrement."|".$datemodification."|". |
389 |
$nombreenregistrement."|openFoncier|".$version."\n"; |
390 |
$export=$entete.$export; |
391 |
// $str = htmlentities($str, ENT_QUOTES); |
392 |
// ecriture des fichiers en tmp |
393 |
$fichier = "../tmp/SITADEL".substr($_POST["datedebut"],3,2). |
394 |
"".substr($_POST["datedebut"],8,4).""; |
395 |
$inf = fopen($fichier,"w"); |
396 |
fwrite($inf,$export); |
397 |
fclose($inf); |
398 |
echo "<br>"._("Fichier")." ".$fichier." "._("sauvegarde")."<br /><br /><br />"; |
399 |
// affichage |
400 |
echo "<br /><br />Pour telecharger le fichier, cliquer ici : <a href=\"".$fichier."\" target=\"_blank\">"; |
401 |
echo "<img src=\"../app/img/ico_trace.png\" alt=\"Telecharger le fichier CNEN\" title=\"Telecharger le fichier Sitadel\" />"; |
402 |
echo "</a>"._("avec le bouton droit et enregistrer la cible du lien sous.")."<br /><br />"; |
403 |
if($DEBUG==1){ |
404 |
$affiche=""; |
405 |
$affiche= str_replace("\n","<br>",$export); |
406 |
echo $affiche; |
407 |
} |
408 |
}else // correct = false |
409 |
echo _("remplissez les 2 dates"); |
410 |
}//validation |
411 |
?> |