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

Annotation of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3318 - (hide annotations)
Mon Feb 23 12:11:57 2015 UTC (9 years, 11 months ago) by vpihour
File size: 43014 byte(s)
Ajout de modifications manquantes

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26