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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2119 - (hide annotations)
Tue Jul 30 17:10:13 2013 UTC (11 years, 6 months ago) by vpihour
File size: 34438 byte(s)
Modification de la manière dont sont numérotés les dossiers d'instruction de type modificatif et transfert.
Ancienne numérotation des dossiers d'instruction d'un dossier d'autorisation : 
      P0 -> M1 -> m2 -> T3
Nouvelle numérotation : 
      P0 -> M01 -> M02 -> T01

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26