280 lines
10 KiB
PHP
280 lines
10 KiB
PHP
<?php
|
||
class MCadastre
|
||
{
|
||
protected $siren = false;
|
||
protected $iDb;
|
||
|
||
/** Droits des locaux **/
|
||
private static $tabCodeDroit=array(
|
||
'P'=>'Propriétaire',
|
||
'U'=>'Usufruitier', // (associé avec N)
|
||
'N'=>'Nu-propriétaire', // (associé avec U)
|
||
'B'=>'Bailleur à construction', // (associé avec R)
|
||
'R'=>'Preneur à construction', // (associé avec B)
|
||
'F'=>'Foncier', // (associé avec D ou T)
|
||
'T'=>'Tenuyer', // (associé avec F)
|
||
'D'=>'Domanier', // (associé avec F)
|
||
'V'=>'Bailleur d\'un bail à réhabilitation', // (associé avec W)
|
||
'W'=>'Preneur d\'un bail à réhabilitation', // (associé avec V)
|
||
'A'=>'Locataire-Attributaire', // (associé avec P)
|
||
'E'=>'Emphytéote', // (associé avec P)
|
||
'K'=>'Antichrésiste', // (associé avec P)
|
||
'L'=>'Fonctionnaire logé',
|
||
'G'=>'Gérant, mandataire, gestionnaire',
|
||
'S'=>'Syndic de copropriété',
|
||
'H'=>'Associé dans une société en transparence fiscale',// (associé avec P)
|
||
'O'=>'Autorisation d\'occupation temporaire (70 ans)',
|
||
'J'=>'Jeune agriculteur',
|
||
'Q'=>'Gestionnaire taxe sur les bureaux (Ile-de-France)',
|
||
'X'=>'La Poste Occupant et propriétaire',
|
||
'Y'=>'La Poste Occupant et non propriétaire',
|
||
'C'=>'Fiduciaire',
|
||
);
|
||
|
||
/** Nature des locaux **/
|
||
private static $tabNatureLoc=array(
|
||
'AP'=>'Appartement',
|
||
'AT'=>'Antenne téléphone',
|
||
'AU'=>'Autoroute',
|
||
'CA'=>'Commerce sans boutique',
|
||
'CB'=>'Local divers',
|
||
'CD'=>'Dépendance commerciale',
|
||
'CH'=>'Chantier',
|
||
'CM'=>'Commerce avec boutique',
|
||
'DC'=>'Dépendance lieux communs',
|
||
'DE'=>'Dépendance bâtie isolée',
|
||
'LC'=>'Local commun',
|
||
'MA'=>'Maison',
|
||
'ME'=>'Maison exceptionnelle',
|
||
'MP'=>'Maison partagée par une limite territoriale',
|
||
'SM'=>'Sol de maison',
|
||
'U' =>'Etablissement industriel',
|
||
'U1'=>'Gare',
|
||
'U2'=>'Gare - Triage',
|
||
'U3'=>'Gare - Atelier matériel',
|
||
'U4'=>'Gare - Atelier magasin',
|
||
'U5'=>'Gare - Dépôt Titulaire',
|
||
'U6'=>'Gare - Dépôt Réel',
|
||
'U7'=>'Gare - Matériel transport',
|
||
'U8'=>'Gare - Entretien matériel roulant',
|
||
'U9'=>'Gare - Station usine',
|
||
'UE'=>'Transformateur électrique',
|
||
'UG'=>'Appareil à gaz',
|
||
'UN'=>'Usine nucléaire',
|
||
'US'=>'Etablissement industriel',
|
||
);
|
||
|
||
/** Code Affectation des PEV (Partie d'EValuation) **/
|
||
private static $tabCodePEV=array(
|
||
'B'=>'Bâtiment industriel',
|
||
'C'=>'Commerce',
|
||
'H'=>'Habitation',
|
||
'K'=>'Locaux administratifs non passibles de la Taxe d\'Habitation',
|
||
'L'=>'Hôtel',
|
||
'P'=>'Professionnel',
|
||
'S'=>'Biens divers passibles de la Taxe d\'Habitation',
|
||
'T'=>'Terrain industriel',
|
||
);
|
||
|
||
/** Code Groupes Personnes Morales **/
|
||
private static $tabGrpPerMor=array(
|
||
0=>'Personne morale', // non remarquable
|
||
1=>'Etat',
|
||
2=>'Région',
|
||
3=>'Département',
|
||
4=>'Commune',
|
||
5=>'Office HLM',
|
||
6=>'Personne morale représentant des sociétés',
|
||
7=>'Copropriétaire',
|
||
8=>'Associé',
|
||
9=>'Etablissement public ou organismes assimilés',
|
||
|
||
);
|
||
|
||
/** Nature des parcelles (cultures) **/
|
||
private static $tabNaturePar=array(
|
||
'AB'=>'Terrains à batir',
|
||
'AG'=>'Terrains d\'agrément',
|
||
'B' =>'Bois',
|
||
'BF'=>'Futaies feuillues',
|
||
'BM'=>'Futaies mixtes',
|
||
'BO'=>'Oseraies',
|
||
'BP'=>'Peupleraies',
|
||
'BR'=>'Futaies résineuses',
|
||
'BS'=>'Taillies sous futaies',
|
||
'BT'=>'Taillies simples',
|
||
'CA'=>'Carrières',
|
||
'CH'=>'Chemins de fer, Canaux de Navigation',
|
||
'E' =>'Eaux',
|
||
'J' =>'Jardins',
|
||
'L' =>'Landes',
|
||
'LB'=>'Landes Boisées',
|
||
'P' =>'Prés',
|
||
'PA'=>'Pâtures ou Pâturages',
|
||
'PC'=>'Pacages ou Pâtis',
|
||
'PE'=>'Prés d\'embouche',
|
||
'PH'=>'Herbages',
|
||
'PP'=>'Prés, Pâtures ou Herbages plantes',
|
||
'S' =>'Sols',
|
||
'T' =>'Terre',
|
||
'TP'=>'Terres plantées',
|
||
'VE'=>'Vergers',
|
||
'VI'=>'Vignes',
|
||
);
|
||
|
||
public function __construct($siren=0, $db = null)
|
||
{
|
||
$this->siren = $siren;
|
||
if ( $db === null ) {
|
||
$this->iDb = new WDB();
|
||
} else {
|
||
$this->iDb = $db;
|
||
}
|
||
}
|
||
|
||
/**
|
||
*
|
||
* @param string $siren
|
||
* @return array
|
||
*/
|
||
function getLocaux($siren=false)
|
||
{
|
||
if (!$siren) $siren=$this->siren;
|
||
|
||
$tabTmp=$this->iDb->select(
|
||
'sdv1.cad_perloc l, sdv1.cad_permor e',
|
||
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
|
||
l.CCODRO, l.CCOCOM, l.CCOPRF, l.CCOSEC, l.DNUPLA, l.DNUBAT, l.DESC, l.DNIV, l.DPOR, l.CCONLC, l.CCOAFF0, l.DSUPOD0, l.CCOAFF1, l.DSUPOD1, l.CCOAFF2, l.DSUPOD2, l.CCOAFF3, l.DSUPOD3, l.CCOAFF4, l.DSUPOD4, l.CCOAFF5, l.DSUPOD5, l.CCOAFF6, l.DSUPOD6, l.CCOAFF7, l.DSUPOD7, l.CCOAFF8, l.DSUPOD8, l.CCOAFF9, l.DSUPOD9, l.CCODEP, l.DLICOM, l.CCORIV, l.CNAVOI, l.DLIVOI, l.DNUVOI, l.DLTNUV',
|
||
"e.DSIREN=$siren AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER", false, MYSQL_ASSOC);
|
||
$tabRet=array();
|
||
if (count($tabTmp)>0 ) {
|
||
foreach ($tabTmp as $i=>$loc) {
|
||
$tabLoc = array(
|
||
'idCentre'=>$loc['INTCIF'],
|
||
'idPmMajic'=>$loc['DNUPER'],
|
||
'pmGroupe'=>trim($loc['CCOGRM']),
|
||
'pmGroupeLib'=>self::$tabGrpPerMor[trim($loc['CCOGRM'])],
|
||
'pmNom'=>trim($loc['DDENPM']),
|
||
'pmSigle'=>trim($loc['DSIPMO']),
|
||
'pmFJ'=>$loc['DFORME'], // $loc['FILLER'],
|
||
'siren'=>trim($loc['DSIREN']),
|
||
'pmAdrL3'=>trim($loc['DLIGN3']),
|
||
'pmAdrL4'=>trim($loc['DLIGN4']),
|
||
'pmAdrL5'=>trim($loc['DLIGN5']),
|
||
'pmAdrL6'=>trim($loc['DLIGN6']),
|
||
'pmAdrDep'=>trim($loc['CCODEP']),
|
||
'pmAdrCom'=>trim($loc['CCOCOM']),
|
||
'localDroit'=>trim($loc['CCODRO']),
|
||
'localDroitLib'=>self::$tabCodeDroit[trim($loc['CCODRO'])],
|
||
'localDep'=>trim($loc['CCODEP']),
|
||
'localCom'=>trim($loc['CCOCOM']),
|
||
'localComLib'=>trim($loc['DLICOM']),
|
||
'localComAbs'=>trim($loc['CCOPRF']),
|
||
'localRivoli'=>trim($loc['CCORIV']),
|
||
'localNumVoie'=>trim($loc['DNUVOI']),
|
||
'localIndVoie'=>trim($loc['DLTNUV']),
|
||
'localTypVoie'=>trim($loc['CNAVOI']),
|
||
'localLibVoie'=>trim($loc['DLIVOI']),
|
||
'localSection'=>trim($loc['CCOSEC']),
|
||
'localNumPlan'=>trim($loc['DNUPLA']),
|
||
'localNumBat'=>trim($loc['DNUBAT']),
|
||
'localEntEsc'=>trim($loc['DESC']),
|
||
'localNumPlan'=>trim($loc['DNIV']),
|
||
'localNumBat'=>trim($loc['DPOR']),
|
||
'localEntEsc'=>trim($loc['CCONLC']),
|
||
'localPEV'=>array(),
|
||
);
|
||
$surface=0;
|
||
for($j=0;$j<10;$j++) {
|
||
$pevCode=trim($loc['CCOAFF'.$j]);
|
||
$pevSurf=trim($loc['DSUPOD'.$j])*1;
|
||
if ($pevCode<>'' && $pevSurf>0) {
|
||
$tabLoc['localPEV'][$j]=array(
|
||
'pevCode'=>$pevCode,
|
||
'pevType'=>self::$tabCodePEV[$pevCode],
|
||
'pevSurface'=>$pevSurf,
|
||
);
|
||
$surface+=$pevSurf;
|
||
}
|
||
}
|
||
$tabLoc['localSurface']=$surface;
|
||
$tabRet[]=$tabLoc;
|
||
/**
|
||
* CADBAT_NB_TOT nombre Cadastre nombre de postes BATIMENT du SIREN toutes addresses
|
||
* CADTER_NB_TOT nombre Cadastre nombre de postes TERRAIN du SIREN toutes addresses
|
||
* CADBAT_NB_PROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle est propriétaire
|
||
* CADTER_NB_PROP nombre Cadastre nombre de postes TERRAIN à l'adresse dont elle est propriétaire
|
||
* CADBAT_NB_NONPROP nombre Cadastre nombre de postes BATIMENT à l'adresse dont elle n'est pas propriétaire
|
||
* CADTER_NB_NONPROP nombre Cadastre nombre de postes TERRAINS à l'adresse dont elle n'est pas propriétaire
|
||
* CADBAT_SURF_CUM nombre Cadastre Cumul Surfaces des batiments à l'addresse
|
||
* CADBAT_SURF_TOT nombre Cadastre Surface totale des batiments du SIREN
|
||
* CADTER_SURF_CUM nombre Cadastre Cumul Surfaces des terrains à l'addresse
|
||
* CADTER_SURF_TOT nombre Cadastre Surface totale des terrains du SIREN
|
||
*/
|
||
}
|
||
}
|
||
return $tabRet;
|
||
}
|
||
|
||
function getParcelles($siren=false) {
|
||
if (!$siren)
|
||
$siren=$this->siren;
|
||
|
||
$tabTmp=$this->iDb->select(
|
||
'sdv1.cad_perpar p, sdv1.cad_permor e',
|
||
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
|
||
p.CCODRO, p.CCOCOM, p.CCOPRF, p.CCOSEC, p.DNUPLA, p.DCNPAR, p.DSGRPF0, p.DCNSUF0, p.DSGRPF1, p.DCNSUF1, p.DSGRPF2, p.DCNSUF2, p.DSGRPF3, p.DCNSUF3, p.DSGRPF4, p.DCNSUF4, p.DSGRPF5, p.DCNSUF5, p.DSGRPF6, p.DCNSUF6, p.DSGRPF7, p.DCNSUF7, p.DSGRPF8, p.DCNSUF8, p.DSGRPF9, p.DCNSUF9, p.CCODEP, p.DLICOM, p.CCORIV, p.CNAVOI, p.DLIVOI, p.DNUVOI, p.DLTNUV',
|
||
"e.DSIREN=$siren AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER", false, MYSQL_ASSOC);
|
||
$tabRet=array();
|
||
foreach ($tabTmp as $i=>$loc) {
|
||
$tabLoc=array( 'idCentre'=>$loc['INTCIF'],
|
||
'idPmMajic'=>$loc['DNUPER'],
|
||
'pmGroupe'=>trim($loc['CCOGRM']),
|
||
'pmGroupeLib'=>self::$tabGrpPerMor[trim($loc['CCOGRM'])],
|
||
'pmNom'=>trim($loc['DDENPM']),
|
||
'pmSigle'=>trim($loc['DSIPMO']),
|
||
'pmFJ'=>$loc['DFORME'], // $loc['FILLER'],
|
||
'siren'=>trim($loc['DSIREN']),
|
||
'pmAdrL3'=>trim($loc['DLIGN3']),
|
||
'pmAdrL4'=>trim($loc['DLIGN4']),
|
||
'pmAdrL5'=>trim($loc['DLIGN5']),
|
||
'pmAdrL6'=>trim($loc['DLIGN6']),
|
||
'pmAdrDep'=>trim($loc['CCODEP']),
|
||
'pmAdrCom'=>trim($loc['CCOCOM']),
|
||
'parcelDroit'=>trim($loc['CCODRO']),
|
||
'parcelDroitLib'=>self::$tabCodeDroit[trim($loc['CCODRO'])],
|
||
'parcelDep'=>trim($loc['CCODEP']),
|
||
'parcelCom'=>trim($loc['CCOCOM']),
|
||
'parcelComLib'=>trim($loc['DLICOM']),
|
||
'parcelComAbs'=>trim($loc['CCOPRF']),
|
||
'parcelRivoli'=>trim($loc['CCORIV']),
|
||
'parcellNumVoie'=>trim($loc['DNUVOI']),
|
||
'parcelIndVoie'=>trim($loc['DLTNUV']),
|
||
'parcelTypVoie'=>trim($loc['CNAVOI']),
|
||
'parcelLibVoie'=>trim($loc['DLIVOI']),
|
||
'parcelSection'=>trim($loc['CCOSEC']),
|
||
'parcelNumPlan'=>trim($loc['DNUPLA']),
|
||
'parcelSurface'=>trim($loc['DCNPAR'])*1,
|
||
'parcelTer'=>array(),
|
||
);
|
||
$surface=0;
|
||
for($j=0;$j<10;$j++) {
|
||
$pevCode=trim($loc['DSGRPF'.$j]);
|
||
$pevSurf=trim($loc['DCNSUF'.$j])*1;
|
||
if ($pevCode<>'' && $pevSurf>0) {
|
||
$tabLoc['parcelTer'][$j]=array( 'terCode'=>$pevCode,
|
||
'terType'=>self::$tabCodePEV[$pevCode],
|
||
'terSurface'=>$pevSurf,
|
||
);
|
||
$surface+=$pevSurf;
|
||
}
|
||
}
|
||
$tabLoc['parcelSurfaceCalc']=$surface;
|
||
$tabRet[]=$tabLoc;
|
||
}
|
||
return $tabRet;
|
||
}
|
||
|
||
}
|
||
|
||
?>
|