<?php
/**
 * Ce fichier est destine a gerer les transferts sitadel
 * @package openmairie_foncier
 * @version SVN : $Id
 */

class sitadel {
    
    var $dossier;
    var $row; // dossier
    var $val; // parametre par defaut
    var $parametre; //parametre dossier
    var $DEBUG=0; // 1 = valeur

    function sitadel($dossier) {
        $this->dossier=$dossier;
        // recherche de parametre
    }// fin constructeur

    function entete($mouvement, $departement, $commune,$pf_departement){
        // sitadel : mouv|typpermis|equivalence|dep|commune|andepnumpc|indmod
        $entete=$mouvement."|".$this->row['nature']."||".$pf_departement.$departement."|".$commune."|".$this->row['annee'].
                "|".substr($this->dossier,4,5)."|".substr($this->dossier,10,2)."|";  
        return $entete;
    }

    function etatcivil(){
        // etat civil demandeur
        // codemo|
        if($this->row['demandeur_categorie']==9
           or $this->row['demandeur_categorie']=="")
           $codemo=1;// personne physique
        else
           $codemo=2;// personne morale     
        $etatcivil=$codemo."|"; // 1 personne physique ; 2 sinon
        // openfoncier civilite (5/8 ok), nom (80/30-> substr), societe (80/50->substr) 
        // civpart|prenompart|nompart|denopm|rspm|siret|catjur|civrep|prenomrep|nomrep| 
        // suivant codemo = 1 (personne physique) ou 2 (personne morale)
        // demandeur_civilite n est pas normalise Madame ou Monsieur 
        if($codemo==1){
           // *civpart*|*prenompart*|nompart||||||
           $etatcivil.= $this->p('civpart')."|".$this->p('prenompart')."|";
           $etatcivil.= $this->maj(substr($this->row['demandeur_nom'],0,30))."||||||||"; 
        }else{
           //denopm|*rspm*|*siret*|*catjur*|*civrep*|*prenomrep*|nomrep|         
           $etatcivil.="|||"; // codemo=1
           $etatcivil.=$this->maj(substr($this->row['demandeur_societe'],0,50))."|"; 
           //$etatcivil.=$this->maj(substr($this->row['categorie_libelle'],0,30))."|";
           $etatcivil.="|";
	   $etatcivil.=$this->p('rspm')."|".$this->p('siret')."|".$this->p('catjur')."|".
                       $this->p('civrep')."|".$this->p('prenomrep'); // *** +1
           $etatcivil.=$this->maj(substr($this->row['demandeur_nom'],0,30))."|"; 
        }
        return $etatcivil;
    }
    
    function adresse(){
        // openfoncier : adresse (80/ 26+38 -> substr sur 2 zones) - cp (5/5 OK) - ville (30/36 -> OK)
        // *numvoiemo*|*typvoiemo*|libvoiemo|lieuditmo(+)|communemo|codposmo|*bpmo*|*cedexmo*|*paysmo*|*divetermo|
        $adresse="";
        $adresse = $this->p('numvoiemo')."|".$this->p('typvoiemo')."|".
        $adresse.= $this->maj(substr($this->row['demandeur_adresse'],0,26))."|".
                   $this->maj(substr($this->row['demandeur_adresse'],26,38))."|";
        $adresse.= $this->maj($this->row['demandeur_ville'])."|".$this->row['demandeur_cp']."|";
        $adresse.= $this->p('bpmo')."|".$this->p('cedexmo')."|".$this->p('paysmo')."|".$this->p('divtermo')."|";
        return $adresse;
    }
    
    
    function delegataire(){
        // openFoncier civilite (non normalise monsieur/madame),  nom (80/30 substr)
        // openfoncier : adresse (80/ 26+38 -> substr sur 2 zones) - cp (5/5 OK) - ville (30/32 -> OK)
        // *civtiers*|*prenomtier*|nomtier|*numvoietiers*|*typvoietiers*|
        // libvoietiers|lieudittier|communetier|codpostier
        // |*bptier*|*cedextier*|*paystier*|*divtertier*|
        $delegataire="";
        if($this->row['delegataire']=='Oui'){
           $delegataire.= $this->p('civtier')."|".$this->p('prenomtier'); 
           $delegataire.="|".$this->maj(substr($this->row['delegataire_nom'],0,30))."|";
           $delegataire.= "|".$this->p('typevoietier')."|".$this->maj(substr($this->row['delegataire_adresse'],0,26))."|".
                   $this->maj(substr($this->row['delegataire_adresse'],26,38))."|";
           $delegataire.= $this->maj($this->row['delegataire_ville'])."|".
                    $this->row['delegataire_cp']."|";
            $delegataire.= $this->p('bptier')."|".$this->p('cedextier')."|";
            $delegataire.= $this->p('paystier')."|".$this->p('divtertier')."|";
        }else{
           $delegataire.= "|||||||||||||"; // *** 13 |
        }
        return $delegataire;
    }
    
    function meltel($mouvement){
        // sitadel : telmo|melmo|
        $meltel="";
        if($mouvement != "Transfert")
            $meltel.=$this->row['demandeur_telephone']."|";
        $meltel.= $this->row['demandeur_email']."|";
        // suivi electronique 
        if($this->row['delegataire']=='Oui'){
           $meltel.= "1";
        }else{
           $meltel.= "0";
        }
        // suivi -> fin enr pour transfert (sans |)
        if($mouvement != "Transfert")
            $meltel.= "|";
        return $meltel;
    }   
    
    function adresse_terrain(){
        // openfoncier numero (4/5 substr), adresse(80, 26 +38 -> substr), complement (non utilise (80)), cp (5/5 ok), ville (30/32 ok) 
        // sitadel : |numvoiete|*typvoiete*|libvoiete|lieudite|communete|codposte|*bpte*|*cedexte*|
        // mettre le | en debut pour info du 2eme groupe (suite 1er groupe)   
        $adresse="";
        // 
        $adresse.= substr($this->row['terrain_numero'],0,4)."|".$this->p('typvoiete')."|";
        $adresse.= $this->maj(substr($this->row['terrain_adresse'],0,26))."|".
                   $this->maj(substr($this->row['terrain_adresse'],26,38))."|";
        $adresse.= $this->maj($this->row['terrain_ville'])."|";
        $adresse.= $this->row['terrain_cp']."|";
        $adresse.= $this->p('bpte')."|".$this->p('cedexte')."|";
        return $adresse;
    }

    function parcelle(){
        // ========
        // parcelle
        // ========
        // cadastre 3 parcelles + 3 sections
        // openfoncier = 1 seule parcelle (6/3+5)
        // sitadel : scadastre1|ncadastre1|*scadastre2*|*ncadastre2*|*scadastre3*|*ncadastre3*|
        $parcelle= substr($this->row['parcelle'],0,2)."|";
        $parcelle.= substr($this->row['parcelle'],2,4)."|";
        $parcelle.= $this->p('scadastre2')."|".$this->p('ncadastre2')."|";
        $parcelle.= $this->p('scadastre3')."|".$this->p('ncadastre3')."|";
        return $parcelle;
    }

    function decision_groupe1($avis_sitadel, $avis_sitadel_motif,$structure){
        $decision=  $structure.'|'; // au nom de la commune
        $decision.= $avis_sitadel."|";
        // date au format francais 8 caracteres
        $decision.= substr($this->row['date_decision'],8,2).''.
                    substr($this->row['date_decision'],5,2)."".
                    substr($this->row['date_decision'],0,4)."|";            
        $decision.= $avis_sitadel_motif."|";
        return $decision;
    }
    
    function terrain(){
        $contenu="";
        $contenu= floor($this->row['terrain_surface'])."|";
        return $contenu;
    }
    
    function amenagement(){
        // renseignement du groupe 2 ***
        // lotissement|zac|afu|         
        $contenu="";
        if($this->row['amenagement']!='')
               $contenu.= "1|";
        else
               $contenu.= "0|";
        $contenu.= $this->p('zac')."|".$this->p('afu')."|";
        return $contenu;
    }
    
    function travaux($travaux, $lascot,$mouvement){
        // libnattrav| ou libmotif dans MODIFICATIF
        $contenu=$this->maj($travaux)."|";
        // natproj|  innexistant en MODIFICATIF
        if($mouvement != "Modificatif"){
            if($lascot=='1'
               or $lascot=='2'
               or $lascot=='3')
                 $contenu.= $lascot."|"; // natproj 1:construction 2:extension ou 3:surelevation
            else
                 $contenu.= "|";
        }
        // INITIAL (ou TRANSFERT)natdp|nattrav|*annexe*|*nivmax*
        // MODIFICATIF nattrav|*annexe*|*nivmax*
        if($mouvement != "Modificatif"){
            if($this->row['nature']=='DP'){
                $natdp='00000';
                if($lascot=='1') $natdp="10000"; // nouvelle construction
                if($lascot=='2') $natdp="01000"; // travaux sur construction existante
                if($lascot=='3') $natdp="01000"; // 
                if($lascot=='X') $natdp="00001"; // cloture
            }else{
                $natdp='';
            }
            $contenu.= $natdp."|";
        }
        // nattrav
        $nattrav = "0000";
        if($lascot=='2') $nattrav="1000";
        if($lascot=='3') $nattrav="0100";
        $contenu.= $nattrav."|";
        // annexe non renseigner defaut 00000
        $contenu.= $this->p('annexe')."|";
        //nivmax non saisi
        $contenu.=$this->p('nivmax')."|";
        return $contenu;
    }

    function destination($shon){
        $contenu="";
        for($i=1;$i<=9;$i++){
            if(!isset($shon[$i])) $shon[$i]=0;
            $contenu.=$shon[$i].'|';
                
        }
        return $contenu;
    }

    function descriptif($mouvement){
        // cpublic : non renseignee N par defaut
        // O/N transport/enseignement/sante/social/special/culture
        
        $contenu= $this->p('cpublic')."|"; //* supp|
        // nblogdem
        if($mouvement != "Modificatif"){
            //$contenu.= $this->row['logement_nombre']."|"; // ***
            $contenu.= "|";
        }
        // nbmaison : nombre de maison
        $contenu.= $this->p('nbmaison')."|";
         // nblogcoll : nombre de logement collectif
        $contenu.= $this->p('nblogcoll')."|";
        //nbtotlog : nombre de logement total
        //$contenu.= $this->p('nbtotlog')."|"; //***
        $contenu.=$this->row['logement_nombre']."|";
        // natres : nature des residences
        // O/N 1=ages, 2=etudiant, 3=tourisme, 4=hotel, 5=social, 6= handicap, 7=autres
        $contenu.= $this->p('natres')."|";
         // libres= si autre residence (long max 1000 c)
        $contenu.= $this->p('libres')."|";
        // util : O/N personnel, principale, secondaire, vente, location
        $contenu.= $this->p('util')."|";
        //chambre
        $contenu.= $this->p('chambre')."|";
        // nb logement sociaux
        $contenu.= $this->p('finis')."|";
        // nb logt financt aides 
        $contenu.= $this->p('finaa')."|";
        // nb de logt pret a taux 0
        $contenu.= $this->p('finptz')."|";
        // nb de logt finances autrt
        $contenu.= $this->p('finaf')."|";
        // nb pieces en maison individuelle
        if($mouvement != "Modificatif")
            $contenu.= $this->row['piece_nombre']."|"; // voir si 0
        // chambre (num capacite accueil locaux hebergement)
        // $contenu.= "|";
        // nb de logement 1piece
        $contenu.= $this->p('piec1')."|";
        // nb de logement 2 pieces
        $contenu.= $this->p('piec2')."|";
        // nb de logement 3 pieces
        $contenu.= $this->p('piec3')."|";
        // nb de logement 4 pieces
        $contenu.= $this->p('piec4')."|";
        // nb de logement 5 pieces
        $contenu.= $this->p('piec5')."|";
        // nb de logement 6 pieces
        $contenu.= $this->p('piec6');
        // (derniere zone decision et modificatif)
        return $contenu;
    }

    function chantier(){
            //datereoc|
            $suivi1="";
            $suivi1.=substr($this->row['date_chantier'],8,2).substr($this->row['date_chantier'],5,2).
                    substr($this->row['date_chantier'],0,4)."|"; // *** au format francais
            //nblogoc|nbmaisoc|nbcolloc|
            $suivi1.=$this->p('nblogoc')."|".$this->p('nbmaisoc')."|".$this->p('nbcolloc')."|";
            //shonoc|
            $suivi1.=floor($this->row['shon'])."|"; // ok *** enlever les decimales
            //*finisoc*|*finaaoc*|*finptzoc*|*finafoc|*indoc*|
            $suivi1.=$this->p('finisoc')."|".$this->p('finaaoc')."|".
                    $this->p('finptzoc')."|".$this->p('finafoc')."|".$this->p('indoc')."|";
            $suivi1.="|||||||||||"; // achevement 11|
            return $suivi1;       
    }

    function achevement(){
        $suivi2="||||||||||"; // occupation 10 |
        //datereat|
        $suivi2.=substr($this->row['date_achevement'],8,2).
                 substr($this->row['date_achevement'],5,2).
                 substr($this->row['date_achevement'],0,4)."|"; // ok *** au format francais
        //nblogat|nbmaisat|nbcollat|
        $suivi2.=$this->p('nblogat')."|".$this->p('nbmaisat')."|".$this->p('nbcollat')."|";
        //shonat|
        $suivi2.=floor($this->row['shon'])."|"; // ok *** enlever les decimales
        //finisat|finaaat|finptzat|finafat|indat|
        $suivi2.=$this->p('finisat')."|".$this->p('finaaat')."|".$this->p('finptzat').
                  "|".$this->p('finafat')."|".$this->p('indat')."|"; 
        // Finchantier 1 si etat=cloturer sinon 0
        if ($this->row['etat']=="cloturer"){
          $suivi2.="1|";
        }else{
          $suivi2.="0|";
        }
        // Origat 1 par defaut
        $suivi2.=$this->p('origat');
        return $suivi2;
    }
    
    function p($champ){
        if($this->DEBUG==2) return $champ;
        if(isset($this->parametre[$champ])){
            return $this->parametre[$champ];
        }else
            return $this->val[$champ];
    }
    
    function maj($val) {
            $val = strtoupper($val);
            $val=str_replace(chr(195), "", $val);	// supprime le premier code des accents en UTF-8
            $s = array('/[âàäÀ]/', '/[éêèëÉÈ]/', '/[îï]/', '/[ôöÔ]/', '/[ûùü]/', '/[çÇ]/', '/\'|\"|^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\-\s\r/');
            $r = array('A', 'E', 'I', 'O', 'U', 'C', ' ');
            $val = preg_replace($s , $r, $val);
            return $val;
    }
}
?>
