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

Contents of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2559 - (show annotations)
Fri Nov 29 14:41:02 2013 UTC (11 years, 2 months ago) by nhaye
File size: 42475 byte(s)
Ajout d'un code sitadel pour l'export de l'autorité compétente.

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26