1091 lines
43 KiB
PHP
1091 lines
43 KiB
PHP
#!/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;
|
|
$modeTest=0;
|
|
|
|
$doAct=false;
|
|
$doPar=false;
|
|
$doPurge=false;
|
|
$doNomPrenom=false;
|
|
$doMajTVA=false;
|
|
$doDoublons=false;
|
|
$doIdentite=false;
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
|
Mise à jour des liens actionnaires et participations.
|
|
|
|
Options :
|
|
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
|
-t Traiter les demandes en test
|
|
-p Traiter les participations
|
|
-d Purge les tables
|
|
-n Mise à jour des zones Nom/Prénoms par rapport à la raison sociale
|
|
-t Mise à jour TVA
|
|
-i Mise à jour de l'identité
|
|
-m Traitement des multiples doublons dans liensRef
|
|
-z MAJ tables
|
|
|
|
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
|
|
|
";*/
|
|
$majTables=false;
|
|
|
|
$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 't': $modeTest=1; break;
|
|
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 'm': $doDoublons=true; break;
|
|
case 'z': $majTables=true; break;
|
|
case '-':
|
|
case '?': die($strInfoScript); break;
|
|
default: die('Option '. $argv[$i] . " inconnue !\n");
|
|
}
|
|
} else $tabSiren[]=$argv[$i];
|
|
}
|
|
|
|
$iDbGiant=new WDB('giant', '91.121.157.194', 'metier', 'pLMuqbKu48SA5Jw6');
|
|
$iDb=new WDB('jo');
|
|
$iInsee=new MInsee();
|
|
$iBodacc=new MBodacc();
|
|
|
|
/*
|
|
$siren=411706294;
|
|
$tabId=@$iInsee->getIdentiteEntreprise($siren);
|
|
print_r($tabId);
|
|
die();
|
|
|
|
$tabProcol=@$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
|
|
print_r($tabProcol);
|
|
die();*/
|
|
|
|
/** Recherche des Monitoring actifs **/
|
|
$ret=$iDbGiant->select( 'monitors',
|
|
'ProviderOrderId, ConsumerId, CustomerId, CompanyId, CompanyName, CategoryName, EventType, LanguageCode, ActualStartDate, ActualStartDate*1 AS ActualStartDateInt, ActualEndDate, CreatedAt, ModifiedAt',
|
|
"TestIndication=$modeTest AND ActualEndDate>=NOW()", false, MYSQL_ASSOC);
|
|
$nb=count($ret);
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nb montoring Giant...".EOL;
|
|
foreach ($ret as $i=>$monitoring) {
|
|
$tabEven=$tabDetails=array();
|
|
|
|
$siret=$monitoring['CompanyId'];
|
|
$siren=substr($siret,0,9);
|
|
$orderId=$monitoring['ProviderOrderId'];
|
|
$now=date('YmdHis');
|
|
switch($monitoring['LanguageCode']) {
|
|
case 'fr':
|
|
case 'en': $lang=$monitoring['LanguageCode']; break;
|
|
default: $lang='en'; break;
|
|
}
|
|
$ret2=$iDbGiant->select('events',
|
|
'MAX(TimeStamp*1) AS lastUpdate',
|
|
"ProviderOrderId=$orderId", false, MYSQL_ASSOC);
|
|
$lastUpdate=$ret2[0]['lastUpdate'];
|
|
if ($lastUpdate==0) $lastUpdate=$monitoring['ActualStartDateInt'];
|
|
|
|
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $i/$nb : $siren $orderId ($lang) - Last Update=$lastUpdate.".EOL;
|
|
|
|
|
|
/** Recherche si changement de score **/
|
|
$ret2=$iDb->select( 'scores_surveillance',
|
|
'siren, indiScore, encours, indiScorePre, encoursPre, DATE(dateUpdate) AS dateUpdateYmd',
|
|
"siren=$siren AND dateUpdate>='$lastUpdate'", false, MYSQL_ASSOC);
|
|
if (count($ret2)>0) {
|
|
$tabChanges=$ret2[0];
|
|
$tabEven['FINANCIAL.CREDIT_RECOMMENDATION_CHANGE']=array( 'Date' => $tabChanges['dateUpdateYmd'],
|
|
'Source'=> 'Scores & Decisions');
|
|
$tabDetails['FINANCIAL.CREDIT_RECOMMENDATION_CHANGE']=array('RatingName'=>array( 'new'=>'IndiScore',
|
|
'old'=>'IndiScore'),
|
|
'RatingValue'=>array( 'new'=>$tabChanges['indiScore'],
|
|
'old'=>$tabChanges['indiScorePre']),
|
|
'CreditAmount'=>array( 'new'=>$tabChanges['encours'],
|
|
'old'=>$tabChanges['encoursPre'])
|
|
);
|
|
//if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $i/$nb : $siren $orderId ($lang) - Last Update=$lastUpdate.".EOL;
|
|
}
|
|
|
|
// If only Score monitoring, next
|
|
if ($monitoring['CategoryName']<>'CreditRecommendation') {
|
|
|
|
/** RNCS Updates **/
|
|
$ret2=$iDb->select( 'rncs_modifs',
|
|
'siren, champs, valeur, flux, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND `table`='rncs_entrep' AND dateInsert>='$lastUpdate'", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$even='';
|
|
$ret3=$iDb->select( 'rncs_entrep',
|
|
'siren, actif, nom, cj, capitalMontant',
|
|
"siren=$siren", false, MYSQL_ASSOC);
|
|
$tabNew=$ret3[0];
|
|
switch($tabChanges['champs']) {
|
|
case 'capitalMontant': $even='FINANCIAL.CAPITAL_CHANGE';
|
|
$tabDetails[$even]=array('AuthorisedCapital'=>array('new'=>$tabNew['capitalMontant'],
|
|
'old'=>$tabChanges['valeur']));
|
|
break;
|
|
case 'cj': $even='GENERAL.LEGALFORM_CHANGE';
|
|
$tabDetails[$even]=array('CountryLegalForm'=>array( 'new'=>$tabNew['cj'],
|
|
'old'=>$tabChanges['valeur']));
|
|
break;
|
|
case 'nom': $even='GENERAL.COMPANY_NAME_CHANGE';
|
|
$tabDetails[$even]=array('CompanyName'=>array( 'new'=>$tabNew['nom'],
|
|
'old'=>$tabChanges['valeur']));
|
|
break;
|
|
/*case 'actif': $even='GENERAL.COMPANY_NAME_CHANGE';
|
|
$tabDetails[$even]=array('CompanyName'=>array( 'new'=>$tabNew['nom'],
|
|
'old'=>$tabChanges['valeur']));
|
|
break;*/
|
|
}
|
|
if ($even<>'') {
|
|
$tabEven[$even]=array( 'Date' => $tabChanges['dateUpdateYmd'],
|
|
'Source'=> 'Greffe du Tribunal de Commerce');
|
|
}
|
|
}
|
|
|
|
/** Balance Sheet Updates **/
|
|
$ret2=$iDb->select( 'bilans',
|
|
'dateExercice, typeBilan, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND confidentiel=0 AND dateInsert>='$lastUpdate'", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$tabEven['FINANCIAL.ANNUAL_ACCOUNT_FILED']=array( 'Date' => $tabChanges['dateUpdateYmd'],
|
|
'Source'=> 'Greffe du Tribunal de Commerce',
|
|
'Parameter1'=>substr($tabChanges['dateExercice'],0,4));
|
|
}
|
|
|
|
/** Balance Sheet Annoucement **/
|
|
$ret2=$iDb->select( 'bodacc_detail',
|
|
'typeEven, dateEffet, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND Rubrique='comptes' AND (dateInsert>='$lastUpdate' OR dateUpdate>='$lastUpdate')", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$lstEven=explode(';', $tabChanges['typeEven']);
|
|
$tabFreeText=array();
|
|
foreach ($lstEven as $codeEven)
|
|
$tabFreeText[]=$iBodacc->getEvenement($codeEven,$lang);
|
|
$tabEven['FINANCIAL.ANNUAL_ACCOUNT_AVAILABLE']=array( 'Date' => $tabChanges['dateUpdateYmd'],
|
|
'Source' => 'Greffe du Tribunal de Commerce',
|
|
'FreeText' => implode(', ',$tabFreeText),
|
|
'Parameter1'=> substr($tabChanges['dateEffet'],0,4));
|
|
}
|
|
|
|
/** Balance BANKRUPTCY_OR_LIQUIDATION **/
|
|
$ret2=$iDb->select( 'bodacc_detail',
|
|
'typeEven, dateJugement, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND Rubrique='procol' AND (dateInsert>='$lastUpdate' OR dateUpdate>='$lastUpdate')", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$lstEven=explode(';', $tabChanges['typeEven']);
|
|
$tabFreeText=array();
|
|
foreach ($lstEven as $codeEven)
|
|
$tabFreeText[]=$iBodacc->getEvenement($codeEven,$lang);
|
|
$tabEven['EXCEPTION.BANKRUPTCY_OR_LIQUIDATION']=array( 'Date' => $tabChanges['dateUpdateYmd'],
|
|
'Source' => 'Greffe du Tribunal de Commerce',
|
|
'FreeText' => implode(', ',$tabFreeText),
|
|
'Parameter1'=> $tabChanges['dateJugement']);
|
|
}
|
|
|
|
/** GENERAL.ADDRESS_CHANGE **/
|
|
$ret2=$iDb->select( 'bodacc_detail',
|
|
'typeEven, dateJugement, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND (typeEven LIKE '%2300%' OR typeEven LIKE '%2301%' OR typeEven LIKE '%2901%' OR typeEven LIKE '%2902%' OR typeEven LIKE '%2903%' OR typeEven LIKE '%2904%' OR typeEven LIKE '%4250%') AND (dateInsert>='$lastUpdate' OR dateUpdate>='$lastUpdate')", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$lstEven=explode(';', $tabChanges['typeEven']);
|
|
$tabFreeText=array();
|
|
foreach ($lstEven as $codeEven)
|
|
$tabFreeText[]=$iBodacc->getEvenement($codeEven,$lang);
|
|
$tabEven['GENERAL.ADDRESS_CHANGE']=array( 'Date' => $tabChanges['dateUpdateYmd'],
|
|
'Source' => 'Bulletin Officiel des Annonces Civiles et Commerciales',
|
|
'FreeText' => implode(', ',$tabFreeText));
|
|
}
|
|
|
|
/** GENERAL.POSITION_CHANGE **/
|
|
$ret2=$iDb->select( 'bodacc_detail',
|
|
'typeEven, dateJugement, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND (typeEven LIKE '%2315%' /*OR typeEven LIKE '%2315%'*/) AND (dateInsert>='$lastUpdate' OR dateUpdate>='$lastUpdate')", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$lstEven=explode(';', $tabChanges['typeEven']);
|
|
$tabFreeText=array();
|
|
foreach ($lstEven as $codeEven)
|
|
$tabFreeText[]=$iBodacc->getEvenement($codeEven,$lang);
|
|
$tabEven['GENERAL.POSITION_CHANGE']=array( 'Date' => $ann['DateParution'],
|
|
'Source'=> 'Bulletin Officiel des Annonces Civiles et Commerciales',
|
|
'FreeText' => implode(', ',$tabFreeText));
|
|
}
|
|
|
|
/** GENERAL.MERGER OR GENERAL.SPLIT_UP **/
|
|
$ret2=$iDb->select( 'bodacc_detail',
|
|
'typeEven, dateJugement, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND (typeEven LIKE '%2620%' OR typeEven LIKE '%2700%' OR typeEven LIKE '%2701%' OR typeEven LIKE '%2702%' OR typeEven LIKE '%2703%'
|
|
OR typeEven LIKE '%2710%' OR typeEven LIKE '%2720%' OR typeEven LIKE '%2721%' OR typeEven LIKE '%2725%' OR typeEven LIKE '%2726%'
|
|
OR typeEven LIKE '%2730%' OR typeEven LIKE '%2740%' OR typeEven LIKE '%2741%') AND (dateInsert>='$lastUpdate' OR dateUpdate>='$lastUpdate')", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$even='GENERAL.MERGER';
|
|
$lstEven=explode(';', $tabChanges['typeEven']);
|
|
$tabFreeText=array();
|
|
foreach ($lstEven as $codeEven) {
|
|
if ($codeEven==2740 || $codeEven==2741) $even='GENERAL.SPLIT_UP';
|
|
$tabFreeText[]=$iBodacc->getEvenement($codeEven,$lang);
|
|
}
|
|
$tabEven[$even]=array( 'Date' => $ann['DateParution'],
|
|
'Source' => 'Bulletin Officiel des Annonces Civiles et Commerciales',
|
|
'FreeText' => implode(', ',$tabFreeText));
|
|
}
|
|
|
|
if (count($tabEven)==0) {
|
|
/** GENERAL.NEWS **/
|
|
$ret2=$iDb->select( 'bodacc_detail',
|
|
'typeEven, dateJugement, DATE(dateInsert) AS dateUpdateYmd',
|
|
"siren=$siren AND (dateInsert>='$lastUpdate' OR dateUpdate>='$lastUpdate')", false, MYSQL_ASSOC);
|
|
foreach ($ret2 as $tabChanges) {
|
|
$lstEven=explode(';', $tabChanges['typeEven']);
|
|
$tabFreeText=array();
|
|
foreach ($lstEven as $codeEven)
|
|
$tabFreeText[]=$iBodacc->getEvenement($codeEven,$lang);
|
|
$tabEven['GENERAL.NEWS']=array( 'Date' => $ann['DateParution'],
|
|
'Source'=> 'Bulletin Officiel des Annonces Civiles et Commerciales',
|
|
'FreeText' => implode(', ',$tabFreeText));
|
|
}
|
|
}
|
|
}
|
|
|
|
if (count($tabEven)>0) {
|
|
foreach ($tabEven as $even=>$tabInfos) {
|
|
$tabInsert=array_merge($tabInfos, array(
|
|
'ProviderOrderId' => $orderId,
|
|
'CompanyId' => $siret,
|
|
//'Date' => substr($now,0,8),
|
|
'TimeStamp' => $now,
|
|
'Status' => 'Pending',
|
|
'EventCode' => $even,
|
|
'Language' => $lang,
|
|
// ', Description, FreeText,
|
|
// 'ProviderEventCode', 'Parameter1', 'Parameter2', 'Parameter3', 'DescriptionElement'
|
|
));
|
|
$eventId=$iDbGiant->insert('events', $tabInsert, false);
|
|
if (isset($tabDetails[$even])) {
|
|
foreach ($tabDetails[$even] as $variable=>$details) {
|
|
$tabInsert2=array( 'ProviderEventId' => $eventId,
|
|
'changing_variable' => $variable,
|
|
'old_value' => $details['old'],
|
|
'new_value' => $details['new'],
|
|
);
|
|
$iDbGiant->insert('events_details', $tabInsert2, false);
|
|
//echo 'Insert details:'.mysql_error().EOL;
|
|
}
|
|
}
|
|
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $i/$nb : $siren $orderId ($lang) - $even on ".$tabInsert['Date'].EOL;
|
|
}
|
|
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s')." - $i/$nb : $siren $orderId ($lang) - Nothing to do...".EOL;
|
|
|
|
/*
|
|
'GENERAL.ACQUISITION',
|
|
'EXCEPTION.DEBT_RESTRUCTURING',
|
|
'EXCEPTION.PROTEST_OR_NONPAYMENT'
|
|
|
|
ProviderOrderId, ConsumerId, CustomerId, CompanyId, CompanyName, CategoryName, EventType, LanguageCode, ActualStartDate, ActualEndDate, CreatedAt, ModifiedAt
|
|
EventType enum('EventOnly', 'EventWithData') utf8_unicode_ci Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
|
*/
|
|
}
|
|
|
|
echo mysql_error();
|
|
die();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des liens...".EOL;
|
|
if ($doNomPrenom) {
|
|
$iBodacc=new MBodacc();
|
|
echo date ('Y/m/d - H:i:s')." - Recherche des mise à jour des Zones Noms/Pré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 à 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 à 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 replacé par $idRef, ";
|
|
}
|
|
echo EOL;
|
|
}
|
|
die();
|
|
}
|
|
|
|
|
|
if ($doIdentite) {
|
|
$iBodacc=new MBodacc();
|
|
echo date ('Y/m/d - H:i:s')." - Recherche des mise à jour Identitaires...".EOL;
|
|
if(count($tabSiren)>0) {
|
|
$strSiren=' AND siren IN(';
|
|
$strSiren.=implode(',',$tabSiren);
|
|
$strSiren.=') ';
|
|
} else $strSiren=" AND adresse_libvoie='' AND adresse_cp='' ";
|
|
$ret=$iDb->select( 'liensRef',
|
|
'id, actif, siren, PpPm, RS, civilite, 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>409979226 $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 à 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'=>1), "id=$id", false);
|
|
continue;
|
|
}
|
|
// Fiche LienRef invalide !!!
|
|
if ($rs=='') continue;
|
|
|
|
$tabId=@$iInsee->getIdentiteEntreprise($siren, 0, 0, false, false);
|
|
//print_r($tabId);die();
|
|
$naf=$tabId['NafEnt'];
|
|
$civ=$rs='';
|
|
if ($tabId['FJ']<2000) {
|
|
$ppPm='PP';
|
|
if ($tabId['Civilite']==1) $civ='M';
|
|
elseif ($tabId['Civilite']==2) $civ='MME';
|
|
} else {
|
|
$ppPm='PM';
|
|
if (isset($tabId['nomLong']) && strlen($tabId['nomLong'])>strlen($tabId['Nom']))
|
|
$rs=$tabId['nomLong'];
|
|
else
|
|
$rs=$tabId['Nom'];
|
|
}
|
|
//echo "$id - NOM='$rs'".EOL;
|
|
//if ($tabId['FJ']==5499) die(print_r($tabId,1));
|
|
$nom=$tabId['Nom'];
|
|
$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,
|
|
'civilite'=>$civ,
|
|
/*'nom'=>$nom,
|
|
'prenom'=>$prenom,
|
|
'nom_usage'=>*/
|
|
'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($nom, $cj, $civ, $naf),
|
|
'capital'=>$tabId['Capital'],
|
|
'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);
|
|
//print_r($tabUpdateDiff);
|
|
if (count($tabUpdateDiff)>0) {
|
|
if (isset($tabUpdateDiff['capital']) && round($tabUpdate['capital'])==$lien['capital']) continue;
|
|
$iDb->update('liensRef', $tabUpdateDiff, "id=$id", false);
|
|
//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é de '".$lien['ape']."' a '".$tabUpdate['ape']."'".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 à 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 à 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) {
|
|
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é 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é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és/Directeurs', 'dateInsert'=>'20070401120000'),
|
|
array('id'=>8, 'siren'=>0, 'source'=>9999, 'actif'=>1, 'PpPm'=>'PP', 'RS'=>'SALARIES', 'categorie'=>'Employé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 à 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'];
|
|
/* [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']);
|
|
} 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 à 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 getCategorie($nom, $cj=0, $civ='', $naf='') {
|
|
$naf2=substr($naf,0,2)*1;
|
|
// 'Actionnaires privés', 'Actionnaires anonymes'
|
|
/*
|
|
'Private Equity',
|
|
'Fond de pension',
|
|
'Fondation/Institut de recherche',
|
|
/*
|
|
'ETAT FRANCAIS', 'categorie'=>'', 'dateInsert'=>'20070401120000'),
|
|
'CADRES DU GROUPE', 'categorie'=>'Employés/Directeurs', 'dateInsert'=>'20070401120000'),
|
|
'PUBLIC', 'categorie'=>'Public', 'dateInsert'=>'20070401120000'),
|
|
'ADHERENTS', 'categorie'=>'NA', 'dateInsert'=>'20070401120000'),
|
|
'MANAGEMENT', 'categorie'=>'Employé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és/Directeurs';
|
|
elseif ($cj>=4000 && $cj<5000) return 'Etat/Autorité publique'; // 4 - Personne morale de droit public soumise au droit commercial
|
|
elseif ($cj>=7000 && $cj<8000) return 'Etat/Autorité publique'; // 7 - Personne morale et organisme soumis au droit administratif
|
|
elseif ($cj==3210) return 'Etat/Autorité publique'; // Etat, collectivité ou établissement public é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è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é publique';
|
|
|
|
return 'NA';
|
|
}
|
|
|
|
if ($majTables) {
|
|
//$tableEN=getTableEvenements();
|
|
//$tableEN=getTableFonctions();
|
|
$tableEN=getTableNaf();
|
|
|
|
foreach ($tableEN as $code=>$lib) {
|
|
/*if ($iDb->update('tabEvenements', array('libEvenEn'=>$lib), "codEven=$code",false))
|
|
echo "MAJ of the code $code = $lib".EOL;*/
|
|
/*if ($iDb->update('bodacc_fonctions', array('libelleEn'=>$lib), "codeFct=$code",false))
|
|
echo "MAJ of the code $code = $lib".EOL;*/
|
|
if (strlen($code)==5 && $iDb->update('tabNaf5', array('libNaf5en'=>$lib), "codNaf5='$code'",false))
|
|
echo "MAJ of the code $code = $lib".EOL;
|
|
}
|
|
die();
|
|
}
|
|
|
|
?>
|