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

Contents of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1826 - (show annotations)
Thu May 2 17:50:24 2013 UTC (11 years, 9 months ago) by nhaye
File size: 39708 byte(s)
Ajout d'un bouton de retour, modification de la gestion des erreurs : elles sont maintenant listées dans un fichier prévu à cet effet.

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."&amp;datefin=".$datefin."&amp;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 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26