534 lines
21 KiB
PHP
534 lines
21 KiB
PHP
|
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||
|
<?php
|
||
|
$table='liens';
|
||
|
|
||
|
include_once(FWK_PATH.'common/chiffres.php');
|
||
|
include_once(FWK_PATH.'common/dates.php');
|
||
|
include_once(FWK_PATH.'common/ftp.php');
|
||
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||
|
include_once(FWK_PATH.'mail/sendMail.php');
|
||
|
|
||
|
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||
|
Traitement de mise à jour des liens (Nom des actionnaires, Cohérences des pourcentages, etc...)
|
||
|
|
||
|
Options :
|
||
|
-v Mode debug (Verbosité au maximum)
|
||
|
-f Ne pas générer les annonces de fusions
|
||
|
-m:SSAAMM Forcer le mois de mise à jour à SSAAMM (sinon mois précedent)
|
||
|
-l:links.txt Chemin et nom du fichier des liens
|
||
|
-e:entities.txt Chemin et nom du fichier des entites
|
||
|
|
||
|
";
|
||
|
|
||
|
$iDb=new WDB('jo');
|
||
|
$iInsee=new MInsee();
|
||
|
|
||
|
$nbSiretValides=$nbSiretInvalides=$nbSiretVides=0;
|
||
|
$nbInsert1=$nbUpdate1=$nbInsert2=$nbUpdate2=0;
|
||
|
|
||
|
$modeDebug=$links=$entities=$fichierZip=false;
|
||
|
$dateMAJ=date('Ymt',mktime(0,0,0,date('m')-1,date('d'),date('Y')));
|
||
|
$annoncesFusions=true;
|
||
|
$strMailInfo='';
|
||
|
|
||
|
$argv=$_SERVER['argv'];
|
||
|
|
||
|
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||
|
if (substr($argv[$i],0,1)=='-') {
|
||
|
switch (substr($argv[$i],1,1)) {
|
||
|
case 'v': $modeDebug=true; break;
|
||
|
case 'l': $links = substr($argv[$i],3,strlen($argv[$i])-3); break;
|
||
|
case 'e': $entities= substr($argv[$i],3,strlen($argv[$i])-3); break;
|
||
|
case 'm': $dateMAJ = date('Ymt',mktime(0,0,0,substr($argv[$i],5,2),1,substr($argv[$i],3,4))); break;
|
||
|
case 'f': $annoncesFusions=false; break;
|
||
|
case '-':
|
||
|
case '?': die($strInfoScript); break;
|
||
|
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** Traitement de mise à jour des actionnaires **/
|
||
|
$tabPays3=$tabPaysI=array();
|
||
|
$res=$iDb->select('tabPays', 'codPays, codPays3, codePaysInsee', '1', false,MYSQL_ASSOC);
|
||
|
foreach ($res as $tmp) {
|
||
|
$tabPays3[$tmp['codPays']]=$tmp['codPays3'];
|
||
|
$tabPaysI['_'.$tmp['codePaysInsee']]=$tmp['codPays3'];
|
||
|
}
|
||
|
|
||
|
$tabType=array( 1=>'Actionnaires',
|
||
|
2=>'PArticipations');
|
||
|
|
||
|
for ($type=1; $type<3; $type++) {
|
||
|
$libType=$tabType[$type];
|
||
|
/** Traitement de mise à jour des actionnaires **/
|
||
|
$res=$iDb->select($table, 'id, Siren1, Pmin, MajMin, PpPm, Siren2, RaisonSociale, Pays, dateLien, dateInsert, dateUpdate', "ActionPart=$type AND actif=1 AND Siren1>10000 AND Siren2>10000 ORDER BY Siren1 ASC, Pmin DESC",false,MYSQL_ASSOC);
|
||
|
echo mysql_error().EOL;
|
||
|
// die();
|
||
|
// Vérifier la requête pour le calcul des % si participations
|
||
|
$nbMajNom=$nbMajPays=$nbMajPpPm=$sirenPre=$pctTot=0;
|
||
|
$nbAct=count($res);
|
||
|
echo date ('Y/m/d - H:i:s') . " - Il y a $nbAct lignes $libType à mettre à jour...".EOL;
|
||
|
foreach ($res as $i=>$tabLien) {
|
||
|
$majNom=$majPays=$majPpPm=false;
|
||
|
$tabUpdate=array();
|
||
|
$id = $tabLien['id'];
|
||
|
$siren = $tabLien['Siren1'];
|
||
|
$pct = $tabLien['Pmin'];
|
||
|
// Cumul des pourcentage de participation
|
||
|
if ($siren<>$sirenPre) $pctTot=0;
|
||
|
else $pctTot+=$pct;
|
||
|
$typeEnt= $tabLien['PpPm'];
|
||
|
$sirenAP= $tabLien['Siren2'];
|
||
|
$nom = $tabLien['RaisonSociale'];
|
||
|
$nom1 = trim(strtoupper($nom));
|
||
|
$pays = trim($tabLien['Pays']);
|
||
|
if ($modeDebug) echo "$i/$nbAct:$id\t$siren\t$pct\t$pctTot\t$sirenAP\t$pays\t$nom\t";
|
||
|
$tabId=@$iInsee->getIdentiteLight($sirenAP);
|
||
|
$nom2 = trim(strtr($tabId['Nom'],array('*'=>' ', '/'=>' ')));
|
||
|
$actif = $tabId['Actif']*1;
|
||
|
$fj = $tabId['FJ']*1;
|
||
|
$naf = $tabId['NafEnt'];
|
||
|
$dep = $tabId['Dept'];
|
||
|
$pays2 = '';
|
||
|
if ($pays=='' && $dep*1==99) $pays2=$tabPaysI['_'.$tabIdP['codeCommune']];
|
||
|
elseif ($dep*1<96) $pays2='FRA';
|
||
|
//else die($dep.EOL.print_r($tabId,1)); [Dept] => 988 [codeCommune] => 825
|
||
|
|
||
|
/*if($pct>50) {
|
||
|
//MajMin= $tabLien['Pmin'];
|
||
|
}*/
|
||
|
|
||
|
if ($modeDebug) {
|
||
|
if ($actif==0 && $fj>=2000) echo " === INACTIF ($fj) ==> ";
|
||
|
if ($nom1<>$nom2) echo " ===== ecart =====> ";
|
||
|
echo $nom2;
|
||
|
echo EOL;
|
||
|
}
|
||
|
//if ($type==1 && $pctTot>100) die('INCOHERENCE DE % TOTAL'.EOL);
|
||
|
if (($nom<>$nom1 || $nom1<>$nom2) && $nom2<>'') { $tabUpdate['RaisonSociale']=$nom2; $majNom=true; }
|
||
|
if ($pays<>$pays2 && $pays2<>'') { $tabUpdate['Pays']=$pays2; $majPays=true; }
|
||
|
if ($fj<2000 && $typeEnt<>'P') { $tabUpdate['PpPm']='P'; $majPpPm=true; }
|
||
|
elseif ($fj>=2000 && $typeEnt<>'M') { $tabUpdate['PpPm']='M'; $majPpPm=true; }
|
||
|
if ($iDb->update($table, $tabUpdate,"id=$id")) {
|
||
|
if ($majNom) $nbMajNom++;
|
||
|
if ($majPays) $nbMajPays++;
|
||
|
if ($majPpPm) $nbMajPpPm++;
|
||
|
}
|
||
|
if ($i%10000==0) echo date ('Y/m/d - H:i:s') . " - $i/$nbAct lignes $libType traitées : $nbMajNom maj de Raisons Sociales/Noms, $nbMajPays pays et $nbMajPpPm Pers.phys/morales !".EOL;
|
||
|
$sirenPre=$siren;
|
||
|
}
|
||
|
echo date ('Y/m/d - H:i:s') . " - $i/$nbAct lignes $libType traitées : $nbMajNom maj de Raisons Sociales/Noms, $nbMajPays pays et $nbMajPpPm Pers.phys/morales !".EOL;
|
||
|
}
|
||
|
die();
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
$res=$iDb->select('liensTemp', 'ENTREPRISE , C10 , CSH03 , CSH02 , CSH16, CSH04, CSH17, CSH14 , CSH05 , CSH06, CSH07, dateMajSource', "1",false,MYSQL_ASSOC);
|
||
|
// ('INDIBAT TRAVAIL TEMPORAIRE', '423853829-00137', 'GROUP EMPLOYEURS INSERTION QUALIF BTP', 'FR400149449', '400149449', 'FR', '25', 'Industrie', '51,00', 'n.d.', 'SC', '2010-04-01');
|
||
|
echo mysql_error().EOL;
|
||
|
//die();
|
||
|
$nbAct=count($res);
|
||
|
|
||
|
foreach ($res as $i=>$tabLien) {
|
||
|
//print_r($tabLien);
|
||
|
|
||
|
$tabInsert2=$tabUpdate2=array();
|
||
|
$majMin='-';
|
||
|
$ppPmP=$ppPmA='M';
|
||
|
$idNatA=$rsA=$paysA=$rsP=$paysP='';
|
||
|
|
||
|
$sirenP = substr($tabLien['C10'],0,9)*1;
|
||
|
$tabIdP = @$iInsee->getIdentiteLight($sirenP);
|
||
|
$fjP = $tabIdP['FJ']*1;
|
||
|
$dep = $tabIdP['Dept'];
|
||
|
if ($dep*1==99) $paysP=$tabPaysI['_'.$tabIdP['codeCommune']];
|
||
|
else $paysP='FRA';
|
||
|
$rsP = trim(strtoupper($tabLien['ENTREPRISE']));
|
||
|
$pct = strtr($tabLien['CSH05'],array('<'=>'','>'=>'',','=>'.'))*1.0;
|
||
|
if ($pct==0)
|
||
|
$pct = strtr($tabLien['CSH06'],array('<'=>'','>'=>'',','=>'.'))*1.0;
|
||
|
if ($pct>50) $majMin='+';
|
||
|
$sirenA = $tabLien['CSH16']*1;
|
||
|
$rsA = trim(strtoupper($tabLien['CSH03']));
|
||
|
$paysA = @trim($tabPays3[$tabLien['CSH04']]);
|
||
|
if (trim($tabLien['CSH14'])=='Personne(s) ou famille(s)') $ppPmA='P';
|
||
|
if ($sirenA>10000) {
|
||
|
$tabIdA=@$iInsee->getIdentiteLight($sirenA);
|
||
|
$fjA = $tabIdA['FJ']*1;
|
||
|
if ($fjA<2000 && $ppPmA<>'P') $ppPmA='P';
|
||
|
if ($paysA=='') {
|
||
|
$dep = $tabIdA['Dept'];
|
||
|
if ($dep*1<96) $paysA='FRA';
|
||
|
}
|
||
|
} else
|
||
|
$idNatA = $tabLien['CSH02']; //idNational
|
||
|
|
||
|
$dateLien=$tabLien['dateMajSource'];
|
||
|
$date=date('YmdHis');
|
||
|
|
||
|
$tabCom=array( 'actif'=>1,
|
||
|
'source'=>1700,
|
||
|
'Pmin'=>$pct,
|
||
|
'Pmax'=>$pct,
|
||
|
'MajMin'=>$majMin,
|
||
|
'dateLien'=>$dateLien);
|
||
|
$tabAct=array( 'Siren1'=>$sirenP,
|
||
|
'ActionPart'=>1,
|
||
|
'PpPm'=>$ppPmA,
|
||
|
'Siren2'=>$sirenA,
|
||
|
'idNational'=>$idNatA,
|
||
|
'RaisonSociale'=>$rsA,
|
||
|
'Pays'=>$paysA);
|
||
|
|
||
|
$tabInsert1=array_merge($tabCom, $tabAct, array('dateInsert'=>$date));
|
||
|
$iDb->insert($table, $tabInsert1,false);
|
||
|
|
||
|
//$tabUpdate1=array_merge($tabCom, $tabAct, array('dateUpdate'=>$date));
|
||
|
|
||
|
if ($sirenA>10000) {
|
||
|
$tabPart=array( 'Siren1'=>$sirenA,
|
||
|
'ActionPart'=>2,
|
||
|
'PpPm'=>$ppPmP,
|
||
|
'Siren2'=>$sirenP,
|
||
|
'RaisonSociale'=>$rsP,
|
||
|
'Pays'=>$paysP);
|
||
|
$tabInsert2=array_merge($tabCom, $tabPart, array('dateInsert'=>$date));
|
||
|
$iDb->insert($table, $tabInsert2,false);
|
||
|
//$tabUpdate2=array_merge($tabCom, $tabPart, array('dateUpdate'=>$date));
|
||
|
}
|
||
|
|
||
|
if ($i%1000==0) echo date ('Y/m/d - H:i:s') . " - $i/$nbAct lignes traitées : $sirenA - $sirenP...".EOL;
|
||
|
/*
|
||
|
echo "Insertion de la vision 'Actionnaire':".EOL;
|
||
|
print_r($tabInsert1);
|
||
|
echo EOL;
|
||
|
echo "Insertion de la vision 'Participation':".EOL;
|
||
|
print_r($tabInsert2);
|
||
|
|
||
|
/*
|
||
|
INSERT INTO `liensTemp` (`ENTREPRISE`, `C10`, `CSH03`, `CSH02`, `CSH16`, `CSH04`, `CSH17`, `CSH14`, `CSH05`, `CSH06`, `CSH07`, `dateMajSource`) VALUES
|
||
|
('INDIBAT TRAVAIL TEMPORAIRE', '423853829-00137', 'GROUP EMPLOYEURS INSERTION QUALIF BTP', 'FR400149449', '400149449', 'FR', '25', 'Industrie', '51,00', 'n.d.', 'SC', '2010-04-01');
|
||
|
|
||
|
|
||
|
(219358, 0000000000, 423853829, 1, 01700, 1, 51, 51, '+', 'M', 0000000000, 400149449, 'GROUP EMPLOYEURS INSERTION QUALIF BTP', 'FRA', '2008-11-01', '0000-00-00 00:00:00', '2010-01-15 00:20:30');
|
||
|
|
||
|
$tab
|
||
|
INSERT INTO `liens` (`id`, `id1`, `Siren1`, `actif`, `source`, `ActionPart`, `Pmin`, `Pmax`, `MajMin`, `PpPm`, `id2`, `Siren2`, `RaisonSociale`, `Pays`, `dateLien`, `dateInsert`, `dateUpdate`) VALUES
|
||
|
(219359, 0000000000, 400149449, 1, 01700, 2, 51, 51, '+', 'M', 0000000000, 423853829, 'INDIBAT TRAVAIL TEMPORAIRE', 'FRA', '2008-11-01', '0000-00-00 00:00:00', '2010-01-15 00:20:30');
|
||
|
*/
|
||
|
|
||
|
//die();
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretVides siren vides et $nbSiretInvalides siren invalides !".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - $nbLignes lignes traitées dont $nbSiretVides siren vides et $nbSiretInvalides siren invalides !".EOL;
|
||
|
|
||
|
// On remet l'état actif/inactif à 0 ou 1 (en cas de plantage précédent)
|
||
|
$ret=$iDb->query("UPDATE $table SET actif=actif%10 WHERE source=1800");
|
||
|
echo date ('Y/m/d - H:i:s') . ' - Les Liens INFOLEGS sont OK pour la mise à jour ('.mysql_error().').'.EOL;
|
||
|
$dateInsert=date('YmdHis');
|
||
|
|
||
|
$fp=fopen($links, 'r');
|
||
|
if (!$fp) {
|
||
|
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier $links à traiter !".EOL;
|
||
|
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||
|
die();
|
||
|
}
|
||
|
die();
|
||
|
|
||
|
$nbLignes=0; // Nombre de ligne du fichier
|
||
|
while (!feof($fp))
|
||
|
{
|
||
|
$nbLignes++;
|
||
|
$a = trim(fgets($fp, 1024));
|
||
|
}
|
||
|
$nbLinks=$nbLignes;
|
||
|
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier $links ($nbLinks lignes à traiter) !".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Début du traitement du fichier $links ($nbLinks lignes) !".EOL;
|
||
|
$nbLignes=0;
|
||
|
rewind($fp);
|
||
|
|
||
|
while (!feof($fp))
|
||
|
{
|
||
|
$nbLignes++;
|
||
|
$a = trim(fgets($fp, 1024));
|
||
|
|
||
|
$tab=explode("\t", $a);
|
||
|
if (count($tab)<3) break; // Fin du fichier
|
||
|
|
||
|
$idAct=$tab[0]*1;
|
||
|
$idPar=$tab[1]*1;
|
||
|
$pctDet=strtoupper(trim($tab[2]));
|
||
|
//$tabEntites
|
||
|
$siren=$tabEntites[$idAct]['siren']*1;
|
||
|
$nom=$tabEntites[$idPar]['rs'];
|
||
|
$pays=$tabEntites[$idPar]['pays'];
|
||
|
$siren2=$tabEntites[$idPar]['siren']*1;
|
||
|
$nom2=$tabEntites[$idAct]['rs'];
|
||
|
$pays2=$tabEntites[$idAct]['pays'];
|
||
|
$ppPm='M';
|
||
|
|
||
|
switch($pctDet) {
|
||
|
case 'MAJ': $majMin='+'; $pctDet=0; break;
|
||
|
case 'MIN': $majMin='-'; $pctDet=0; break;
|
||
|
case 'CTRL':
|
||
|
case 'CONTROLE': $majMin='C'; $pctDet=0; break;
|
||
|
case 'SOLDE': $majMin='S'; $pctDet=0; break;
|
||
|
case 'FUSION': $majMin='F'; $pctDet=0; break;
|
||
|
default: if ($pctDet*1>=50) $majMin='+';
|
||
|
elseif ($pctDet*1<50) $majMin='-';
|
||
|
break;
|
||
|
}
|
||
|
//else die("Ligne $nbLignes : \"$a\" - Pourcentage inconnu '$pctDet' !".EOL);
|
||
|
|
||
|
$tabUpdate=array( 'Pmin'=> $pctDet,
|
||
|
'Pmax'=> $pctDet,
|
||
|
'MajMin'=> $majMin,
|
||
|
'PpPm'=> $ppPm,
|
||
|
'actif'=> 11,
|
||
|
'source'=> 1800,
|
||
|
'dateLien'=> $dateMAJ,
|
||
|
);
|
||
|
//die($dateMAJ);
|
||
|
|
||
|
$tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>2),
|
||
|
array( 'Siren1'=> $siren,
|
||
|
'id1'=> $idAct,
|
||
|
'Siren2'=> $siren2,
|
||
|
'id2'=> $idPar,
|
||
|
'RaisonSociale'=> $nom,
|
||
|
'Pays'=> $pays,
|
||
|
'dateInsert'=> $dateInsert));
|
||
|
$nomTmp=addslashes($nom);
|
||
|
$res=$iDb->select($table, 'count(*) AS nb', "Siren1=$siren AND ActionPart=2 AND Siren2=$siren2 AND RaisonSociale='$nomTmp' AND Pays='$pays'",true);
|
||
|
echo mysql_error();
|
||
|
if ($res[0]['nb']>0) {
|
||
|
if (!$iDb->update($table, array_merge($tabUpdate,array('ActionPart'=>2,
|
||
|
'id1'=>$idAct,
|
||
|
'id2'=>$idPar,
|
||
|
)), "Siren1=$siren AND ActionPart=2 AND Siren2=$siren2 AND RaisonSociale='$nomTmp' AND Pays='$pays'",true)) {
|
||
|
if (mysql_errno()<>1062) {
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 1 n°'.mysql_errno().', mise à jour impossible sur :'.EOL;
|
||
|
print_r($tabUpdate);
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 1 SQL : '.mysql_error().EOL;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
if ($modeDebug) echo "MAJ de la participation $siren, $siren2 : $nom ($pays)".EOL;
|
||
|
$nbUpdate2++;
|
||
|
}
|
||
|
} else {
|
||
|
if (!$iDb->insert($table, $tabInsert1,true)) {
|
||
|
if (mysql_errno()<>1062) {
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 2 n°'.mysql_errno().', mise à jour impossible sur :'.EOL;
|
||
|
print_r($tabUpdate);
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 2 SQL : '.mysql_error().EOL;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
if ($modeDebug) echo "Ajout de la participation $siren, $siren2 : $nom ($pays)".EOL;
|
||
|
$nbInsert2++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>1),
|
||
|
array( 'Siren1'=> $siren2,
|
||
|
'id1'=> $idPar,
|
||
|
'Siren2'=> $siren,
|
||
|
'id2'=> $idAct,
|
||
|
'RaisonSociale'=> $nom2,
|
||
|
'Pays'=> $pays2,
|
||
|
'dateInsert'=> $dateInsert));
|
||
|
$nomTmp=addslashes($nom2);
|
||
|
$res=$iDb->select($table, 'count(*) AS nb', "Siren1=$siren2 AND ActionPart=1 AND Siren2=$siren AND RaisonSociale='$nomTmp' AND Pays='$pays2'",true);
|
||
|
echo mysql_error();
|
||
|
if ($res[0]['nb']>0) {
|
||
|
if(!$iDb->update($table, array_merge($tabUpdate,array('ActionPart'=>1,
|
||
|
'id2'=>$idAct,
|
||
|
'id1'=>$idPar,
|
||
|
)), "Siren1=$siren2 AND ActionPart=1 AND Siren2=$siren AND RaisonSociale='$nomTmp' AND Pays='$pays2'",true)) {
|
||
|
if (mysql_errno()<>1062) {
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 3 n°'.mysql_errno().', mise à jour impossible sur :'.EOL;
|
||
|
print_r($tabUpdate);
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 3 SQL : '.mysql_error().EOL;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
if ($modeDebug) echo "MAJ de l'actionnariat $siren2, $siren : $nom2 ($pays2)".EOL;
|
||
|
$nbUpdate1++;
|
||
|
}
|
||
|
} else {
|
||
|
if (!$iDb->insert($table, $tabInsert2,true)) {
|
||
|
if (mysql_errno()<>1062) {
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 4 n°'.mysql_errno().', mise à jour impossible sur :'.EOL;
|
||
|
print_r($tabUpdate);
|
||
|
echo date('Y/m/d - H:i:s').' - ERREUR 4 SQL : '.mysql_error().EOL;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
if ($modeDebug) echo "Ajout de l'actionnariat $siren2, $siren : $nom2 ($pays2)".EOL;
|
||
|
$nbInsert1++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ($nbLignes%10000==0) {
|
||
|
echo date ('Y/m/d - H:i:s')." - $nbLignes liens sur $nbLinks Traités !".EOL;
|
||
|
//die();
|
||
|
}
|
||
|
}
|
||
|
fclose($fp);
|
||
|
//print_r($tabEntites);
|
||
|
echo date ('Y/m/d - H:i:s')." - $nbLignes liens de $links chargés.".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - $nbLignes liens de $links chargés.".EOL;
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s')." - Actionnaires : $nbUpdate1 lines mis à jours et $nbInsert1 ajouts !".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Actionnaires : $nbUpdate1 lines mis à jours et $nbInsert1 ajouts !".EOL;
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s')." - Participations : $nbUpdate2 lines mis à jours et $nbInsert2 ajouts !".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Participations : $nbUpdate2 lines mis à jours et $nbInsert2 ajouts !".EOL;
|
||
|
|
||
|
$res=$iDb->select($table, 'count(*) AS nb', "actif<>11 AND source=1800");
|
||
|
$nbNonConf=$res[0]['nb'];
|
||
|
$ret=$iDb->update("$table", array('actif'=>0), "actif<>11 AND source=1800");
|
||
|
// echo date('Y/m/d - H:i:s').' - ERREUR 5 SQL : '.mysql_error().EOL;
|
||
|
echo date ('Y/m/d - H:i:s') . " - $nbNonConf liens ont été passés à inactif (car non transmis depuis le dernier chargement) !".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s'). " - $nbNonConf liens ont été passés à inactif (car non transmis depuis le dernier chargement) !".EOL;
|
||
|
|
||
|
$res=$iDb->select($table, 'count(*) AS nb', "actif=11 AND source=1800");
|
||
|
$nbConf=$res[0]['nb'];
|
||
|
$ret=$iDb->update("$table", array('actif'=>1), "actif=11 AND source=1800");
|
||
|
echo date ('Y/m/d - H:i:s') . " - Passage à actif des $nbNonConf les liens chargés car confirmés..".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s'). " - Passage à actif des $nbNonConf les liens chargés car confirmés.".EOL;
|
||
|
|
||
|
if ($annoncesFusions) {
|
||
|
$res=$iDb->select($table, 'id1, Siren1, id2, Siren2, RaisonSociale, Pays, dateLien, DATE(dateInsert) as dateInsert, DATE(dateUpdate) as dateUpdate', "Siren1>0 AND ActionPart=2 AND MajMin='F' AND actif=1 AND source=1800 GROUP BY Siren1, Siren2", false, MYSQL_ASSOC);
|
||
|
echo date ('Y/m/d - H:i:s').' - Chargement des '.count($res).' liens de fusion/absorption...'.EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s').' - Chargement des '.count($res).' liens de fusion/absorption...'.EOL;
|
||
|
|
||
|
$newAnn=0;
|
||
|
foreach ($res as $i=>$liens) {
|
||
|
// Siren1 absorbe Siren2, RaisonSociale, Pays le dateInsert ou dateLien
|
||
|
//970204400 1 01800 1 0 0 F M 30669 775741440 STRICHER
|
||
|
$siren1=$liens['Siren1'];
|
||
|
$siren2=$liens['Siren2'];
|
||
|
$rs=strtoupper($liens['RaisonSociale']);
|
||
|
$pays=strtoupper($liens['Pays']);
|
||
|
$dateLien=$liens['dateLien'];
|
||
|
$dateInsert=$liens['dateInsert'];
|
||
|
$dateUpdate=$liens['dateUpdate'];
|
||
|
$idAnn=180000000+($liens['id1']*1)+($liens['id2']*1);
|
||
|
if ($dateInsert<>'0000-00-00') $dateEven=$dateInsert;
|
||
|
elseif ($dateUpdate<>'0000-00-00') $dateEven=$dateUpdate;
|
||
|
elseif ($dateLien<>'0000-00-00') $dateEven=$dateLien;
|
||
|
else $dateEven=date('Y-m-d');
|
||
|
|
||
|
$tabAnn=@$iInsee->getAnnoncesLegales($siren1, 0, 'A');
|
||
|
$nbAbsorption=0;
|
||
|
foreach ($tabAnn as $Ann) {
|
||
|
// S'il y a une annonce de fusion datant de moins de 12 mois, on ne fait rien
|
||
|
if (str_replace('-','', $Ann['DateParution'])*1>date('Ymd', mktime(0,0,0,date('m')-6,date('d'),date('Y'))))
|
||
|
$nbAbsorption++;
|
||
|
}
|
||
|
if ($modeDebug)
|
||
|
echo "$siren1 absorbe $siren2 $rs ($pays) le $dateLien($dateInsert) : $nbAbsorption annonce(s) trouvée(s). ";
|
||
|
|
||
|
if ($nbAbsorption==0) {
|
||
|
$tabIdentite=$iInsee->getIdentiteLight($siren1);
|
||
|
$tabInsert=array('siren'=>$siren1,
|
||
|
'sirenValide'=>$iInsee->valideSiren($siren1),
|
||
|
'typeEven'=>2700, //2720
|
||
|
'strEven'=>'',
|
||
|
'raisonSociale'=>$tabIdentite['Nom'],
|
||
|
'adresse'=>$tabIdentite['Adresse'],
|
||
|
'codePostal'=>$tabIdentite['CP'],
|
||
|
'ville'=>$tabIdentite['Ville'],
|
||
|
'dateJugement'=>$dateEven,
|
||
|
'tribunal'=>$tabIdentite['Tribunal'],
|
||
|
'complement'=>"Absorption de la société $rs, RCS ".chunk_split($siren2,3,' '),
|
||
|
'source'=>'JS',
|
||
|
'parutionIdJal'=>1800,
|
||
|
'dateSource'=>$dateLien,
|
||
|
'idAnnonce'=>$idAnn,
|
||
|
'dateInsert'=>date('YmdHis'));
|
||
|
$ret=$iDb->select('annonces', 'count(*) AS nb', "idAnnonce=$idAnn", false, MYSQL_ASSOC);
|
||
|
if (@$ret[0]['nb']==0) {
|
||
|
$newAnn++;
|
||
|
$iDb->insert('annonces', $tabInsert);
|
||
|
$rs=$tabIdentite['Nom'];
|
||
|
$tabIdentite=$iInsee->getIdentiteLight($siren2);
|
||
|
$tabInsert=array('siren'=>$siren2,
|
||
|
'sirenValide'=>$iInsee->valideSiren($siren2),
|
||
|
'typeEven'=>2720,
|
||
|
'strEven'=>'',
|
||
|
'raisonSociale'=>$tabIdentite['Nom'],
|
||
|
'adresse'=>$tabIdentite['Adresse'],
|
||
|
'codePostal'=>$tabIdentite['CP'],
|
||
|
'ville'=>$tabIdentite['Ville'],
|
||
|
'dateJugement'=>$dateEven,
|
||
|
'tribunal'=>$tabIdentite['Tribunal'],
|
||
|
'complement'=>"Absorption par la société $rs, RCS ".chunk_split($siren1,3,' '),
|
||
|
'source'=>'JS',
|
||
|
'parutionIdJal'=>1800,
|
||
|
'dateSource'=>$dateLien,
|
||
|
'idAnnonce'=>$idAnn,
|
||
|
'dateInsert'=>date('YmdHis'));
|
||
|
$iDb->insert('annonces', $tabInsert);
|
||
|
if ($modeDebug)
|
||
|
echo "Insertions OK.".EOL;
|
||
|
} elseif ($modeDebug)
|
||
|
echo "Déjà en base.".EOL;
|
||
|
}
|
||
|
}
|
||
|
$newAnn=$newAnn*2;
|
||
|
echo date ('Y/m/d - H:i:s')." - Nous avons générés $newAnn/".count($res).' annonces en collecte sur les liens fusions !'.EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Nous avons générés $newAnn/".count($res).' annonces en collecte sur les liens fusions !'.EOL;
|
||
|
}
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des liens".EOL;
|
||
|
$strMailInfo.=date('Y/m/d - H:i:s') . " - Fin du traitement de chargement des liens".EOL;
|
||
|
|
||
|
if ($fichierZip && move(LIENS_FTP_LOCALDIR.$fichierZip, LIENS_BACKUP_DIR.$fichierZip)) {
|
||
|
unlink($entities);
|
||
|
unlink($links);
|
||
|
echo date ('Y/m/d - H:i:s') . " - Le fichier $fichierZip vient d'être historisé.".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s') . " - Le fichier $fichierZip vient d'être historisé.".EOL;
|
||
|
} else {
|
||
|
echo date ('Y/m/d - H:i:s') . " - Erreur lors de l'historisation du fichier $fichierZip !".EOL;
|
||
|
$strMailInfo.=date ('Y/m/d - H:i:s') . " - Erreur lors de l'historisation du fichier $fichierZip !".EOL;
|
||
|
|
||
|
}
|
||
|
|
||
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des Liens Infolegales', $strMailInfo);
|
||
|
|
||
|
die();
|
||
|
?>
|