batch/1.1/old/getSem.php

1314 lines
51 KiB
PHP
Raw Normal View History

2013-06-19 08:24:49 +00:00
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/curl.php');
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(FWK_PATH.'mail/sendMail.php');
$modeDebug=false;
$doAct=false;
$doPar=false;
$doPurge=false;
$doNomPrenom=false;
$doMajTVA=false;
$doDoublons=false;
$doIdentite=false;
$doEven=false;
$doAssocGer=false;
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Mise <EFBFBD> jour des liens actionnaires et participations.
Options :
-v Mode debug (Verbosit<EFBFBD> au maximum et fonctionnement sans timer ni contraintes temporelles)
-a Traiter les actionnaires
-p Traiter les participations
-d Purge les tables
-n Mise <EFBFBD> jour des zones Nom/Pr<EFBFBD>noms par rapport <EFBFBD> la raison sociale
-t Mise <EFBFBD> jour TVA
-i Mise <EFBFBD> jour de l'identit<EFBFBD>
-e Mise <EFBFBD> jour suite aux <EFBFBD>v<EFBFBD>nements
-g Mise <EFBFBD> jour des Associ<EFBFBD>s G<EFBFBD>rants RNCS
-m Traitement des multiples doublons dans liensRef
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
";*/
$argv=$_SERVER['argv'];
$tabSiren=array();
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'a': $doAct=true; break;
case 'p': $doPar=true; break;
case 'd': $doPurge=true; break;
case 'n': $doNomPrenom=true; break;
case 'v': $modeDebug=true; break;
case 't': $doMajTVA=true; break;
case 'i': $doIdentite=true; break;
case 'e': $doEven=true; break;
case 'g': $doAssocGer=true; break;
case 'm': $doDoublons=true; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabSiren[]=$argv[$i];
}
/** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
**
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
**/
$iDb=new WDB('jo');
$iDbSem=new WDB('tmp');
$iInsee=new MInsee();
$tabZones=array('nom'=>'<h3 class="sem">(.*)</h3>',
'sigle'=>'<p class="sigle">(.*)</p>',
'ville'=>'<h3 class="subTitle"><strong>(.*)</strong>',
'dept'=>'<h3 class="subTitle"><strong>(?:.*)Dpt&nbsp;: (.*)R&eacute;gion',
'secteur'=>'<p class="low-margin"><strong>Secteur&nbsp;:</strong>(.*)</p>',
'domaine'=>'<p class="low-margin"><strong>Domaine&nbsp;:</strong>(.*)</p>',
'activite'=>'<p><strong>Activit&eacute; principale&nbsp;:</strong>(.*)</p>',
'activiteDetail'=>'<p class="activite">D&eacute;tail de l\'activit&eacute;&nbsp;:(.*)</p>',
'realisation'=>'<p><strong>R&eacute;alisations&nbsp;:</strong>(.*)</p>',
'certification'=>'<p><strong>Certification :</strong>(.*)</p>',
'dateCrea'=>'<p>Cr&eacute;&eacute;e&nbsp;le&nbsp;(.*)</p>',
'capital'=>'<p>Capital :(.*)</p>',
'caAnnuel'=>'<p>C.A. annuel &nbsp;:(.*)</p>',
'nbSalaries'=>'<p>Nombre de salari&eacute;s&nbsp;:&nbsp;(.*)</p>',
'adresse1'=>'<h3>Coordonn&eacute;es bureau </h3>(?:.*)<div>(.*)</div>',
'adresse2'=>'<h3>Coordonn&eacute;es bureau </h3>(?:.*)<div>(?:.*)</div>(?:.*)<div>(.*)</div>',
'adresse3'=>'<h3>Coordonn&eacute;es bureau </h3>(?:.*)<div>(?:.*)</div>(?:.*)<div>(?:.*)</div>(?:.*)<div>(.*)</div>',
'adresse4'=>'<h3>Coordonn&eacute;es bureau </h3>(?:.*)<div>(?:.*)</div>(?:.*)<div>(?:.*)</div>(?:.*)<div>(?:.*)</div>(?:.*)<div>(.*)</div>',
'tel'=>'<p class="low-margin">T&eacute;l. :(.*)</p>',
'fax'=>'<p class="low-margin">Fax : (.*)</p>',
'web'=>'<p class="low-margin">Web&nbsp;: <a href="(.*)" target="_blank"></a></p>',
'mail'=>'<p>E-mail &nbsp;: <a href="mailto:(.*)">',
'actCol'=>'<h3>Actionnariat</h3>(?:.*)<p><strong>Collectivit&eacute;s territoriales&nbsp;: </strong>(.*).</p>',
'actEta'=>'<h3>Actionnariat</h3>(?:.*)<p><strong>&Eacute;tat :</strong>(.*).</p>',
'actDiv'=>'<h3>Actionnariat</h3>(?:.*)<p><strong>Autres&nbsp;: </strong>(.*).</p>',
/*
'tvaValide'=>'<b><span class="validStyle">(.*)</span></b>',
'tvaInvalide'=>'<b><span class="invalidStyle">(.*)</span></b>',
'tvaNumero'=>'<td class="labelStyle">Num(?:.*)ro de TVA</td>(?:.*)<td>(.*)</td>',
'etat'=>'<td class="labelStyle">(?:.*)tat Membre</td>(?:.*)<td>(.*)</td>',
'raisonSociale'=>'<td class="labelStyle">Nom</td>(?:.*)<td>(.*)</td>',
'adresse'=>'<td class="labelStyle">Adresse</td>(?:.*)<td>(.*)</td>',*/
);
$urlBase="http://www.lesepl.fr/contacts-epl/";
$url="http://www.lesepl.fr/contacts-epl/index.php?act=search&region=&dpt=&sigle=&typ_orga=&domaine=&activite=&x=38&y=9#start";
//$url="http://www.lesepl.fr/contacts-epl/centre/3-vals-amenagement/164/";
$page=getUrl($url, '', '', '', false);
$referer=$url;
$body=$page['body'];
$nbResults=0;
if ($page['code']<>200) die('Pas 200'.EOL);
$cookie=$page['header']['Set-Cookie'];
if(preg_match('/<h4 class="subTitle" id="start">R&eacute;sultats de votre recherche \((.*)Epl\) <a name="result">/Uis', $body, $matches)) {
$nbResults=$matches[1];
$nbPages=ceil($nbResults/6);
}
if ($nbResults>0) {
$pageCour=1;
while($pageCour<=$nbPages) {
$body=preg_replace('/^.*<div id="searchResults" style="display\:block">/Uis','',$body);
if(preg_match_all('/<li><a href="(.*)">(.*)<\/a>&nbsp;\-(.*)<br \/>(?:.*)<span class="raison">\((.*)\)<\/span>(?:.*)<\/li>/Uis', $body, $matches)) {
for($iLigne=0; $iLigne<=5 && isset($matches[1][$iLigne]); $iLigne++) {
$urlFiche=$urlBase.$matches[1][$iLigne];
$rs=$matches[2][$iLigne];
$ville=$matches[3][$iLigne];
echo "$pageCour/$nbPages\t$iLigne\t$rs\t$ville".EOL;
$page2=getUrl($urlFiche, $cookie, '', '', false);
$tabHtml=html2array($page2['body'], $tabZones);
//print_r($tabHtml);
$tabInsert=$tabHtml;
$tabInsert['urlFiche']=$urlFiche;
$iRet=$iDbSem->insert('sem', $tabInsert, false);
echo "\t".mysql_error().'-';
$tabInsert['id']=$iRet;
$tabAct=array();
$tabAct['COL']=explode(';', $tabInsert['actCol']);
$tabAct['ETA']=explode(';', $tabInsert['actEta']);
$tabAct['DIV']=explode(';', $tabInsert['actDiv']);
unset($tabInsert['actCol']);
unset($tabInsert['actEta']);
unset($tabInsert['actDiv']);
foreach ($tabAct as $actType=>$actTab) {
foreach($actTab as $iAct=>$actNom) {
$tabInsert['actType']=$actType;
$tabInsert['actNom']=$actNom;
$iDbSem->insert('semAct', $tabInsert, false);
echo mysql_error().'.';
}
}
echo mysql_error().EOL;
}
//print_r($matches);
//die();
}
$pageCour++;
$url=$urlBase."index.php?page=$pageCour&filter=1#result";
$page=getUrl($url, $cookie, '', $referer, false);
$referer=$url;
$body=$page['body'];
}
/*
*
^M^M
^M^M
<li><a href="poitou-charentes/3d-energies/1660/">3D ENERGIES</a>&nbsp;- NIORT<br />^M^M
<span class="raison">(3D ENERGIES)</span>^M^M
</li>^M^M
*/
}
$tabHtml=html2array($body, $tabZones);
die($body);
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des liens...".EOL;
if ($doNomPrenom) {
$iBodacc=new MBodacc();
echo date ('Y/m/d - H:i:s')." - Recherche des mise <20> jour des Zones Noms/Pr<50>noms...".EOL;
$ret=$iDb->select('liensRef',
'id, PpPm, RS, civilite, nom, prenom, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville, adresse_pays',
" PpPm='PP' AND RS LIKE '% %' AND nom='' and prenom='' AND /*id>999*/ id>=902511 AND RS NOT LIKE '%FAMILLE%'", false, MYSQL_ASSOC);//OR idLoc1Num LIKE 'FR%'
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des $nb zones...".EOL;
foreach ($ret as $i=>$lien) {
$id=$lien['id'];
$rs=$lien['RS'];
$civ=$lien['civilite'];
$tmp=$iBodacc->getNomPrenomGenre($rs);
$nom=$tmp['Nom'];
$prenom=$tmp['Prenoms'];
$sexe=$tmp['Genre'];
if ($civ=='' && $sexe='M') $civ2='M';
elseif ($civ=='' && $sexe='F') $civ2='MME';
else $civ2=$civ;
echo "$i/$nb - $id, $rs : $civ $nom [$civ2] $prenom".EOL;
$tabUpdate=array( 'nom' => $nom,
'prenom'=> $prenom,
'civilite'=> $civ2);
$iDb->update('liensRef', $tabUpdate, "id=$id", false);
if (mysql_errno()) echo mysql_error().EOL;
}
die();
}
if ($doDoublons) {
$iBodacc=new MBodacc();
echo date ('Y/m/d - H:i:s')." - Recherche des Doublons...".EOL;
$ret=$iDb->select('liensRef',
'COUNT(*) AS nb, siren',
"siren>0 GROUP BY siren having nb>1 ORDER BY nb DESC", false, MYSQL_ASSOC);
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des $nb doublons...".EOL;
foreach ($ret as $i=>$lien) {
$siren=$lien['siren'];
echo "$i/$nb : $siren = ".$lien['nb']." doublons...";
$ret2=$iDb->select( 'liensRef',
'id, rs, nom, prenom',
"siren=$siren", false, MYSQL_ASSOC);
foreach ($ret2 as $j=>$tmp) {
if ($j==0) {
// La 1<>re fiche est la bonne !
$idRef=$tmp['id'];
continue;
}
// on recherche tous les cas ou cette 2nde fiche est act
$idPre=$tmp['id'];
$ret3=$iDb->update( 'liens2', array('idAct'=>$idRef), "idAct=$idPre", false);
// on recherche tous les cas ou cette 2nde fiche est par
$ret3=$iDb->update( 'liens2', array('idPar'=>$idRef), "idPar=$idPre", false);
// On supprime physiquement la fiche
$ret3=$iDb->delete( 'liensRef', "id=$idPre", false);
echo "$idPre remplac<61> par $idRef, ";
}
echo EOL;
}
die();
}
if ($doEven) {
echo date ('Y/m/d - H:i:s')." - Recherche des modifications RNCS...".EOL;
$ret=$iDb->select( 'rncs_modifs',
'siren, champs, valeur, flux',
"flux>='2013-01-15' AND `table`='rncs_entrep' AND (champs='capitalMontant' OR champs='capitalType' OR champs='cj' OR champs='actif' OR champs='raisonSociale') GROUP BY siren, champs", false, MYSQL_ASSOC);
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but du traitement des $nb modifications...".EOL;
foreach ($ret as $i=>$lien) {
$siren=$lien['siren'];
$champs=$lien['champs'];
$valeur=$lien['valeur'];
//echo "$i/$nb : $siren = ".$lien['nb']." doublons...";
$ret2=$iDb->select( 'liensRef', 'id, siren, actif, RS, cj, capital, dateCapital',
"siren=$siren", false, MYSQL_ASSOC);
$idRef=@$ret2[0]['id'];
$lien2=@$ret2[0];
if ($idRef>0) {
$ret3=$iDb->select( 'liens2', 'count(*) AS nb', "idAct=$idRef AND actif=1", false);
$nbAct=$ret3[0]['nb'];
$ret3=$iDb->select( 'liens2', 'count(*) AS nb', "idPar=$idRef AND actif=1", false);
$nbPar=$ret3[0]['nb'];
if ($nbAct>0 || $nbPar>0) {
echo "$i/$nb : $siren ($champs='$valeur') - $nbAct fois actionnaire et $nbPar fois participation".EOL;
$tabId=@$iInsee->getIdentiteEntreprise($siren, 0, 0, false, false);
print_r($lien2);
print_r($tabId);
die();
}
}
}
die();
}
if ($doAssocGer) {
echo date ('Y/m/d - H:i:s')." - Recherche des associ<63>s g<>rants au RNCS...".EOL;
$ret=$iDb->select( 'rncs_dirigeants',
'id, siren, adr_dep, typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu,
nat, adresse, fonction_code, fonction_lib, actif, dateFin, flux, dateInsert, dateUpdate',
"fonction_code=0209 AND flux>='2013-01-01' AND (typeDir='PP' OR (typeDir='PM' AND dirSiren>1000)) GROUP BY siren ASC, actif DESC", false, MYSQL_ASSOC);
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but du traitement des $nb associ<63>s g<>rants...".EOL;
foreach ($ret as $i=>$lien) {
// Participation
$sirenPar=$lien['siren'];
$rsPar=$lien['raisonSociale'];
$typeDir=$lien['typeDir'];
// echo "$i/$nb : $siren = ".$lien['nb']." doublons...";
$ret2=$iDb->select( 'liensRef', 'id, siren, actif, RS, cj, capital, dateCapital',
"siren=$sirenPar", false, MYSQL_ASSOC);
$idRef=@$ret2[0]['id'];
$lien2=@$ret2[0];
if (!@$iInsee->valideSiren($sirenPar)) {
echo "$i/$nb : $siren, $rs ($typeDir) - Siren invalide !!!".EOL;;
die();
continue;
} else
$sirenParV=1;
if ($idRef>0) {
$tabAct=$iDb->select( 'liensRef', 'id, siren, actif, RS, cj, capital, dateCapital',
"id=(SELECT idPar FROM liens2 WHERE idAct=$idRef AND actif=1)", false, MYSQL_ASSOC);
$nbAct=count($tabAct);
$tabPar=$iDb->select( 'liensRef', 'id, siren, actif, RS, cj, capital, dateCapital',
"id=(SELECT idAct FROM liens2 WHERE idPar=$idRef AND actif=1)", false, MYSQL_ASSOC);
$nbPar=count($tabPar);
if ($nbAct>0 || $nbPar>0) {
echo "$i/$nb : $sirenParPar, $rsPar ($typeDir) - $nbAct fois actionnaire et $nbPar fois participation".EOL;
$tabId=@$iInsee->getIdentiteEntreprise($sirenPar, 0, 0, false, false);
print_r($lien2);
//print_r($tabId);
print_r($tabAct);
print_r($tabPar);
print_r($lien);
die();
} else
echo "$i/$nb : $sirenPar, $rsPar ($typeDir) - Ni actionnaire, Ni participation !".EOL;
} else {
//echo "$i/$nb : $sirenPar, $rsPar ($typeDir) - ABSENTE de liensRef !".EOL;
//print_r($lien);
// Actionnaire
$sirenAct=$lien['dirSiren'];
$civ=$naf='';
if ($sirenAct>1000 && @$iInsee->valideSiren($sirenAct)) {
$sirenActV=1;
$tabId=@$iInsee->getIdentiteEntreprise($sirenAct, 0, 0, false, false);
$naf=$tabId['NafEnt'];
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array( 'capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=$tabId['Nom'];
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
$ville=$tabId['Ville'];
$pays=getCodePays3($tabId['PaysIso2']);
} else {
// id, siren, adr_dep, , raisonSociale, dirSiren, , , nom, prenom, naissance_nom, naissance_date, naissance_lieu
// nat, adresse, fonction_code, fonction_lib, actif, dateFin, flux, dateInsert, dateUpdate
$nom=trim($lien['dirRS']);
$nomTemp=" $nom ";
$ppPm=$lien['typeDir'];
$civ=$lien['civilite'];
$sirenAct=$sirenActV=0;
$cj=1900;
$tabInsertComp=array();
$actif=1;
$cp=$dep=$codPays3='';
if (preg_match('/^(.*)\((.*)\)/U', $lien['naissance_lieu'], $matches)) {
$lieuNaiss=trim($matches[1]);
$depPaysNaiss=trim($matches[2]);
if ($depPaysNaiss>1000 && $depPaysNaiss<98000) {
$cp=$depPaysNaiss;
if ($cp<97000) { $dep=substr(''.$cp,0,2); $codPays3='FRA'; }
elseif ($cp<98000) $dep=substr(''.$cp,0,3);
} elseif ($depPaysNaiss>0 && $depPaysNaiss<980) {
$dep=$depPaysNaiss;
$codPays3='FRA';
} else {
$codPays3=getCodePays3fromLib(preg_replace('/\((.*)\)/','',$depPaysNaiss));
if ($codPays3=='') {
$dep=getCodeDep($depPaysNaiss);
if ($dep>0 && $dep<977) $codPays3='FRA';
}
}
echo ( $lien['naissance_lieu']." : Ville = '$lieuNaiss'\tDept='$dep'\tPays='$codPays3'".EOL);
continue;
}
else {
$lieuNaiss=trim($lien['naissance_lieu'].EOL);
}
//$pays=$lien['Pays'];
//if ($pays=='') $pays='FRA';
$ville='';
}
continue;
if ($civ=='') $civ=$lien['civilite'];
$tabInsertComp['nom']=strtoupper($lien['nom']);
$tabInsertComp['prenom']=$lien['prenom'];
$tabInsertComp['nom_usage']=strtoupper($lien['naissance_nom']);
$tabInsertComp['naissance_date']=$lien['naissance_date'];
$tabInsertComp['naissance_lieu']=$lien['naissance_lieu'];
$tabInsertComp['adresse_comp']=$lien['adresse'];
if ($typeDir=='PP') $rsAct=$civ.' '.strtoupper($lien['nom']).' '.$lien['prenom'];
//id`, `siren`, `sirenValide, source, actif, PpPm, RS, sigle
//naissance_dept_pays, nat`, `adresse_num`, `adresse_btq`, `adresse_codvoie`, `adresse_libvoie`, ``, `adresse_cp`, `adresse_ville`,
//`adresse_pays`, `tel`, `fax`, `web`, `email`, `dateSaisie`, `cj`, `ape`, `categorie`, `capital`, `deviseCapital`, `dateCapital`, `nbActions`,
//`dateNbActions`, `idLoc1Type`, `idLoc1Num`, `idLoc2Type`, `idLoc2Num`, `idLoc3Type`, `idLoc3Num`, `bilMillesime`, `bilDev`, `bilFL`, `bilHN`, `bilFPr`, `bilEE`, `grpTop`, `grpNom`, `dateInsert`, `idInsert`, `dateUpdate`, `idUpdate`, `dateSuppr`, `idSuppr
/* [id] => 14049526
[siren] => 324311463
[adr_dep] => 75
[typeDir] => PM
[raisonSociale] => ROTHSCHILD & COMPAGNIE GESTION
[dirSiren] => 000000000
[dirRS] => RCG GESTION
[] =>
[] =>
[] =>
[] =>
[nat] =>
[] =>
[fonction_code] => 0209
[fonction_lib] => Associ<EFBFBD>-g<EFBFBD>rant
[actif] => 1
[dateFin] => 0000-00-00
[flux] => 2013-01-01
[dateInsert] => 2013-01-01 07:20:09
[dateUpdate] => 0000-00-00 00:00:00
*/
//if ($ppPm=='PP') print_r($tabId);
if ($sirenAct<1000) $sirenAct=0;
$tabInsertRef2=array( 'siren'=>$sirenAct,
'sirenValide'=>$sirenActV,
'source'=>$lien['source'],
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$rsAct,
'cj'=>$cj,
'ape'=>$naf,
'categorie'=>getCategorie($nom, $cj, $civ, $naf),
'civilite'=>$civ,
'adresse_ville'=>$ville,
'adresse_pays'=>$pays,
'idLoc1Num'=>$lien['idNational'],
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
$tabInsertTmp=array_merge($tabInsertRef2,$tabInsertComp);
print_r($tabInsertTmp);
die();
$iDb->insert('liensRef', $tabInsertTmp, false);
if ($sirenAct*1>1000) $where="siren=$sirenAct";
else $where="actif=$actif AND RS='".addslashes($nom)."' AND civilite='$civ' AND
adresse_ville='".addslashes($ville)."' AND adresse_pays='$pays' AND cj=$cj AND ape='$naf'"; /* civilite, nom, prenom, naissance_nom, naissance_date, nat, adresse_ville*/
$ret2=$iDb->select('liensRef', 'id', $where, false, MYSQL_ASSOC);
$idAct=$ret2[0]['id'];
if (!isset($ret2[0]['id'])) die($where);
$nomAct=$nom;
//die("Ajout de l'actionaire n<>$idAct".EOL);
// Participation
/* [id] => 14049526
[siren] => 324311463
[adr_dep] => 75
[typeDir] => PM
[raisonSociale] => ROTHSCHILD & COMPAGNIE GESTION
[dirSiren] => 000000000
[dirRS] => RCG GESTION
[civilite] =>
[nom] =>
[prenom] =>
[naissance_nom] =>
[naissance_date] => 0000-00-00
[naissance_lieu] =>
[nat] =>
[adresse] =>
[fonction_code] => 0209
[fonction_lib] => Associ<EFBFBD>-g<EFBFBD>rant
[actif] => 1
[dateFin] => 0000-00-00
[flux] => 2013-01-01
[dateInsert] => 2013-01-01 07:20:09
[dateUpdate] => 0000-00-00 00:00:00
*/
//$sirenPar=$lien['Siren1'];
//if (!@$iInsee->valideSiren($sirenPar)) continue;
//if (@trim($tabId['Nom'])=='') continue;
$civ=$naf='';
if ($sirenPar>1000 && @$iInsee->valideSiren($sirenPar)) {
$sirenParV=1;
$tabId=@$iInsee->getIdentiteEntreprise($sirenPar, 0, 0, false, false);
$naf=$tabId['NafEnt'];
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array('capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=$tabId['Nom'];
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
$ville=$tabId['Ville'];
} else {
$sirenPar=$sirenParV=0;
$ppPm='P'.$lien['PpPm'];
$nom=trim($lien['RaisonSociale']);
if ($ppPm=='PP') die("$sirenAct / $sirenPar : Attention, personne physique participation !!!".EOL);
$cj=0;
$tabInsertComp=array();
$ville='';
$actif=1;
}
$pays=getCodePays3($tabId['PaysIso2']);
if ($sirenPar<1000) $sirenPar=0;
$tabInsertRef1=array( 'siren'=>$sirenPar,
'sirenValide'=>$sirenParV,
'source'=>$lien['source'],
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$nom,
'cj'=>$cj,
'ape'=>$naf,
'categorie'=>getCategorie($nom, $cj, $civ, $naf),
'civilite'=>$civ,
'adresse_ville'=>$ville,
'adresse_pays'=>$pays,
'idLoc1Num'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
$iDb->insert('liensRef', array_merge($tabInsertRef1,$tabInsertComp), false);
if ($sirenPar*1>1000) $where="siren=$sirenPar";
else $where="actif=$actif AND RS='".addslashes($nom)."' AND civilite='$civ' AND
adresse_ville='".addslashes($ville)."' AND adresse_pays='$pays' AND cj=$cj AND ape='$naf'"; /* civilite, nom, prenom, naissance_nom, naissance_date, nat, adresse_ville*/
$ret2=$iDb->select('liensRef', 'id', $where, false, MYSQL_ASSOC);
$idPar=$ret2[0]['id'];
if (!isset($ret2[0]['id'])) die($where);
$nomPar=$nom;
// Lien
$iDb->insert('liens2', array( 'idAct'=>$idAct,
'idPar'=>$idPar,
'actif'=>$lien['actif'],
'source'=>$lien['source'],
'PDetention'=>$lien['Pmin'],
'MajMin'=>$lien['MajMin'],
'dateEffetLien'=>$lien['dateLien'],
'docRef'=>'',
'dateDocRef'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']), false);
echo "$i/$nb - $idAct, $sirenAct ($nomAct) d<>tient ".$lien['Pmin']." % de $idPar, $sirenPar ($nomPar) au ".$lien['dateLien'].' [id='.$lien['id'].']'.EOL;
//die();
}
}
die();
}
if ($doIdentite) {
$iBodacc=new MBodacc();
echo date ('Y/m/d - H:i:s')." - Recherche des mise <20> jour Identitaires...".EOL;
if(count($tabSiren)>0) {
$strSiren=' AND siren IN(';
$strSiren.=implode(',',$tabSiren);
$strSiren.=') ';
} else $strSiren=" AND (RS='' OR (adresse_libvoie='' AND adresse_cp='')) ";
$ret=$iDb->select( 'liensRef',
'id, actif, siren, PpPm, RS, sigle, civilite, nom, prenom, nom_usage, naissance_date, naissance_lieu, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville, adresse_pays, tel, fax, web, email, cj, ape, categorie, capital, deviseCapital',
// id, actif, siren, PpPm, RS, civilite, nom, prenom, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville, adresse_pays, tel, fax, web, email, dateSaisie, cj, ape, categorie, capital, deviseCapital, dateCapital, nbActions, dateNbActions, bilMillesime, bilDev, bilFL, bilHN, bilFPr, bilEE, dateInsert, idInsert, dateUpdate, idUpdate',
"siren>1000 $strSiren AND sirenValide=1 /*AND PpPm='PM' /*LIMIT 0,200000*/ ORDER BY siren ASC", false, MYSQL_ASSOC);//OR idLoc1Num LIKE 'FR%'
// "siren>0 AND sirenValide=1 AND idSuppr=0 AND adresse_libvoie='' AND PpPm='PM' /*LIMIT 0,200000*/ ORDER BY id DESC", false, MYSQL_ASSOC);//OR idLoc1Num LIKE 'FR%'
// "siren>0 AND sirenValide=1 AND idSuppr=0 AND siren>303459218 AND PpPm='PP' LIMIT 0,200000", false, MYSQL_ASSOC);//OR idLoc1Num LIKE 'FR%'
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des $nb zones...".EOL;
foreach ($ret as $i=>$lien) {
$id=$lien['id'];
$siren=$lien['siren'];
$rs=$lien['RS'];
if (!@$iInsee->valideSiren($siren)) {
$iDb->update('liensRef', array('sirenValide'=>0), "id=$id", false);
if ($modeDebug) echo "$i/$nb : $siren siren invalide pour $rs (id=$id)".EOL;
continue;
}
// Fiche LienRef invalide !!!
/*if ($rs=='') {
if ($modeDebug) echo "$i/$nb : $siren - Pas de Raison Sociale pour l'id $id".EOL;
continue;
}*/
$tabId=@$iInsee->getIdentiteEntreprise($siren, 0, 0, false, false);
if ($tabId['Nom']=='') {
if ($modeDebug) echo "$i/$nb : $siren - Fiche d'identit<69> inexistante pour l'id $id".EOL;
continue; // Le siren est valide mais n'existe pas !
}
//print_r($tabId);die();
$naf=$tabId['NafEnt'];
$sigle=$tabId['Sigle'];
$civ=$rs=$nom=$prenom=$nomUsage=$lieuNaiss='';
$dateNaiss='0000-00-00';
if ($tabId['FJ']<2000) {
$ppPm='PP';
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=trim($tabId['dir1Nom']);
$prenom=trim($tabId['dir1Prenom']);
$nomUsage=trim($tabId['dir1NomUsage']);
$dateNaiss=$tabId['dir1DateNaiss'];
$lieuNaiss=$tabId['dir1LieuNaiss'];
$rs=trim($civ.' '.strtoupper($nom).' '.ucwords(strtolower($prenom)));
if (strlen($rs)<4) $rs=$tabId['Nom'];
} else {
$ppPm='PM';
if (isset($tabId['nomLong']) && strlen($tabId['nomLong'])>strlen($tabId['Nom']))
$rs=$tabId['nomLong'];
else
$rs=$tabId['Nom'];
}
//echo "$id - $siren : NOM='$rs'".EOL;
//if ($tabId['FJ']==5499) die(print_r($tabId,1));
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
if ($actif==0 && @$tabId['EntActiveRCS']==1) $actif=1;
$tabUpdate=array( 'id'=>$id,
'siren'=>$siren,
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$rs,
'sigle'=>$sigle,
'civilite'=>$civ,
'nom'=>$nom,
'prenom'=>$prenom,
'nom_usage'=>$nomUsage,
'naissance_date'=>$dateNaiss,
'naissance_lieu'=>$lieuNaiss,
'adresse_num'=>$tabId['AdresseNum'],
'adresse_btq'=>$tabId['AdresseBtq'],
'adresse_codvoie'=>$tabId['AdresseVoie'],
'adresse_libvoie'=>$tabId['AdresseRue'],
'adresse_comp'=>$tabId['Adresse2'],
'adresse_cp'=>$tabId['CP'],
'adresse_ville'=>$tabId['Ville'],
'adresse_pays'=>getCodePays3($tabId['PaysIso2']),
'tel'=>$tabId['Tel'],
'fax'=>$tabId['Fax'],
'web'=>$tabId['Web'],
'email'=>$tabId['Mail'],
'cj'=>$tabId['FJ'],
'ape'=>$tabId['NafEnt'],
'categorie'=>getCategorie($rs, $cj, $civ, $naf),
'capital'=>$tabId['Capital']*1,
'deviseCapital'=>$tabId['CapitalDev'],
/*'dateCapital'=>$tabId['Mail'],
'nbActions'=>$tabId['Mail'],
'dateNbActions'=>$tabId['Mail'],*/
);
//$iDb->update('liensRef', $tabUpdate, "id=$id", false);
$tabUpdateDiff = array_diff_assoc($tabUpdate, $lien);
/*echo "$i/$nb : $siren - Table liensRef :".EOL;
print_r($lien);
//echo "$i/$nb : $siren - Fiche d'identit<69> :".EOL;
//print_r($tabId);
echo "$i/$nb : $siren - MISE A JOUR :".EOL;
print_r($tabUpdateDiff);
*/
//die();
if (count($tabUpdateDiff)>0) {
if (isset($tabUpdateDiff['capital']) && round($tabUpdate['capital'])==$lien['capital'] && count($tabUpdateDiff)==1) {
echo "$i/$nb : $siren - Pas de mise <20> jour car capitaux identiques : ".$lien['capital'].EOL;
continue;
}
$iDb->update('liensRef', $tabUpdateDiff, "id=$id", false);
echo mysql_error().EOL;
//print_r($lien);
/*echo round($tabUpdate['capital']).EOL;
echo @$tabUpdateDiff['capital'].EOL;
*/
if (isset($tabUpdateDiff['capital'])) echo "$i/$nb : $siren - Changement de capital de '".$lien['capital'].' '.$lien['deviseCapital']."' a '".$tabUpdate['capital'].' '.$tabUpdate['deviseCapital']."'".EOL;
if (isset($tabUpdateDiff['actif'])) echo "$i/$nb : $siren - Changement de statut de '".$lien['actif']."' a '".$tabUpdate['actif']."'".EOL;
if (isset($tabUpdateDiff['RS'])) echo "$i/$nb : $siren - Changement de NOM de '".$lien['RS']."' a '".$tabUpdate['RS']."'".EOL;
//if (isset($tabUpdateDiff['adresse_cp']))echo "$i/$nb : $siren - Changement de CP de '".$lien['adresse_cp']."' a '".$tabUpdate['adresse_cp']."'".EOL;
if (isset($tabUpdateDiff['cj'])) echo "$i/$nb : $siren - Changement de FJur de '".$lien['cj']."' a '".$tabUpdate['cj']."'".EOL;
if (isset($tabUpdateDiff['ape'])) echo "$i/$nb : $siren - Changement d'activit<69> de '".$lien['ape']."' a '".$tabUpdate['ape']."'".EOL;
} elseif ($modeDebug)
echo "$i/$nb : $siren - Pas de mise <20> jour".EOL;
// die("$id\t$siren".EOL);
/*
'sirenValide'=>$sirenParV,
'source'=>$lien['source'],
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$nom,
'cj'=>$cj,
'ape'=>$naf,
'categorie'
'civilite'=>$civ,
'adresse_ville'=>$ville,
'adresse_pays'=>$pays,
'idLoc1Num'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
$iDb->insert('liensRef', array_merge($tabInsertRef1,$tabInsertComp), false);
[dateSaisie] => 0000-00-00 00:00:00
[cj] => 5710
[ape] => 4669B
[categorie] => NA
[capital] => 64086
[deviseCapital] => EUR
[dateCapital] =>
[nbActions] => 0
[dateNbActions] =>
[bilMillesime] =>
[bilDev] =>
[bilFL] =>
[bilHN] =>
[bilFPr] =>
[bilEE] =>
[dateInsert] => 0000-00-00 00:00:00
[idInsert] =>
[dateUpdate] => 2010-01-15 00:20:30
[idUpdate] => 0
)
$civ=$lien['civilite'];
echo "$i/$nb - $id, $rs : $civ $nom [$civ2] $prenom".EOL;
/* $tabUpdate=array( 'nom' => $nom,
'prenom'=> $prenom,
'civilite'=> $civ2);
$iDb->update('liensRef', $tabUpdate, "id=$id", false);
if (mysql_errno()) echo mysql_error().EOL;*/
//print_r($lien);
/*die();/*
$naf=$tabId['NafEnt'];
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array( 'capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=$tabId['Nom'];
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
$ville=$tabId['Ville'];
/* [Adresse] => 0016 RUE DU DOCTEUR MESLIER
[Adresse2] =>
[AdresseNum] => 0016
[AdresseBtq] =>
[AdresseVoie] => RUE
[AdresseRue] => DU DOCTEUR MESLIER
[Tel] => 06.75.22.60.55
[Fax] => 01 40 21 80 82
[Web] =>
[Mail] =>
$pays=getCodePays3($tabId['PaysIso2']);
*/
//die();
}
die();
}
if ($doMajTVA) {
$tabZones=array('tvaValide'=>'<b><span class="validStyle">(.*)</span></b>',
'tvaInvalide'=>'<b><span class="invalidStyle">(.*)</span></b>',
'tvaNumero'=>'<td class="labelStyle">Num(?:.*)ro de TVA</td>(?:.*)<td>(.*)</td>',
'etat'=>'<td class="labelStyle">(?:.*)tat Membre</td>(?:.*)<td>(.*)</td>',
'raisonSociale'=>'<td class="labelStyle">Nom</td>(?:.*)<td>(.*)</td>',
'adresse'=>'<td class="labelStyle">Adresse</td>(?:.*)<td>(.*)</td>',
);
echo date ('Y/m/d - H:i:s')." - Recherche des mise <20> jour d'infos TVA...".EOL;
$ret=$iDb->select('liensRef',
/*BE
CZ
DK
FI*/
'id, PpPm, RS, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville, adresse_pays, tel, fax, web, email, idLoc1Type, idLoc1Num',
" idLoc1Num NOT LIKE '%*%' AND ( idLoc1Num LIKE 'AT%'
OR idLoc1Num LIKE 'SK%'
OR idLoc1Num LIKE 'BE%'
OR idLoc1Num LIKE 'BG%'
OR idLoc1Num LIKE 'CY%'
OR idLoc1Num LIKE 'CZ%'
OR idLoc1Num LIKE 'DE%'
OR idLoc1Num LIKE 'DK%'
OR idLoc1Num LIKE 'EE%'
OR idLoc1Num LIKE 'EL%'
OR idLoc1Num LIKE 'ES%'
OR idLoc1Num LIKE 'FI%'
OR idLoc1Num LIKE 'GB%'
OR idLoc1Num LIKE 'HU%'
OR idLoc1Num LIKE 'IE%'
OR idLoc1Num LIKE 'IT%'
OR idLoc1Num LIKE 'LT%'
OR idLoc1Num LIKE 'LU%'
OR idLoc1Num LIKE 'LV%'
OR idLoc1Num LIKE 'MT%'
OR idLoc1Num LIKE 'NL%'
OR idLoc1Num LIKE 'PL%'
OR idLoc1Num LIKE 'PT%'
OR idLoc1Num LIKE 'RO%'
OR idLoc1Num LIKE 'SE%'
OR idLoc1Num LIKE 'SI%') ORDER BY idLoc1Num ASC", false, MYSQL_ASSOC);//OR idLoc1Num LIKE 'FR%'
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des $nb identifiants TVA...".EOL;
foreach ($ret as $i=>$lien) {
$id=$lien['id'];
$pays=substr($lien['idLoc1Num'],0,2);
$vat=substr($lien['idLoc1Num'],2);
$url="http://ec.europa.eu/taxation_customs/vies/viesquer.do?locale=fr&memberStateCode=$pays&number=$vat&action=check";
$page=getUrl($url, '', '', '', false);
$referer=$url;
$body=$page['body'];
$tabHtml=html2array($body, $tabZones);
echo $lien['RS'].' ('.$lien['adresse_pays'].") : TVA = $pays $vat ";
if (@substr($tabHtml['tvaValide'],0,3)=='Oui') {
$valide=1;
echo '(valide)';
switch ($lien['adresse_pays']) {
case 'FRA': $type=2; break;
case 'DEU': $type=5; break;
case 'AUT': $type=9; break;
case 'BEL': $type=10; break;
case 'ESP': $type=13; break;
case 'FIN': $type=14; break;
case 'GRC': $type=16; break;
case 'IRL': $type=17; break;
case 'ITA': $type=19; break;
case 'LUX': $type=22; break;
case 'NLD': $type=24; break;
case 'PRT': $type=26; break;
case 'GBR': $type=27; break;
case 'SWE': $type=29; break;
case 'POL': $type=31; break;
case 'DNK': $type=32; break;
case 'BGR': $type=49; break;
case 'EST': $type=50; break;
case 'HUN': $type=51; break;
case 'LVA': $type=52; break;
case 'LTU': $type=53; break;
case 'CZE': $type=54; break;
case 'SVK': $type=55; break;
case 'SVN': $type=56; break;
default: $type='NULL'; break;
}
$rsVies=strtoupper($tabHtml['raisonSociale']);
$adrVies=$tabHtml['adresse'];
$tabUpdate=array( 'RS' => $rsVies,
'adresse_comp' => $adrVies,
'idLoc1Type' => $type,
);
//, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville
echo " - $rsVies [$adrVies]";
//die();
$iDb->update('liensRef', $tabUpdate, "id=$id", false);
} else {
$valide=0;
echo '(INVALIDE)';
}
echo EOL;
randsleep(3,7);//,21);
}
die();
}
if ($doPurge) {
die();
while (1) {
echo date('Y/m/d - H:i:s') ." - Confirmez la demande de purge des nouvelles tables LIENS ? (O/N) ... ";
$saisie = trim(strtoupper(fgets(STDIN)));
if ($saisie=='O' || $saisie=='o') break;
}
$iDb->query('TRUNCATE TABLE liens2;');
$iDb->query('TRUNCATE TABLE liensRef;');
$tabInsert=array(
array('id'=>1, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PM', 'RS'=>'ETAT FRANCAIS', 'categorie'=>'Etat/Autorit<69> publique', 'dateInsert'=>'20070401120000'),
array('id'=>2, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'FAMILLE', 'categorie'=>'Personne(s) ou famille(s)', 'dateInsert'=>'20070401120000'),
array('id'=>3, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'PERSONNES PHYSIQUES', 'categorie'=>'Personne(s) ou famille(s)', 'dateInsert'=>'20070401120000'),
array('id'=>4, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'CADRES DU GROUPE', 'categorie'=>'Employ<6F>s/Directeurs', 'dateInsert'=>'20070401120000'),
array('id'=>5, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'PUBLIC', 'categorie'=>'Public', 'dateInsert'=>'20070401120000'),
array('id'=>6, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'ADHERENTS', 'categorie'=>'NA', 'dateInsert'=>'20070401120000'),
array('id'=>7, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'MANAGEMENT', 'categorie'=>'Employ<6F>s/Directeurs', 'dateInsert'=>'20070401120000'),
array('id'=>8, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'SALARIES', 'categorie'=>'Employ<6F>s/Directeurs', 'dateInsert'=>'20070401120000'),
);
foreach($tabInsert as $tabInsertRef)
$iDb->insert('liensRef', $tabInsertRef, false);
$iDb->query('ALTER TABLE liensRef AUTO_INCREMENT=1000;');
}
if ($doAct) {
$limNb=100000;
for($limI=0;$limI<700000;$limI+=$limNb) {
echo date ('Y/m/d - H:i:s')." - Recherche des liens actionnaires [limite=$limI]...".EOL;
$ret=$iDb->select('liens', 'id, Siren1, actif, source, ActionPart, Pmin, MajMin, PpPm, idNational, Siren2, RaisonSociale, Pays, dateLien, dateInsert, dateUpdate', "ActionPart=1 /*AND Siren2=552100554 /*AND idNational<>''*/ AND id>=1206687 ORDER BY id ASC LIMIT $limI,$limNb", false, MYSQL_ASSOC);
$nb=count($ret);
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des $nb liens actionnaires...".EOL;
foreach ($ret as $i=>$lien) {
//print_r($lien);
// Participation
$sirenPar=$lien['Siren1'];
if (!@$iInsee->valideSiren($sirenPar)) continue;
else $sirenParV=1;
// Actionnaire
$sirenAct=$lien['Siren2'];
$civ=$naf='';
if ($sirenAct>1000 && @$iInsee->valideSiren($sirenAct)) {
$sirenActV=1;
$tabId=@$iInsee->getIdentiteEntreprise($sirenAct, 0, 0, false, false);
$naf=$tabId['NafEnt'];
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array( 'capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=$tabId['Nom'];
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
$ville=$tabId['Ville'];
$pays=getCodePays3($tabId['PaysIso2']);
} else {
$nom=trim($lien['RaisonSociale']);
$nomTemp=" $nom ";
$ppPm='P'.$lien['PpPm'];
if (preg_match('/^( MONSIEUR | MADAME | MADEMOISELLE | M | M\. | MME | MLLE | MLE )/i', $nomTemp, $matches) && strlen($nom)>11 && count(explode(' ',$nom))>2) {
if ($ppPm<>'PP' && $ppPm<>'PM') $ppPm='PP';
switch(trim($matches[1])) {
case 'MONSIEUR':
case 'M':
case 'M.': $civ='M'; break;
case 'MADAME':
case 'MME': $civ='MME'; break;
case 'MADEMOISELLE':
case 'MLLE':
case 'MLE': $civ='MLE'; break;
default: $civ=''; break;
}
$nom=trim(preg_replace('/^( MONSIEUR | MADAME | MADEMOISELLE | M | M\. | MME | MLLE | MLE )/i', '', $nomTemp));
}
$sirenAct=$sirenActV=0;
$cj=0;
$tabInsertComp=array();
$actif=1;
$pays=$lien['Pays'];
if ($pays=='') $pays='FRA';
$ville='';
}
//if ($ppPm=='PP') print_r($tabId);
if ($sirenAct<1000) $sirenAct=0;
$tabInsertRef2=array( 'siren'=>$sirenAct,
'sirenValide'=>$sirenActV,
'source'=>$lien['source'],
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$nom,
'cj'=>$cj,
'ape'=>$naf,
'categorie'=>getCategorie($nom, $cj, $civ, $naf),
'civilite'=>$civ,
'adresse_ville'=>$ville,
'adresse_pays'=>$pays,
'idLoc1Num'=>$lien['idNational'],
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
$iDb->insert('liensRef', array_merge($tabInsertRef2,$tabInsertComp), false);
if ($sirenAct*1>1000) $where="siren=$sirenAct";
else $where="actif=$actif AND RS='".addslashes($nom)."' AND civilite='$civ' AND
adresse_ville='".addslashes($ville)."' AND adresse_pays='$pays' AND cj=$cj AND ape='$naf'"; /* civilite, nom, prenom, naissance_nom, naissance_date, nat, adresse_ville*/
$ret2=$iDb->select('liensRef', 'id', $where, false, MYSQL_ASSOC);
$idAct=$ret2[0]['id'];
if (!isset($ret2[0]['id'])) die($where);
$nomAct=$nom;
// Participation
//$sirenPar=$lien['Siren1'];
//if (!@$iInsee->valideSiren($sirenPar)) continue;
//if (@trim($tabId['Nom'])=='') continue;
$civ=$naf='';
if ($sirenPar>1000 && @$iInsee->valideSiren($sirenPar)) {
$sirenParV=1;
$tabId=@$iInsee->getIdentiteEntreprise($sirenPar, 0, 0, false, false);
$naf=$tabId['NafEnt'];
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array('capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=$tabId['Nom'];
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
$ville=$tabId['Ville'];
} else {
$sirenPar=$sirenParV=0;
$ppPm='P'.$lien['PpPm'];
$nom=trim($lien['RaisonSociale']);
if ($ppPm=='PP') die("$sirenAct / $sirenPar : Attention, personne physique participation !!!".EOL);
$cj=0;
$tabInsertComp=array();
$ville='';
$actif=1;
}
$pays=getCodePays3($tabId['PaysIso2']);
if ($sirenPar<1000) $sirenPar=0;
$tabInsertRef1=array('siren'=>$sirenPar,
'sirenValide'=>$sirenParV,
'source'=>$lien['source'],
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$nom,
'cj'=>$cj,
'ape'=>$naf,
'categorie'=>getCategorie($nom, $cj, $civ, $naf),
'civilite'=>$civ,
'adresse_ville'=>$ville,
'adresse_pays'=>$pays,
'idLoc1Num'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
$iDb->insert('liensRef', array_merge($tabInsertRef1,$tabInsertComp), false);
if ($sirenPar*1>1000) $where="siren=$sirenPar";
else $where="actif=$actif AND RS='".addslashes($nom)."' AND civilite='$civ' AND
adresse_ville='".addslashes($ville)."' AND adresse_pays='$pays' AND cj=$cj AND ape='$naf'"; /* civilite, nom, prenom, naissance_nom, naissance_date, nat, adresse_ville*/
$ret2=$iDb->select('liensRef', 'id', $where, false, MYSQL_ASSOC);
$idPar=$ret2[0]['id'];
if (!isset($ret2[0]['id'])) die($where);
$nomPar=$nom;
// Lien
$iDb->insert('liens2', array( 'idAct'=>$idAct,
'idPar'=>$idPar,
'actif'=>$lien['actif'],
'source'=>$lien['source'],
'PDetention'=>$lien['Pmin'],
'MajMin'=>$lien['MajMin'],
'dateEffetLien'=>$lien['dateLien'],
'docRef'=>'',
'dateDocRef'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']), false);
echo "$i/$nb - $idAct, $sirenAct ($nomAct) d<>tient ".$lien['Pmin']." % de $idPar, $sirenPar ($nomPar) au ".$lien['dateLien'].' [id='.$lien['id'].']'.EOL;
//die();
}
}
}
if ($doPar) {
echo date ('Y/m/d - H:i:s')." - D<>but de la mise <20> jour des liens participations...".EOL;
$ret=$iDb->select('liens', 'id, Siren1, actif, source, ActionPart, Pmin, MajMin, PpPm, idNational, Siren2, RaisonSociale, Pays, dateLien, dateInsert, dateUpdate', "ActionPart=2 AND Siren1>=318610615 /*AND idNational<>''*/ ORDER BY Siren1 ASC", false, MYSQL_ASSOC);
$nb=count($ret);
foreach ($ret as $i=>$lien) {
//print_r($lien);
// Actionnaire
$sirenAct=$lien['Siren1'];
if (!@$iInsee->valideSiren($sirenAct)) continue;
else $sirenActV=1;
$tabId=@$iInsee->getIdentiteEntreprise($sirenAct, 0, 0, false, false);
$naf=$tabId['NafEnt'];
if (@trim($tabId['Nom'])=='') continue;
//($siren, $nic=0, $id=0, $forceVerif=false, $accesDist=true) {
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
else $civ='';
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array('capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
//if ($ppPm=='PP') print_r($tabId);
if ($sirenAct<1000) $sirenAct=0;
$tabInsertRef1=array('siren'=>$sirenAct,
'sirenValide'=>$sirenActV,
'source'=>$lien['source'],
'actif'=>$tabId['Actif'],
'PpPm'=>$ppPm,
'RS'=>$tabId['Nom'],
'cj'=>$tabId['FJ'],
'ape'=>$naf,
'categorie'=>getCategorie($tabId['Nom'], $tabId['FJ'], $civ, $naf),
'civilite'=>$civ,
'adresse_ville'=>$tabId['Ville'],
'adresse_pays'=>getCodePays3($tabId['PaysIso2']),
'idLoc1Num'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
$iDb->insert('liensRef', array_merge($tabInsertRef1,$tabInsertComp), false);
$ret2=$iDb->select('liensRef', 'id', "siren=$sirenAct", false, MYSQL_ASSOC);
$idAct=$ret2[0]['id'];
$nomAct=$tabId['Nom'];
// Participation
$sirenPar=$lien['Siren2'];
$civ=$naf='';
if ($sirenPar>1000 && @$iInsee->valideSiren($sirenPar)) {
$sirenParV=1;
$tabId=@$iInsee->getIdentiteEntreprise($sirenPar, 0, 0, false, false);
$naf=$tabId['NafEnt'];
if ($tabId['FJ']<2000) {
$ppPm='PP';
$tabInsertComp=array( 'nom'=>$tabId['dir1Nom'],
'prenom'=>$tabId['dir1Prenom'],
'nom_usage'=>$tabId['dir1NomUsage']);
} else {
$ppPm='PM';
$tabInsertComp=array('capital'=>$tabId['Capital'],
'deviseCapital'=>$tabId['CapitalDev']);
if (isset($tabId['CapitalNbActions']) && $tabId['CapitalNbActions']) $tabInsertComp['nbActions']=$tabId['CapitalNbActions'];
}
if ($tabId['Civilite']==1) $civ='M';
elseif ($tabId['Civilite']==2) $civ='MME';
$nom=$tabId['Nom'];
$cj=$tabId['FJ'];
$actif=$tabId['Actif'];
$ville=$tabId['Ville'];
$pays=getCodePays3($tabId['PaysIso2']);
} else {
$sirenPar=$sirenParV=0;
$ppPm='P'.$lien['PpPm'];
$nom=trim($lien['RaisonSociale']);
if ($ppPm=='PP') {
echo "$sirenAct / $sirenPar : Attention, personne physique participation !!!".EOL;
continue;
}
$cj=0;
$tabInsertComp=array();
$actif=1;
$pays=$lien['Pays'];
if ($pays=='') $pays='FRA';
$ville='';
}
//if ($ppPm=='PP') print_r($tabId);
if ($sirenPar<1000) $sirenPar='0';
$tabInsertRef2=array( 'siren'=>$sirenPar,
'sirenValide'=>$sirenActV,
'source'=>$lien['source'],
'actif'=>$actif,
'PpPm'=>$ppPm,
'RS'=>$nom,
'cj'=>$cj,
'ape'=>$naf,
'categorie'=>getCategorie($nom, $cj, $civ, $naf),
'civilite'=>$civ,
'adresse_ville'=>$ville,
'adresse_pays'=>$pays,
'idLoc1Num'=>$lien['idNational'],
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']);
if (!$iDb->insert('liensRef', array_merge($tabInsertRef2,$tabInsertComp), false)) {
if (mysql_errno()<>1062) die(mysql_errno().': '.mysql_error().EOL.print_r(array_merge($tabInsertRef2,$tabInsertComp), true));
}
if ($sirenPar*1>1000) $where="siren=$sirenPar";
//else $where="RS='".addslashes($nom)."' AND adresse_ville='".addslashes($ville)."' AND adresse_pays='$pays'"; /* civilite, nom, prenom, naissance_nom, naissance_date, nat, adresse_ville*/
else $where="actif=$actif AND RS='".addslashes($nom)."' AND civilite='$civ' AND
adresse_ville='".addslashes($ville)."' AND adresse_pays='$pays' AND cj=$cj AND ape='$naf'"; /* civilite, nom, prenom, naissance_nom, naissance_date, nat, adresse_ville*/
$ret2=$iDb->select('liensRef', 'id', $where, false, MYSQL_ASSOC);
$idPar=$ret2[0]['id'];
if (!isset($ret2[0]['id'])) die($where);
$nomPar=$nom;
// Lien
$iDb->insert('liens2', array( 'idAct'=>$idAct,
'idPar'=>$idPar,
'actif'=>$lien['actif'],
'source'=>$lien['source'],
'PDetention'=>$lien['Pmin'],
'MajMin'=>$lien['MajMin'],
'dateEffetLien'=>$lien['dateLien'],
'docRef'=>'',
'dateDocRef'=>'',
'dateInsert'=>$lien['dateInsert'],
'dateUpdate'=>$lien['dateUpdate']), false);
//echo "$i/$nb - $idAct ($sirenAct) d<>tient ".$lien['Pmin']." % de $idPar ($sirenPar) au ".$lien['dateLien'].EOL;
echo "$i/$nb - $idAct, $sirenAct ($nomAct) d<>tient ".$lien['Pmin']." % de $idPar, $sirenPar ($nomPar) au ".$lien['dateLien'].EOL;
}
}
function getCodePays3($codePays2) {
global $iDb;
$ret=$iDb->select('tabPays', 'codPays3', "codPays='$codePays2'", false, MYSQL_ASSOC);
return $ret[0]['codPays3'];
}
function getCodePays3fromLib($libPays) {
global $iDb;
$ret=$iDb->select('tabPays', 'codPays3', "libPays LIKE '%$libPays%' OR libPaysEN LIKE '%$libPays%'", false, MYSQL_ASSOC);
//print_r($ret);
if (count($ret)==1) return $ret[0]['codPays3'];
else return '';
}
function getCodeDep($libDep) {
global $iDb;
$ret=$iDb->select('insee.departements', 'numdep, libdep', "libdep LIKE '%$libDep%'", false, MYSQL_ASSOC);
if (count($ret)==1) return $ret[0]['numdep'];
else return '';
}
function getCategorie($nom, $cj=0, $civ='', $naf='') {
$naf2=substr($naf,0,2)*1;
// 'Actionnaires priv<69>s', 'Actionnaires anonymes'
/*
'Private Equity',
'Fond de pension',
'Fondation/Institut de recherche',
/*
'ETAT FRANCAIS', 'categorie'=>'', 'dateInsert'=>'20070401120000'),
'CADRES DU GROUPE', 'categorie'=>'Employ<6F>s/Directeurs', 'dateInsert'=>'20070401120000'),
'PUBLIC', 'categorie'=>'Public', 'dateInsert'=>'20070401120000'),
'ADHERENTS', 'categorie'=>'NA', 'dateInsert'=>'20070401120000'),
'MANAGEMENT', 'categorie'=>'Employ<6F>s/Directeurs', 'dateInsert'=>'20070401120000'),
'SALARIES'*/
if ($civ=='M' || $civ=='MME' || $civ=='MLLE') return 'Personne(s) ou famille(s)';
elseif (preg_match('/FAMILLE |MONSIEUR |MADAME |MADEMOISELLE|PERSONNES PHYSIQUES/i', $nom)) return 'Personne(s) ou famille(s)';
elseif (preg_match('/^(M | MME)/i', $nom)) return 'Personne(s) ou famille(s)';
elseif (preg_match('/CADRES|MANAGEMENT|SALARIES|DIRECTION|DIRECTEUR|EMPLOYEES|PERSONNEL/i', $nom)) return 'Employ<6F>s/Directeurs';
elseif ($cj>=4000 && $cj<5000) return 'Etat/Autorit<69> publique'; // 4 - Personne morale de droit public soumise au droit commercial
elseif ($cj>=7000 && $cj<8000) return 'Etat/Autorit<69> publique'; // 7 - Personne morale et organisme soumis au droit administratif
elseif ($cj==3210) return 'Etat/Autorit<69> publique'; // Etat, collectivit<69> ou <20>tablissement public <20>tranger
elseif ($cj>=1000 && $cj<2000) return 'Personne(s) ou famille(s)';
elseif ($cj==2110 || $cj==2210 ||
$cj==2310 || $cj==2385) return 'Personne(s) ou famille(s)'; // Indivision, SEP
elseif ($cj==6100 || $cj==6595 ||
$cj==6596 || $naf=='6411Z' || $naf=='6419Z') return 'Banque';
elseif ($cj==6411 || $naf2==65) return 'Assurances';
elseif ($naf2==64 || $naf2==66 || preg_match('/FINANCIERE/i', $nom)) return 'Compagnie financi<63>re';
elseif ($naf2>=5 && $naf2<=39) return 'Industrie';
elseif (preg_match('/PUBLIC/i', $nom)) return 'Public';
elseif (preg_match('/ETAT|GOVERNMENT OF FRANCE/i', $nom)) return 'Etat/Autorit<69> publique';
return 'NA';
}
?>