#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini 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 'm': $all=false; $iMarques=true; break; case 'b': $all=false; $joBodacc=true; break; case 'i': $all=false; $baseInsee=true; break; case 'r': $reset=true; break; case 'p': $pageRankOnly=true; break; case '-': case '?': die($strInfoScript); break; default: die('Option '. $argv[$i] . " inconnue !\n"); break; } } } } /** Par défaut, on consolide toutes les sources **/ if ($all) { $joAsso=$joBodacc=$baseInsee=$iGreffe=$iMarques=true; } $iDb=new WDB('jo'); 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` varchar(255) 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` smallint(3) unsigned zerofill NOT NULL, `tel` bigint(8) unsigned zerofill NOT NULL, `fax` bigint(8) unsigned zerofill NOT NULL, `cj` smallint(4) unsigned zerofill NOT NULL, `ape_etab` char(5) NOT NULL, `ape_entrep` char(5) NOT NULL, `rang` smallint unsigned zerofill 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 `tel` (`tel`), KEY `fax` (`fax`), KEY `siren` (`siren`,`nic`), KEY `autre_id` (`autre_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;", true)) die($iDb->getLastError()); 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"); $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; /* $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 ($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); 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]); $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'=>substr($adr_cp,0,2), 'tel'=>'', 'fax'=>'', 'cj'=>$cj, '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; $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); 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]); $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'=>substr($adr_cp,0,2), 'tel'=>'', 'fax'=>'', 'cj'=>$cj, '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 $nbInsertBodNS++; } echo 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) { 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, Type_Annonce, Date_Parution, Departement, Sous_Prefecture, Assoc_Adresse, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren<100", 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 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 (preg_match('/Fondation/i', $tabAsso['Type_Annonce'])) $cj=9300; // FONDATION elseif ($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; elseif (preg_match('/Dissolution/i', $tabAsso['Type_Annonce']) && !preg_match('/Annulation/i', $tabAsso['Type_Annonce'])) $actif=0; if ($naf=='') { 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 else $naf='9499Z'; // Autres organisations fonctionnant par adhésion volontaire } if ($tabAsso['Assoc_NAdresse']<>'') $adr=$iInsee->structureVoie($tabAsso['Assoc_NAdresse']); else $adr=$iInsee->structureVoie($tabAsso['Assoc_Adresse']); $adrComp=strtoupper(@$adr['adrComp0']); if (@$adr['adrComp1']<>'') $adrComp.=' '.strtoupper(@$adr['adrComp1']); $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=''; $tabEtab=array( 'source'=>3, 'source_id'=>$tabAsso['id'], 'siren'=>$tabAsso['siren'], 'nic'=>$tabAsso['nic'], 'triCode'=>$tabAsso['Sous_Prefecture'], // Gérer la table des préfecture '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'=>$adrComp, 'adr_cp'=>@$adr['cp'], 'adr_ville'=>trim(strtoupper(@$adr['ville'])), 'adr_dep'=>$tabAsso['Departement'], 'tel'=>'', 'fax'=>'', 'cj'=>$cj, '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; 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, Assoc_Adresse, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren>100", 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; } if ($iGreffe) { 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']; $tabEtab=array( 'source'=>4, 'source_id'=>$tabBodacc['id'], 'siren'=>$tabBodacc['siren'], 'nic'=>0, 'triCode'=>$tabBodacc['libGreffe'],//@todo Correspondance Tribunal_Code 'autre_id'=>$tabBodacc['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'=>substr($adr_cp,0,2), 'tel'=>'', 'fax'=>'', 'cj'=>$tabBodacc['fj'], '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; } if ($iMarques) { echo date ('Y/m/d - H:i:s')." - Mise à jour des marques.".EOL; $nbMarques=$iDb->select('marques', 'Siren, Marques', '1 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']; $strMarques.=$tabMarques['Marques']; if ($sirenPre<>$siren && $sirenPre<>false) { /** Il faut mettre à jour l'ensemble des marques pour ce siren **/ $tabUpdate=array( 'marques'=>$strMarques ); $ret=$iDb->update('etablissements_tmp',$tabUpdate, "siren=$siren"); if (!$ret) { echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations MARQUES sur le siren $siren impossible ($strMarques) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); } else $nbInsertMarques++; $strMarques=''; } $sirenPre=$siren; } echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertMarques établissements avec Marques consolidés.".EOL; } } 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 ORDER BY `rang` DESC", false,MYSQL_ASSOC,true); echo date ('Y/m/d - H:i:s')." - Il y a $nbRanks ranks à mettre à jour...".EOL; while ($tabRank=$iDbRanks->fetch(MYSQL_ASSOC)) { $tab=array( 'rang'=>$tabRank['rang'] ); if ($pageRankOnly) $tableEtab='etablissements'; else $tableEtab='etablissements_tmp'; $iDb->update($tableEtab, $tab, 'siren='.substr($tabRank['siren'],0,9)); } 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; //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);*/ die(); ?>