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

Annotation of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3197 - (hide annotations)
Fri Dec 5 17:24:53 2014 UTC (10 years, 1 month ago) by vpihour
File size: 42403 byte(s)
* Amélioration - Si une commune est divisée en arrondissement, ce n'est pas le 
  code INSEE de la commune qu'il faut mettre en entête mais, le code impôt de 
  l'arrondissement du dossier d'autorisation.
* Amélioration - Si on essayait de générer un export SITADEL et qu'une erreur 
  étaient détectée dans les données, seul un fichier d'erreur était généré. 
  Dorénavant, la gestion des erreurs est moins restrive. Deux fichiers sont 
  générés en cas d'erreur : le fichier d'export et le fichier d'erreurs.
* Bug - Si on essayait de générer un export SITADEL contenant des mouvements
  modificatif, une erreur se produisait. C'est corrigé.

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26