batch/1.2/library/Metier/partenaires/classMCadastre.php

275 lines
10 KiB
PHP
Raw Normal View History

2013-09-09 06:30:30 +00:00
<?php
class MCadastre
{
2013-06-19 09:45:13 +00:00
var $siren=false;
var $iDb;
/** Droits des locaux **/
private static $tabCodeDroit=array(
'P'=>'Propriétaire',
2013-09-09 06:30:30 +00:00
'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)
2013-06-19 09:45:13 +00:00
'A'=>'Locataire-Attributaire', // (associé avec P)
2013-09-09 06:30:30 +00:00
'E'=>'Emphytéote', // (associé avec P)
2013-06-19 09:45:13 +00:00
'K'=>'Antichrésiste', // (associé avec P)
'L'=>'Fonctionnaire logé',
2013-09-09 06:30:30 +00:00
'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',
2013-06-19 09:45:13 +00:00
);
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
/** 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',
);
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
/** 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',
);
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
/** 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',
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
);
/** 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',
);
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
public function __construct($siren=0) {
$this->siren=$siren;
2013-09-09 06:30:30 +00:00
$this->iDb=new WDb('sdv1');
2013-06-19 09:45:13 +00:00
}
2013-09-09 06:30:30 +00:00
/**
*
* @param string $siren
* @return array
*/
function getLocaux($siren=false)
{
if (!$siren) $siren=$this->siren;
2013-06-19 09:45:13 +00:00
$tabTmp=$this->iDb->select(
'cad_perloc l, cad_permor e',
2013-09-09 06:30:30 +00:00
'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,
2013-06-19 09:45:13 +00:00
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();
2013-09-09 06:30:30 +00:00
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,
2013-06-19 09:45:13 +00:00
);
2013-09-09 06:30:30 +00:00
$surface+=$pevSurf;
}
2013-06-19 09:45:13 +00:00
}
2013-09-09 06:30:30 +00:00
$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
*/
2013-06-19 09:45:13 +00:00
}
}
return $tabRet;
}
function getParcelles($siren=false) {
if (!$siren)
$siren=$this->siren;
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
$tabTmp=$this->iDb->select(
'cad_perpar p, cad_permor e',
2013-09-09 06:30:30 +00:00
'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,
2013-06-19 09:45:13 +00:00
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']),
2013-09-09 06:30:30 +00:00
'parcellNumVoie'=>trim($loc['DNUVOI']),
2013-06-19 09:45:13 +00:00
'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;
}
2013-09-09 06:30:30 +00:00
2013-06-19 09:45:13 +00:00
}
?>