webservice/library/Scores/Extract/Dict.php
2016-12-22 16:00:56 +01:00

681 lines
23 KiB
PHP

<?php
class Scores_Extract_Dict
{
//Traiter la demande en créant les requetes sql nécessaires
protected $tabDico = array(
'idSd' => array(
'lib' => "SD : Identifiant - Etablissement",
'help' => "Identifiant interne propre à SD, usage restreint",
'columns' => array(
'id' => 'Identifiant Interne',
)
),
'source' => array(
'lib' => "SD : Source"
//@todo : Yoann
),
'triCode' => array(
'lib' => "?? : Code BODACC du Tribunal - Etablissement",
'help' => "Code BODACC du tribunal, voir la table jo.tribunaux (à confirmer, sortir triNom)
<br/>Entreprise exclusivement INSEE pas de code tribunal",
'columns' => array(
'triCode' => ''
)
),
'autre_id' => array(
'lib' => "Autre ID (SIREN ou WALDEC)",
'help' => "Doublon SIREN (source RNCS) ou WALDEC (source JOAFE) si association",
'columns' => array(
'autre_id' => "Autre ID (SIREN ou WALDEC)",
),
),
'actif' => array(
'lib' => 'SD : ACTIF',
//@todo : Yoann
),
'siege' => array(
'lib' => "SD : Siège ou Etablissement",
'help' => "Valeur : 0 les établissements Secondaires (source INSEE),
1 l'établissement Siège de l'entreprise (source INSEE) ;
2 notion RNCS désignant l'établissement Principal qui n'est pas obligatoirement le siège
http://www.greffe-tc-caen.fr/rcs_etabs.php",
),
'raisonSociale' => array(
'lib' => "SD : Raison Sociale",
'help' => "Regle de composition de la donnée"
),
'enseigne' => array(
'lib' => "SD : Enseigne",
'help' => "Regle de composition de la donnée"
),
'sigle' => array(
'lib' => "SD : Sigle",
'help' => "Regle de composition de la donnée"
),
'marques' => array(
'lib' => "SD : Marques déposées",
'help' => "Chaine de caractère assemblé - Regle de composition de la donnée"
),
'adr_num' => array(
'lib' => "SD : Adresse Numéro dans la voie - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_btq' => array(
'lib' => "SD : Adresse Bis/Ter/etc.. - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_typeVoie' => array(
'lib' => "SD : Adresse Type de voie - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_libVoie' => array(
'lib' => "SD : Adresse Libellé de la voie - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_comp' => array(
'lib' => "SD : Adresse Complément - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_cp' => array(
'lib' => "SD : Adresse Code Postal - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_ville' => array(
'lib' => "SD : Adresse Ville - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_dep' => array(
'lib' => "SD : Adresse Département - Etablissement",
'help' => "Regle de composition de la donnée"
),
'adr_codeCom' => array(
'lib' => "SD : Adresse Code Commune étab - Etablissement",
'help' => "Regle de composition de la donnée"
),
'telEtab' => array(
'lib' => "Téléphone"
),
'faxEtab' => array(
'lib' => "Télécopie"
),
'cj' => array(
'lib' => "Forme juridique"
),
'capital' => array(
'lib' => "Capital"
),
'capitalDev' => array(
'lib' => "Devise du capital"
),
'ape_etab' => array(
'lib' => "SD : NAF Etablissement",
'help' => "Code NAF 5 positions",
'columns' => array(
'ape_etab' => "SD : NAF Etablissement",
),
),
'ape_entrep' => array(
'lib' => "SD : NAF Entreprise",
'help' => "Code NAF 5 positions",
'columns' => array(
'ape_entrep' => "SD : NAF Entreprise",
),
),
'NaceEtab' => array(
'lib' => "SD : NACE Etablissement",
'help' => "",
'columns' => array(
'NaceEtab' => "SD : NACE Etablissement",
'NaceEtabLib' => "SD : NACE Etablissement",
),
),
'NaceEn' => array(
'lib' => "SD : NACE Entreprise",
'help' => "",
'columns' => array(
'NaceEn' => "SD : NACE Entreprise",
'NaceEnLib' => "SD : NACE Entreprise",
),
),
'SiretEnBase' => array(
'lib' => "Vérifier la présence en base du siren/siret"
),
'etActifInsee' => array(
'lib' => "Insee : Actif"
),
'nomInsee' => array(
'lib' => 'Insee : Raison Sociale'
),
'nomInsee2' => array(
'lib' => 'Insee : Raison Sociale (suite)'
),
'sigleInsee' => array(
'lib' => 'Insee : Sigle'
),
'enseigneInsee' => array(
'lib' => 'Insee : Enseigne'
),
'adrNumVoieInsee' => array(
'lib' => 'Insee : Adresse - Numéro dans la voie'
),
'adrBtqInsee' => array(
'lib' => 'Insee : Adresse - Bis/Ter/etc'
),
'adrTypeVoieInsee' => array(
'lib' => 'Insee : Adresse - Type de voie'
),
'adrVoieInsee' => array(
'lib' => 'Insee : Adresse - Libellé de la voie'
),
'adrCompInsee' => array(
'lib' => 'Insee : Adresse - Complément'
),
'adrCPInsee' => array(
'lib' => 'Insee : Adresse - Code Postal'
),
'adrVilleInsee' => array(
'lib' => 'Insee : Adresse - Commune'
),
'adrDistSPInsee' => array(
'lib' => 'Insee : Adresse - Distribution spéciale'
),
'CjInsee' => array(
'lib' => "Insee : Forme juridique de l'entreprise"
),
'nafEnInsee' => array(
'lib' => "Insee : NAF de l'entreprise"
),
'nafEtInsee' => array(
'lib' => "Insee : NAF de l'etablissement"
),
'APRM' => array(
'lib' => "Insee : APRM"
),
'ACTIVNAT' => array(
'lib' => "Insee : ACTIVNAT"
),
'ORIGINE' => array(
'lib' => "Insee : Origine de création de l'établissement"
),
'MODET' => array(
'lib' => "Insee : MODET"
),
'EXPLET' => array(
'lib' => 'Insee : EXPLET'
),
'LIEUACT' => array(
'lib' => "Insee : LIEUACT"
),
'ACTISURF' => array(
'lib' => "Insee : ACTISURF"
),
'DEFET' => array(
'lib' => "Insee : Année MAJ de l'effectif de l'établissement"
),
'MODEN' => array(
'lib' => "Insee : MODEN"
),
'PRODPART' => array(
'lib' => "Insee : PRODPART"
),
'EXPLEN' => array(
'lib' => "Insee : EXPLEN"
),
'DEFEN' => array(
'lib' => "Insee : Année MAJ de l'effectif de l'entreprise"
),
'MONOREG' => array(
'lib' => "Insee : Mono-régionalité"
),
'REGIMP' => array(
'lib' => "Insee : Principale région d'implantation"
),
'MONOACT' => array(
'lib' => "Insee : Mono-activité"
),
'DCREN' => array(
'lib' => "Insee : Date de création de l'entreprise"
),
'SIEGE' => array(
'lib' => "Insee : Siege",
'help' => "Qualité de siege ou non de l'établissement",
'columns' => array(
'SIEGE' => 'Insee : Siege',
)
),
'AUXILT' => array(
'lib' => "Insee : Auxiliarité"
),
'SAISONAT' => array(
'lib' => "Insee : Saisonalité"
),
'CIVILITE' => array(
'lib' => "Insee : Civilité"
),
'TCA' => array(
'lib' => "Insee : Tranche de chiffre d'affaire"
),
'TCAEXP' => array(
'lib' => "Insee : Tranche de chiffre d'affaire à l'export"
),
'EFF_ENT' => array(
'lib' => "Insee : Effectif de l'entreprise"
),
'DCRET' => array(
'lib' => "Insee : Date de création de l'établissement"
),
'TEFF_ENT' => array(
'lib' => "Insee : Tranche effectif entreprise",
),
'ADR_DEP' => array(
'lib' => "Insee : Adresse - Département",
'help' => "Département de localisation de l'établissement (2 caractères)",
'columns'=> array(
'ADR_DEP' => 'Insee : Departement',
),
),
'ADR_COM' => array(
'lib' => "Insee : Commune de localisation de l'établissement",
'help' => "(3 chiffres)",
'columns' => array(
'ADR_COM' => "Insee : Code commune",
),
),
'EFF_ET' => array(
'lib' => "Insee : Effectif de l'établissement"
),
'TEFF_ET' => array(
'lib' => "Insee : Tranche effectif etablissement",
),
'CODEVOIE' => array(
'lib' => "Insee : Code voie",
'help' => "Code Rivoli / Ex Fantoir",
),
'dateMajInsee' => array(
'lib' => "Insee : Date de la dernière mise à jour"
),
'insRPET' => array(
'lib' => "Insee : RPET"
),
'insDEPCOMEN' => array(
'lib' => "Insee : Code commune siège"
),
'insRPEN' => array(
'lib' => "Insee : RPEN"
),
'insARRONET' => array(
'lib' => "Insee : Arrondissement de l'établissement"
),
'insCTONET' => array(
'lib' => "Insee : Canton de l'établissement"
),
'insTCD' => array(
'lib' => "Insee : Tranche de commune détaillé"
),
'insZEMET' => array(
'lib' => "Insee : ZEMET"
),
'insDU' => array(
'lib' => "Insee : DU"
),
'insTU' => array(
'lib' => "Insee : TU"
),
'insUU' => array(
'lib' => "Insee : UU"
),
'insMMINTRET' => array(
'lib' => "Insee : MMINTRET",
),
'insMMINTREN' => array(
'lib' => "Insee : MMINTREN",
),
'insRECME' => array(
'lib' => "Insee : RCEM"
),
'insEAEANT' => array(
'lib' => "Insee : EAEANT"
),
'insEAEAPET' => array(
'lib' => "Insee : EAEAPET"
),
'insEAESEC1T' => array(
'lib' => "Insee : EAESEC1T"
),
'insEAESEC2T' => array(
'lib' => "Insee : EAESEC2T"
),
'insEAEANN' => array(
'lib' => "Insee : EAEANN"
),
'insEAEAPEN' => array(
'lib' => "Insee : EAEAPEN"
),
'insEAESEC1N' => array(
'lib' => "Insee : EAESEC1N"
),
'insEAESEC2N' => array(
'lib' => "Insee : EAESEC2N"
),
'insEAESEC3N' => array(
'lib' => "Insee : EAESEC3N"
),
'insEAESEC4N' => array(
'lib' => "Insee : EAESEC4N"
),
'dateMajNotice' => array(
'lib' => "Insee : Date de la dernière MAJ notice"
),
'NBETEXPL' => array(
'lib' => "Insee : Nombre d'établissement exploitant actif"
),
'entActiveRncs' => array(
'lib' => "RNCS : Actif - Entreprise"
),
'numRC2' => array(
'lib' => "RNCS : Numéro RC"
),
'raisonSocialeRncs' => array(
'lib' => "RNCS : Raison Sociale"
),
'sigleRncs' => array(
'lib' => "RNCS : Sigle"
),
'dateNaiss' => array(
'lib' => "RNCS : Date Naissance PP"
),
'lieuNaiss' => array(
'lib' => "RNCS : Lieu Naissance PP"
),
'nationalite' => array(
'lib' => "RNCS : Nationalité PP"
),
'pays' => array(
'lib' => "RNCS : Pays"
),
'nafEnRncs' => array(
'lib' => "RNCS : NAF Entrepise"
),
'cjRncs' => array(
'lib' => "RNCS : Forme juridique"
),
'dateImma' => array(
'lib' => "RNCS : Date Immatriculation"
),
'dateRad' => array(
'lib' => "RNCS : Date de radiation"
),
'capitalType' => array(
'lib' => "RNCS : Type de capital"
),
'dateMajEnRncs' => array(
'lib' => "RNCS : Date MAJ Entreprise"
),
'etActifRncs' => array(
'lib' => "RNCS : Actif"
),
'siegeRncs' => array(
'lib' => "RNCS : Siège"
),
'enseigneRncs' => array(
'lib' => "RNCS : Enseigne"
),
'nomCommercialRncs' => array(
'lib' => "RNCS : Nom Commercial"
),
'adrNumVoieRncs' => array(
'lib' => "RNCS : Numéro"
),
'adrIndRepRncs' => array(
'lib' => "RNCS : Adresse - Numéro"
),
'adrLibVoieRncs' => array(
'lib' => "RNCS : Adresse - Bis/Ter/etc"
),
'adrTypeVoieRncs' => array(
'lib' => "RNCS : Adresse - Type de la voie"
),
'adrVoieRncs' => array(
'lib' => "RNCS : Adresse - Libellé de la voie"
),
'cpRncs' => array(
'lib' => "RNCS : Adresse - Code postal"
),
'villeRncs' => array(
'lib' => "RNCS : Adresse - Ville"
),
'adrCompRncs' => array(
'lib' => "RNCS : Adresse - Complément"
),
'nafEtRncs' => array(
'lib' => "RNCS : NAF Etablissement"
),
'dateMajEtRncs' => array(
'lib' => "RNCS : Date MAJ établissement"
),
'isin' => array(
'lib' => "Code ISIN (société en bourse)"
),
'tel' => array(
),
'fax' => array(),
'web' => array(),
'mail' => array(),
'nicSiege'=> array(
'lib' => "NIC du siège (si nic absent)"
),
'tva'=> array(
'lib' => "Numéro de TVA (non validés)"
),
'dateFermetureEn'=> array(),
'dateFermetureEt'=> array(),
'activite'=> array(),
'situationJuridique'=> array(),
'indiScore'=> array(
'lib' => 'SD : indiScore',
),
'AdresseNormalise' => array(
'lib' => 'AdresseNormalise',
'columns' => array(
'AdresseL1_NOM' => '',
'AdresseL2_NOM2' => '',
'AdresseL3_ADRCOMP' => '',
'AdresseL4_VOIE' => '',
'AdresseL5_DISTSP' => '',
'AdresseL6_POST' => '',
'AdresseL7_PAYS' => '',
),
),
'AdresseNormaliseInsee' => array(
'lib' => 'AdresseNormaliseInsee',
'columns' => array(
'L1_NOM' => 'L1_NOMEN',
'L2_NOM2' => 'L2_COMP',
'L3_ADRCOMP' => 'L3_CADR',
'L4_VOIE' => 'L4_VOIE',
'L5_DISTSP' => 'L5_DISP',
'L6_POST' => 'L6_POST',
'L7_PAYS' => 'L7_ETRG',
),
),
'SiretSuc' => array(
'lib' => 'INSEE : Siret Successeur',
'help' => "",
'columns' => array(
'SiretSuc' => '',
'SiretSucNbDem' => '',
'SiretSucSiege' => '',
'SiretSucActif' => '',
'SiretSucCodeEve' => '',
'SiretSucDateEve' => '',
'SiretSucOrigine' => '',
)
),
'dirigeant'=> array(),
'bilanN'=> array('values'=>''),
'bilanN1'=> array('values'=>''),
'bilanN2'=> array('values'=>''),
'annonces'=> array('values'=>''),
'privilege' => array(),
'GPS' => array(
'lib' => 'SD : Coordonnées GPS - Etablissement',
'help' => "",
'columns' => array(
'latitude' => "Latitude en degrés et décimales de degrés",
'longitude' => "Longitude en degrés et décimales de degrés",
'altitude' => "Altitude en mètres",
'precis' => "Précision du géocodage (de 0=non géocodé à 8/9=géocodage à l'adresse)",
)
),
'TelOrder' => array(
'lib' => 'Telephone priorisé',
'help' => "",
'columns' => array()
),
'LienHead' => array(
'lib' => 'Tête de lien financier',
'help' => "",
'columns' => array()
),
'LienHeadUltimate' => array(
'lib' => 'Tête de lien ultime',
'help' => "",
'columns' => array()
),
'ZonePrioritaire' => array(
'lib' => 'Zone Prioritaire',
'help' => "",
'columns' => array()
),
'AdresseDom'=> array(
'lib' => 'AdresseDom',
'help' => "",
'columns' => array()
),
'Iris'=> array(
'lib' => 'Iris',
'help' => "",
'columns' => array()
),
);
public function __construct()
{
}
//Vérifie que les entêtes du fichier sont correct
public function checkFileEntete($pathFile)
{
$posKeySiren = $posKeySiret = $posKeyNic = false;
$row = 0;
$error = array();
if (($handle = fopen($pathFile, 'r')) !== false) {
while (($data = fgetcsv($handle, 0, ',', '"')) !== false) {
$num = count($data);
//Traitement de la première ligne
if ($row == 0) {
for ($c=0; $c < $num; $c++) {
//Détection clé importante
switch (strtolower($data[$c])) {
case 'siren':
$posKeySiren = $c;
break;
case 'nic':
$posKeyNic = $c;
break;
case 'siret':
$posKeySiret = $c;
break;
case 'ref':
//Clé réference
break;
default:
//Détection clé pour enrichissement
$values = false;
if (preg_match('/(.*)\((.*)\)/', $key, $matches)) {
$key = $matches[1];
$values = $matches[2];
} else {
$key = $data[$c];
}
if (!array_key_exists($key, $this->tabDico)) {
$error[] = "Clé enrichissement $key incorrect";
}
break;
}
}
if ($posKeySiren!==false && $posKeyNic!==false && $posKeySiret!==false || $posKeySiren!==false && $posKeySiret!==false) {
$error[] = "Trop de clé!";
}
if ($posKeySiren===false && $posKeySiret===false) {
$error[] = "Aucune clé détecté!";
}
} else {
//Erreur dans les entetes, on arrete
if (count($error)>0) {
break;
}
}
$row++;
}
fclose($handle);
if (count($error)>0) {
return $error;
}
return $row-1;
}
return false;
}
//Retourne les clés de dictionnaire pour les données d'enrichissement
public function getDico()
{
return $this->tabDico;
}
//Retourne le libellé pour chaque clés du dictionnaire
public function getDicoLib($key)
{
//Si () alors traitement champs spécial
if (preg_match('/(.*)\((.*)\)/', $key, $matches)) {
$key = $matches[1];
}
if (array_key_exists($key, $this->tabDico)) {
$element = $this->tabDico[$key];
if (array_key_exists('lib', $element) && !empty($element['lib'])) {
return $element['lib'];
}
return $key;
}
return false;
}
//Retourne le texte d'aide
public function getDicoHelp($key)
{
if (array_key_exists($key, $this->tabDico)) {
$element = $this->tabDico[$key];
if (array_key_exists('help', $element) && !empty($element['help'])) {
return $element['help'];
}
return '';
}
return false;
}
//Retourne les colonnes de sortie
public function getDicoColumns($key)
{
if (array_key_exists($key, $this->tabDico)) {
$element = $this->tabDico[$key];
if (array_key_exists('columns', $element)) {
return $element['columns'];
}
return array();
}
return false;
}
}