1 |
<?php |
2 |
/** |
3 |
* 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 |
* |
7 |
* @package openfoncier |
8 |
* @version SVN : $Id$ |
9 |
*/ |
10 |
|
11 |
// Appel des classes |
12 |
require_once "../obj/utils.class.php"; |
13 |
require_once "../app/sitadel.class.php"; |
14 |
require_once "sitadel.inc"; |
15 |
$f = new utils(NULL, "export_sitadel", _("export SITADEL"), "ico_reqmo.png", "export"); |
16 |
|
17 |
/** |
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 |
|
23 |
// 1ere étape : affichage du formulaire permettant le choix d'un interval de date |
24 |
// ainsi que l'ordre |
25 |
if (empty($_POST)) { |
26 |
// Récupération des paramètres |
27 |
if (isset($_GET["datedebut"]) AND $_GET["datedebut"] != "") { |
28 |
$datedebut = substr($_GET["datedebut"],8,2)."/".substr($_GET["datedebut"],5,2)."/".substr($_GET["datedebut"],0,4);; |
29 |
} else { |
30 |
$datedebut = ""; |
31 |
} |
32 |
if (isset($_GET["datefin"]) AND $_GET["datefin"] != "") { |
33 |
$datefin = substr($_GET["datefin"],8,2)."/".substr($_GET["datefin"],5,2)."/".substr($_GET["datefin"],0,4); |
34 |
} else { |
35 |
$datefin = ""; |
36 |
} |
37 |
if (isset($_GET["numero"]) AND $_GET["numero"] != "") { |
38 |
$numero = $_GET["numero"]; |
39 |
} else { |
40 |
$numero = ""; |
41 |
} |
42 |
affichageFormulaire($datedebut, $datefin, $numero); |
43 |
} else { // Traitement après validation du formulaire |
44 |
|
45 |
// init de la valeur d'erreur |
46 |
$correct=true; |
47 |
// init de la chaîne contenant l'erreur |
48 |
$erreur = ""; |
49 |
|
50 |
// XXX |
51 |
$longueurenregistrement= 0 ; |
52 |
|
53 |
// XXX |
54 |
$t10 = "||||||||||"; // 10 | |
55 |
|
56 |
// Initialisation des dates de début et de fin |
57 |
$datedebut =''; |
58 |
$datefin=''; |
59 |
|
60 |
// Traitement des erreurs |
61 |
if ($_POST["datedebut"] == "") { |
62 |
$correct=false; |
63 |
} else { |
64 |
$datedebut = substr($_POST["datedebut"],6,4). |
65 |
"-".substr($_POST["datedebut"],3,2)."-". |
66 |
substr($_POST["datedebut"],0,2); |
67 |
} |
68 |
if ($_POST["datefin"] == "") { |
69 |
$correct=false; |
70 |
} else { |
71 |
$datefin = substr($_POST["datefin"],6,4). |
72 |
"-".substr($_POST["datefin"],3,2)."-". |
73 |
substr($_POST["datefin"],0,2); |
74 |
} |
75 |
$numero = $_POST["numero"]; |
76 |
if ($correct==true){ // *** |
77 |
// Requête permettant de lister tous les dossiers de l'export |
78 |
$sql= "SELECT dossier.dossier, |
79 |
dossier_instruction_type.mouvement_sitadel, |
80 |
dossier.date_depot, |
81 |
dossier.date_decision, |
82 |
dossier.date_chantier, |
83 |
dossier.date_achevement, |
84 |
dossier.terrain_references_cadastrales as dossier_terrain_references_cadastrales, |
85 |
dossier.terrain_adresse_voie_numero as dossier_terrain_adresse_voie_numero, |
86 |
dossier.complement as dossier_complement, |
87 |
dossier.terrain_adresse_lieu_dit as dossier_terrain_adresse_lieu_dit, |
88 |
dossier.terrain_adresse_localite as dossier_terrain_adresse_localite, |
89 |
dossier.terrain_adresse_code_postal as dossier_terrain_adresse_code_postal, |
90 |
dossier.terrain_adresse_bp as dossier_terrain_adresse_bp, |
91 |
dossier.terrain_adresse_cedex as dossier_terrain_adresse_cedex, |
92 |
dossier.version, |
93 |
dossier_autorisation_type.code, |
94 |
dossier.autorite_competente, |
95 |
dossier.date_limite, |
96 |
dossier.date_notification_delai, |
97 |
|
98 |
pp.type_demandeur, |
99 |
pp.qualite, |
100 |
civilite_pp.libelle as civilite_pp, |
101 |
pp.particulier_nom as pp_particulier_nom, |
102 |
pp.particulier_prenom as pp_particulier_prenom, |
103 |
pp.personne_morale_denomination as pp_personne_morale_denomination, |
104 |
pp.personne_morale_raison_sociale as pp_personne_morale_raison_sociale, |
105 |
pp.personne_morale_siret as pp_personne_morale_siret, |
106 |
pp.personne_morale_categorie_juridique as pp_personne_morale_categorie_juridique, |
107 |
civilite_pm.libelle as civilite_pm_libelle, |
108 |
pp.personne_morale_nom as pp_personne_morale_nom, |
109 |
pp.personne_morale_prenom as pp_personne_morale_prenom, |
110 |
|
111 |
pp.numero as pp_numero, |
112 |
pp.voie as pp_voie, |
113 |
pp.complement as pp_complement, |
114 |
pp.lieu_dit as pp_lieu_dit, |
115 |
pp.localite as pp_localite, |
116 |
pp.code_postal as pp_code_postal, |
117 |
pp.bp as pp_bp, |
118 |
pp.cedex as pp_cedex, |
119 |
pp.pays as pp_pays, |
120 |
pp.division_territoriale as pp_division_territoriale, |
121 |
|
122 |
civilite_delegataire.libelle as civilite_delegataire_libelle, |
123 |
delegataire.particulier_nom as delegataire_particulier_nom, |
124 |
delegataire.particulier_prenom as delegataire_particulier_prenom, |
125 |
delegataire.numero as delegataire_numero, |
126 |
delegataire.voie as delegataire_voie, |
127 |
delegataire.complement as delegataire_complement, |
128 |
delegataire.lieu_dit as delegataire_lieu_dit, |
129 |
delegataire.localite as delegataire_localite, |
130 |
delegataire.code_postal as delegataire_code_postal, |
131 |
delegataire.bp as delegataire_bp, |
132 |
delegataire.cedex as delegataire_cedex, |
133 |
delegataire.pays as delegataire_pays, |
134 |
delegataire.division_territoriale as delegataire_division_territoriale, |
135 |
|
136 |
pp.telephone_fixe as pp_telephone_fixe, |
137 |
pp.courriel as pp_courriel, |
138 |
|
139 |
donnees_techniques.co_archi_recours, |
140 |
donnees_techniques.am_terr_surf, |
141 |
donnees_techniques.am_lotiss, |
142 |
donnees_techniques.terr_juri_afu, |
143 |
donnees_techniques.tr_desc, |
144 |
donnees_techniques.co_cstr_nouv, |
145 |
donnees_techniques.co_cstr_exist, |
146 |
donnees_techniques.co_modif_aspect, |
147 |
donnees_techniques.co_modif_struct, |
148 |
donnees_techniques.co_cloture, |
149 |
donnees_techniques.co_trx_exten, |
150 |
donnees_techniques.co_trx_surelev, |
151 |
donnees_techniques.co_trx_nivsup, |
152 |
donnees_techniques.co_trx_amgt, |
153 |
donnees_techniques.co_anx_pisc, |
154 |
donnees_techniques.co_anx_gara, |
155 |
donnees_techniques.co_anx_veran, |
156 |
donnees_techniques.co_anx_abri, |
157 |
donnees_techniques.co_anx_autr, |
158 |
donnees_techniques.co_bat_niv_nb, |
159 |
donnees_techniques.su_avt_shon1, |
160 |
donnees_techniques.su_avt_shon2, |
161 |
donnees_techniques.su_avt_shon3, |
162 |
donnees_techniques.su_avt_shon4, |
163 |
donnees_techniques.su_avt_shon5, |
164 |
donnees_techniques.su_avt_shon6, |
165 |
donnees_techniques.su_avt_shon7, |
166 |
donnees_techniques.su_avt_shon8, |
167 |
donnees_techniques.su_avt_shon9, |
168 |
donnees_techniques.su_demo_shon1, |
169 |
donnees_techniques.su_demo_shon2, |
170 |
donnees_techniques.su_demo_shon3, |
171 |
donnees_techniques.su_demo_shon4, |
172 |
donnees_techniques.su_demo_shon5, |
173 |
donnees_techniques.su_demo_shon6, |
174 |
donnees_techniques.su_demo_shon7, |
175 |
donnees_techniques.su_demo_shon8, |
176 |
donnees_techniques.su_demo_shon9, |
177 |
donnees_techniques.su_chge_shon1, |
178 |
donnees_techniques.su_chge_shon2, |
179 |
donnees_techniques.su_chge_shon3, |
180 |
donnees_techniques.su_chge_shon4, |
181 |
donnees_techniques.su_chge_shon5, |
182 |
donnees_techniques.su_chge_shon6, |
183 |
donnees_techniques.su_chge_shon7, |
184 |
donnees_techniques.su_chge_shon8, |
185 |
donnees_techniques.su_chge_shon9, |
186 |
donnees_techniques.su_trsf_shon1, |
187 |
donnees_techniques.su_trsf_shon2, |
188 |
donnees_techniques.su_trsf_shon3, |
189 |
donnees_techniques.su_trsf_shon4, |
190 |
donnees_techniques.su_trsf_shon5, |
191 |
donnees_techniques.su_trsf_shon6, |
192 |
donnees_techniques.su_trsf_shon7, |
193 |
donnees_techniques.su_trsf_shon8, |
194 |
donnees_techniques.su_trsf_shon9, |
195 |
donnees_techniques.su_cstr_shon1, |
196 |
donnees_techniques.su_cstr_shon2, |
197 |
donnees_techniques.su_cstr_shon3, |
198 |
donnees_techniques.su_cstr_shon4, |
199 |
donnees_techniques.su_cstr_shon5, |
200 |
donnees_techniques.su_cstr_shon6, |
201 |
donnees_techniques.su_cstr_shon7, |
202 |
donnees_techniques.su_cstr_shon8, |
203 |
donnees_techniques.su_cstr_shon9, |
204 |
donnees_techniques.su_tot_shon1, |
205 |
donnees_techniques.su_tot_shon2, |
206 |
donnees_techniques.su_tot_shon3, |
207 |
donnees_techniques.su_tot_shon4, |
208 |
donnees_techniques.su_tot_shon5, |
209 |
donnees_techniques.su_tot_shon6, |
210 |
donnees_techniques.su_tot_shon7, |
211 |
donnees_techniques.su_tot_shon8, |
212 |
donnees_techniques.su_tot_shon9, |
213 |
donnees_techniques.co_sp_transport, |
214 |
donnees_techniques.co_sp_enseign, |
215 |
donnees_techniques.co_sp_sante, |
216 |
donnees_techniques.co_sp_act_soc, |
217 |
donnees_techniques.co_sp_ouvr_spe, |
218 |
donnees_techniques.co_sp_culture, |
219 |
donnees_techniques.dm_tot_log_nb, |
220 |
donnees_techniques.co_tot_ind_nb, |
221 |
donnees_techniques.co_tot_coll_nb, |
222 |
donnees_techniques.co_tot_log_nb, |
223 |
donnees_techniques.co_resid_agees, |
224 |
donnees_techniques.co_resid_etud, |
225 |
donnees_techniques.co_resid_tourism, |
226 |
donnees_techniques.co_resid_hot_soc, |
227 |
donnees_techniques.co_resid_hand, |
228 |
donnees_techniques.co_resid_autr, |
229 |
donnees_techniques.co_resid_autr_desc, |
230 |
donnees_techniques.co_uti_pers, |
231 |
donnees_techniques.co_uti_princ, |
232 |
donnees_techniques.co_uti_secon, |
233 |
donnees_techniques.co_uti_vente, |
234 |
donnees_techniques.co_uti_loc, |
235 |
donnees_techniques.co_foyer_chamb_nb, |
236 |
donnees_techniques.co_fin_lls_nb, |
237 |
donnees_techniques.co_fin_aa_nb, |
238 |
donnees_techniques.co_fin_ptz_nb, |
239 |
donnees_techniques.co_fin_autr_nb, |
240 |
donnees_techniques.co_mais_piece_nb, |
241 |
donnees_techniques.co_log_1p_nb, |
242 |
donnees_techniques.co_log_2p_nb, |
243 |
donnees_techniques.co_log_3p_nb, |
244 |
donnees_techniques.co_log_4p_nb, |
245 |
donnees_techniques.co_log_5p_nb, |
246 |
donnees_techniques.co_log_6p_nb, |
247 |
|
248 |
avis_decision.sitadel, |
249 |
avis_decision.sitadel_motif |
250 |
|
251 |
|
252 |
FROM ".DB_PREFIXE."dossier"; |
253 |
$sql .= " INNER JOIN ".DB_PREFIXE."dossier_instruction_type |
254 |
ON dossier.dossier_instruction_type = |
255 |
dossier_instruction_type.dossier_instruction_type |
256 |
|
257 |
INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille |
258 |
ON dossier_instruction_type.dossier_autorisation_type_detaille |
259 |
=dossier_autorisation_type_detaille.dossier_autorisation_type_detaille |
260 |
INNER JOIN ".DB_PREFIXE."dossier_autorisation_type |
261 |
ON dossier_autorisation_type.dossier_autorisation_type |
262 |
=dossier_autorisation_type_detaille.dossier_autorisation_type |
263 |
|
264 |
LEFT JOIN ".DB_PREFIXE."donnees_techniques |
265 |
ON donnees_techniques.dossier_instruction = dossier.dossier |
266 |
LEFT JOIN ".DB_PREFIXE."avis_decision |
267 |
ON avis_decision.avis_decision = dossier.avis_decision |
268 |
LEFT JOIN ".DB_PREFIXE."lien_dossier_demandeur as ldd_pp |
269 |
ON ldd_pp.dossier = dossier.dossier |
270 |
AND ldd_pp.petitionnaire_principal is TRUE |
271 |
LEFT JOIN ".DB_PREFIXE."demandeur as pp |
272 |
ON ldd_pp.demandeur = pp.demandeur |
273 |
LEFT JOIN ".DB_PREFIXE."civilite as civilite_pp |
274 |
ON civilite_pp.civilite = pp.particulier_civilite |
275 |
LEFT JOIN ".DB_PREFIXE."civilite as civilite_pm |
276 |
ON civilite_pm.civilite = pp.particulier_civilite |
277 |
LEFT JOIN ".DB_PREFIXE."lien_dossier_demandeur as ldd_delegataire |
278 |
ON ldd_delegataire.dossier = dossier.dossier |
279 |
LEFT JOIN ".DB_PREFIXE."demandeur as delegataire |
280 |
ON ldd_delegataire.demandeur = delegataire.demandeur AND delegataire.qualite='delegataire' |
281 |
LEFT JOIN ".DB_PREFIXE."civilite as civilite_delegataire |
282 |
ON civilite_delegataire.civilite = delegataire.particulier_civilite |
283 |
"; |
284 |
$sql .= " WHERE dossier_instruction_type.mouvement_sitadel IS NOT NULL"; |
285 |
$sql .= " AND dossier.a_qualifier IS NOT TRUE"; |
286 |
$sql .= " AND ((dossier.date_depot >='".$datedebut."' AND dossier.date_depot<='".$datefin."')"; |
287 |
$sql .= " OR (dossier.date_decision>='".$datedebut."' AND dossier.date_decision<='".$datefin."')"; |
288 |
$sql .= " OR (dossier.date_chantier>='".$datedebut."' AND dossier.date_chantier<='".$datefin."'))"; |
289 |
$sql .= " order by dossier.date_depot"; |
290 |
$res = $f->db -> query ($sql); |
291 |
$f->addToLog("app/sitadel.php : db->query(\"".$sql."\")", VERBOSE_MODE); |
292 |
$f->isDatabaseError($res); |
293 |
$export=""; |
294 |
while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
295 |
// initialisation de la classe permettant la mise en forme de chaque ligne de l'export |
296 |
$g = new sitadel($row['dossier']); |
297 |
$g->setRow($row); |
298 |
// sitadel |
299 |
$g->setVal($val); |
300 |
// |
301 |
// parametre |
302 |
// $sql = "select parametre, valeur from ".DB_PREFIXE."statistique where dossier ='".$row['dossier']."'"; |
303 |
// $res1 = $f->db -> query ($sql); |
304 |
// $f->isDatabaseError($res1); |
305 |
// while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){ |
306 |
// $g->parametre[$row1['parametre']]=$row1['valeur']; |
307 |
// } |
308 |
$departement =$f->collectivite["departement"]; |
309 |
$commune =$f->collectivite["commune"]; |
310 |
$region =$f->collectivite["region"]; |
311 |
// depot |
312 |
$depot=""; |
313 |
|
314 |
// Tous les mouvements autres que transfert ont comme mouvement le code DEPOT |
315 |
// les décisions devant êtres précédées par le dépôt correspondant, |
316 |
// les dossiers avec date de décision comprise dans l'interval fourni sont |
317 |
// réaffichés en tant que dépôts (mouvement DEPOT) |
318 |
if ($row['mouvement_sitadel'] != 'TRANSFERT' |
319 |
and (($row['date_depot'] >= $datedebut |
320 |
and $row['date_depot'] <= $datefin) |
321 |
or ($row['date_decision'] >= $datedebut |
322 |
and $row['date_decision'] <= $datefin))) { |
323 |
$depot.=$g->entete("DEPOT",$departement,$commune,$pf_departement); |
324 |
$depot.=$g->etatcivil(); |
325 |
$depot.=$g->adresse(); |
326 |
$depot.=$g->delegataire(); |
327 |
$depot.=$g->meltel($row['mouvement_sitadel']); |
328 |
$depot.=$g->adresse_terrain(); |
329 |
$depot.=$g->parcelle(); |
330 |
// =========================== |
331 |
// contrat maison individuelle |
332 |
// =========================== |
333 |
// sitadel : contrat| |
334 |
// openads : non renseigne |
335 |
$depot.= $g->p('contrat')."|"; |
336 |
// ========== |
337 |
// architecte |
338 |
// ========== |
339 |
// sitadel : architecte| |
340 |
// openads : données techniques.co_archi_recours |
341 |
if($row['co_archi_recours'] == "t") |
342 |
$depot.= "1|"; |
343 |
else |
344 |
$depot.= "0|"; |
345 |
// ===================== |
346 |
// utilisation data cnil |
347 |
// ====================== |
348 |
// sitadel : cnil |
349 |
// openads : non renseigne |
350 |
$depot.= $g->p('cnil'); |
351 |
// fin d enregistrement depot |
352 |
$depot.="\n"; |
353 |
} |
354 |
|
355 |
// Seuls les dossier de type transfert ont comme mouvement le code TRANSFERT |
356 |
$transfert =""; |
357 |
if($row['mouvement_sitadel']=='TRANSFERT' |
358 |
and $row['date_depot'] >= $datedebut |
359 |
and $row['date_depot']<=$datefin){ |
360 |
$transfert.=$g->entete("TRANSFERT",$departement,$commune,$pf_departement); |
361 |
$transfert.=$g->etatcivil(); |
362 |
$transfert.=$g->adresse(); |
363 |
$transfert.=$g->meltel($row['mouvement_sitadel']); |
364 |
$transfert.="\n"; |
365 |
} |
366 |
|
367 |
|
368 |
// Une ligne de mouvement DECISION est insérée après chaque ligne |
369 |
// de mouvement DEPOT |
370 |
$decision=""; |
371 |
if ($row['mouvement_sitadel'] != 'MODIFICATIF' |
372 |
and $row['mouvement_sitadel'] != 'TRANSFERT' |
373 |
and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin) |
374 |
or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))) { |
375 |
|
376 |
//Ajout de l'entête |
377 |
$decision.=$g->entete("DECISION",$departement,$commune,$pf_departement); |
378 |
|
379 |
//Ajout du groupe 1 |
380 |
$decision.= $g->decision_groupe1(); |
381 |
// Si la décision est favorable, groupe 2 |
382 |
if ( $row['sitadel'] == 2 || $row['sitadel'] == 4 || $row['sitadel'] == 5 |
383 |
|| $row['sitadel'] == 0 ){ |
384 |
|
385 |
$decision.= $g->amenagement_terrain(); |
386 |
$su_avt_shon = $g->shon("su_avt_shon"); |
387 |
//Si la SHON existante avant travaux est supérieur à la SHON |
388 |
//démolie alors la variable natproj est égale à 2 |
389 |
$shonExistante = 0; |
390 |
$shonDemolie = 0; |
391 |
for ( $i=1;$i<=9;$i++){ |
392 |
|
393 |
$shonExistante += floor($row['su_avt_shon'.$i]); |
394 |
$shonDemolie += floor($row['su_demo_shon'.$i]); |
395 |
} |
396 |
if ( $shonExistante > $shonDemolie && $row['co_cstr_nouv'] == 't' ){ |
397 |
|
398 |
$erreur = _("Si la SHON existante avant travaux est supérieur à la SHON démolie alors la variable natproj doit etre égale à 2 pour le dossier no")." ".$row['dossier']."\n"; |
399 |
} |
400 |
//Si la SHON existante avant travaux et la SHON démolie sont |
401 |
//égales alors la variable natproj est égale à 1 |
402 |
elseif ( $shonExistante > $shonDemolie && $row['co_cstr_exist'] == 't' ) { |
403 |
|
404 |
$erreur = _("Si la SHON existante avant travaux et la SHON démolie sont égales alors la variable natproj doit être égale à 1 pour le dossier no")." ".$row['dossier']."\n"; |
405 |
} |
406 |
else { |
407 |
$decision .= $su_avt_shon; |
408 |
} |
409 |
|
410 |
$su_demo_shon = $g->shon("su_demo_shon"); |
411 |
//La SHON démolie s'accompagne obligatoirement de la shon |
412 |
//existante avant travaux |
413 |
//Erreur |
414 |
if ( $shonExistante != 0 && $shonExistante == 0 ){ |
415 |
$erreur = _("La SHON demolie s'accompagne obligatoirement de la SHON existante avant travaux pour le dossier no")." ".$row['dossier']."\n"; |
416 |
} |
417 |
else { |
418 |
$decision .= $su_demo_shon; |
419 |
} |
420 |
|
421 |
|
422 |
$decision.= $g->shon("su_chge_shon"); |
423 |
$su_trsf_shon = $g->shon("su_trsf_shon"); |
424 |
$su_cstr_shon = $g->shon("su_cstr_shon"); |
425 |
//Les SHON relatives à la transformation et issues de la |
426 |
//transformation doivent être égales |
427 |
if ( strcasecmp($su_trsf_shon, $su_cstr_shon) == 0 || |
428 |
(!preg_match("/[0|]{7}/", $su_trsf_shon) && |
429 |
preg_match("/[0|]{7}/", $su_cstr_shon) && |
430 |
$row['co_cstr_nouv']!='t' && $row['co_cstr_exist']!='t')){ |
431 |
|
432 |
$decision.= $su_trsf_shon; |
433 |
$decision.= $su_cstr_shon; |
434 |
} |
435 |
//Erreur |
436 |
else { |
437 |
$erreur = _("Les SHON globales vouees a la transformation et issues de la transformation de doivent etre egales pour le dossier no")." ".$row['dossier']."\n"; |
438 |
} |
439 |
|
440 |
//Les SHON relatives à la transformation s'accompagnent |
441 |
//obligatoirement de SHON existante avant travaux non nulle |
442 |
if (( !preg_match("/[0|]{7}/", $su_trsf_shon) && |
443 |
!preg_match("/[0|]{7}/", $su_cstr_shon) && |
444 |
!preg_match("/[0|]{7}/", $su_avt_shon)) || |
445 |
(preg_match("/[0|]{7}/", $su_trsf_shon) && |
446 |
preg_match("/[0|]{7}/", $su_cstr_shon)&& |
447 |
preg_match("/[0|]{7}/", $su_avt_shon))){ |
448 |
|
449 |
$decision.= $su_avt_shon; |
450 |
} |
451 |
//Erreur |
452 |
else { |
453 |
|
454 |
$erreur = _("Les SHON relatives à la transformation s'accompagnent obligatoirement de SHON existante avant travaux non nulle pour le dossier no")." ".$row['dossier']."\n"; |
455 |
} |
456 |
|
457 |
$decision.= $g->shon("su_tot_shon"); |
458 |
|
459 |
// Un nombre de logements démolis strictement positif doit |
460 |
// s'accompagner obligatoirement de SHON démolie. |
461 |
if($row['dm_tot_log_nb'] > 0) { |
462 |
if($row['su_demo_shon1'] <= 0) { |
463 |
|
464 |
$erreur = _("Un nombre de logements demolis strictement positif doit s'accompagner obligatoirement de SHON demolie pour le dossier no")." ".$row['dossier']."\n"; |
465 |
} |
466 |
} |
467 |
|
468 |
// Un nombre de logements créés strictement positif doit |
469 |
// s'accompagner obligatoirement de SHON créée ou de SHON |
470 |
// issue de la transformation ayant pour destination l'habitation. |
471 |
if($row['co_tot_log_nb'] > 0 AND ($row['su_cstr_shon1'] <= 0 OR $row['su_trsf_shon1'] <=0)) { |
472 |
|
473 |
$erreur = _("Un nombre de logements crees strictement positif doit s'accompagner obligatoirement de SHON creee ou de SHON issue de la transformation ayant pour destination l'habitation pour le dossier no")." ".$row['dossier']."\n"; |
474 |
} |
475 |
|
476 |
// La SHON créée ou issue de la transformation |
477 |
// suffixée par 9 (intérêt collectif ou service public) doit |
478 |
// obligatoirement s'accompagner de la décomposition |
479 |
// en sous modalité renseignée par la variable cpublic et réciproquement. |
480 |
|
481 |
// Test si une valeur est true |
482 |
$cpublic = FALSE; |
483 |
if (isset($row['co_sp_transport']) && $row['co_sp_transport'] == 't') { |
484 |
$cpublic = TRUE; |
485 |
} |
486 |
if (isset($row['co_sp_enseign']) && $row['co_sp_enseign'] == 't') { |
487 |
$cpublic = TRUE; |
488 |
} |
489 |
if (isset($row['co_sp_sante']) && $row['co_sp_sante'] == 't') { |
490 |
$cpublic = TRUE; |
491 |
} |
492 |
if (isset($row['co_sp_act_soc']) && $row['co_sp_act_soc'] == 't') { |
493 |
$cpublic = TRUE; |
494 |
} |
495 |
if (isset($row['co_sp_ouvr_spe']) && $row['co_sp_ouvr_spe'] == 't') { |
496 |
$cpublic = TRUE; |
497 |
} |
498 |
if (isset($row['co_sp_culture']) && $row['co_sp_culture'] == 't') { |
499 |
$cpublic = TRUE; |
500 |
} |
501 |
|
502 |
if($cpublic !== TRUE AND ($row['su_cstr_shon9'] > 0 OR $row['su_trsf_shon9'] > 0)) { |
503 |
$erreur = _("La SHON creee ou issue de la transformation concernant le service public ou l'intérêt collectif doit obligatoirement s'accompagner du choix de destination des constructions pour le dossier no")." ".$row['dossier']."\n"; |
504 |
} |
505 |
|
506 |
// La destination principale du logement mise à résidence |
507 |
// principale ou résidence secondaire doit obligatoirement |
508 |
// s'accompagner d'un mode d'utilisation à occupation personnelle |
509 |
if($row['co_uti_princ'] == 't' OR $row['co_uti_secon'] == 't') { |
510 |
if($row['co_uti_pers'] != 't') { |
511 |
|
512 |
$erreur = _("La destination principale du logement mise à résidence principale ou résidence secondaire doit obligatoirement s'accompagner d'un mode d'utilisation à occupation personnelle pour le dossier no")." ".$row['dossier']."\n"; |
513 |
} |
514 |
} |
515 |
|
516 |
$decision.= $g->destination(); |
517 |
|
518 |
// Le nombre total de logements créés (variable nbtotlog) |
519 |
// doit être égal à la somme des nombres de logements créés |
520 |
// ventilés par type de financement |
521 |
if($row['co_tot_log_nb'] != ($row['co_fin_lls_nb'] + $row['co_fin_aa_nb'] + |
522 |
$row['co_fin_ptz_nb'] + $row['co_fin_autr_nb'])) { |
523 |
|
524 |
$erreur = _("Le nombre total de logements crees doit etre egal a la somme des nombres de logements crees ventiles par type de financement pour le dossier no")." ".$row['dossier']."\n"; |
525 |
} |
526 |
|
527 |
$decision.= $g->repartitionFinan(); |
528 |
|
529 |
// Le nombre total de logements créés (variable nbtotlog) |
530 |
// doit être égal à la totalisation de la répartition des |
531 |
// logements par nombre de pièces |
532 |
if($row['co_tot_log_nb'] != ($row['co_log_1p_nb'] + $row['co_log_2p_nb'] + |
533 |
$row['co_log_3p_nb'] + $row['co_log_4p_nb'] + $row['co_log_5p_nb'] + |
534 |
$row['co_log_6p_nb'])) { |
535 |
|
536 |
$erreur = _("Le nombre total de logements crees doit etre egal a la totalisation de la repartition des logements par nombre de pieces pour le dossier no")." ".$row['dossier']."\n"; |
537 |
} |
538 |
|
539 |
$decision.= $g->repartitionNbPiece(); |
540 |
} |
541 |
$decision.="\n"; |
542 |
} |
543 |
|
544 |
// modificatif |
545 |
$modificatif=''; |
546 |
if($row['mouvement_sitadel'] == 'MODIFICATIF' |
547 |
and $row['date_depot'] >= $datedebut |
548 |
and $row['date_depot'] <= $datefin) { |
549 |
$modificatif.=$g->entete("MODIFICATIF",$departement,$commune,$pf_departement); |
550 |
if(isset($row['date_decision']) or $row['date_decision']==""){ |
551 |
// avis_sitadel et avis_sitadel_motif |
552 |
if($row['avis_decision']!=''){ |
553 |
$avis_sitadel = 0; |
554 |
$avis_sitadel_motif=0 ; |
555 |
$sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis_decision where avis_decision ='". |
556 |
$row['avis_decision']."'"; |
557 |
$res1 = $f->db -> query ($sql); |
558 |
$f->isDatabaseError($res1); |
559 |
while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){ |
560 |
$avis_sitadel = $row1['sitadel']; |
561 |
$avis_sitadel_motif = $row1['sitadel_motif']; |
562 |
} |
563 |
$modificatif.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure); |
564 |
} |
565 |
// si la decision est favorable, envoi des informations statistiques |
566 |
if($avis_sitadel==2 or $avis_sitadel==4 |
567 |
or $avis_sitadel==5){ |
568 |
// si decision favorable, expresse ou tacite GROUPE 2 |
569 |
$modificatif.=$g->adresse_terrain(); //*** |
570 |
$modificatif.=$g->parcelle(); //*** |
571 |
$modificatif.=$g->terrain(); //*** |
572 |
// enlever les RC |
573 |
$temp=$row['description']; |
574 |
$temp = str_replace( chr(10), " ", $temp); |
575 |
$temp = str_replace( chr(13), " ", $temp); |
576 |
if($row['travaux']!=''){ |
577 |
$sql= "select codelascot,libelle |
578 |
from ".DB_PREFIXE."travaux where travaux=".$row['travaux']; |
579 |
$res2 = $f->db -> query ($sql); |
580 |
$f->isDatabaseError($res2); |
581 |
while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){ |
582 |
$travaux = $row2['libelle']." ".$row['description']; // ***; |
583 |
$lascot = $row2['codelascot']; |
584 |
} |
585 |
$travaux.=" ".$temp; |
586 |
$modificatif.= $g->travaux($travaux,$lascot, $row['mouvement_sitadel']); |
587 |
} |
588 |
$sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '". |
589 |
$row['dossier']."' order by destination"; |
590 |
$res3 = $f->db -> query ($sql3); |
591 |
$f->isDatabaseError($res3); |
592 |
$temp = array(); |
593 |
while ($row3=& $res3->fetchRow(DB_FETCHMODE_ASSOC)){ |
594 |
$shonant[$row3['destination']]=$row3["shon_anterieure"]; |
595 |
$shondem[$row3['destination']]=$row3["shon_demolie"]; |
596 |
$shonanttr[$row3['destination']]=$row3["shon_anterieure_supprimee"]; |
597 |
$shonprojtr[$row3['destination']]=$row3["shon_nouvelle_transformee"]; |
598 |
$shoncr1[$row3['destination']]=$row3["shon_nouvelle"]; |
599 |
$shoncr2[$row3['destination']]=$row3["shon_shob_transformee"]; |
600 |
} |
601 |
$modificatif.= $g->destination($shonant); |
602 |
$modificatif.= $g->destination($shondem); |
603 |
$modificatif.= $g->destination($shonanttr); |
604 |
$modificatif.= $g->destination($shonprojtr); |
605 |
$modificatif.= $g->destination($shoncr1); |
606 |
$modificatif.= $g->destination($shoncr2); |
607 |
|
608 |
$modificatif.= $g->descriptif($row['mouvement_sitadel']); |
609 |
$modificatif.="\n"; |
610 |
} |
611 |
} |
612 |
} |
613 |
|
614 |
// suivi DOC |
615 |
$suivi1=""; |
616 |
if($row['date_chantier'] >= $datedebut and $row['date_chantier']<=$datefin){ |
617 |
$suivi1.=$g->entete("SUIVI",$departement,$commune,$pf_departement); |
618 |
$suivi1.=$g->chantier(); |
619 |
$suivi1.="\n"; |
620 |
} |
621 |
// suivi DAT |
622 |
$suivi2=""; |
623 |
if($row['date_achevement'] >= $datedebut and $row['date_achevement']<=$datefin){ |
624 |
$suivi2.=$g->entete("SUIVI",$departement,$commune,$pf_departement); |
625 |
$suivi2.=$g->achevement(); |
626 |
$suivi2.="\n"; |
627 |
} |
628 |
// export |
629 |
$export.=$depot.$decision.$transfert.$modificatif.$suivi1.$suivi2; |
630 |
} // fin while |
631 |
// *************************************** |
632 |
// entete de l enregistrement page 8 et 9 |
633 |
// *************************************** |
634 |
// numero |
635 |
// $numero= $db -> nextId('sitadel'); |
636 |
|
637 |
// Gestion des erreurs : on les liste dans un fichier |
638 |
if($erreur != "") { |
639 |
$f->displayMessage("error", _("Une ou plusieurs erreurs sont survenues pendant l'export, celles-ci sont listées dans le fichiers ci-dessous")); |
640 |
$fichier = "../tmp/erreur_SITADEL".substr($_POST["datedebut"],3,2). |
641 |
"".substr($_POST["datedebut"],8,4).""; |
642 |
$inf = fopen($fichier,"w"); |
643 |
fwrite($inf,$erreur); |
644 |
fclose($inf); |
645 |
echo "<br>"._("Fichier d'erreur")." ".$fichier." "._("sauvegarde")."<br /><br /><br />"; |
646 |
// affichage |
647 |
echo "<br /><br />"._("Pour telecharger le fichier d'erreur, cliquer ici :")." <a href=\"".$fichier."\" target=\"_blank\">"; |
648 |
echo "<img src=\"../app/img/ico_trace.png\" alt=\""._("Telecharger le fichier d'erreur")."\" title=\""._("Telecharger le fichier d'erreur")."\" />"; |
649 |
echo "</a>"._("avec le bouton droit et enregistrer la cible du lien sous.")."<br /><br />"; |
650 |
} else { |
651 |
$departement =$f->collectivite["departement"]; |
652 |
$commune =$f->collectivite["commune"]; |
653 |
$region =$f->collectivite["region"]; |
654 |
$numero=$_POST["numero"]; |
655 |
$fichiertransmis = date('ymj').$pf_departement.$departement.$commune; |
656 |
$longueurenregistrement= 0 ; // a calculer *** enregistrement le plus long |
657 |
$entete = "SITADEL|".$pf_departement.$departement."|".$commune."|".$region."|".$fichiertransmis."|".$numero."|"; |
658 |
// calcul enregistrement le plus long |
659 |
if(DBCHARSET=='UTF8'){ |
660 |
$export=utf8_decode($export); |
661 |
} |
662 |
// nombreenrgistremment et longueurenregistrement |
663 |
$nbenr = explode("\n",$export); |
664 |
$tmp=array(); |
665 |
$cpt=0; |
666 |
for($i=0;$i<sizeof($nbenr);$i++){ |
667 |
// mb_strlen( variable,encoding) PHP 4 >= 4.0.6, PHP 5 |
668 |
// Le param�tre encoding est l'encodage des caract�res. |
669 |
// S'il est omis, l'encodage de caracteres interne sera utilis�. |
670 |
$tmp[$i] = strlen($nbenr[$i]); |
671 |
//echo strlen($nbenr[$i])." ".$nbenr[$i]."<br>"; |
672 |
$cpt++; |
673 |
} |
674 |
$longueurenregistrement=max($tmp); |
675 |
$nombreenregistrement=$cpt; // + entete |
676 |
// Date de modification |
677 |
$datemodification = date('y').str_pad (DATE('m'), 2, "0", STR_PAD_LEFT).str_pad (DATE('j'), 2, "0", STR_PAD_LEFT); |
678 |
// export |
679 |
$version = substr($f->version,0,8); |
680 |
$entete.= $longueurenregistrement."|".$datemodification."|". |
681 |
$nombreenregistrement."|openFoncier|".$version."\n"; |
682 |
$export=$entete.$export; |
683 |
// $str = htmlentities($str, ENT_QUOTES); |
684 |
// ecriture des fichiers en tmp |
685 |
$fichier = "../tmp/SITADEL".substr($_POST["datedebut"],3,2). |
686 |
"".substr($_POST["datedebut"],8,4).""; |
687 |
$inf = fopen($fichier,"w"); |
688 |
fwrite($inf,$export); |
689 |
fclose($inf); |
690 |
echo "<br>"._("Fichier")." ".$fichier." "._("sauvegarde")."<br /><br /><br />"; |
691 |
// affichage |
692 |
echo "<br /><br />Pour telecharger le fichier, cliquer ici : <a href=\"".$fichier."\" target=\"_blank\">"; |
693 |
echo "<img src=\"../app/img/ico_trace.png\" alt=\"Telecharger le fichier CNEN\" title=\"Telecharger le fichier Sitadel\" />"; |
694 |
echo "</a>"._("avec le bouton droit et enregistrer la cible du lien sous.")."<br /><br />"; |
695 |
if(DEBUG != "PRODUCTION_MODE"){ |
696 |
$affiche=""; |
697 |
$affiche= str_replace("\n","<br>",$export); |
698 |
echo $affiche; |
699 |
} |
700 |
} |
701 |
|
702 |
// Affichage du bouton retour |
703 |
// Composition du tableau de paramètres |
704 |
$params = array( |
705 |
"href" => "../app/sitadel.php?datedebut=".$datedebut."&datefin=".$datefin."&numero=".$numero, |
706 |
); |
707 |
// Appel de la méthode d'affichage du lien retour par le layout |
708 |
$f->layout->display_form_retour($params); |
709 |
|
710 |
}else // correct = false |
711 |
echo _("remplissez les 2 dates"); |
712 |
}//validation |
713 |
|
714 |
/** |
715 |
* Affichage du formulaire |
716 |
* |
717 |
* */ |
718 |
function affichageFormulaire($datedebut="", $datefin="", $numero=""){ |
719 |
|
720 |
echo "<form method=\"POST\" action=\"sitadel.php\" name=f1>"; |
721 |
// champ date debut |
722 |
echo " "._("debut")." "; |
723 |
echo "<input type='text' name='datedebut' id=\"datedebut\" value=\""; |
724 |
echo $datedebut; |
725 |
echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />"; |
726 |
// champ date fin |
727 |
echo " "._("fin")." "; |
728 |
echo "<input type='text' name='datefin' id=\"datefin\" value=\""; |
729 |
echo $datefin; |
730 |
echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />"; |
731 |
// numero d'ordre d'envoi |
732 |
echo " "._("Numero d'ordre d'envoi")." : "."<select name='numero'>"; |
733 |
for ($i = 1; $i < 11; $i++) { |
734 |
echo "<option value ='".$i."' "; |
735 |
echo ($numero == $i )? "selected='selected'":""; |
736 |
echo">".$i."</option>"; |
737 |
} |
738 |
echo "</select>"; |
739 |
echo "<br><br><input type='submit' value='export SITADEL'>"; |
740 |
echo "</form>"; |
741 |
} |
742 |
?> |