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

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();
}
?>