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

Annotation of /trunk/app/sitadel.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1821 - (hide annotations)
Thu May 2 17:09:17 2013 UTC (11 years, 9 months ago) by nhaye
File size: 39004 byte(s)
Finalisation des règles de cohérence du mouvement décision

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 vpihour 1809 affichageFormulaire();
27 nhaye 1785 } else { // Traitement après validation du formulaire
28    
29     // init de la valeur d'erreur
30 fraynaud 178 $correct=true;
31 nhaye 1785
32     // XXX
33 fraynaud 193 $longueurenregistrement= 0 ;
34 nhaye 1785
35     // XXX
36 fraynaud 193 $t10 = "||||||||||"; // 10 |
37 nhaye 1785
38     // Initialisation des dates de début et de fin
39 fraynaud 193 $datedebut ='';
40     $datefin='';
41 nhaye 1785
42     // Traitement des erreurs
43     if ($_POST["datedebut"] == "") {
44 fraynaud 190 $correct=false;
45 nhaye 1785 } else {
46 fraynaud 190 $datedebut = substr($_POST["datedebut"],6,4).
47     "-".substr($_POST["datedebut"],3,2)."-".
48     substr($_POST["datedebut"],0,2);
49 nhaye 1785 }
50     if ($_POST["datefin"] == "") {
51 fraynaud 190 $correct=false;
52 nhaye 1785 } else {
53 fraynaud 190 $datefin = substr($_POST["datefin"],6,4).
54     "-".substr($_POST["datefin"],3,2)."-".
55     substr($_POST["datefin"],0,2);
56 nhaye 1785 }
57 fraynaud 178 if ($correct==true){ // ***
58 nhaye 1785 // Requête permettant de lister tous les dossiers de l'export
59 nhaye 1797 $sql= "SELECT dossier.dossier,
60     dossier_instruction_type.mouvement_sitadel,
61     dossier.date_depot,
62     dossier.date_decision,
63     dossier.date_chantier,
64     dossier.date_achevement,
65     dossier.terrain_references_cadastrales as dossier_terrain_references_cadastrales,
66     dossier.terrain_adresse_voie_numero as dossier_terrain_adresse_voie_numero,
67     dossier.complement as dossier_complement,
68     dossier.terrain_adresse_lieu_dit as dossier_terrain_adresse_lieu_dit,
69     dossier.terrain_adresse_localite as dossier_terrain_adresse_localite,
70     dossier.terrain_adresse_code_postal as dossier_terrain_adresse_code_postal,
71     dossier.terrain_adresse_bp as dossier_terrain_adresse_bp,
72     dossier.terrain_adresse_cedex as dossier_terrain_adresse_cedex,
73     dossier.version,
74     dossier_autorisation_type.code,
75 vpihour 1809 dossier.autorite_competente,
76     dossier.date_limite,
77     dossier.date_notification_delai,
78 nhaye 1797
79     pp.type_demandeur,
80     pp.qualite,
81     civilite_pp.libelle as civilite_pp,
82     pp.particulier_nom as pp_particulier_nom,
83     pp.particulier_prenom as pp_particulier_prenom,
84     pp.personne_morale_denomination as pp_personne_morale_denomination,
85     pp.personne_morale_raison_sociale as pp_personne_morale_raison_sociale,
86     pp.personne_morale_siret as pp_personne_morale_siret,
87     pp.personne_morale_categorie_juridique as pp_personne_morale_categorie_juridique,
88     civilite_pm.libelle as civilite_pm_libelle,
89     pp.personne_morale_nom as pp_personne_morale_nom,
90     pp.personne_morale_prenom as pp_personne_morale_prenom,
91    
92     pp.numero as pp_numero,
93     pp.voie as pp_voie,
94     pp.complement as pp_complement,
95     pp.lieu_dit as pp_lieu_dit,
96     pp.localite as pp_localite,
97     pp.code_postal as pp_code_postal,
98     pp.bp as pp_bp,
99     pp.cedex as pp_cedex,
100     pp.pays as pp_pays,
101     pp.division_territoriale as pp_division_territoriale,
102    
103     civilite_delegataire.libelle as civilite_delegataire_libelle,
104     delegataire.particulier_nom as delegataire_particulier_nom,
105     delegataire.particulier_prenom as delegataire_particulier_prenom,
106     delegataire.numero as delegataire_numero,
107     delegataire.voie as delegataire_voie,
108     delegataire.complement as delegataire_complement,
109     delegataire.lieu_dit as delegataire_lieu_dit,
110     delegataire.localite as delegataire_localite,
111     delegataire.code_postal as delegataire_code_postal,
112     delegataire.bp as delegataire_bp,
113     delegataire.cedex as delegataire_cedex,
114     delegataire.pays as delegataire_pays,
115     delegataire.division_territoriale as delegataire_division_territoriale,
116    
117     pp.telephone_fixe as pp_telephone_fixe,
118 vpihour 1809 pp.courriel as pp_courriel,
119    
120     donnees_techniques.co_archi_recours,
121     donnees_techniques.am_terr_surf,
122     donnees_techniques.am_lotiss,
123     donnees_techniques.terr_juri_afu,
124     donnees_techniques.tr_desc,
125     donnees_techniques.co_cstr_nouv,
126     donnees_techniques.co_cstr_exist,
127     donnees_techniques.co_modif_aspect,
128     donnees_techniques.co_modif_struct,
129     donnees_techniques.co_cloture,
130     donnees_techniques.co_trx_exten,
131     donnees_techniques.co_trx_surelev,
132     donnees_techniques.co_trx_nivsup,
133     donnees_techniques.co_trx_amgt,
134     donnees_techniques.co_anx_pisc,
135     donnees_techniques.co_anx_gara,
136     donnees_techniques.co_anx_veran,
137     donnees_techniques.co_anx_abri,
138     donnees_techniques.co_anx_autr,
139     donnees_techniques.co_bat_niv_nb,
140     donnees_techniques.su_avt_shon1,
141     donnees_techniques.su_avt_shon2,
142     donnees_techniques.su_avt_shon3,
143     donnees_techniques.su_avt_shon4,
144     donnees_techniques.su_avt_shon5,
145     donnees_techniques.su_avt_shon6,
146     donnees_techniques.su_avt_shon7,
147     donnees_techniques.su_avt_shon8,
148     donnees_techniques.su_avt_shon9,
149     donnees_techniques.su_demo_shon1,
150     donnees_techniques.su_demo_shon2,
151     donnees_techniques.su_demo_shon3,
152     donnees_techniques.su_demo_shon4,
153     donnees_techniques.su_demo_shon5,
154     donnees_techniques.su_demo_shon6,
155     donnees_techniques.su_demo_shon7,
156     donnees_techniques.su_demo_shon8,
157     donnees_techniques.su_demo_shon9,
158     donnees_techniques.su_chge_shon1,
159     donnees_techniques.su_chge_shon2,
160     donnees_techniques.su_chge_shon3,
161     donnees_techniques.su_chge_shon4,
162     donnees_techniques.su_chge_shon5,
163     donnees_techniques.su_chge_shon6,
164     donnees_techniques.su_chge_shon7,
165     donnees_techniques.su_chge_shon8,
166     donnees_techniques.su_chge_shon9,
167     donnees_techniques.su_trsf_shon1,
168     donnees_techniques.su_trsf_shon2,
169     donnees_techniques.su_trsf_shon3,
170     donnees_techniques.su_trsf_shon4,
171     donnees_techniques.su_trsf_shon5,
172     donnees_techniques.su_trsf_shon6,
173     donnees_techniques.su_trsf_shon7,
174     donnees_techniques.su_trsf_shon8,
175     donnees_techniques.su_trsf_shon9,
176     donnees_techniques.su_cstr_shon1,
177     donnees_techniques.su_cstr_shon2,
178     donnees_techniques.su_cstr_shon3,
179     donnees_techniques.su_cstr_shon4,
180     donnees_techniques.su_cstr_shon5,
181     donnees_techniques.su_cstr_shon6,
182     donnees_techniques.su_cstr_shon7,
183     donnees_techniques.su_cstr_shon8,
184     donnees_techniques.su_cstr_shon9,
185     donnees_techniques.su_tot_shon1,
186     donnees_techniques.su_tot_shon2,
187     donnees_techniques.su_tot_shon3,
188     donnees_techniques.su_tot_shon4,
189     donnees_techniques.su_tot_shon5,
190     donnees_techniques.su_tot_shon6,
191     donnees_techniques.su_tot_shon7,
192     donnees_techniques.su_tot_shon8,
193     donnees_techniques.su_tot_shon9,
194     donnees_techniques.co_sp_transport,
195     donnees_techniques.co_sp_enseign,
196     donnees_techniques.co_sp_sante,
197     donnees_techniques.co_sp_act_soc,
198     donnees_techniques.co_sp_ouvr_spe,
199     donnees_techniques.co_sp_culture,
200     donnees_techniques.dm_tot_log_nb,
201     donnees_techniques.co_tot_ind_nb,
202     donnees_techniques.co_tot_coll_nb,
203     donnees_techniques.co_tot_log_nb,
204     donnees_techniques.co_resid_agees,
205     donnees_techniques.co_resid_etud,
206     donnees_techniques.co_resid_tourism,
207     donnees_techniques.co_resid_hot_soc,
208     donnees_techniques.co_resid_hand,
209     donnees_techniques.co_resid_autr,
210     donnees_techniques.co_resid_autr_desc,
211     donnees_techniques.co_uti_pers,
212     donnees_techniques.co_uti_princ,
213     donnees_techniques.co_uti_secon,
214     donnees_techniques.co_uti_vente,
215     donnees_techniques.co_uti_loc,
216     donnees_techniques.co_foyer_chamb_nb,
217     donnees_techniques.co_fin_lls_nb,
218     donnees_techniques.co_fin_aa_nb,
219 nhaye 1821 donnees_techniques.co_fin_ptz_nb,
220 vpihour 1809 donnees_techniques.co_fin_autr_nb,
221     donnees_techniques.co_mais_piece_nb,
222     donnees_techniques.co_log_1p_nb,
223     donnees_techniques.co_log_2p_nb,
224     donnees_techniques.co_log_3p_nb,
225     donnees_techniques.co_log_4p_nb,
226     donnees_techniques.co_log_5p_nb,
227     donnees_techniques.co_log_6p_nb,
228    
229     avis_decision.sitadel,
230     avis_decision.sitadel_motif
231 nhaye 1797
232    
233 vpihour 1809 FROM ".DB_PREFIXE."dossier";
234 nhaye 1797 $sql .= " INNER JOIN ".DB_PREFIXE."dossier_instruction_type
235     ON dossier.dossier_instruction_type =
236     dossier_instruction_type.dossier_instruction_type
237    
238     INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
239     ON dossier_instruction_type.dossier_autorisation_type_detaille
240     =dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
241     INNER JOIN ".DB_PREFIXE."dossier_autorisation_type
242     ON dossier_autorisation_type.dossier_autorisation_type
243     =dossier_autorisation_type_detaille.dossier_autorisation_type
244    
245 vpihour 1809 LEFT JOIN ".DB_PREFIXE."donnees_techniques
246     ON donnees_techniques.dossier_instruction = dossier.dossier
247     LEFT JOIN ".DB_PREFIXE."avis_decision
248     ON avis_decision.avis_decision = dossier.avis_decision
249 nhaye 1797 LEFT JOIN ".DB_PREFIXE."lien_dossier_demandeur as ldd_pp
250     ON ldd_pp.dossier = dossier.dossier
251     AND ldd_pp.petitionnaire_principal is TRUE
252     LEFT JOIN ".DB_PREFIXE."demandeur as pp
253     ON ldd_pp.demandeur = pp.demandeur
254     LEFT JOIN ".DB_PREFIXE."civilite as civilite_pp
255     ON civilite_pp.civilite = pp.particulier_civilite
256     LEFT JOIN ".DB_PREFIXE."civilite as civilite_pm
257     ON civilite_pm.civilite = pp.particulier_civilite
258     LEFT JOIN ".DB_PREFIXE."lien_dossier_demandeur as ldd_delegataire
259     ON ldd_delegataire.dossier = dossier.dossier
260     LEFT JOIN ".DB_PREFIXE."demandeur as delegataire
261     ON ldd_delegataire.demandeur = delegataire.demandeur AND delegataire.qualite='delegataire'
262     LEFT JOIN ".DB_PREFIXE."civilite as civilite_delegataire
263     ON civilite_delegataire.civilite = delegataire.particulier_civilite
264     ";
265     $sql .= " WHERE dossier_instruction_type.mouvement_sitadel IS NOT NULL";
266 nhaye 1798 $sql .= " AND dossier.a_qualifier IS NOT TRUE";
267 nhaye 1797 $sql .= " AND ((dossier.date_depot >='".$datedebut."' AND dossier.date_depot<='".$datefin."')";
268     $sql .= " OR (dossier.date_decision>='".$datedebut."' AND dossier.date_decision<='".$datefin."')";
269     $sql .= " OR (dossier.date_chantier>='".$datedebut."' AND dossier.date_chantier<='".$datefin."'))";
270     $sql .= " order by dossier.date_depot";
271 fraynaud 178 $res = $f->db -> query ($sql);
272 vpihour 1809 $f->addToLog("app/sitadel.php : db->query(\"".$sql."\")", VERBOSE_MODE);
273 fraynaud 178 $f->isDatabaseError($res);
274 fraynaud 190 $export="";
275 fraynaud 178 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
276 nhaye 1785 // initialisation de la classe permettant la mise en forme de chaque ligne de l'export
277 fraynaud 187 $g = new sitadel($row['dossier']);
278 vpihour 1809 $g->setRow($row);
279 fraynaud 187 // sitadel
280 vpihour 1809 $g->setVal($val);
281 nhaye 1785 //
282 fraynaud 187 // parametre
283 nhaye 1785 // $sql = "select parametre, valeur from ".DB_PREFIXE."statistique where dossier ='".$row['dossier']."'";
284     // $res1 = $f->db -> query ($sql);
285     // $f->isDatabaseError($res1);
286     // while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){
287     // $g->parametre[$row1['parametre']]=$row1['valeur'];
288     // }
289 fraynaud 187 $departement =$f->collectivite["departement"];
290     $commune =$f->collectivite["commune"];
291     $region =$f->collectivite["region"];
292     // depot
293     $depot="";
294 nhaye 1785
295 nhaye 1797 // Tous les mouvements autres que transfert ont comme mouvement le code DEPOT
296 nhaye 1785 // les décisions devant êtres précédées par le dépôt correspondant,
297     // les dossiers avec date de décision comprise dans l'interval fourni sont
298     // réaffichés en tant que dépôts (mouvement DEPOT)
299 nhaye 1797 if ($row['mouvement_sitadel'] != 'TRANSFERT'
300 fraynaud 190 and (($row['date_depot'] >= $datedebut
301 nhaye 1785 and $row['date_depot'] <= $datefin)
302 fraynaud 190 or ($row['date_decision'] >= $datedebut
303 nhaye 1785 and $row['date_decision'] <= $datefin))) {
304 fraynaud 193 $depot.=$g->entete("DEPOT",$departement,$commune,$pf_departement);
305 fraynaud 187 $depot.=$g->etatcivil();
306     $depot.=$g->adresse();
307     $depot.=$g->delegataire();
308 nhaye 1797 $depot.=$g->meltel($row['mouvement_sitadel']);
309 fraynaud 187 $depot.=$g->adresse_terrain();
310     $depot.=$g->parcelle();
311     // ===========================
312     // contrat maison individuelle
313     // ===========================
314     // sitadel : contrat|
315 vpihour 1809 // openads : non renseigne
316 fraynaud 187 $depot.= $g->p('contrat')."|";
317     // ==========
318     // architecte
319     // ==========
320     // sitadel : architecte|
321 vpihour 1809 // openads : données techniques.co_archi_recours
322     if($row['co_archi_recours'] == "t")
323 fraynaud 187 $depot.= "1|";
324     else
325     $depot.= "0|";
326     // =====================
327     // utilisation data cnil
328     // ======================
329     // sitadel : cnil
330 vpihour 1809 // openads : non renseigne
331 fraynaud 187 $depot.= $g->p('cnil');
332     // fin d enregistrement depot
333     $depot.="\n";
334 fraynaud 178 }
335 fraynaud 187
336 nhaye 1785 // Seuls les dossier de type transfert ont comme mouvement le code TRANSFERT
337 fraynaud 187 $transfert ="";
338 nhaye 1797 if($row['mouvement_sitadel']=='TRANSFERT'
339 fraynaud 190 and $row['date_depot'] >= $datedebut
340     and $row['date_depot']<=$datefin){
341 fraynaud 193 $transfert.=$g->entete("TRANSFERT",$departement,$commune,$pf_departement);
342 fraynaud 187 $transfert.=$g->etatcivil();
343     $transfert.=$g->adresse();
344 nhaye 1797 $transfert.=$g->meltel($row['mouvement_sitadel']);
345 fraynaud 187 $transfert.="\n";
346 fraynaud 178 }
347 fraynaud 187
348    
349 nhaye 1785 // Une ligne de mouvement DECISION est insérée après chaque ligne
350     // de mouvement DEPOT
351 fraynaud 187 $decision="";
352 nhaye 1797 if ($row['mouvement_sitadel'] != 'MODIFICATIF'
353     and $row['mouvement_sitadel'] != 'TRANSFERT'
354 fraynaud 200 and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin)
355 nhaye 1785 or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))) {
356 vpihour 1809
357     //Ajout de l'entête
358 fraynaud 193 $decision.=$g->entete("DECISION",$departement,$commune,$pf_departement);
359 vpihour 1809
360     //Ajout du groupe 1
361     $decision.= $g->decision_groupe1();
362     // Si la décision est favorable, groupe 2
363     if ( $row['sitadel'] == 2 || $row['sitadel'] == 4 || $row['sitadel'] == 5
364     || $row['sitadel'] == 0 ){
365    
366     $decision.= $g->amenagement_terrain();
367     $su_avt_shon = $g->shon("su_avt_shon");
368 vpihour 1810 //Si la SHON existante avant travaux est supérieur à la SHON
369     //démolie alors la variable natproj est égale à 2
370     $shonExistante = 0;
371     $shonDemolie = 0;
372     for ( $i=1;$i<=9;$i++){
373    
374     $shonExistante += floor($row['su_avt_shon'.$i]);
375     $shonDemolie += floor($row['su_demo_shon'.$i]);
376     }
377     if ( $shonExistante > $shonDemolie && $row['co_cstr_nouv'] == 't' ){
378    
379 nhaye 1821 $f->displayMessage("error", _("Si la SHON existante avant travaux est supérieur à la SHON démolie alors la variable natproj doit etre égale à 2 pour le dossier no")." ".$row['dossier']);
380 vpihour 1810 affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
381     die();
382     }
383     //Si la SHON existante avant travaux et la SHON démolie sont
384     //égales alors la variable natproj est égale à 1
385     elseif ( $shonExistante > $shonDemolie && $row['co_cstr_exist'] == 't' ) {
386    
387 nhaye 1821 $f->displayMessage("error", _("Si la SHON existante avant travaux et la SHON démolie sont égales alors la variable natproj doit être égale à 1 pour le dossier no")." ".$row['dossier']);
388 vpihour 1810 affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
389     die();
390     }
391     else {
392     $decision .= $su_avt_shon;
393     }
394 vpihour 1809
395 nhaye 1821 $su_demo_shon = $g->shon("su_demo_shon");
396 vpihour 1810 //La SHON démolie s'accompagne obligatoirement de la shon
397     //existante avant travaux
398     //Erreur
399     if ( $shonExistante != 0 && $shonExistante == 0 ){
400 nhaye 1821 $f->displayMessage("error", _("La SHON demolie s'accompagne obligatoirement de la SHON existante avant travaux pour le dossier no")." ".$row['dossier']);
401 vpihour 1810 affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
402     die();
403     }
404     else {
405     $decision .= $su_demo_shon;
406     }
407    
408    
409 vpihour 1809 $decision.= $g->shon("su_chge_shon");
410     $su_trsf_shon = $g->shon("su_trsf_shon");
411     $su_cstr_shon = $g->shon("su_cstr_shon");
412     //Les SHON relatives à la transformation et issues de la
413     //transformation doivent être égales
414     if ( strcasecmp($su_trsf_shon, $su_cstr_shon) == 0 ||
415     (!preg_match("/[0|]{7}/", $su_trsf_shon) &&
416     preg_match("/[0|]{7}/", $su_cstr_shon) &&
417     $row['co_cstr_nouv']!='t' && $row['co_cstr_exist']!='t')){
418    
419     $decision.= $su_trsf_shon;
420     $decision.= $su_cstr_shon;
421 nhaye 1785 }
422 vpihour 1809 //Erreur
423     else {
424 nhaye 1821 $f->displayMessage("error", _("Les SHON globales vouees a la transformation et issues de la transformation de doivent etre egales pour le dossier no")." ".$row['dossier']);
425 vpihour 1809 affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
426     die();
427 nhaye 1821 }
428 vpihour 1809
429     //Les SHON relatives à la transformation s'accompagnent
430     //obligatoirement de SHON existante avant travaux non nulle
431     if (( !preg_match("/[0|]{7}/", $su_trsf_shon) &&
432     !preg_match("/[0|]{7}/", $su_cstr_shon) &&
433     !preg_match("/[0|]{7}/", $su_avt_shon)) ||
434     (preg_match("/[0|]{7}/", $su_trsf_shon) &&
435     preg_match("/[0|]{7}/", $su_cstr_shon)&&
436     preg_match("/[0|]{7}/", $su_avt_shon))){
437    
438     $decision.= $su_avt_shon;
439     }
440     //Erreur
441     else {
442    
443 nhaye 1821 $f->displayMessage("error", _("Les SHON relatives à la transformation s'accompagnent obligatoirement de SHON existante avant travaux non nulle pour le dossier no")." ".$row['dossier']);
444 vpihour 1809 affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
445     die();
446 nhaye 1821 }
447 vpihour 1809
448     $decision.= $g->shon("su_tot_shon");
449 nhaye 1821
450     // Un nombre de logements démolis strictement positif doit
451     // s'accompagner obligatoirement de SHON démolie.
452     if($row['dm_tot_log_nb'] > 0) {
453     if($row['su_demo_shon1'] <= 0) {
454     $f->displayMessage("error", _("Un nombre de logements demolis strictement positif doit s'accompagner obligatoirement de SHON demolie pour le dossier no")." ".$row['dossier']);
455     affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
456     die();
457     }
458     }
459    
460     // Un nombre de logements créés strictement positif doit
461     // s'accompagner obligatoirement de SHON créée ou de SHON
462     // issue de la transformation ayant pour destination l'habitation.
463     if($row['co_tot_log_nb'] > 0 AND ($row['su_cstr_shon1'] <= 0 OR $row['su_trsf_shon1'] <=0)) {
464     $f->displayMessage("error", _("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']);
465     affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
466     die();
467     }
468    
469     // La SHON créée ou issue de la transformation
470     // suffixée par 9 (intérêt collectif ou service public) doit
471     // obligatoirement s'accompagner de la décomposition
472     // en sous modalité renseignée par la variable cpublic et réciproquement.
473    
474     // Test si une valeur est true
475     $cpublic = FALSE;
476     if (isset($row['co_sp_transport']) && $row['co_sp_transport'] == 't') {
477     $cpublic = TRUE;
478     }
479     if (isset($row['co_sp_enseign']) && $row['co_sp_enseign'] == 't') {
480     $cpublic = TRUE;
481     }
482     if (isset($row['co_sp_sante']) && $row['co_sp_sante'] == 't') {
483     $cpublic = TRUE;
484     }
485     if (isset($row['co_sp_act_soc']) && $row['co_sp_act_soc'] == 't') {
486     $cpublic = TRUE;
487     }
488     if (isset($row['co_sp_ouvr_spe']) && $row['co_sp_ouvr_spe'] == 't') {
489     $cpublic = TRUE;
490     }
491     if (isset($row['co_sp_culture']) && $row['co_sp_culture'] == 't') {
492     $cpublic = TRUE;
493     }
494    
495     if($cpublic !== TRUE AND ($row['su_cstr_shon9'] > 0 OR $row['su_trsf_shon9'] > 0)) {
496     $f->displayMessage("error", _("La SHON creee ou issue de la transformation concernant le service public ou l'intérêt collectif doit obligatoirement s'accompagner du choix de destination des constructions pour le dossier no")." ".$row['dossier']);
497     affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
498     die();
499     }
500    
501     // La destination principale du logement mise à résidence
502     // principale ou résidence secondaire doit obligatoirement
503     // s'accompagner d'un mode d'utilisation à occupation personnelle
504     if($row['co_uti_princ'] == 't' OR $row['co_uti_secon'] == 't') {
505     if($row['co_uti_pers'] != 't') {
506     $f->displayMessage("error", _("La destination principale du logement mise à résidence principale ou résidence secondaire doit obligatoirement s'accompagner d'un mode d'utilisation à occupation personnelle pour le dossier no")." ".$row['dossier']);
507     affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
508     die();
509     }
510     }
511    
512 vpihour 1809 $decision.= $g->destination();
513 nhaye 1821
514     // Le nombre total de logements créés (variable nbtotlog)
515     // doit être égal à la somme des nombres de logements créés
516     // ventilés par type de financement
517     if($row['co_tot_log_nb'] != ($row['co_fin_lls_nb'] + $row['co_fin_aa_nb'] +
518     $row['co_fin_ptz_nb'] + $row['co_fin_autr_nb'])) {
519    
520     $f->displayMessage("error", _("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']);
521     affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
522     die();
523     }
524    
525 vpihour 1809 $decision.= $g->repartitionFinan();
526 nhaye 1821
527     // Le nombre total de logements créés (variable nbtotlog)
528     // doit être égal à la totalisation de la répartition des
529     // logements par nombre de pièces
530     if($row['co_tot_log_nb'] != ($row['co_log_1p_nb'] + $row['co_log_2p_nb'] +
531     $row['co_log_3p_nb'] + $row['co_log_4p_nb'] + $row['co_log_5p_nb'] +
532     $row['co_log_6p_nb'])) {
533    
534     $f->displayMessage("error", _("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']);
535     affichageFormulaire($_POST['datedebut'], $_POST['datefin'], $_POST['numero']);
536     die();
537     }
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     $departement =$f->collectivite["departement"];
637     $commune =$f->collectivite["commune"];
638     $region =$f->collectivite["region"];
639 fraynaud 190 $numero=$_POST["numero"];
640 fraynaud 193 $fichiertransmis = date('ymj').$pf_departement.$departement.$commune;
641 fraynaud 190 $longueurenregistrement= 0 ; // a calculer *** enregistrement le plus long
642 fraynaud 193 $entete = "SITADEL|".$pf_departement.$departement."|".$commune."|".$region."|".$fichiertransmis."|".$numero."|";
643 fraynaud 190 // calcul enregistrement le plus long
644 fmichon 323 if(DBCHARSET=='UTF8'){
645 fraynaud 190 $export=utf8_decode($export);
646     }
647     // nombreenrgistremment et longueurenregistrement
648     $nbenr = explode("\n",$export);
649     $tmp=array();
650     $cpt=0;
651     for($i=0;$i<sizeof($nbenr);$i++){
652     // mb_strlen( variable,encoding) PHP 4 >= 4.0.6, PHP 5
653 vpihour 510 // Le param�tre encoding est l'encodage des caract�res.
654     // S'il est omis, l'encodage de caracteres interne sera utilis�.
655 fraynaud 190 $tmp[$i] = strlen($nbenr[$i]);
656     //echo strlen($nbenr[$i])." ".$nbenr[$i]."<br>";
657     $cpt++;
658     }
659     $longueurenregistrement=max($tmp);
660     $nombreenregistrement=$cpt; // + entete
661     // Date de modification
662     $datemodification = date('y').str_pad (DATE('m'), 2, "0", STR_PAD_LEFT).str_pad (DATE('j'), 2, "0", STR_PAD_LEFT);
663     // export
664 nhaye 1797 $version = substr($f->version,0,8);
665 fraynaud 200 $entete.= $longueurenregistrement."|".$datemodification."|".
666     $nombreenregistrement."|openFoncier|".$version."\n";
667 fraynaud 190 $export=$entete.$export;
668 fraynaud 193 // $str = htmlentities($str, ENT_QUOTES);
669 fraynaud 190 // ecriture des fichiers en tmp
670     $fichier = "../tmp/SITADEL".substr($_POST["datedebut"],3,2).
671 fraynaud 322 "".substr($_POST["datedebut"],8,4)."";
672 fraynaud 190 $inf = fopen($fichier,"w");
673     fwrite($inf,$export);
674     fclose($inf);
675 fraynaud 200 echo "<br>"._("Fichier")." ".$fichier." "._("sauvegarde")."<br /><br /><br />";
676 fraynaud 190 // affichage
677     echo "<br /><br />Pour telecharger le fichier, cliquer ici : <a href=\"".$fichier."\" target=\"_blank\">";
678 fraynaud 322 echo "<img src=\"../app/img/ico_trace.png\" alt=\"Telecharger le fichier CNEN\" title=\"Telecharger le fichier Sitadel\" />";
679 fraynaud 200 echo "</a>"._("avec le bouton droit et enregistrer la cible du lien sous.")."<br /><br />";
680 nhaye 1785 if(DEBUG != "PRODUCTION_MODE"){
681 fraynaud 190 $affiche="";
682     $affiche= str_replace("\n","<br>",$export);
683     echo $affiche;
684     }
685 fraynaud 187 }else // correct = false
686 fraynaud 200 echo _("remplissez les 2 dates");
687 fraynaud 178 }//validation
688 vpihour 1809
689     /**
690     * Affichage du formulaire
691     *
692     * */
693     function affichageFormulaire($datedebut="", $datefin="", $numero=""){
694    
695     echo "<form method=\"POST\" action=\"sitadel.php\" name=f1>";
696     // champ date debut
697     echo " "._("debut")." ";
698     echo "<input type='text' name='datedebut' id=\"datedebut\" value=\"";
699     echo $datedebut;
700     echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />";
701     // champ date fin
702     echo " "._("fin")." ";
703     echo "<input type='text' name='datefin' id=\"datefin\" value=\"";
704     echo $datefin;
705     echo "\" size=\"15\" class=\"champFormulaire datepicker\" onchange='fdate(this)' onkeyup=\"\" onclick=\"\" />";
706     // numero d'ordre d'envoi
707     echo " "._("Numero d'ordre d'envoi")." : "."<select name='numero'>";
708     for ($i = 1; $i < 11; $i++) {
709     echo "<option value ='".$i."' ";
710     echo ($numero == $i )? "selected='selected'":"";
711     echo">".$i."</option>";
712     }
713     echo "</select>";
714     echo "<br><br><input type='submit' value='export SITADEL'>";
715     echo "</form>";
716     }
717 fraynaud 200 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26