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

Annotation of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1828 - (hide annotations)
Fri May 3 14:33:53 2013 UTC (11 years, 9 months ago) by nhaye
File size: 39690 byte(s)
Ajout de champs de cerfa doc et daact, ajout et correction de traduction dans le script d'export sitadel

1 fraynaud 178 <?php
2 fmichon 1515 /**
3 nhaye 1785 * Ce script permet de générer un document type texte contenant
4     * la liste de toutes les demandes d'autorisation dd'occupation de droit du sol
5     * formulées entre deux dates.
6 fmichon 1515 *
7     * @package openfoncier
8     * @version SVN : $Id$
9     */
10    
11 nhaye 1785 // Appel des classes
12 fraynaud 178 require_once "../obj/utils.class.php";
13     require_once "../app/sitadel.class.php";
14 fraynaud 184 require_once "sitadel.inc";
15 fmichon 380 $f = new utils(NULL, "export_sitadel", _("export SITADEL"), "ico_reqmo.png", "export");
16 nhaye 1785
17 fraynaud 178 /**
18     * Description de la page
19     */
20     $description = _("Cette page vous permet de Transmettre les dossiers suivant la procedure SITADEL");
21     $f->displayDescription($description);
22 fraynaud 184
23 nhaye 1785 // 1ere étape : affichage du formulaire permettant le choix d'un interval de date
24     // ainsi que l'ordre
25     if (empty($_POST)) {
26 nhaye 1826 // 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 nhaye 1785 } else { // Traitement après validation du formulaire
44    
45     // init de la valeur d'erreur
46 fraynaud 178 $correct=true;
47 nhaye 1826 // init de la chaîne contenant l'erreur
48     $erreur = "";
49 nhaye 1785
50     // XXX
51 fraynaud 193 $longueurenregistrement= 0 ;
52 nhaye 1785
53     // XXX
54 fraynaud 193 $t10 = "||||||||||"; // 10 |
55 nhaye 1785
56     // Initialisation des dates de début et de fin
57 fraynaud 193 $datedebut ='';
58     $datefin='';
59 nhaye 1785
60     // Traitement des erreurs
61     if ($_POST["datedebut"] == "") {
62 fraynaud 190 $correct=false;
63 nhaye 1785 } else {
64 fraynaud 190 $datedebut = substr($_POST["datedebut"],6,4).
65     "-".substr($_POST["datedebut"],3,2)."-".
66     substr($_POST["datedebut"],0,2);
67 nhaye 1785 }
68     if ($_POST["datefin"] == "") {
69 fraynaud 190 $correct=false;
70 nhaye 1785 } else {
71 fraynaud 190 $datefin = substr($_POST["datefin"],6,4).
72     "-".substr($_POST["datefin"],3,2)."-".
73     substr($_POST["datefin"],0,2);
74 nhaye 1785 }
75 nhaye 1826 $numero = $_POST["numero"];
76 fraynaud 178 if ($correct==true){ // ***
77 nhaye 1785 // Requête permettant de lister tous les dossiers de l'export
78 nhaye 1797 $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 vpihour 1809 dossier.autorite_competente,
95     dossier.date_limite,
96     dossier.date_notification_delai,
97 nhaye 1797
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 vpihour 1809 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 nhaye 1821 donnees_techniques.co_fin_ptz_nb,
239 vpihour 1809 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 nhaye 1797
251    
252 vpihour 1809 FROM ".DB_PREFIXE."dossier";
253 nhaye 1797 $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 vpihour 1809 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 nhaye 1797 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 nhaye 1798 $sql .= " AND dossier.a_qualifier IS NOT TRUE";
286 nhaye 1797 $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 fraynaud 178 $res = $f->db -> query ($sql);
291 vpihour 1809 $f->addToLog("app/sitadel.php : db->query(\"".$sql."\")", VERBOSE_MODE);
292 fraynaud 178 $f->isDatabaseError($res);
293 fraynaud 190 $export="";
294 fraynaud 178 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
295 nhaye 1785 // initialisation de la classe permettant la mise en forme de chaque ligne de l'export
296 fraynaud 187 $g = new sitadel($row['dossier']);
297 vpihour 1809 $g->setRow($row);
298 fraynaud 187 // sitadel
299 vpihour 1809 $g->setVal($val);
300 nhaye 1785 //
301 fraynaud 187 // parametre
302 nhaye 1785 // $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 fraynaud 187 $departement =$f->collectivite["departement"];
309     $commune =$f->collectivite["commune"];
310     $region =$f->collectivite["region"];
311     // depot
312     $depot="";
313 nhaye 1785
314 nhaye 1797 // Tous les mouvements autres que transfert ont comme mouvement le code DEPOT
315 nhaye 1785 // 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 nhaye 1797 if ($row['mouvement_sitadel'] != 'TRANSFERT'
319 fraynaud 190 and (($row['date_depot'] >= $datedebut
320 nhaye 1785 and $row['date_depot'] <= $datefin)
321 fraynaud 190 or ($row['date_decision'] >= $datedebut
322 nhaye 1785 and $row['date_decision'] <= $datefin))) {
323 fraynaud 193 $depot.=$g->entete("DEPOT",$departement,$commune,$pf_departement);
324 fraynaud 187 $depot.=$g->etatcivil();
325     $depot.=$g->adresse();
326     $depot.=$g->delegataire();
327 nhaye 1797 $depot.=$g->meltel($row['mouvement_sitadel']);
328 fraynaud 187 $depot.=$g->adresse_terrain();
329     $depot.=$g->parcelle();
330     // ===========================
331     // contrat maison individuelle
332     // ===========================
333     // sitadel : contrat|
334 vpihour 1809 // openads : non renseigne
335 fraynaud 187 $depot.= $g->p('contrat')."|";
336     // ==========
337     // architecte
338     // ==========
339     // sitadel : architecte|
340 vpihour 1809 // openads : données techniques.co_archi_recours
341     if($row['co_archi_recours'] == "t")
342 fraynaud 187 $depot.= "1|";
343     else
344     $depot.= "0|";
345     // =====================
346     // utilisation data cnil
347     // ======================
348     // sitadel : cnil
349 vpihour 1809 // openads : non renseigne
350 fraynaud 187 $depot.= $g->p('cnil');
351     // fin d enregistrement depot
352     $depot.="\n";
353 fraynaud 178 }
354 fraynaud 187
355 nhaye 1785 // Seuls les dossier de type transfert ont comme mouvement le code TRANSFERT
356 fraynaud 187 $transfert ="";
357 nhaye 1797 if($row['mouvement_sitadel']=='TRANSFERT'
358 fraynaud 190 and $row['date_depot'] >= $datedebut
359     and $row['date_depot']<=$datefin){
360 fraynaud 193 $transfert.=$g->entete("TRANSFERT",$departement,$commune,$pf_departement);
361 fraynaud 187 $transfert.=$g->etatcivil();
362     $transfert.=$g->adresse();
363 nhaye 1797 $transfert.=$g->meltel($row['mouvement_sitadel']);
364 fraynaud 187 $transfert.="\n";
365 fraynaud 178 }
366 fraynaud 187
367    
368 nhaye 1785 // Une ligne de mouvement DECISION est insérée après chaque ligne
369     // de mouvement DEPOT
370 fraynaud 187 $decision="";
371 nhaye 1797 if ($row['mouvement_sitadel'] != 'MODIFICATIF'
372     and $row['mouvement_sitadel'] != 'TRANSFERT'
373 fraynaud 200 and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin)
374 nhaye 1785 or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))) {
375 vpihour 1809
376     //Ajout de l'entête
377 fraynaud 193 $decision.=$g->entete("DECISION",$departement,$commune,$pf_departement);
378 vpihour 1809
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 vpihour 1810 //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 nhaye 1828 $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";
399 vpihour 1810 }
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 nhaye 1828 $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";
405 vpihour 1810 }
406     else {
407     $decision .= $su_avt_shon;
408     }
409 vpihour 1809
410 nhaye 1821 $su_demo_shon = $g->shon("su_demo_shon");
411 vpihour 1810 //La SHON démolie s'accompagne obligatoirement de la shon
412     //existante avant travaux
413     //Erreur
414     if ( $shonExistante != 0 && $shonExistante == 0 ){
415 nhaye 1826 $erreur = _("La SHON demolie s'accompagne obligatoirement de la SHON existante avant travaux pour le dossier no")." ".$row['dossier']."\n";
416 vpihour 1810 }
417     else {
418     $decision .= $su_demo_shon;
419     }
420    
421    
422 vpihour 1809 $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 nhaye 1785 }
435 vpihour 1809 //Erreur
436     else {
437 nhaye 1826 $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 nhaye 1821 }
439 vpihour 1809
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 nhaye 1828 $erreur = _("Les SHON relatives a la transformation s'accompagnent obligatoirement de SHON existante avant travaux non nulle pour le dossier no")." ".$row['dossier']."\n";
455 nhaye 1821 }
456 vpihour 1809
457     $decision.= $g->shon("su_tot_shon");
458 nhaye 1821
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 nhaye 1826
464     $erreur = _("Un nombre de logements demolis strictement positif doit s'accompagner obligatoirement de SHON demolie pour le dossier no")." ".$row['dossier']."\n";
465 nhaye 1821 }
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 nhaye 1826
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 nhaye 1821 }
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 nhaye 1828 $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";
504 nhaye 1821 }
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 nhaye 1826
512 nhaye 1828 $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";
513 nhaye 1821 }
514     }
515    
516 vpihour 1809 $decision.= $g->destination();
517 nhaye 1821
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 nhaye 1826 $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 nhaye 1821 }
526    
527 vpihour 1809 $decision.= $g->repartitionFinan();
528 nhaye 1821
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 nhaye 1826 $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 nhaye 1821 }
538    
539 vpihour 1809 $decision.= $g->repartitionNbPiece();
540     }
541 nhaye 1785 $decision.="\n";
542 fraynaud 187 }
543    
544     // modificatif
545     $modificatif='';
546 nhaye 1797 if($row['mouvement_sitadel'] == 'MODIFICATIF'
547 fraynaud 190 and $row['date_depot'] >= $datedebut
548 nhaye 1785 and $row['date_depot'] <= $datefin) {
549 fraynaud 193 $modificatif.=$g->entete("MODIFICATIF",$departement,$commune,$pf_departement);
550 fraynaud 187 if(isset($row['date_decision']) or $row['date_decision']==""){
551     // avis_sitadel et avis_sitadel_motif
552 vpihour 510 if($row['avis_decision']!=''){
553 fraynaud 187 $avis_sitadel = 0;
554     $avis_sitadel_motif=0 ;
555 vpihour 510 $sql="select sitadel, sitadel_motif from ".DB_PREFIXE."avis_decision where avis_decision ='".
556     $row['avis_decision']."'";
557 fraynaud 187 $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 fraynaud 200 $modificatif.= $g->decision_groupe1($avis_sitadel,$avis_sitadel_motif,$structure);
564 fraynaud 178 }
565 fraynaud 187 // 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 fraynaud 259 // enlever les RC
573     $temp=$row['description'];
574     $temp = str_replace( chr(10), " ", $temp);
575     $temp = str_replace( chr(13), " ", $temp);
576 fraynaud 187 if($row['travaux']!=''){
577     $sql= "select codelascot,libelle
578 fraynaud 267 from ".DB_PREFIXE."travaux where travaux=".$row['travaux'];
579 fraynaud 187 $res2 = $f->db -> query ($sql);
580     $f->isDatabaseError($res2);
581     while ($row2=& $res2->fetchRow(DB_FETCHMODE_ASSOC)){
582 fraynaud 258 $travaux = $row2['libelle']." ".$row['description']; // ***;
583 fraynaud 187 $lascot = $row2['codelascot'];
584     }
585 fraynaud 259 $travaux.=" ".$temp;
586 nhaye 1797 $modificatif.= $g->travaux($travaux,$lascot, $row['mouvement_sitadel']);
587 fraynaud 187 }
588 fraynaud 258 $sql3="select * from ".DB_PREFIXE."destination_shon where dossier = '".
589 fraynaud 187 $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 nhaye 1797 $modificatif.= $g->descriptif($row['mouvement_sitadel']);
609 fraynaud 187 $modificatif.="\n";
610     }
611     }
612     }
613 fraynaud 178
614 fraynaud 200 // suivi DOC
615 fraynaud 187 $suivi1="";
616 fraynaud 190 if($row['date_chantier'] >= $datedebut and $row['date_chantier']<=$datefin){
617 fraynaud 193 $suivi1.=$g->entete("SUIVI",$departement,$commune,$pf_departement);
618 fraynaud 190 $suivi1.=$g->chantier();
619     $suivi1.="\n";
620     }
621 fraynaud 187 // suivi DAT
622     $suivi2="";
623 fraynaud 190 if($row['date_achevement'] >= $datedebut and $row['date_achevement']<=$datefin){
624 fraynaud 193 $suivi2.=$g->entete("SUIVI",$departement,$commune,$pf_departement);
625 fraynaud 190 $suivi2.=$g->achevement();
626     $suivi2.="\n";
627 fraynaud 178 }
628 fraynaud 190 // export
629     $export.=$depot.$decision.$transfert.$modificatif.$suivi1.$suivi2;
630 fraynaud 187 } // fin while
631 fraynaud 190 // ***************************************
632     // entete de l enregistrement page 8 et 9
633     // ***************************************
634     // numero
635 nhaye 1197 // $numero= $db -> nextId('sitadel');
636 nhaye 1826
637     // Gestion des erreurs : on les liste dans un fichier
638     if($erreur != "") {
639 nhaye 1828 $f->displayMessage("error", _("Une ou plusieurs erreurs sont survenues pendant l'export, celles-ci sont listees dans le fichiers ci-dessous"));
640 nhaye 1826 $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 fraynaud 190 }
701 nhaye 1826
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 fraynaud 187 }else // correct = false
711 fraynaud 200 echo _("remplissez les 2 dates");
712 fraynaud 178 }//validation
713 vpihour 1809
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 fraynaud 200 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26