batch/1.1/old/consolideEtab.php
2013-06-19 08:24:49 +00:00

1263 lines
61 KiB
PHP

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** @todo
**
**/
echo date ('Y/m/d - H:i:s')." - DEBUT de la consolidation de la base Etablissements".EOL;
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(FWK_PATH.'mail/sendMail.php');
$all=true;
$joAsso=$joBodacc=$baseInsee=$baseInpi=$reset=$pageRankOnly=$iGreffe=$iLiens=false;
// Compteurs
$nbInsertAsso=$nbInsertRncs1=$nbInsertRncs2=$nbInsertBod=$nbConjoints=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=$nbInsertLiens=0;
$table='etablissements_tmp';
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Consolide la table des établissement et des entreprises à partir des dernières mises à jours des différentes sources.
Sans aucune options, consolide toutes les sources dernièrement mises à jour.
Options :
-a Consolider seulement le JO association.
-b Consolider seulement le Bodacc
-i Consolider les infos SIRENE (Insee)
-n Consolider les infos RNCS (Inpi)
-g Consolider les entreprises en provenance des Greffes
-l Consolider les entreprises issues de la base Liens
-m Mettre à jour les données sur les marques
-r Reconstruire complètement la base
-p traiter uniquement la construction du 'page rank'
-t:XXX Mettre à jour la table XXX
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'a': $all=false; $joAsso=true; break;
case 'g': $all=false; $iGreffe=true; break;
case 'l': $all=false; $iLiens=true; break;
case 'm': $all=false; $iMarques=true; break;
case 'b': $all=false; $joBodacc=true; break;
case 'i': $all=false; $baseInsee=true; break;
case 'n': $all=false; $baseInpi=true; break;
case 'r': $reset=true; break;
case 'p': $pageRankOnly=true; break;
case 't': $table=strtolower(substr($argv[$i],3)); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
}
}
}
}
if (file_exists(REP_TEMP.'stockInsee.lock')) {
$message='Stock en cours de chargement "'.file_get_contents(REP_TEMP.'stockInsee.lock').'"';
sendMail('webmaster@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Consolidation des établissements non traitée car trimestriel en cours', $message);
die();
}
/** Par défaut, on consolide toutes les sources **/
if ($all) {
$joAsso=$joBodacc=$baseInsee=$baseInpi=$iGreffe=$iLiens=$iMarques=true;
}
$iDb=new WDB('jo');
global $iBodacc;
$iBodacc=new MBodacc();
function getCodePrefectures($strPrefecture, $dep=0) {
global $iBodacc;
$type='?';
if (preg_match('/sous.pr.f.cture(.*)/i',$strPrefecture, $matches)) {
$pref=$matches[1];
$type='B';
$tabTmp=$iBodacc->getTribunauxParDep($dep);
foreach ($tabTmp as $i=>$tribunal)
if ($tribunal['triType']=='B') {
$spref=levenshtein($tribunal['triNom'], 'SOUS PREFECTURE '.strtoupper(trim($pref)));
//echo $tribunal['triNom'] .'<=>SOUS PREFECTURE '.strtoupper($pref)."\n";
//print_r($matches);
if ($spref<=5) {
return $tribunal['triCode'];
break;
}
}
}
elseif (preg_match('/pr.f.cture(.*)/i',$strPrefecture, $matches)) {
$pref=$matches[1];
$type='A';
$tabTmp=$iBodacc->getTribunauxParDep($dep);
foreach ($tabTmp as $i=>$tribunal)
if ($tribunal['triType']=='A') {
return $tribunal['triCode'];
break;
}
}
if ($dep==75 || preg_match('/police/i',$strPrefecture)) return 'PARISA';
return '';
}
// Début Test
/*
$retTmp=$iDb->select('asso', 'Sous_Prefecture, Departement, COUNT(*) AS nb', '1 GROUP BY Sous_Prefecture ORDER BY nb DESC', false, MYSQL_ASSOC);
$nbEtab=count($retTmp);
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab prefectures différentes à identifier.".EOL;
foreach ($retTmp as $i=>$tabTmp) {
$nb=$tabTmp['nb']*1;
$dep=$tabTmp['Departement']*1;
$strPref=$tabTmp['Sous_Prefecture'];
$codTri=getCodePrefectures($strPref, $dep);
echo "$nb - $dep:$codTri:$strPref\n";
}
die();
// Fin test
*/
if (!$pageRankOnly) {
$iDb2=new WDB('jo');
$iDbInsee=new WDB('insee');
$iInsee=new MInsee();
//if (0==1) {
echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table établissements.".EOL;
if (!$iDb->query("DROP TABLE IF EXISTS jo.etablissements_tmp;"))
die($iDb->getLastError());
if (!$iDb->query("CREATE TABLE jo.etablissements_tmp (
`id` bigint(20) NOT NULL auto_increment,
`source` tinyint(3) unsigned zerofill NOT NULL,
`source_id` bigint(20) unsigned NOT NULL,
`triCode` varchar(6) NOT NULL,
`autre_id` varchar(15) NOT NULL,
`siren` int(9) unsigned zerofill NOT NULL,
`nic` mediumint(5) unsigned zerofill NOT NULL,
`actif` tinyint(1) NOT NULL,
`siege` tinyint(1) unsigned NOT NULL,
`raisonSociale` varchar(80) NOT NULL,
`enseigne` varchar(40) NOT NULL,
`sigle` varchar(20) NOT NULL,
`identite_pre` varchar(255) NOT NULL,
`marques` TEXT NOT NULL,
`adr_num` smallint(4) unsigned zerofill NOT NULL,
`adr_btq` char(1) NOT NULL,
`adr_typeVoie` char(4) NOT NULL,
`adr_libVoie` varchar(32) NOT NULL,
`adr_comp` varchar(38) NOT NULL,
`adr_cp` mediumint(5) unsigned zerofill NOT NULL,
`adr_ville` varchar(32) NOT NULL,
`adr_dep` char(3) NOT NULL,
`adr_com` smallint(3) unsigned zerofill NOT NULL,
`tel` bigint(10) unsigned zerofill NOT NULL,
`fax` bigint(10) unsigned zerofill NOT NULL,
`cj` smallint(4) unsigned zerofill NOT NULL,
`capital` bigint(15) unsigned zerofill NOT NULL,
`capitalDev` char(3) NOT NULL,
`capitalSrc` tinyint(3) unsigned zerofill NOT NULL,
`ape_etab` char(5) NOT NULL,
`ape_entrep` char(5) NOT NULL,
`age_entrep` tinyint(3) unsigned NOT NULL,
`age_etab` tinyint(3) unsigned NOT NULL,
`tca` tinyint(1) unsigned zerofill NULL,
`tcaexp` tinyint(1) unsigned zerofill NOT NULL,
`teff_entrep` tinyint(2) unsigned NULL,
`teff_etab` tinyint(2) unsigned NULL,
`rang` smallint unsigned NOT NULL,
`dateInsert` datetime NOT NULL,
`dateUpdate` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `source` (`source`,`source_id`),
KEY `idxTel` (`tel`),
KEY `idxFax` (`fax`),
KEY `idxSiret` (`siren`,`nic`,`actif`,`siege`),
KEY `idxAutreId` (`autre_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;", true))
die($iDb->getLastError());
$strMailInfo=date ('Y/m/d - H:i:s')." - Consolidation des établissements.".EOL;
if ($baseInsee) {
/*$dateInsert=date('YmdHis');
if (!$reset) {
$tabTmp=$iDb->select('etablissements_tmp', 'max(source_id)', 'source=2', true);
$last_id=$tabTmp[0][0]*1;
} else {
$last_id=0;
$iDb->query('DELETE FROM etablissements_tmp WHERE source=2', true);
}*/
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis l'Insee.".EOL;
$retTmp=$iDb->select('insee.identite', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
$nbEtab=$retTmp[0]['nbEtab'];
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab établissements à consolider depuis l'Insee...".EOL;
/*$iDb->query("INSERT INTO jo.etablissements_tmp SELECT 0 AS id, '2' AS source, id AS source_id, '' AS triCode, NUMRC AS autre_id, SIREN AS siren, NIC AS nic, ACTIF%10 as actif,
SIEGE as siege, NOM as raisonSociale, ENSEIGNE AS enseigne, SIGLE AS sigle, CONCAT(IDENTITE_PRE, ' ',NOM2) AS identite_pre, '' AS marques, ADR_NUMVOIE as adr_num,
ADR_BTQ as adr_btq, ADR_TYPVOIE as adr_typevoie, ADR_LIBVOIE as adr_libvoie, ADR_COMP as adr_comp,
ADR_CP as adr_cp, ADR_LIBCOM as adr_ville, IF(ADR_DEP=97 OR ADR_DEP=98, SUBSTRING(ADR_CP,1,3), ADR_DEP) AS adr_dep,
TEL as tel, FAX as fax, CJ as cj, APE_ETAB as ape_etab, APE_ENT as apen_entrep, 0 as rank, DATE_MAJ as dateInsert,
0 as dateUpdate FROM insee.identite");
/*
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(e.sigle,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.',''),
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(i.SIGLE,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.',''),
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(e.sigle,' ',''),'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.',''),
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(i.SIGLE,' ',''),'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.',''),
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(i.NOM,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.',''),
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(e.raisonSociale,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.',''),
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ENSEIGNE,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.','')
*/
$iDb->query("INSERT INTO jo.etablissements_tmp SELECT 0 AS id, '2' AS source, id AS source_id, e.triCode AS triCode, IF(e.numRC2 IS NOT NULL OR e.numRC2<>'', e.numRC2, i.NUMRC) AS autre_id, i.SIREN AS siren, i.NIC AS nic, i.ACTIF%10 as actif,
SIEGE as siege, i.NOM as raisonSociale, i.ENSEIGNE AS enseigne, i.SIGLE AS sigle, TRIM(CONCAT_WS(' ',i.IDENTITE_PRE,i.NOM2,e.raisonSociale,e.sigle)) AS identite_pre, '' AS marques, ADR_NUMVOIE as adr_num,
ADR_BTQ as adr_btq, ADR_TYPVOIE as adr_typevoie, ADR_LIBVOIE as adr_libvoie, ADR_COMP as adr_comp,
ADR_CP as adr_cp, ADR_LIBCOM as adr_ville, IF(ADR_DEP=97 OR ADR_DEP=98, SUBSTRING(ADR_CP,1,3), ADR_DEP) AS adr_dep, ADR_COM as adr_com,
TEL as tel, FAX as fax, i.CJ as cj, IF(e.capitalMontant IS NOT NULL OR e.capitalMontant>0, e.capitalMontant, i.CAPITAL) AS capital, IF(e.capitalDevIso IS NOT NULL OR e.capitalDevIso<>'', e.capitalDevIso, i.CAPITAL_DEV) AS capitalDev, IF(e.capitalMontant IS NOT NULL OR e.capitalMontant>0, 5, 2) AS capitalSrc, APE_ETAB as ape_etab, APE_ENT as apen_entrep, YEAR(NOW())-YEAR(DCREN) as age_entrep, YEAR(NOW())-YEAR(DCRET) as age_etab,
TCA as tca, TCAEXP as tcaexp, IF(TEFF_ENT='NN', NULL, TEFF_ENT*1) AS teff_entrep, IF(TEFF_ET='NN', NULL, TEFF_ET*1) AS teff_etab,
0 as rank, DATE_MAJ as dateInsert,
0 as dateUpdate FROM insee.identite i LEFT JOIN jo.rncs_entrep e ON i.siren=e.siren");
$retTmp=$iDb->select('jo.etablissements_tmp', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
$nbEtab=$retTmp[0]['nbEtab'];
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab établissements Insee consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbEtab établissements Insee consolidés.".EOL;
/*capitalMontant capitalDevise capitalDevIso dateImma dateRad capitalType capitalCent*/
/* $hier=date('YmdHis');
$nbAsso=$iDbInsee->select('identite', 'id, SIREN, NIC, NUMRC, NOM, NOM2, ENSEIGNE, SIGLE, SIEGE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_COMP, ADR_CP, ADR_LIBCOM, ADR_DEP, TEL, FAX, CJ, APE_ETAB, APE_ENT', "id>$last_id OR dateUpdate>$hier", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAsso fiches INSEE à consolider depuis $last_id...".EOL;
while ($tabSiren=$iDbInsee->fetch(MYSQL_ASSOC)) {
$tabEtab=array( 'source'=>2,
'source_id'=>$tabSiren['id'],
'siren'=>$tabSiren['SIREN'],
'nic'=>$tabSiren['NIC'],
'triCode'=>'',
'autre_id'=>$tabSiren['NUMRC'],
'siege'=>$tabSiren['SIEGE'],
'raisonSociale'=>$tabSiren['NOM'].$tabSiren['NOM2'],
'enseigne'=>$tabSiren['ENSEIGNE'],
'sigle'=>$tabSiren['SIGLE'],
'adr_num'=>$tabSiren['ADR_NUMVOIE'],
'adr_btq'=>$tabSiren['ADR_BTQ'],
'adr_typeVoie'=>$tabSiren['ADR_TYPVOIE'],
'adr_libVoie'=>$tabSiren['ADR_LIBVOIE'],
'adr_comp'=>$tabSiren['ADR_COMP'],
'adr_cp'=>$tabSiren['ADR_CP'],
'adr_ville'=>$tabSiren['ADR_LIBCOM'],
'adr_dep'=>$tabSiren['ADR_DEP'],
'tel'=>$tabSiren['TEL'],
'fax'=>$tabSiren['FAX'],
'cj'=>$tabSiren['CJ'],
'ape_etab'=>$tabSiren['APE_ETAB'],
'ape_entrep'=>$tabSiren['APE_ENT'],
'dateInsert'=>$dateInsert,
);
if (!$iDb->insert('etablissements',$tabEtab))
$zerqzfqsd=0;
// $iDb->update('etablissements',$tabEtab);
}*/
}
if ($baseInpi) {
$last_id=0;
// include ...
//$iGeffes=new MGreffes();
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le RNCS entreprises.".EOL;
$dateInsert=date('YmdHis');
//$nbBodS=$iDb->select('rncs_entrep r','r.siren, r.sirenValide, r.actif AS actifEnt, r.triCode, r.triId, r.numGreffe, r.numRC2, r.raisonSociale, r.sigle, r.naf, r.cj, r.capitalMontant, r.capitalDevIso, r.dateImma, r.dateRad, r.capitalType, r.provisoires, r.flux', 'r.siren NOT IN (SELECT distinct siren FROM etablissements)', false,MYSQL_ASSOC,true);
$nbBodS=$iDb->select('rncs_entrep g LEFT JOIN etablissements_tmp e ON g.siren = e.siren',
'g.siren, g.raisonSociale, g.nom, g.prenom, g.nomUsage, g.sigle, g.naf, g.cj, g.capitalMontant, g.capitalDevIso, g.dateImma, g.dateRad, g.dateFer, g.numGreffe, g.actif, g.triCode, g.numRC2, g.dateInsert',
"e.siren IS NULL", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS entreprises en provenance du RNCS dont le siren est absent de l'insee à consolider depuis $last_id...".EOL;
while ($tabEntrep=$iDb->fetch(MYSQL_ASSOC)) {
$siren=$tabEntrep['siren'];
$ret1=$iDb2->select('rncs_etab', 'id, siren, nic, siege, actif, enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, cp, commune, adrComp, naf, dateFermeture, flux', "siren=$siren", false, MYSQL_ASSOC);
$ret2=$iDb2->select('rncs_etab_prov', 'id, siren, nic, siege, actif, enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, cp, commune, adrComp, naf, dateFermeture, flux', "siren=$siren", false, MYSQL_ASSOC);
$ret=@array_merge($ret1, $ret2);
/* if (count($ret)==0 && $this->iInsee->valideSiren($siren)) {
$etab=$iGeffes->getIdentite($siren);
if ($etab) {
$ret[]=array( 'id' => $etab['id'],
'Pertinence'=> $etab['Pertinence'],
'Siret' => $etab['Siret'],
'Siege' => $etab['Siege'],
'Nom' => prepareString($etab['Nom']),
'Nom2' => prepareString($etab['Nom2']),
'Sigle' => prepareString($etab['Sigle']),
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'FJ' => $etab['FJ'],
'FJLib' => prepareString($etab['FJLib']),
'Siren' => $etab['Siren'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'],
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
'NafEnt' => $etab['NafEnt'],
'NafEntLib' => prepareString($etab['NafEntLib']),
);
}
}
*/
foreach ($ret as $tabEt) {
$actif=$tabEt['actif'];
if ($tabEntrep['actif']==0) $actif=0;
$dep=floor($tabEt['cp']/1000);
if ($dep>96) $dep=floor($tabEt['cp']/100);
$tabEtab=array( 'source'=>5,
'source_id'=>$tabEt['id'],
'siren'=>$tabEntrep['siren'],
'nic'=>$tabEt['nic'],
'triCode'=>$tabEntrep['triCode'],
'autre_id'=>$tabEntrep['numRC2'],
'siege'=>$tabEt['siege'],
'actif'=>$actif,
'raisonSociale'=>$tabEntrep['raisonSociale'],
'enseigne'=>$tabEt['enseigne'],
'sigle'=>$tabEntrep['sigle'],
'identite_pre'=>$tabEt['nomCommercial'],
'adr_num'=>$tabEt['adrNumVoie'],// , , , cp, commune, ,
'adr_btq'=>$tabEt['adrIndRep'],
'adr_typeVoie'=>$tabEt['adrTypeVoie'],
'adr_libVoie'=>$tabEt['adrVoie'],
'adr_comp'=>$tabEt['adrComp'],
'adr_cp'=>$tabEt['cp'],
'adr_ville'=>$tabEt['commune'],
'adr_dep'=>$dep,
'tel'=>'',
'fax'=>'',
'cj'=>$tabEntrep['cj'],
'capital'=>$tabEntrep['capitalMontant'],
'capitalDev'=>$tabEntrep['capitalDevIso'],
'capitalSrc'=>5,
'ape_etab'=>$tabEt['naf'],
'ape_entrep'=>$tabEntrep['naf'],
'dateInsert'=>$dateInsert,
);
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations RNCS sur le siren ". $tabEntrep['siren'] .' : '. $tabEntrep['raisonSociale'] .' ('. $tabEt['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertRncs1++;
}
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertRncs1 entreprises/établissements RNCS consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertRncs1 entreprises/établissements RNCS consolidés.".EOL;
$dateInsert=date('YmdHis');
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le RNCS établissements.".EOL;
$nbBodS=$iDb->select('rncs_etab g LEFT JOIN etablissements_tmp e ON g.siren=e.siren AND g.nic = e.nic',
'g.id, g.siren, g.nic, g.siege, g.actif, g.enseigne, g.nomCommercial, g.adrNumVoie, g.adrIndRep, g.adrLibVoie, g.adrTypeVoie, g.adrVoie, g.cp, g.commune, g.adrComp, g.adresse1, g.adresse2, g.adresse3, g.naf, g.dateFermeture, g.flux, g.dateInsert',
"e.nic IS NULL", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS établissements en provenance du RNCS dont le siret est absent de l'insee à consolider depuis $last_id...".EOL;
while ($tabEt=$iDb->fetch(MYSQL_ASSOC)) {
$siren=$tabEt['siren'];
$ret=$iDb2->select('rncs_entrep', 'siren, actif, numGreffe, triCode, triId, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, dateFer, capitalType, capitalCent, provisoires, flux, dateInsert', "siren=$siren", false, MYSQL_ASSOC);
$tabEntrep=$ret[0];
$actif=$tabEt['actif'];
if ($tabEntrep['actif']==0) $actif=0;
$dep=floor($tabEt['cp']/1000);
if ($dep>96) $dep=floor($tabEt['cp']/100);
$tabEtab=array( 'source'=>5,
'source_id'=>$tabEt['id'],
'siren'=>$siren,
'nic'=>$tabEt['nic'],
'triCode'=>$tabEntrep['triCode'],
'autre_id'=>$tabEntrep['numRC2'],
'siege'=>$tabEt['siege'],
'actif'=>$actif,
'raisonSociale'=>$tabEntrep['raisonSociale'],
'enseigne'=>$tabEt['enseigne'],
'sigle'=>$tabEntrep['sigle'],
'identite_pre'=>$tabEt['nomCommercial'],
'adr_num'=>$tabEt['adrNumVoie'],
'adr_btq'=>$tabEt['adrIndRep'],
'adr_typeVoie'=>$tabEt['adrTypeVoie'],
'adr_libVoie'=>$tabEt['adrVoie'],
'adr_comp'=>$tabEt['adrComp'],
'adr_cp'=>$tabEt['cp'],
'adr_ville'=>$tabEt['commune'],
'adr_dep'=>$dep,
'tel'=>'',
'fax'=>'',
'cj'=>$tabEntrep['cj'],
'capital'=>$tabEntrep['capitalMontant'],
'capitalDev'=>$tabEntrep['capitalDevIso'],
'capitalSrc'=>5,
'ape_etab'=>$tabEt['naf'],
'ape_entrep'=>$tabEntrep['naf'],
'dateInsert'=>$dateInsert,
);
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations RNCS sur le siren ". $tabEntrep['siren'] .' : '. $tabEntrep['raisonSociale'] .' ('. $tabEt['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertRncs2++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertRncs2 établissements RNCS consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertRncs2 établissements RNCS consolidés.".EOL;
}
if ($joBodacc) {
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le Bodacc.".EOL;
$dateInsert=date('YmdHis');
/* if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=1', true);
$last_id=$tabTmp[0][0]*1;
} else*/ $last_id=0;
//$nbBodS=$iDb->select('bodacc_detail d LEFT JOIN etablissements_tmp e ON d.siren = e.siren', 'd.id, d.typeEven, d.siren, d.nic, d.Bodacc_Date_Parution, d.Tribunal_Code, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.RC, d.raisonSociale, d.nomCommercial, d.sigle, d.enseigne, d.FJ, d.Capital, d.CapitalDev, d.adrSiegeNum, d.adrSiegeIndRep, d.adrSiegeTypVoie, d.adrSiegeLibVoie, d.adrSiegeComp1, d.adrSiegeComp2, d.codePostalSiege, d.villeSiege, d.adrNum, d.adrIndRep, d.adrTypVoie, d.adrLibVoie, d.adrComp1, d.adrComp2, d.codePostal, d.ville, d.activite', "d.siren>1000 AND e.siren IS NULL", false,MYSQL_ASSOC,true);
$nbBodS=$iDb->select('bodacc_detail d LEFT JOIN etablissements_tmp e ON d.siren = e.siren', 'd.id, d.typeEven, d.siren, d.nic, d.Bodacc_Date_Parution, d.Tribunal_Code, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.RC, d.raisonSociale, d.nomCommercial, d.sigle, d.enseigne, d.FJ, d.Capital, d.CapitalDev, d.adrSiegeNum, d.adrSiegeIndRep, d.adrSiegeTypVoie, d.adrSiegeLibVoie, d.adrSiegeComp1, d.adrSiegeComp2, d.codePostalSiege, d.villeSiege, d.adrNum, d.adrIndRep, d.adrTypVoie, d.adrLibVoie, d.adrComp1, d.adrComp2, d.codePostal, d.ville, d.activite', "d.siren>1000 AND e.siren IS NULL AND d.dateSuppr=0", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS annonces BODACC dont le siren est absent de l'insee à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
// Si le siren n'existe pas dans la base etablissement, on l'ajoute
$cj=$naf='';
$dep=floor($tabBodacc['codePostalSiege']/1000);
if ($dep>96) $dep=floor($tabBodacc['codePostalSiege']/100);
$actif=1;
$tabEven=explode(';',$tabBodacc['typeEven']);
foreach ($tabEven as $even) {
$typeEven=$even*1;
if ($typeEven>=6000 && $typeEven<=6700) $actif=0;
elseif ($typeEven==2000 || $typeEven==2206) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven==2720) $actif=0;
}
if (trim(@$tabBodacc['adresseSiege'])<>'') {
$siege=1;
$adr_num=$tabBodacc['adrSiegeNum'];
$adr_btq=$tabBodacc['adrSiegeIndRep'];
$adr_typeVoie=$tabBodacc['adrSiegeTypVoie'];
$adr_libVoie=$tabBodacc['adrSiegeLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrSiegeComp1'].' '.$tabBodacc['adrSiegeComp2']));
$adr_cp=$tabBodacc['codePostalSiege'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['villeSiege'], '{.!}',' ')));
} else {
$siege=0;
$adr_num=$tabBodacc['adrNum'];
$adr_btq=$tabBodacc['adrIndRep'];
$adr_typeVoie=$tabBodacc['adrTypVoie'];
$adr_libVoie=$tabBodacc['adrLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrComp1'].' '.$tabBodacc['adrComp2']));
$adr_cp=$tabBodacc['codePostal'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['ville'], '{.!}',' ')));
}
$matches1=$matches2=array();
$raisonSociale=trim($tabBodacc['raisonSociale']);
if (preg_match("/ Nom d'usage (.*)/i", $raisonSociale, $matches1))
$raisonSociale=trim(preg_replace("/ Nom d'usage .*/i", '', $raisonSociale));
if (preg_match("/ Pseudonyme (.*)/i", $raisonSociale, $matches2))
$raisonSociale=trim(preg_replace("/ Pseudonyme .*/i", '', $raisonSociale));
if (preg_match("/^S E L A R L /i", $raisonSociale) || preg_match("/ S E L A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S E L A R L','SELARL',$raisonSociale));
elseif (preg_match("/^S A R L /i", $raisonSociale) || preg_match("/ S A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A R L','SARL',$raisonSociale));
elseif (preg_match("/^S A S /i", $raisonSociale) || preg_match("/ S A S$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C I /i", $raisonSociale) || preg_match("/ S C I$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C P /i", $raisonSociale) || preg_match("/ S C P$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C P','SCP',$raisonSociale));
elseif (preg_match("/^S N C /i", $raisonSociale) || preg_match("/ S N C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S N C','SNC',$raisonSociale));
elseif (preg_match("/^S A /i", $raisonSociale) || preg_match("/ S A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A','SA',$raisonSociale));
elseif (preg_match("/^S C E A /i", $raisonSociale) || preg_match("/ S C E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C E A','SCEA',$raisonSociale));
elseif (preg_match("/^S C A /i", $raisonSociale) || preg_match("/ S C A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C A','SCA',$raisonSociale));
elseif (preg_match("/^S C /i", $raisonSociale) || preg_match("/ S C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C','SC',$raisonSociale));
elseif (preg_match("/^E A R L /i", $raisonSociale) || preg_match("/ E A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R L','EARL',$raisonSociale));
elseif (preg_match("/^E A R /i", $raisonSociale) || preg_match("/ E A R$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R','EAR',$raisonSociale));
elseif (preg_match("/^E A /i", $raisonSociale) || preg_match("/ E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A','EA',$raisonSociale));
elseif (preg_match("/^E U R L /i", $raisonSociale) || preg_match("/ E U R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E U R L','EURL',$raisonSociale));
$raisonSociale=trim(preg_replace("/ +/",' ', strtr(' '.strtoupper($raisonSociale).' ', array(' DENOMINATION '=>' ', ' SUCCESSION '=>' '))));
$identitePre=trim(@$matches1[1].' '.@$matches1[2]);
$dep=floor($adr_cp/1000);
if ($dep>96) $dep=floor($adr_cp/100);
$tabEtab=array( 'source'=>1,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>$tabBodacc['nic'],
'triCode'=>$tabBodacc['Tribunal_Code'],
'autre_id'=>$tabBodacc['RC'],
'siege'=>$siege,
'actif'=>$actif,
'raisonSociale'=>$raisonSociale,
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>$tabBodacc['sigle'],
'identite_pre'=>$identitePre,
'adr_num'=>$adr_num,
'adr_btq'=>$adr_btq,
'adr_typeVoie'=>$adr_typeVoie,
'adr_libVoie'=>$adr_libVoie,
'adr_comp'=>$adr_comp,
'adr_cp'=>$adr_cp,
'adr_ville'=>$adr_ville,
'adr_dep'=>$dep,
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'capital'=>$tabBodacc['Capital'],
'capitalDev'=>$tabBodacc['CapitalDev'],
'capitalSrc'=>1,
'ape_etab'=>$naf,
'ape_entrep'=>$naf,
'dateInsert'=>$dateInsert,
);
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations BODACC sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertBod++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertBod établissements Bodacc consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertBod établissements Bodacc consolidés.".EOL;
$dateInsert=date('YmdHis');
/* if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=1', true);
$last_id=$tabTmp[0][0]*1;
} else*/ $last_id=0;
//$nbBodS=$iDb->select('bodacc_detail d', 'd.id, d.typeEven, d.siren, d.sirenValide, d.nic, d.Bodacc_Date_Parution, d.Tribunal_Code, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.RC, d.raisonSociale, d.nomCommercial, d.sigle, d.enseigne, d.FJ, d.Capital, d.CapitalDev, d.adrSiegeNum, d.adrSiegeIndRep, d.adrSiegeTypVoie, d.adrSiegeLibVoie, d.adrSiegeComp1, d.adrSiegeComp2, d.codePostalSiege, d.villeSiege, d.adrNum, d.adrIndRep, d.adrTypVoie, d.adrLibVoie, d.adrComp1, d.adrComp2, d.codePostal, d.ville, d.activite', "d.siren<=1000", false,MYSQL_ASSOC,true);
$nbBodS=$iDb->select('bodacc_detail d', 'd.id, d.typeEven, d.siren, d.sirenValide, d.nic, d.Bodacc_Date_Parution, d.Tribunal_Code, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.RC, d.raisonSociale, d.nomCommercial, d.sigle, d.enseigne, d.FJ, d.Capital, d.CapitalDev, d.adrSiegeNum, d.adrSiegeIndRep, d.adrSiegeTypVoie, d.adrSiegeLibVoie, d.adrSiegeComp1, d.adrSiegeComp2, d.codePostalSiege, d.villeSiege, d.adrNum, d.adrIndRep, d.adrTypVoie, d.adrLibVoie, d.adrComp1, d.adrComp2, d.codePostal, d.ville, d.activite', "d.siren<=1000 AND d.dateSuppr=0", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS annonces BODACC non sirenées à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
//if ($tabBodacc['siren']<>0)
// $ret=$iDb2->select('etablissements_tmp', 'count(*)', 'SIREN='.$tabBodacc['siren']);
// Si le siren n'existe pas dans la base etablissement, on l'ajoute
$cj=$naf='';
$dep=floor($tabBodacc['codePostalSiege']/1000);
if ($dep>96) $dep=floor($tabBodacc['codePostalSiege']/100);
$actif=1;
$tabEven=explode(';',$tabBodacc['typeEven']);
foreach ($tabEven as $even) {
$typeEven=$even*1;
if ($typeEven>=6000 && $typeEven<=6700) $actif=0;
elseif ($typeEven==2000 || $typeEven==2206) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven==2720) $actif=0;
}
if (@$tabBodacc['adresseSiege']<>'') {
$siege=1;
$adr_num=$tabBodacc['adrSiegeNum'];
$adr_btq=$tabBodacc['adrSiegeIndRep'];
$adr_typeVoie=$tabBodacc['adrSiegeTypVoie'];
$adr_libVoie=$tabBodacc['adrSiegeLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrSiegeComp1'].' '.$tabBodacc['adrSiegeComp2']));
$adr_cp=$tabBodacc['codePostalSiege'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['villeSiege'], '{.!}',' ')));
} else {
$siege=0;
$adr_num=$tabBodacc['adrNum'];
$adr_btq=$tabBodacc['adrIndRep'];
$adr_typeVoie=$tabBodacc['adrTypVoie'];
$adr_libVoie=$tabBodacc['adrLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrComp1'].' '.$tabBodacc['adrComp2']));
$adr_cp=$tabBodacc['codePostal'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['ville'], '{.!}',' ')));
}
/** Suppression des Noms d'usage et Pseudonymes dans la raison sociale **/
$matches1=$matches2=array();
$raisonSociale=trim($tabBodacc['raisonSociale']);
if (preg_match("/ Nom d'usage (.*)/i", $raisonSociale, $matches1))
$raisonSociale=trim(preg_replace("/ Nom d'usage .*/i", '', $raisonSociale));
if (preg_match("/ Pseudonyme (.*)/i", $raisonSociale, $matches2))
$raisonSociale=trim(preg_replace("/ Pseudonyme .*/i", '', $raisonSociale));
if (preg_match("/^S E L A R L /i", $raisonSociale) || preg_match("/ S E L A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S E L A R L','SELARL',$raisonSociale));
elseif (preg_match("/^S A R L /i", $raisonSociale) || preg_match("/ S A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A R L','SARL',$raisonSociale));
elseif (preg_match("/^S A S /i", $raisonSociale) || preg_match("/ S A S$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C I /i", $raisonSociale) || preg_match("/ S C I$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C P /i", $raisonSociale) || preg_match("/ S C P$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C P','SCP',$raisonSociale));
elseif (preg_match("/^S N C /i", $raisonSociale) || preg_match("/ S N C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S N C','SNC',$raisonSociale));
elseif (preg_match("/^S A /i", $raisonSociale) || preg_match("/ S A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A','SA',$raisonSociale));
elseif (preg_match("/^S C E A /i", $raisonSociale) || preg_match("/ S C E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C E A','SCEA',$raisonSociale));
elseif (preg_match("/^S C A /i", $raisonSociale) || preg_match("/ S C A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C A','SCA',$raisonSociale));
elseif (preg_match("/^S C /i", $raisonSociale) || preg_match("/ S C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C','SC',$raisonSociale));
elseif (preg_match("/^E A R L /i", $raisonSociale) || preg_match("/ E A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R L','EARL',$raisonSociale));
elseif (preg_match("/^E A R /i", $raisonSociale) || preg_match("/ E A R$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R','EAR',$raisonSociale));
elseif (preg_match("/^E A /i", $raisonSociale) || preg_match("/ E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A','EA',$raisonSociale));
elseif (preg_match("/^E U R L /i", $raisonSociale) || preg_match("/ E U R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E U R L','EURL',$raisonSociale));
$raisonSociale=trim(preg_replace("/ +/",' ', strtr(' '.strtoupper($raisonSociale).' ', array(' DENOMINATION '=>' ', ' SUCCESSION '=>' '))));
$identitePre=trim(@$matches1[1].' '.@$matches1[2]);
$dep=floor($adr_cp/1000);
if ($dep>96) $dep=floor($adr_cp/100);
$tabEtab=array( 'source'=>1,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>$tabBodacc['nic'],
'triCode'=>$tabBodacc['Tribunal_Code'],
'autre_id'=>$tabBodacc['RC'],
'siege'=>$siege,
'actif'=>$actif,
'raisonSociale'=>$raisonSociale,
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>$tabBodacc['sigle'],
'identite_pre'=>$identitePre,
'adr_num'=>$adr_num,
'adr_btq'=>$adr_btq,
'adr_typeVoie'=>$adr_typeVoie,
'adr_libVoie'=>$adr_libVoie,
'adr_comp'=>$adr_comp,
'adr_cp'=>$adr_cp,
'adr_ville'=>$adr_ville,
'adr_dep'=>$dep,
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'capital'=>$tabBodacc['Capital'],
'capitalDev'=>$tabBodacc['CapitalDev'],
'capitalSrc'=>1,
'ape_etab'=>$naf,
'ape_entrep'=>$naf,
'dateInsert'=>$dateInsert,
);
if ($tabBodacc['sirenValide']==9) {
//$conjoint=$iDb2->select('bodacc_detail', 'siren', 'id='.$tabBodacc['id']." AND typeEven='".$tabBodacc['typeEven']."' AND siren>=1000", false, MYSQL_ASSOC);
$conjoint=$iDb2->select('bodacc_detail', 'siren', 'id='.$tabBodacc['id']." AND typeEven='".$tabBodacc['typeEven']."' AND siren>=1000 AND dateSuppr=0", false, MYSQL_ASSOC);
if (is_array($conjoint) && count($conjoint)==1) {
$ret=$iDb2->select('etablissements_tmp','identite_pre', 'siren='.$conjoint[0]['siren'], false, MYSQL_ASSOC);
if (isset($ret[0])) {
$tabUpdate=array( 'identite_pre'=>$ret[0]['identite_pre'].' '.$raisonSociale);
$ret=$iDb->update('etablissements_tmp',$tabUpdate, 'siren='.$conjoint[0]['siren']);
$nbConjoints++;
continue;
}
}
}
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations BODACC sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertBodNS++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbConjoints conjoints Bodacc consolidés.".EOL;
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertBodNS établissements Bodacc NS consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbConjoints conjoints Bodacc consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertBodNS établissements Bodacc NS consolidés.".EOL;
/*
$dateInsert=date('YmdHis');
if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=1 AND siege=0', true);
$last_id=$tabTmp[0][0]*1;
} else $last_id=0;
$nbBodE=$iDb->select('bodacc_detail', 'id, typeEven, siren, nic, Bodacc_Date_Parution, Tribunal_Code, Rubrique_Bodacc, Rubrique, typeAnnonce, RC, raisonSociale, nomCommercial, enseigne, FJ, Capital, CapitalDev, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, ville, activite', "adresse<>'' AND id>$last_id", false,MYSQL_ASSOC,true);
//
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodE annonces BODACC établissement à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
if ($tabBodacc['siren']<>0)
$ret=$iDb2->select('etablissements', 'count(*)', 'SIREN='.$tabBodacc['siren']);
if ($ret[0][0]==0 || $tabBodacc['siren']==0) {
// Si le siren n'existe pas dans la base etablissement, on l'ajoute
$cj=$naf='';
$dep=floor($tabBodacc['codePostal']/1000);
if ($dep>96) $dep=floor($tabBodacc['codePostal']/100);
$actif=1;
$tabEven=explode(';',$tabBodacc['typeEven']);
foreach ($tabEven as $even) {
$typeEven=$even*1;
if ($typeEven>=6000 && $typeEven<=6700) $actif=0;
elseif ($typeEven==2000 || $typeEven==2206) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven==2720) $actif=0;
}
$tabEtab=array( 'source'=>1,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>$tabBodacc['nic'],
'triCode'=>$tabBodacc['Tribunal_Code'],
'autre_id'=>$tabBodacc['RC'],
'siege'=>0,
'actif'=>$actif,
'raisonSociale'=>$tabBodacc['raisonSociale'],
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>'',
'adr_num'=>$tabBodacc['adrNum'],
'adr_btq'=>$tabBodacc['adrIndRep'],
'adr_typeVoie'=>$tabBodacc['adrTypVoie'],
'adr_libVoie'=>strtoupper($tabBodacc['adrLibVoie']),
'adr_comp'=>trim(strtoupper($tabBodacc['adrComp1'].' '.$tabBodacc['adrComp2'])),
'adr_cp'=>$tabBodacc['codePostal'],
'adr_dep'=>$dep,
'adr_ville'=>strtoupper(trim(strtr($tabBodacc['ville'], '{.!}',' '))),
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'ape_etab'=>$naf,
'dateInsert'=>$dateInsert,
);
$iDb->insert('etablissements',$tabEtab);
}
}*/
}
if ($joAsso) {
$tabThemes=array();
$retTmp=$iDb->select('asso_themes', 'theme, naf', "naf<>'' ORDER BY theme ASC", false, MYSQL_ASSOC);
$nbThemes=count($retTmp);
echo date ('Y/m/d - H:i:s')." - Il y a $nbThemes thèmes d'activité associations avec correspondances NAF.".EOL;
foreach ($retTmp as $i=>$tabTmp)
$tabThemes['_'.$tabTmp['theme']]=$tabTmp['naf'];
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le JO Association.".EOL;
$dateInsert=date('YmdHis');
/* if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=3', true);
$last_id=$tabTmp[0][0]*1;
} else*/ $last_id=0;
//$nbAsso=$iDb->select('asso', 'id, Assoc_Nom, siren, nic, Waldec, Activite, codThemes, Type_Annonce, typeAsso, Date_Parution, Departement, Sous_Prefecture, codTribunal, Assoc_Adresse, Assoc_AdrNum, Assoc_AdrIndRep, Assoc_AdrTypVoie, Assoc_AdrLibVoie, Assoc_AdrCP, Assoc_AdrVille, Assoc_AdrComp, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_NObjet, Assoc_AObjet, Assoc_Fusion, Assoc_Date_Declaration2, codEven, dateInsert', "id>$last_id AND siren<100", false,MYSQL_ASSOC,true);
$nbAsso=$iDb->select('asso', 'id, Assoc_Nom, siren, nic, Waldec, Activite, codThemes, Type_Annonce, typeAsso, Date_Parution, Departement, Sous_Prefecture, codTribunal, Assoc_Adresse, Assoc_AdrNum, Assoc_AdrIndRep, Assoc_AdrTypVoie, Assoc_AdrLibVoie, Assoc_AdrCP, Assoc_AdrVille, Assoc_AdrComp, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_NObjet, Assoc_AObjet, Assoc_Fusion, Assoc_Date_Declaration2, codEven, dateInsert', "id>$last_id AND siren<100 AND dateSuppr=0", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAsso annonces ASSOCIATIONS à consolider depuis $last_id...".EOL;
while ($tabAsso=$iDb->fetch(MYSQL_ASSOC)) {
/*
9110 Syndicat de copropriété
9210 Association non déclarée
9221 Association déclarée "entreprises d'insertion par l'économique"
9222 Association intermédiaire
9223 Groupement d'employeurs
9230 Association déclarée reconnue d'utilité publique
9240 Congrégation
*/
/** Initialisation des valeurs par défaut
**/
$naf='';
$actif=1;
$cj=9220; // Association déclarée
// $tabEven=array();
if ($tabAsso['typeAsso']=='ASL') {
//if (preg_match('/ASL/i', $tabAsso['Type_Annonce']) || preg_match('/syndicale/i', $tabAsso['Type_Annonce'])) {
$cj=9150; // ASL
$naf='8110Z'; // Activités combinées de soutien lié aux bâtiments
}
elseif ($tabAsso['typeAsso']=='FON')
//elseif (preg_match('/Fondation/i', $tabAsso['Type_Annonce']))
$cj=9300; // FONDATION
elseif ($tabAsso['typeAsso']=='FOD') { // Fond de dotation
$cj=9900; // Autre personne morale de droit prive
$naf='6832A'; // Administration d'immeubles et autres biens immobiliers
}
elseif ($tabAsso['typeAsso']=='ASS' && (preg_match('/GROUPEMENT.{1,5}EMPLOYEUR/i', $tabAsso['Assoc_Nom']) ||
preg_match('/GROUPEMENT.{1,5}EMPLOYEUR/i', $tabAsso['Assoc_ANom']))) {
$cj=9223; // Groupement d'employeur
$naf='7830Z'; // Autre mise à disposition de ressources humaines
}
elseif ($tabAsso['typeAsso']=='ASS' && (preg_match('/ASSOCIATION.{1,5}INTERMEDIAIRE/i', $tabAsso['Assoc_Nom']) ||
preg_match('/ASSOCIATION.{1,5}INTERMEDIAIRE/i', $tabAsso['Assoc_ANom']))) {
$cj=9222; // Association intermédiaire
$naf='8810C'; // Aide par le travail
}
elseif ($tabAsso['typeAsso']=='ASS' && ($tabAsso['Departement']==57 || $tabAsso['Departement']==67 || $tabAsso['Departement']==68))
$cj=9260; // Association de droit local
if (preg_match('/cr(é|e)ation/i', $tabAsso['Type_Annonce']) && preg_match('/Annulation/i', $tabAsso['Type_Annonce'])) {
$actif=0;
// $tabEven[]=8000;
}
elseif (preg_match('/Dissolution/i', $tabAsso['Type_Annonce']) && !preg_match('/Annulation/i', $tabAsso['Type_Annonce'])) {
$actif=0;
// $tabEven[]=8090;
}/*
elseif (trim($tabAsso['codEven'])=='') {
$tabEven[]=8079;
//, id, Assoc_Nom, siren, nic, Waldec, Activite, codThemes, Type_Annonce, typeAsso, Date_Parution, Departement, Sous_Prefecture, codTribunal, Assoc_Adresse, Assoc_AdrNum, Assoc_AdrIndRep, Assoc_AdrTypVoie, Assoc_AdrLibVoie, Assoc_AdrCP, Assoc_AdrVille, Assoc_AdrComp, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren<100", false,MYSQL_ASSOC,true);
if (trim($tabAsso['Assoc_ANom'])<>'' || trim($tabAsso['Assoc_NNom'])<>'')
$tabEven[]=8010; // Changement de nom
if (trim($tabAsso['Assoc_NAdresse'])<>'')
$tabEven[]=8011; // Déménagement
if (trim($tabAsso['Assoc_AObjet'])<>'' || trim($tabAsso['Assoc_NObjet'])<>'')
$tabEven[]=8020; // Modification de l'objet social
if (trim($tabAsso['Assoc_Fusion'])<>'')
$tabEven[]=8030; // Fusion
/*
8021 Additif à l'objet social
8025 Modification statutaire
8080 Suspension d'association
*
}*/
if ($naf=='') {
if ($tabAsso['codThemes']<>'') {
$tabTmp=@explode(';', $tabAsso['codThemes']);
$naf=@$tabThemes['_'.$tabTmp[0]];
}
elseif ($tabAsso['Activite']<>'') {
if (preg_match('/sport/i', $tabAsso['Activite'])) // 0015
$naf='9319Z';//'926C'; // Autres activités sportives
elseif (preg_match('/(culte|religieu)/i', $tabAsso['Activite'])) // 0004
$naf='9491Z';//913A'; // Organisations religieuses
elseif (preg_match('/communication/i', $tabAsso['Activite'])) // 0003
$naf='6399Z'; // Autres services d'information n.c.a.
elseif (preg_match('/Politique/i', $tabAsso['Activite'])) // 0012
$naf='9492Z'; // Activités des organisations politiques
elseif (preg_match('/(Enseignement|Education|formation)/i', $tabAsso['Activite'])) // 0008
$naf='8559B';
elseif (preg_match('/(Social|Humanitaire)/i', $tabAsso['Activite']) ) // 0014
$naf='8899B';//853K'; // Autres formes d'action sociale
elseif (preg_match('/(Recherche|Technique)/i', $tabAsso['Activite'])) // 0010
$naf='7219Z'; // Recherche-développement en autres sciences physiques et naturelles
elseif (preg_match('/Loisir/i', $tabAsso['Activite'])) // 0005
$naf='9329Z'; // Autres activités récréatives et de loisirs
elseif (preg_match('/Art/i', $tabAsso['Activite'])) // 0005
$naf='9003B'; // Autre création artistique
}
}
if ($naf=='') $naf='9499Z'; // Autres organisations fonctionnant par adhésion volontaire
/** L'adresse est elle structurée en base ?
**/
if (trim($tabAsso['Assoc_AdrLibVoie'])<>'' || trim($tabAsso['Assoc_AdrCP'])<>'') {
$adr=array( 'num'=>$tabAsso['Assoc_AdrNum'],
'indRep'=>$tabAsso['Assoc_AdrIndRep'],
'typeVoie'=>$tabAsso['Assoc_AdrTypVoie'],
'libVoie'=>strtoupper($tabAsso['Assoc_AdrLibVoie']),
'adrComp0'=>$tabAsso['Assoc_AdrComp'],
'cp'=>$tabAsso['Assoc_AdrCP'],
'ville'=>trim(strtoupper($tabAsso['Assoc_AdrVille'])),
);
$updateAdr=false;
}
elseif ($tabAsso['Assoc_NAdresse']<>'') {
$adr=$iInsee->structureVoie($tabAsso['Assoc_NAdresse']);
$updateAdr=true;
} else {
$adr=$iInsee->structureVoie($tabAsso['Assoc_Adresse']);
$updateAdr=true;
}
if ($updateAdr) {
// On enregistre l'adresse structurée en base
$adrComp=strtoupper(@$adr['adrComp0']);
if (@$adr['adrComp1']<>'')
$adrComp.=' '.strtoupper(@$adr['adrComp1']);
$adr['adrComp0']=$adrComp;
$iDb2->update('asso', array('Assoc_AdrNum'=>@$adr['num'],
'Assoc_AdrIndRep'=>@$adr['indRep'],
'Assoc_AdrTypVoie'=>@$adr['typeVoie'],
'Assoc_AdrLibVoie'=>@$adr['libVoie'],
'Assoc_AdrComp'=>@$adr['adrComp0'],
'Assoc_AdrCP'=>@$adr['cp'],
'Assoc_AdrVille'=>@$adr['ville']), 'id='.$tabAsso['id']);
}
/*if (trim($tabAsso['codEven'])=='' && count($tabEven)>0) {
// On enregistre les codes évènements
$iDb2->update('asso', array('codEven'=>@implode(';', $tabEven)), 'id='.$tabAsso['id']);
}*/
$raisonSociale=trim($tabAsso['Assoc_Nom']);
if ($raisonSociale=='')
$raisonSociale=trim($tabAsso['Assoc_ANom']);
if (preg_match("/^(.*) \((.*)\)$/U", $raisonSociale, $matches)) {
$raisonSociale=trim($matches[1]);
$sigle=trim(strtr($matches[2],array('.'=>'')));
}
else
$sigle='';
if ($tabAsso['Departement']*1>0) {
$dep=$tabAsso['Departement']*1;
} else {
$dep=floor(@$adr['cp']/1000);
if ($dep>96) $dep=floor(@$adr['cp']/100);
}
/** Recherche du code tribunal de la préfecture si manquant **/
$codTribunal=$tabAsso['codTribunal'];
if ($codTribunal=='' && strlen($tabAsso['Sous_Prefecture'])>5) {
$codTribunal=getCodePrefectures($tabAsso['Sous_Prefecture'], $dep);
// On met à jour le tribunal dans la table 'asso'
$iDb2->update('asso', array('codTribunal'=>$codTribunal), 'id='.$tabAsso['id']);
}
$tabEtab=array( 'source'=>3,
'source_id'=>$tabAsso['id'],
'siren'=>$tabAsso['siren'],
'nic'=>$tabAsso['nic'],
'triCode'=>$codTribunal,
'autre_id'=>$tabAsso['Waldec'],
'siege'=>1,
'actif'=>$actif,
'raisonSociale'=>$raisonSociale,
'enseigne'=>'',
'identite_pre'=>$tabAsso['Assoc_ANom'],
'sigle'=>$sigle,
'adr_num'=>@$adr['num'],
'adr_btq'=>@$adr['indRep'],
'adr_typeVoie'=>@$adr['typeVoie'],
'adr_libVoie'=>strtoupper(@$adr['libVoie']),
'adr_comp'=>@$adr['adrComp0'],
'adr_cp'=>@$adr['cp'],
'adr_ville'=>trim(strtoupper(@$adr['ville'])),
'adr_dep'=>$dep,
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'capital'=>0,
'capitalDev'=>'',
'capitalSrc'=>3,
'ape_etab'=>$naf,
'ape_entrep'=>$naf,
'dateInsert'=>$dateInsert,
);
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Associations sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertAsso++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL;
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le JO Association Sirené (Waldec, etc...)".EOL;
$dateInsert=date('YmdHis');
$last_id=0;
//$nbAsso=$iDb->select('asso', 'id, Assoc_Nom, siren, nic, Waldec, Activite, Type_Annonce, Date_Parution, Departement, Sous_Prefecture, codTribunal, Assoc_Adresse, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren>100", false,MYSQL_ASSOC,true);
$nbAsso=$iDb->select('asso', 'id, Assoc_Nom, siren, nic, Waldec, Activite, Type_Annonce, Date_Parution, Departement, Sous_Prefecture, codTribunal, Assoc_Adresse, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren>100 AND dateSuppr=0", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAsso annonces ASSOCIATIONS à mettre à jour depuis $last_id...".EOL;
while ($tabAsso=$iDb->fetch(MYSQL_ASSOC)) {
$tabEtab=array( 'triCode'=>$tabAsso['Sous_Prefecture'], // Gérer la table des préfecture
'autre_id'=>$tabAsso['Waldec'],
'identite_pre'=>$tabAsso['Assoc_Nom'],
);
$ret=$iDb->update('etablissements_tmp',$tabEtab, 'siren='.$tabAsso['siren']);
if (!$ret || mysql_errno()<>0) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Associations sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbUpdateAsso++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbUpdateAsso établissements Associations avec SIREN consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbUpdateAsso établissements Associations avec SIREN consolidés.".EOL;
}
if ($iGreffe) {
$iRncs=new MRncs();
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis les Greffes.".EOL;
$dateInsert=date('YmdHis');
$nbBodS=$iDb->select('greffes_identite g LEFT JOIN etablissements_tmp e ON g.siren = e.siren', 'g.id, g.siren, g.nom, g.adresse, g.cp, g.ville, g.enseigne, g.siege, g.fj, g.fjLib, g.naf, g.nafLib, g.numGreffe, g.libGreffe, g.numRC, g.dateCreation, g.dateRadiation, g.dateInsert', "e.siren IS NULL", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS entreprises en provenance des Greffes dont le siren est absent de l'insee à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
$adr=$iInsee->structureVoie($tabBodacc['adresse']);
$adr_cp=@$tabBodacc['cp'];
$numRC=$tabBodacc['numRC'];
if ($numRC<>'' && substr($numRC,0,2)*1>=30)
$numRC='19'.$numRC;
elseif ($numRC<>'' && substr($numRC,0,2)*1<30)
$numRC2='20'.$numRC;
$dep=floor($adr_cp/1000);
if ($dep>96) $dep=floor($adr_cp/100);
$tabEtab=array( 'source'=>4,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>0,
'triCode'=>@$iRncs->getCodeBodaccTribunal($tabBodacc['numGreffe']),
'autre_id'=>$numRC,
'siege'=>1,
'actif'=>0,
'raisonSociale'=>$tabBodacc['nom'],
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>'',
'identite_pre'=>'',
'adr_num'=>@$adr['num'],
'adr_btq'=>@$adr['adr_btq'],
'adr_typeVoie'=>@$adr['typeVoie'],
'adr_libVoie'=>strtoupper(@$adr['libVoie']),
'adr_comp'=>'',
'adr_cp'=>$adr_cp,
'adr_ville'=>strtoupper(@$tabBodacc['ville']),
'adr_dep'=>$dep,
'tel'=>'',
'fax'=>'',
'cj'=>$tabBodacc['fj'],
'capital'=>0,
'capitalDev'=>'',
'capitalSrc'=>4,
'ape_etab'=>$tabBodacc['naf'],
'ape_entrep'=>$tabBodacc['naf'],
'dateInsert'=>$dateInsert,
);
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations GREFFES sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertGreffes++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertGreffes établissements Greffes consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertGreffes établissements Greffes consolidés.".EOL;
}
if ($iLiens) {
$iRncs=new MRncs();
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis les Liens Financiers.".EOL;
$dateInsert=date('YmdHis');
$nbBodS=$iDb->select('liensRef l LEFT JOIN tabPays p ON l.adresse_pays=p.codPays3', 'l.id, l.siren, l.sirenValide, l.source, l.actif, l.PpPm, l.RS, l.sigle, l.civilite, l.nom, l.prenom, l.nom_usage, l.naissance_date, l.naissance_dept_pays, l.naissance_lieu, l.nat, l.adresse_num, l.adresse_btq, l.adresse_codvoie, l.adresse_libvoie, l.adresse_comp, l.adresse_cp, l.adresse_ville, l.adresse_pays, l.tel, l.fax, l.web, l.email, l.dateSaisie, l.cj, l.ape, l.categorie, l.capital, l.deviseCapital, l.dateCapital, l.nbActions, l.dateNbActions, l.idLoc1Type, l.idLoc1Num, l.idLoc2Type, l.idLoc2Num, l.idLoc3Type, l.idLoc3Num, l.bilMillesime, l.bilDev, l.bilFL, l.bilHN, l.bilFPr, l.bilEE, l.grpTop, l.grpNom, l.dateInsert, p.codePaysInsee, p.libPays', "l.siren<1000 AND l.dateSuppr=0", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS entreprises en provenance de la base Liens absentes de l'insee à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
// l.id, l.siren, l.sirenValide, l.source, l., l.naissance_date, l.naissance_dept_pays,
// l.naissance_lieu, l.nat, l., l., l., l., l., l., l., l.adresse_pays,
// l.web, l.email, l.dateSaisie, l.categorie, l.dateCapital, l.nbActions, l.dateNbActions, l.idLoc1Type,
// l.idLoc2Type, l.idLoc2Num, l.idLoc3Type, l.idLoc3Num, l.bilMillesime, l.bilDev, l.bilFL, l.bilHN, l.bilFPr, l.bilEE, l.grpTop, l.grpNom, l.dateInsert
if ($tabBodacc['PpPm']=='PM') {
$raisonSociale=$tabBodacc['RS'];
} else {
$raisonSociale=trim($tabBodacc['civilite'].' '.strtoupper($tabBodacc['nom']).' '.$tabBodacc['prenom']);
if ($tabBodacc['cj']*1==0) $cj=1900;
else $cj=$tabBodacc['cj'];
}
if ($tabBodacc['adresse_pays']<>'' && $tabBodacc['adresse_pays']<>'FRA') {
$dep=99;
$com=$tabBodacc['codePaysInsee'];
} else {
$dep=floor($tabBodacc['adresse_cp']/1000);
if ($dep>96) $dep=floor($tabBodacc['adresse_cp']/100);
$com='';
}
$tabEtab=array( 'source'=>6,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>0,
'triCode'=>'',
'autre_id'=>$tabBodacc['idLoc1Num'],
'siege'=>1,
'actif'=>$tabBodacc['actif'],
'raisonSociale'=>$raisonSociale,
'enseigne'=>'',//
'sigle'=>$tabBodacc['sigle'],
'identite_pre'=>$tabBodacc['nom_usage'],
'adr_num'=>$tabBodacc['adresse_num'],
'adr_btq'=>$tabBodacc['adresse_btq'],
'adr_typeVoie'=>$tabBodacc['adresse_codvoie'],
'adr_libVoie'=>$tabBodacc['adresse_libvoie'],
'adr_comp'=>$tabBodacc['adresse_comp'],
'adr_cp'=>$tabBodacc['adresse_cp'],
'adr_ville'=>strtoupper($tabBodacc['adresse_ville']),
'adr_dep'=>$dep,
'adr_com'=>$com,
'tel'=>$tabBodacc['tel'],
'fax'=>$tabBodacc['fax'],
'cj'=>$tabBodacc['cj'],
'capital'=>$tabBodacc['capital'],
'capitalDev'=>$tabBodacc['deviseCapital'],
'capitalSrc'=>6,
'ape_etab'=>$tabBodacc['ape'],
'ape_entrep'=>$tabBodacc['ape'],
'dateInsert'=>$dateInsert,
);
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Liens sur le siren ". $tabBodacc['siren'] .' : '. $raisonSociale .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertLiens++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertLiens établissements Liens consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertLiens établissements Liens consolidés.".EOL;
}
if ($iMarques) {
echo date ('Y/m/d - H:i:s')." - Mise à jour des marques.".EOL;
$nbMarques=$iDb->select('bopi.marques', 'sirenDeposant AS Siren, nomMarque AS Marques', 'sirenDeposant>1000 AND sirenValide>0 ORDER BY Siren ASC', false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbMarques marques à mettre à jour...".EOL;
$sirenPre=false;
$strMarques='';
while ($tabMarques=$iDb->fetch(MYSQL_ASSOC)) {
$siren =$tabMarques['Siren'];
if ($sirenPre<>$siren && $sirenPre<>false) {
/** Il faut mettre à jour l'ensemble des marques pour ce siren **/
$tabUpdate=array( 'marques'=>trim($strMarques));
$ret=$iDb->update($table,$tabUpdate, "siren=$sirenPre");
if (!$ret) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations MARQUES sur le siren $sirenPre impossible ($strMarques) !".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else $nbInsertMarques++;
$strMarques='';
}
$strMarques.=' '.$tabMarques['Marques'];
$sirenPre=$siren;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertMarques établissements avec Marques consolidés.".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertMarques établissements avec Marques consolidés.".EOL;
}
if ($table<>'etablissements_tmp') {
date ('Y/m/d - H:i:s')." - Fin du traitement car la table courante n'est pas 'etablissements_tmp' ($table) !".EOL;
die();
}
} else {
echo date ('Y/m/d - H:i:s')." - Remise à 0 de tous les ranks de la table etablissements...".EOL;
$tab=array( 'rang'=>0 );
$iDb->update('etablissements', $tab, 'siren=0');
}
echo date ('Y/m/d - H:i:s')." - Mise à jour du rank de l'entreprise pour les recherches par nom".EOL;
/*$iDbRanks=new WDB('sdv1');
$nbRanks=$iDbRanks->select('`logs`', 'siren, count(*) AS `rang`', "page='identite' AND siren<>0 GROUP BY siren HAVING `rang`>5 ORDER BY `rang` DESC", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbRanks ranks à mettre à jour...".EOL;
$rangPre=-1;
$tabSiren=array();*/
if ($pageRankOnly) $tableEtab='etablissements';
else $tableEtab='etablissements_tmp';
$iDb->query("UPDATE $tableEtab, rangSiren
SET $tableEtab.rang=rangSiren.rang
WHERE $tableEtab.siren=rangSiren.siren AND rangSiren.rang>5;");
echo date ('Y/m/d - H:i:s')." - Fin de la mise à jour du ranking pour la table $tableEtab : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
/*
while ($tabRank=$iDbRanks->fetch(MYSQL_ASSOC)) {
if ($tabRank['rang']<>$rangPre && $rangPre<>-1) {
// On met à jour le Rang précédent
$tab=array( 'rang'=>$rangPre );
$strSiren=implode(',',$tabSiren);
if (count($tabSiren)==1) {
$iDb->update($tableEtab, $tab, 'siren='.$tabSiren[0]);
} else {
if (!$iDb->update($tableEtab, $tab, "siren IN ($strSiren)"))
echo "Erreur SQL sur ".count($tabSiren)." sirens à MAJ : ".mysql_error().EOL;
}
$tabSiren=array();
}
$tabSiren[]=substr($tabRank['siren'],0,9);
$rangPre=$tabRank['rang'];
}*/
if (!$pageRankOnly) {
echo date ('Y/m/d - H:i:s')." - Mise en place des tables pour l'indexation.".EOL;
$iDb->query("DROP TABLE jo.etablissements_old;");
echo date ('Y/m/d - H:i:s')." - Suppression de la table etablissements_old : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
//$iDb->query("RENAME TABLE jo.etablissements TO jo.etablissements_old;");
//echo date ('Y/m/d - H:i:s')." - Sauvegarde de l'ancienne table établissements : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
//$iDb->query("RENAME TABLE jo.etablissements_tmp TO jo.etablissements;");
//echo date ('Y/m/d - H:i:s')." - Passage en production de la table tmp : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
}
echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL;
$strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL;
//echo date ('Y/m/d - H:i:s')." - Lancement de la commande : indexer --all --config /usr/local/etc/sphinx.conf --rotate".EOL;
/*$nb=@$nbAsso+@$nbBodS+@$nbBodE;
if ($nb>0) die(0);
else die(1);*/
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'Consolidation des établissements', $strMailInfo);
die();
?>