275 lines
10 KiB
PHP
275 lines
10 KiB
PHP
|
<?php
|
|||
|
class MCadastre
|
|||
|
{
|
|||
|
var $siren=false;
|
|||
|
var $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) {
|
|||
|
$this->siren=$siren;
|
|||
|
$this->iDb=new WDb('sdv1');
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*
|
|||
|
* @param string $siren
|
|||
|
* @return array
|
|||
|
*/
|
|||
|
function getLocaux($siren=false)
|
|||
|
{
|
|||
|
if (!$siren) $siren=$this->siren;
|
|||
|
|
|||
|
$tabTmp=$this->iDb->select(
|
|||
|
'cad_perloc l, 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(
|
|||
|
'cad_perpar p, 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;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
?>
|