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

Annotation of /trunk/app/sitadel.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1863 - (hide annotations)
Tue May 14 16:29:52 2013 UTC (11 years, 8 months ago) by nhaye
File size: 35166 byte(s)
Modification du mouvement modificatif de l'export sitadel afin qu'il correspond aux spécifications de la dreal.

1 fraynaud 178 <?php
2     /**
3 nhaye 1785 * Classe permettant la mise en forme de chaque ligne de l'export SITADEL
4     * Les méthode retourne des morceaux de lignes en faisant correspondre les valeurs
5     * du dossier avec les valeurs définie pour l'export SITADEL
6 fmichon 1515 *
7     * @package openfoncier
8     * @version SVN : $Id$
9 fraynaud 178 */
10    
11     class sitadel {
12    
13 vpihour 1809 private $dossier; // identifiant du dossier à insérer dans l'export
14     private $row; // Valeurs du dossier
15     private $val; // parametre par defaut
16     private $parametre; //parametre dossier
17     private $DEBUG=0; // 1 = valeur
18 fraynaud 178
19 nhaye 1785 /**
20     * Constructeur, initialisation de l'attribut dossier
21     *
22     * @param dossier string identifiant du dossier à traiter
23     */
24 fraynaud 178 function sitadel($dossier) {
25     $this->dossier=$dossier;
26     }// fin constructeur
27 vpihour 1809
28 nhaye 1785 /**
29 vpihour 1809 * Mutateur pour le tableau de données du dossier
30     *
31     * @param $row Le tableau de données du dossier
32     * @return void
33     * */
34     public function setRow($row){
35     $this->row = $row;
36     }
37    
38     /**
39     * Mutateur pour le paramètre par défaut
40     *
41     * @param $val Le paramètre par défaut
42     * @return void
43     * */
44     public function setVal($val){
45     $this->val = $val;
46     }
47    
48     /**
49 nhaye 1785 * Permet de mettre en forme le début de chaque la ligne
50     *
51     * @param mouvement string DEPOT, DECISION, SUIVI, TRANSFERT, MODIFICATIF, SUPPRESSION
52     * @param departement string non utilisé
53     * @param commune string code commune du dossier
54     * @param pf_departement string code du département du dossier
55     *
56     * @return string entete de la ligne
57     */
58 fraynaud 193 function entete($mouvement, $departement, $commune,$pf_departement){
59 fraynaud 178 // sitadel : mouv|typpermis|equivalence|dep|commune|andepnumpc|indmod
60 nhaye 1785 // l'equivalence n'est pas utilisée
61 nhaye 1797 $entete=$mouvement."|".$this->row['code']."|Vm|".$pf_departement.$departement."|".$commune."|".substr($this->dossier,8,2).
62     "|".substr($this->dossier,10,5)."|".$this->row['version']."|";
63 fraynaud 178 return $entete;
64     }
65    
66 nhaye 1785 /**
67     * Permet de mettre en forme l'état civil :
68     * personne morale / physique
69     * société, siret, civilité, nom, prénom / civilité, nom, prénom
70     *
71     * @return string demandeur désigné
72     */
73 fraynaud 178 function etatcivil(){
74     // etat civil demandeur
75     // codemo|
76 nhaye 1797 if ($this->row['qualite'] == "particulier") {
77 fraynaud 178 $codemo=1;// personne physique
78 nhaye 1797 } else {
79     $codemo=2;// personne morale
80     }
81 fraynaud 178 $etatcivil=$codemo."|"; // 1 personne physique ; 2 sinon
82     // openfoncier civilite (5/8 ok), nom (80/30-> substr), societe (80/50->substr)
83     // civpart|prenompart|nompart|denopm|rspm|siret|catjur|civrep|prenomrep|nomrep|
84     // suivant codemo = 1 (personne physique) ou 2 (personne morale)
85     // demandeur_civilite n est pas normalise Madame ou Monsieur
86 nhaye 1797 if ($codemo == 1) {
87 fraynaud 185 // *civpart*|*prenompart*|nompart||||||
88 nhaye 1797 $etatcivil.= $this->maj(substr($this->row['civilite_pp'],0,8))."|";
89     $etatcivil.= $this->maj(substr($this->row['pp_particulier_prenom'],0,30))."|";
90    
91 vpihour 1809 $etatcivil.= $this->maj(substr($this->row['pp_particulier_nom'],0,30))."|Vm|Vm|Vm|Vm|Vm|Vm|Vm|";
92 nhaye 1797 } else {
93 fraynaud 186 //denopm|*rspm*|*siret*|*catjur*|*civrep*|*prenomrep*|nomrep|
94 vpihour 1809 $etatcivil.="Vm|Vm|Vm|"; // codemo=1
95 nhaye 1797 $etatcivil.=$this->maj(substr($this->row['pp_personne_morale_denomination'],0,50))."|";
96     $etatcivil.=$this->maj(substr($this->row['pp_personne_morale_raison_sociale'],0,30))."|";
97     $etatcivil.=$this->maj(substr($this->row['pp_personne_morale_siret'],0,14))."|";
98     $etatcivil.=$this->maj(substr($this->row['pp_personne_morale_categorie_juridique'],0,4))."|";
99     $etatcivil.=$this->maj(substr($this->row['civilite_pm_libelle'],0,8))."|";
100     $etatcivil.=$this->maj(substr($this->row['pp_personne_morale_prenom'],0,30))."|";
101     $etatcivil.=$this->maj(substr($this->row['pp_personne_morale_nom'],0,30))."|";
102 fraynaud 178 }
103     return $etatcivil;
104     }
105    
106     function adresse(){
107     // openfoncier : adresse (80/ 26+38 -> substr sur 2 zones) - cp (5/5 OK) - ville (30/36 -> OK)
108     // *numvoiemo*|*typvoiemo*|libvoiemo|lieuditmo(+)|communemo|codposmo|*bpmo*|*cedexmo*|*paysmo*|*divetermo|
109 fraynaud 186 $adresse="";
110 nhaye 1797 $adresse.= $this->maj(substr($this->row['pp_numero'],0,5))."|";
111     $adresse.= $this->maj(substr("",0,5))."|";
112     $adresse.= $this->maj(substr($this->row['pp_voie'],0,26))."|";
113     $adresse.= $this->maj(substr($this->row['pp_lieu_dit'],0,38))."|";
114     $adresse.= $this->maj(substr($this->row['pp_localite'],0,32))."|";
115     $adresse.= $this->maj(substr($this->row['pp_code_postal'],0,5))."|";
116     $adresse.= $this->maj(substr($this->row['pp_bp'],0,5))."|";
117     $adresse.= $this->maj(substr($this->row['pp_cedex'],0,5))."|";
118     $adresse.= $this->maj(substr($this->row['pp_pays'],0,3))."|";
119     $adresse.= $this->maj(substr($this->row['pp_division_territoriale'],0,38))."|";
120    
121 fraynaud 187 return $adresse;
122 fraynaud 178 }
123    
124    
125     function delegataire(){
126     // openFoncier civilite (non normalise monsieur/madame), nom (80/30 substr)
127     // openfoncier : adresse (80/ 26+38 -> substr sur 2 zones) - cp (5/5 OK) - ville (30/32 -> OK)
128 fraynaud 186 // *civtiers*|*prenomtier*|nomtier|*numvoietiers*|*typvoietiers*|
129 fraynaud 178 // libvoietiers|lieudittier|communetier|codpostier
130     // |*bptier*|*cedextier*|*paystier*|*divtertier*|
131     $delegataire="";
132 nhaye 1797 $delegataire.= $this->maj(substr($this->row['civilite_delegataire_libelle'],0,8))."|";
133     $delegataire.= $this->maj(substr($this->row['delegataire_particulier_prenom'],0,30))."|";
134     $delegataire.= $this->maj(substr($this->row['delegataire_particulier_nom'],0,30))."|";
135     $delegataire.= $this->maj(substr($this->row['delegataire_numero'],0,5))."|";
136     $delegataire.= $this->maj(substr("",0,5))."|";
137     $delegataire.= $this->maj(substr($this->row['delegataire_voie'],0,26))."|";
138     $delegataire.= $this->maj(substr($this->row['delegataire_lieu_dit'],0,38))."|";
139     $delegataire.= $this->maj(substr($this->row['delegataire_localite'],0,32))."|";
140     $delegataire.= $this->maj(substr($this->row['delegataire_code_postal'],0,5))."|";
141     $delegataire.= $this->maj(substr($this->row['delegataire_bp'],0,5))."|";
142     $delegataire.= $this->maj(substr($this->row['delegataire_cedex'],0,5))."|";
143     $delegataire.= $this->maj(substr($this->row['delegataire_pays'],0,3))."|";
144     $delegataire.= $this->maj(substr($this->row['delegataire_division_territoriale'],0,38))."|";
145 fraynaud 187 return $delegataire;
146     }
147    
148     function meltel($mouvement){
149 vpihour 1809 // openfoncier telephone_fixe (14/20), courriel(40, 50) pas de suivi
150     // sitadel : telmo|melmo|suivi
151 fraynaud 187 $meltel="";
152 nhaye 1834 if($mouvement != "TRANSFERT")
153 vpihour 1809 $meltel.=$this->maj($this->row['pp_telephone_fixe'])."|";
154     $meltel.= $this->maj($this->row['pp_courriel'])."|";
155 nhaye 1797 // suivi electronique
156     // Il n'y a pas de notification par mail gérée dans l'appli
157 vpihour 1809 $meltel.= "0";
158    
159 fraynaud 193 // suivi -> fin enr pour transfert (sans |)
160 nhaye 1834 if($mouvement != "TRANSFERT")
161 fraynaud 190 $meltel.= "|";
162 fraynaud 187 return $meltel;
163 fraynaud 193 }
164 fraynaud 178
165 nhaye 1863 /**
166     * Permet de mettre en forme l'adresse du terrain
167     * @return string champs du terrain séparés par des |
168     */
169 fraynaud 178 function adresse_terrain(){
170     // openfoncier numero (4/5 substr), adresse(80, 26 +38 -> substr), complement (non utilise (80)), cp (5/5 ok), ville (30/32 ok)
171 fraynaud 187 // sitadel : |numvoiete|*typvoiete*|libvoiete|lieudite|communete|codposte|*bpte*|*cedexte*|
172     // mettre le | en debut pour info du 2eme groupe (suite 1er groupe)
173 fraynaud 193 $adresse="";
174 nhaye 1797 $adresse.= $this->maj(substr($this->row['dossier_terrain_adresse_voie_numero'],0,5))."|";
175     $adresse.= $this->maj(substr("",0,5))."|";
176     $adresse.= $this->maj(substr($this->row['dossier_complement'],0,26))."|";
177     $adresse.= $this->maj(substr($this->row['dossier_terrain_adresse_lieu_dit'],0,38))."|";
178     $adresse.= $this->maj(substr($this->row['dossier_terrain_adresse_localite'],0,32))."|";
179     $adresse.= $this->maj(substr($this->row['dossier_terrain_adresse_code_postal'],0,5))."|";
180     $adresse.= $this->maj(substr($this->row['dossier_terrain_adresse_bp'],0,5))."|";
181     $adresse.= $this->maj(substr($this->row['dossier_terrain_adresse_cedex'],0,5))."|";
182    
183 fraynaud 178 return $adresse;
184     }
185 vpihour 1809
186     /**
187     * Formalise la parcelle à partir de la référence cadastrale
188     *
189     * @return string la chaine formatée
190     */
191 fraynaud 178 function parcelle(){
192     // ========
193     // parcelle
194     // ========
195     // cadastre 3 parcelles + 3 sections
196     // openfoncier = 1 seule parcelle (6/3+5)
197     // sitadel : scadastre1|ncadastre1|*scadastre2*|*ncadastre2*|*scadastre3*|*ncadastre3*|
198 nhaye 1797 $parcelle = "";
199     if ($this->row['dossier_terrain_references_cadastrales'] != "" ) {
200     $tab_parcelles = $this->parseParcelles($this->row['dossier_terrain_references_cadastrales']);
201 vpihour 1809
202     $parcelle .= ( isset($tab_parcelles[0]) && count($tab_parcelles[0]) == 3 )
203     ? $this->maj(substr($tab_parcelles[0]['section'],0,3))."|".
204     $this->maj(substr($tab_parcelles[0]['parcelle'],0,5))."|"
205     : "Vm|Vm|";
206     $parcelle .= ( isset($tab_parcelles[1]) && count($tab_parcelles[1]) == 3 )
207     ? $this->maj(substr($tab_parcelles[1]['section'],0,3))."|".
208     $this->maj(substr($tab_parcelles[1]['parcelle'],0,5))."|"
209     : "Vm|Vm|";
210     $parcelle .= ( isset($tab_parcelles[2]) && count($tab_parcelles[2]) == 3 )
211     ? $this->maj(substr($tab_parcelles[2]['section'],0,3))."|".
212     $this->maj(substr($tab_parcelles[2]['parcelle'],0,5))."|"
213     : "Vm|Vm|";
214 nhaye 1797 } else {
215 vpihour 1809 $parcelle= "Vm|Vm|Vm|Vm|Vm|Vm|";
216 nhaye 1797 }
217 vpihour 1809
218 fraynaud 178 return $parcelle;
219     }
220    
221 nhaye 1797 /**
222     * Permet de calculer la liste des parcelles à partir de la chaîne passée en paramètre
223     * et la retourner sous forme d'un tableau associatif
224     * @param string $strParcelles chaîne de la parcelles
225     * @return array (array(quartier, section, parcelle), ...)
226     */
227     function parseParcelles($strParcelles) {
228 vpihour 1809
229 nhaye 1797 // Séparation des lignes
230     $references = explode(";", $strParcelles);
231     $liste_parcelles = array();
232 vpihour 1809
233 nhaye 1797 // On boucle sur chaque ligne pour ajouter la liste des parcelles de chaque ligne
234     foreach ($references as $parcelles) {
235 vpihour 1809
236 nhaye 1797 // On transforme la chaîne de la ligne de parcelles en tableau
237     $ref = str_split($parcelles);
238     // Les 1er caractères sont numériques
239     $num = true;
240 vpihour 1809
241 nhaye 1797 // Tableau des champs de la ligne de références cadastrales
242     $reference_tab = array();
243     $temp = "";
244     foreach ($ref as $carac) {
245 vpihour 1809
246 nhaye 1797 // Permet de tester si le caractère courant est de même type que le précédent
247     if(is_numeric($carac) === $num) {
248     $temp .= $carac;
249     } else {
250     // Bascule
251     $num = !$num;
252     // On stock le champ
253     $reference_tab[] = $temp;
254     // re-init de la valeur temporaire pour le champ suivant
255     $temp = $carac;
256     }
257     }
258     // Stockage du dernier champ sur lequel il n'y a pas eu de bascule
259     $reference_tab[] = $temp;
260     // Calcul des parcelles
261     $quartier = $reference_tab[0];
262     $sect = $reference_tab[1];
263    
264 vpihour 1809 $ancien_ref_parc = "";
265 nhaye 1797 for ($i=2; $i < count($reference_tab); $i+=2) {
266     $parc["quartier"] = $quartier;
267     $parc["section"] = $sect;
268 vpihour 1809 if( $ancien_ref_parc == "" OR $reference_tab[$i-1] == "/") {
269 nhaye 1797 // 1ere parcelle ou parcelle individuelle
270     $parc["parcelle"] = $reference_tab[$i];
271     // Ajout d'une parcelle à la liste
272     $liste_parcelles[] = $parc;
273     } elseif ($reference_tab[$i-1] == "A") {
274     // Interval de parcelles
275     for ($j=$ancien_ref_parc+1; $j <= $reference_tab[$i]; $j++) {
276     $parc["parcelle"] = $j;
277     // Ajout d'une parcelle à la liste
278     $liste_parcelles[] = $parc;
279     }
280     }
281 vpihour 1809 //Gestion des erreurs
282     else{
283    
284     echo _("Une erreur de formattage a ete detecte dans la reference cadastrale du dossier ").$this->row['dossier'];
285     }
286 nhaye 1797 // Sauvegarde de la référence courante de parcelle
287     $ancien_ref_parc = $reference_tab[$i];
288     }
289     }
290 vpihour 1809
291 nhaye 1797 return $liste_parcelles;
292     }
293    
294 vpihour 1809 /**
295     * Données pour le groupe 1 du mouvement décision
296     *
297     * @return string la chaine de données du groupe 1
298     */
299     function decision_groupe1(){
300     // openfoncier autorite_competente (integer/1), sitadel(integer, 1)
301     // date_limite (date, 8)| date_notification_delai (date, 8),
302     // sitadel_motif (integer, 1)
303     // sitadel : collectivite|natdec|datredec|motifann
304    
305     $decision = $this->maj(substr($this->row['autorite_competente'],0,1))."|";
306     $decision.= $this->maj(substr($this->row['sitadel'],0,1))."|";
307    
308     $datredec = "";
309     //Choix de la date
310     if ( $this->row['sitadel'] == 1 || $this->row['sitadel'] == 2 || $this->row['sitadel'] == 3 ){
311    
312     $datredec = $this->row['date_limite'];
313     }
314     elseif( $this->row['sitadel'] != "" ){
315    
316     $datredec = $this->row['date_notification_delai'];
317     }
318 fraynaud 178 // date au format francais 8 caracteres
319 vpihour 1809 $decision.= $this->maj(substr($datredec,8,2).''.
320     substr($datredec,5,2)."".
321     substr($datredec,0,4))."|";
322    
323     $decision.= $this->maj(substr($this->row['sitadel_motif'],0,1));
324     $decision.= ($this->row['sitadel'] == 2 ||
325     $this->row['sitadel'] == 4 ||
326     $this->row['sitadel'] == 5) ? "|" : "";
327    
328 fraynaud 178 return $decision;
329     }
330    
331 vpihour 1809 /**
332     * Données pour le groupe 2 du mouvement décision concernant les aménagements et
333     * le terrain
334     *
335     * @return string la chaine de données du groupe 2
336     */
337     function amenagement_terrain(){
338     // openfoncier am_terr_surf (numeric/7) am_lotiss (bool/1) terr_juri_afu (20/1)
339     // co_cstr_nouv (20/1) co_cstr_exist (text/1000) co_modif_aspect (bool/1)
340     // co_modif_struct (bool/1) co_cloture (bool/1) co_trx_exten (bool/1)
341     // co_trx_surelev (bool/1) co_trx_nivsup (bool/1) co_trx_amgt (bool/1)
342     // co_anx_pisc (bool/1) co_anx_gara (bool/1) co_anx_veran (bool/1)
343     // co_anx_abri (bool/1) co_anx_autr (bool/1) co_bat_niv_nb (integer/3)
344     // sitadel : terrain|lotissement|ZAC|AFU|libnattrav|natproj|natdp|nattrav|
345     // annexe|nivmax
346     $amenagement_terrain="";
347     //Terrain
348 nhaye 1821 $amenagement_terrain .= ((isset($this->row['am_terr_surf'])) ? $this->maj(substr(floor($this->row['am_terr_surf']),0,7)) : 0)."|";
349 vpihour 1809
350     //Lotissement
351     $amenagement_terrain .= ((isset($this->row['am_lotiss']) && $this->maj($this->row['am_lotiss']) == 't') ? 1 : 0)."|";
352     //ZAC
353     $amenagement_terrain .= ((isset($this->row['terr_juri_zac']) && $this->maj($this->row['terr_juri_zac']) != '') ? 1 : 0)."|";
354     //AFU
355     $amenagement_terrain .= ((isset($this->row['terr_juri_afu']) && $this->maj($this->row['terr_juri_afu']) != '') ? 1 : 0)."|";
356     //Libnattrav
357 nhaye 1863 $amenagement_terrain .= (isset($this->row['terr_juri_desc'])) ? $this->maj(substr($this->row['terr_juri_desc'],0,1000))."|" : "Vm|";
358 vpihour 1809
359     // Nouvelle co,nstruction et travaux sur construction
360     //natproj
361     if ( isset($this->row['co_cstr_nouv']) && isset($this->row['co_cstr_exist']) &&
362     $this->maj($this->row['co_cstr_nouv']) == 't' &&
363     $this->maj($this->row['co_cstr_exist']) == 't' ){
364    
365     $amenagement_terrain .= "3|";
366     }
367     //Nouvelle construction
368     elseif ( isset($this->row['co_cstr_nouv']) && $this->maj($this->row['co_cstr_nouv']) == 't' ) {
369    
370     $amenagement_terrain .= "1|";
371     }
372     //Travaux sur construction existante
373     elseif ( isset($this->row['co_cstr_exist']) && $this->maj($this->row['co_cstr_exist']) == 't' ) {
374    
375     $amenagement_terrain .= "2|";
376     }
377     //Sinon
378     else{
379    
380     $amenagement_terrain .= "Vm|";
381     }
382    
383     //Nature du projet dans le cas d'un DP
384     //natdp
385     if ( $this->row['code'] == "DP" ){
386    
387     $amenagement_terrain .= ((isset($this->row['co_cstr_nouv']) && $this->maj($this->row['co_cstr_nouv']) == 't') ? 1 : 0);
388     $amenagement_terrain .= ((isset($this->row['co_cstr_exist']) && $this->maj($this->row['co_cstr_exist']) == 't') ? 1 : 0);
389     $amenagement_terrain .= ((isset($this->row['co_modif_aspect']) && $this->maj($this->row['co_modif_aspect']) == 't') ? 1 : 0);
390     $amenagement_terrain .= ((isset($this->row['co_modif_struct']) && $this->maj($this->row['co_modif_struct']) == 't') ? 1 : 0);
391     $amenagement_terrain .= ((isset($this->row['co_cloture']) && $this->maj($this->row['co_cloture']) == 't') ? 1 : 0)."|";
392     }
393     else {
394    
395     $amenagement_terrain .= "Vm|";
396     }
397    
398     //Nature des travaux sur construction existante
399     //nattrav
400     $amenagement_terrain .= ((isset($this->row['co_trx_exten']) && $this->maj($this->row['co_trx_exten']) == 't') ? 1 : 0);
401     $amenagement_terrain .= ((isset($this->row['co_trx_surelev']) && $this->maj($this->row['co_trx_surelev']) == 't') ? 1 : 0);
402     $amenagement_terrain .= ((isset($this->row['co_trx_niv_sup']) && $this->maj($this->row['co_trx_niv_sup']) == 't') ? 1 : 0);
403     $amenagement_terrain .= ((isset($this->row['co_trx_amgt']) && $this->maj($this->row['co_trx_amgt']) == 't') ? 1 : 0)."|";
404    
405     //Annexe
406     $amenagement_terrain .= ((isset($this->row['co_anx_pisc']) && $this->maj($this->row['co_anx_pisc']) == 't') ? 1 : 0);
407     $amenagement_terrain .= ((isset($this->row['co_anx_gara']) && $this->maj($this->row['co_anx_gara']) == 't') ? 1 : 0);
408     $amenagement_terrain .= ((isset($this->row['co_anxveran']) && $this->maj($this->row['co_anxveran']) == 't') ? 1 : 0);
409     $amenagement_terrain .= ((isset($this->row['co_anx_abri']) && $this->maj($this->row['co_anx_abri']) == 't') ? 1 : 0);
410     $amenagement_terrain .= ((isset($this->row['co_anx_autr']) && $this->maj($this->row['co_anx_autr']) == 't') ? 1 : 0)."|";
411    
412     //nivmax
413     $amenagement_terrain .= isset($this->row['co_bat_niv_nb']) && $this->maj(substr($this->row['co_bat_niv_nb'],0,3))."|";
414    
415     return $amenagement_terrain;
416 fraynaud 187 }
417    
418 vpihour 1809 /**
419     * Données pour le groupe 2 du mouvement décision concernant les SHON
420     *
421     * @return string la chaine de données du groupe 2
422     */
423     function shon($nom){
424     // openfoncier (numeric/7)
425    
426     $shon = "";
427    
428 nhaye 1821 $shon .= ((isset($this->row[$nom.'1'])) ? $this->maj(substr(floor($this->row[$nom.'1']),0,7)) : 0)."|";
429     $shon .= ((isset($this->row[$nom.'2'])) ? $this->maj(substr(floor($this->row[$nom.'2']),0,7)) : 0)."|";
430     $shon .= ((isset($this->row[$nom.'3'])) ? $this->maj(substr(floor($this->row[$nom.'3']),0,7)) : 0)."|";
431     $shon .= ((isset($this->row[$nom.'4'])) ? $this->maj(substr(floor($this->row[$nom.'4']),0,7)) : 0)."|";
432     $shon .= ((isset($this->row[$nom.'5'])) ? $this->maj(substr(floor($this->row[$nom.'5']),0,7)) : 0)."|";
433     $shon .= ((isset($this->row[$nom.'6'])) ? $this->maj(substr(floor($this->row[$nom.'6']),0,7)) : 0)."|";
434     $shon .= ((isset($this->row[$nom.'7'])) ? $this->maj(substr(floor($this->row[$nom.'7']),0,7)) : 0)."|";
435     $shon .= ((isset($this->row[$nom.'8'])) ? $this->maj(substr(floor($this->row[$nom.'8']),0,7)) : 0)."|";
436     $shon .= ((isset($this->row[$nom.'9'])) ? $this->maj(substr(floor($this->row[$nom.'9']),0,7)) : 0)."|";
437 vpihour 1809
438     return $shon;
439 fraynaud 179 }
440 nhaye 1863
441     /**
442     * Permet de mettre en forme le descriptif des modifications apportés sur le
443     * terrain dans les dossier d'instruction de type modificatif
444     * @return string chaîne mise en forme
445     */
446     function modificatif_terrain() {
447     $modificatif_terrain="";
448    
449     // Terrain
450     $modificatif_terrain .= ((isset($this->row['am_terr_surf'])) ? $this->maj(substr(floor($this->row['am_terr_surf']),0,7)) : 0)."|";
451     // Description des modifications
452     $modificatif_terrain .= (isset($this->row['mod_desc'])) ? $this->maj(substr($this->row['mod_desc'],0,1000))."|" : "Vm|";
453     //Nature des travaux sur construction existante
454     //nattrav
455     $modificatif_terrain .= ((isset($this->row['co_trx_exten']) && $this->maj($this->row['co_trx_exten']) == 't') ? 1 : 0);
456     $modificatif_terrain .= ((isset($this->row['co_trx_surelev']) && $this->maj($this->row['co_trx_surelev']) == 't') ? 1 : 0);
457     $modificatif_terrain .= ((isset($this->row['co_trx_niv_sup']) && $this->maj($this->row['co_trx_niv_sup']) == 't') ? 1 : 0);
458     $modificatif_terrain .= ((isset($this->row['co_trx_amgt']) && $this->maj($this->row['co_trx_amgt']) == 't') ? 1 : 0)."|";
459    
460     //Annexe
461     $modificatif_terrain .= ((isset($this->row['co_anx_pisc']) && $this->maj($this->row['co_anx_pisc']) == 't') ? 1 : 0);
462     $modificatif_terrain .= ((isset($this->row['co_anx_gara']) && $this->maj($this->row['co_anx_gara']) == 't') ? 1 : 0);
463     $modificatif_terrain .= ((isset($this->row['co_anxveran']) && $this->maj($this->row['co_anxveran']) == 't') ? 1 : 0);
464     $modificatif_terrain .= ((isset($this->row['co_anx_abri']) && $this->maj($this->row['co_anx_abri']) == 't') ? 1 : 0);
465     $modificatif_terrain .= ((isset($this->row['co_anx_autr']) && $this->maj($this->row['co_anx_autr']) == 't') ? 1 : 0)."|";
466    
467     //nivmax
468     $modificatif_terrain .= isset($this->row['co_bat_niv_nb']) && $this->maj(substr($this->row['co_bat_niv_nb'],0,3))."|";
469    
470    
471     return $modificatif_terrain;
472     }
473 fraynaud 179
474 nhaye 1863 /**
475     * Permet de caractériser les travaux ciblés par ce dossier et mettre en forme le résultat
476     *
477     * @param [type] $travaux [description]
478     * @param [type] $lascot [description]
479     * @param [type] $mouvement [description]
480     * @return [type] [description]
481     */
482 fraynaud 187 function travaux($travaux, $lascot,$mouvement){
483     // libnattrav| ou libmotif dans MODIFICATIF
484 fraynaud 179 $contenu=$this->maj($travaux)."|";
485 fraynaud 187 // natproj| innexistant en MODIFICATIF
486 nhaye 1834 if($mouvement != "MODIFICATIF"){
487 fraynaud 187 if($lascot=='1'
488     or $lascot=='2'
489     or $lascot=='3')
490     $contenu.= $lascot."|"; // natproj 1:construction 2:extension ou 3:surelevation
491     else
492     $contenu.= "|";
493     }
494     // INITIAL (ou TRANSFERT)natdp|nattrav|*annexe*|*nivmax*
495     // MODIFICATIF nattrav|*annexe*|*nivmax*
496 nhaye 1834 if($mouvement != "MODIFICATIF"){
497 fraynaud 187 $natdp='00000';
498     if($lascot=='1') $natdp="10000"; // nouvelle construction
499     if($lascot=='2') $natdp="01000"; // travaux sur construction existante
500     if($lascot=='3') $natdp="01000"; //
501     if($lascot=='X') $natdp="00001"; // cloture
502     $contenu.= $natdp."|";
503     }
504 fraynaud 179 // nattrav
505     $nattrav = "0000";
506     if($lascot=='2') $nattrav="1000";
507     if($lascot=='3') $nattrav="0100";
508     $contenu.= $nattrav."|";
509     // annexe non renseigner defaut 00000
510 fraynaud 186 $contenu.= $this->p('annexe')."|";
511 fraynaud 179 //nivmax non saisi
512 fraynaud 186 $contenu.=$this->p('nivmax')."|";
513 fraynaud 179 return $contenu;
514     }
515 fraynaud 178
516 vpihour 1809 /**
517     * Données pour le groupe 2 du mouvement décision concernant les destinations
518     *
519     * @return string la chaine de données du groupe 2
520     */
521 nhaye 1863 function destination($mouvement){
522 vpihour 1809
523     $destination = "";
524    
525 nhaye 1821 $destination .= ((isset($this->row['co_sp_transport']) && $this->row['co_sp_transport'] == 't') ? 1 : 0);
526     $destination .= ((isset($this->row['co_sp_enseign']) && $this->row['co_sp_enseign'] == 't') ? 1 : 0);
527     $destination .= ((isset($this->row['co_sp_sante']) && $this->row['co_sp_sante'] == 't') ? 1 : 0);
528     $destination .= ((isset($this->row['co_sp_act_soc']) && $this->row['co_sp_act_soc'] == 't') ? 1 : 0);
529     $destination .= ((isset($this->row['co_sp_ouvr_spe']) && $this->row['co_sp_ouvr_spe'] == 't') ? 1 : 0);
530     $destination .= ((isset($this->row['co_sp_culture']) && $this->row['co_sp_culture'] == 't') ? 1 : 0)."|";
531 vpihour 1809
532 nhaye 1863 if($mouvement != "MODIFICATIF"){
533     $destination .= ((isset($this->row['dm_tot_log_nb']) && !empty($this->row['dm_tot_log_nb'])) ? $this->row['dm_tot_log_nb'] : 0)."|";
534     }
535 nhaye 1821 $destination .= ((isset($this->row['co_tot_ind_nb']) && !empty($this->row['co_tot_ind_nb'])) ? $this->row['co_tot_ind_nb'] : 0)."|";
536     $destination .= ((isset($this->row['co_tot_coll_nb']) && !empty($this->row['co_tot_coll_nb'])) ? $this->row['co_tot_coll_nb'] : 0)."|";
537     $destination .= ((isset($this->row['co_tot_log_nb']) && !empty($this->row['co_tot_log_nb'])) ? $this->row['co_tot_log_nb'] : 0)."|";
538 vpihour 1809
539 nhaye 1821 $destination .= ((isset($this->row['co_resid_agees']) && $this->row['co_resid_agees']) ? 1 : 0);
540     $destination .= ((isset($this->row['co_resid_etud']) && $this->row['co_resid_etud']) ? 1 : 0);
541     $destination .= ((isset($this->row['co_resid_tourism']) && $this->row['co_resid_tourism']) ? 1 : 0);
542     $destination .= ((isset($this->row['co_resid_hot_soc']) && $this->row['co_resid_hot_soc']) ? 1 : 0);
543     $destination .= ((isset($this->row['co_resid_soc']) && $this->row['co_resid_soc']) ? 1 : 0);
544     $destination .= ((isset($this->row['co_resid_hand']) && $this->row['co_resid_hand']) ? 1 : 0);
545     $destination .= ((isset($this->row['co_resid_autr']) && $this->row['co_resid_autr']) ? 1 : 0)."|";
546 vpihour 1809
547 nhaye 1821 $destination .= (isset($this->row['co_resid_autr_desc']) ? $this->maj($this->row['co_resid_autr_desc']) : "")."|";
548 vpihour 1809
549 nhaye 1821 $destination .= ((isset($this->row['co_uti_pers']) && $this->row['co_uti_pers']) ? 1 : 0);
550     $destination .= ((isset($this->row['co_uti_princ']) && $this->row['co_uti_princ']) ? 1 : 0);
551     $destination .= ((isset($this->row['co_uti_secon']) && $this->row['co_uti_secon']) ? 1 : 0);
552     $destination .= ((isset($this->row['co_uti_vente']) && $this->row['co_uti_vente']) ? 1 : 0);
553     $destination .= ((isset($this->row['co_uti_loc']) && $this->row['co_uti_loc']) ? 1 : 0)."|";
554 vpihour 1809
555 nhaye 1821 $destination .= ((isset($this->row['co_foyer_chamb_nb']) && !empty($this->row['co_foyer_chamb_nb'])) ? $this->row['co_foyer_chamb_nb'] : 0)."|";
556 vpihour 1809
557     return $destination;
558 fraynaud 179 }
559 fraynaud 178
560 vpihour 1809 /**
561     * Données pour le groupe 2 du mouvement décision concernant la répartition des
562     * logements créées par type de financement
563     *
564     * @return string la chaine de données du groupe 2
565     */
566     function repartitionFinan(){
567    
568     $repartitionFinan = "";
569    
570 nhaye 1821 $repartitionFinan .= ((isset($this->row['co_fin_lls_nb']) && $this->row['co_fin_lls_nb']) ? $this->row['co_fin_lls_nb'] : 0)."|";
571     $repartitionFinan .= ((isset($this->row['co_fin_aa_nb']) && $this->row['co_fin_aa_nb']) ? $this->row['co_fin_aa_nb'] : 0)."|";
572     $repartitionFinan .= ((isset($this->row['co_fin_ptz_nb']) && $this->row['co_fin_ptz_nb']) ? $this->row['co_fin_ptz_nb'] : 0)."|";
573     $repartitionFinan .= ((isset($this->row['co_fin_autr_nb']) && $this->row['co_fin_autr_nb']) ? $this->row['co_fin_autr_nb'] : 0)."|";
574 vpihour 1809
575     return $repartitionFinan;
576     }
577    
578     /**
579     * Données pour le groupe 2 du mouvement décision concernant la répartition des
580     * logements créées par nombre de pièces
581     *
582     * @return string la chaine de données du groupe 2
583     */
584 nhaye 1863 function repartitionNbPiece($mouvement){
585 vpihour 1809
586     $repartitionFinan = "";
587 nhaye 1863 if($mouvement != "MODIFICATIF"){
588     $repartitionFinan .= ((isset($this->row['co_mais_piece_nb']) && $this->maj($this->row['co_mais_piece_nb']) == 't') ? 1 : 0)."|";
589     }
590 vpihour 1809 $repartitionFinan .= ((isset($this->row['co_log_1p_nb']) && $this->maj($this->row['co_log_1p_nb']) == 't') ? 1 : 0)."|";
591     $repartitionFinan .= ((isset($this->row['co_log_2p_nb']) && $this->maj($this->row['co_log_2p_nb']) == 't') ? 1 : 0)."|";
592     $repartitionFinan .= ((isset($this->row['co_log_3p_nb']) && $this->maj($this->row['co_log_3p_nb']) == 't') ? 1 : 0)."|";
593     $repartitionFinan .= ((isset($this->row['co_log_4p_nb']) && $this->maj($this->row['co_log_4p_nb']) == 't') ? 1 : 0)."|";
594     $repartitionFinan .= ((isset($this->row['co_log_5p_nb']) && $this->maj($this->row['co_log_5p_nb']) == 't') ? 1 : 0)."|";
595     $repartitionFinan .= ((isset($this->row['co_log_6p_nb']) && $this->maj($this->row['co_log_6p_nb']) == 't') ? 1 : 0);
596    
597     return $repartitionFinan;
598     }
599    
600 nhaye 1831 /**
601     * Permet de mettre en forme les données du mouvement suivi pour une ouverture de chantier
602     * @return string chaîne en forme
603     */
604 fraynaud 181 function chantier(){
605 nhaye 1831
606     $chantier="";
607    
608     if(isset($this->row['doc_date'])) {
609     $chantier .= substr($this->row['doc_date'],8,2).substr($this->row['doc_date'],5,2).
610     substr($this->row['doc_date'],0,4)."|"; // *** au format francais
611     } else {
612     $chantier .= "|";
613     }
614     $chantier .= ((isset($this->row['doc_nb_log']) AND $this->row['doc_nb_log'] != "" ) ? $this->row['doc_nb_log'] : "vm")."|";
615     $chantier .= ((isset($this->row['doc_nb_log_indiv']) AND $this->row['doc_nb_log_indiv'] != "" ) ? $this->row['doc_nb_log_indiv'] : "vm")."|";
616     $chantier .= ((isset($this->row['doc_nb_log_coll']) AND $this->row['doc_nb_log_coll'] != "" ) ? $this->row['doc_nb_log_coll'] : "vm")."|";
617     $chantier .= ((isset($this->row['doc_surf']) AND $this->row['doc_surf'] != "" ) ? substr(floor($this->row['doc_surf']),0,7) : "vm")."|";
618     $chantier .= ((isset($this->row['doc_nb_log_lls']) AND $this->row['doc_nb_log_lls'] != "" ) ? $this->row['doc_nb_log_lls'] : "vm")."|";
619     $chantier .= ((isset($this->row['doc_nb_log_aa']) AND $this->row['doc_nb_log_aa'] != "" ) ? $this->row['doc_nb_log_aa'] : "vm")."|";
620     $chantier .= ((isset($this->row['doc_nb_log_ptz']) AND $this->row['doc_nb_log_ptz'] != "" ) ? $this->row['doc_nb_log_ptz'] : "vm")."|";
621     $chantier .= ((isset($this->row['doc_nb_log_autre']) AND $this->row['doc_nb_log_autre'] != "" ) ? $this->row['doc_nb_log_autre'] : "vm")."|";
622     // indice de la tranche commencée
623     $chantier .= "vm|";
624    
625     $chantier.="|||||||||||"; // achevement 11|
626     return $chantier;
627 fraynaud 181 }
628 fraynaud 179
629 fraynaud 181 function achevement(){
630 nhaye 1834 $achevement="||||||||||"; // chantier 10 |
631 nhaye 1831 if(isset($this->row['daact_date'])) {
632     $achevement .= substr($this->row['daact_date'],8,2).substr($this->row['daact_date'],5,2).
633     substr($this->row['daact_date'],0,4)."|"; // *** au format francais
634     } else {
635     $achevement .= "|";
636     }
637     $achevement .= ((isset($this->row['daact_nb_log']) AND $this->row['daact_nb_log'] != "" ) ? $this->row['daact_nb_log'] : "vm")."|";
638     $achevement .= ((isset($this->row['daact_nb_log_indiv']) AND $this->row['daact_nb_log_indiv'] != "" ) ? $this->row['daact_nb_log_indiv'] : "vm")."|";
639     $achevement .= ((isset($this->row['daact_nb_log_coll']) AND $this->row['daact_nb_log_coll'] != "" ) ? $this->row['daact_nb_log_coll'] : "vm")."|";
640     $achevement .= ((isset($this->row['daact_surf']) AND $this->row['daact_surf'] != "" ) ? substr(floor($this->row['daact_surf']),0,7) : "vm")."|";
641     $achevement .= ((isset($this->row['daact_nb_log_lls']) AND $this->row['daact_nb_log_lls'] != "" ) ? $this->row['daact_nb_log_lls'] : "vm")."|";
642     $achevement .= ((isset($this->row['daact_nb_log_aa']) AND $this->row['daact_nb_log_aa'] != "" ) ? $this->row['daact_nb_log_aa'] : "vm")."|";
643     $achevement .= ((isset($this->row['daact_nb_log_ptz']) AND $this->row['daact_nb_log_ptz'] != "" ) ? $this->row['daact_nb_log_ptz'] : "vm")."|";
644     $achevement .= ((isset($this->row['daact_nb_log_autre']) AND $this->row['daact_nb_log_autre'] != "" ) ? $this->row['daact_nb_log_autre'] : "vm")."|";
645     // indice de la tranche complétée
646     $achevement .= "vm|";
647 fraynaud 181 // Finchantier 1 si etat=cloturer sinon 0
648 nhaye 1831 if ($this->row['statut_di']=="cloture"){
649     $achevement.="1|";
650 fraynaud 181 }else{
651 nhaye 1831 $achevement.="0|";
652 fraynaud 181 }
653 nhaye 1831 // indique la provenance de l'info d'achèvement des travaux (déclaration/DGI)
654     $achevement .= "vm|";
655     return $achevement;
656 fraynaud 181 }
657 fraynaud 184
658     function p($champ){
659 fraynaud 186 if($this->DEBUG==2) return $champ;
660 fraynaud 184 if(isset($this->parametre[$champ])){
661     return $this->parametre[$champ];
662     }else
663     return $this->val[$champ];
664     }
665    
666 vpihour 1809 /**
667     * Normalise la chaine de caractère ou renvoit "valeur manquant".
668     *
669     * @param $val La valeur du champ
670     * @return string la chaine formatée ou "vm"
671     */
672 fraynaud 178 function maj($val) {
673 vpihour 1809 $val = strtoupper($val);
674     $val=str_replace(chr(195), "", $val); // supprime le premier code des accents en UTF-8
675     $s = array('/[âàäÀ]/', '/[éêèëÉÈ]/', '/[îï]/', '/[ôöÔ]/', '/[ûùü]/', '/[çÇ]/', '/\'|\"|^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\-\s\r/');
676     $r = array('A', 'E', 'I', 'O', 'U', 'C', ' ');
677     $val = preg_replace($s , $r, $val);
678     // Formatage des valeurs manquantes
679     return $this->testVM($val);
680 fraynaud 178 }
681 nhaye 1797
682     /**
683     * Permet de tester si la valeur est manquante et retourner Vm
684     * sinon retourne le champ
685     *
686     * @param string $champ champ à tester
687     * @return string valeur à insérer dans l'export
688     */
689     function testVM($champ) {
690     if ( $champ == "" ) {
691 nhaye 1831 return "vm";
692 nhaye 1797 } else {
693     return $champ;
694     }
695     }
696 fraynaud 178 }
697 fmichon 1515
698 fraynaud 178 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26