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

171 lines
5.5 KiB
PHP

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(INCLUDE_PATH.'insee/classMInsee.php');
error_reporting(E_ALL ^ E_NOTICE);
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Programme automatique de consolidation des annonces Bodacc.
Options :
-f Récupération des informations dirigeants en IG/FP*
-i:XXX Reprendre à la ligne XXX
(*) Options non encore opérationnelles !
";
$semiManuel=$sansPropo=$toutes=$index=false;
$mInsee=new MInsee();
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $semiManuel=false; // Fonctionnement normal du script, càd : on sirene que en auto
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 's':
$semiManuel=true;
break;
case 'p':
$sansPropo=true;
break;
case 'a':
$toutes=true;
break;
case 'i':
$index=trim(substr($argv[$i],3));
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de post traitement des annonces BODACC...".EOL;
$iDb=new WDB('jo');
$iDbInsee=new WDB('insee');
/*
$nbPP=$iDbInsee->select('identite', 'SIREN, NOM, CIVILITE, DIR_IDEN, DIR_DATEN, DIR_LIEUN', "(CJ BETWEEN 10 AND 19 OR CJ BETWEEN 1000 AND 1999) AND DIR_IDEN <> '' AND (DIR_DATEN<>0 OR DIR_LIEUN <> '') GROUP BY SIREN",false,MYSQL_ASSOC,true);
$dateInsert=date('YmdHis');
while ($tab=$iDbInsee->fetch(MYSQL_ASSOC)) {
$siren=$tab['SIREN']*1;
$nom=$prenom=$naissNom='';
if ($tab['CIVILITE']==1) $civ='M';
elseif ($tab['CIVILITE']==2) { $civ='MME'; $naissNom=strtr($tab['NOM'],'/*',' '); }
else $civ='';
$tabId=explode(' ', $tab['DIR_IDEN']);
foreach ($tabId as $mot) {
if (strtoupper($mot)==$mot) {
$nom.=' '.$mot;
$naissNom=str_ireplace($mot,'',$naissNom);
}
else {
$prenom.=' '.$mot;
$naissNom=str_ireplace($mot,'',$naissNom);
}
}
$nom=trim($nom);
$prenom=trim($prenom);
$naissNom=strtoupper(trim($naissNom));
$naissDate=$tab['DIR_DATEN'];
$naissLieu=trim($tab['DIR_LIEUN']);
echo $siren.' '.trim($tab['DIR_IDEN'])."\t:\t$civ Nom='$nom', Prenom='$prenom', Usage='$naissNom' né le $naissDate à $naissLieu\t";
//echo "?";
//$saisie = trim(strtoupper(fgets(STDIN)));
//$civ='M', 'MME', 'MLLE')
$tabUpdate=array( 'siren'=>$siren,
'raisonSociale'=>strtr($tab['NOM'],'/*',' '),
'civilite'=>$civ,
'nom'=>$nom,
'prenom'=>$prenom,
'naissance_nom'=>$naissNom,
'naissance_date'=>$naissDate,
'naissance_lieu'=>$naissLieu,
'fonction_code'=>1050,
'fonction_lib'=>'Personne physique',
'actif'=>1,
'dateInsert'=>$dateInsert);
if (!$iDb->insert('rncs_dirigeants', $tabUpdate))
echo "ERREUR !!!\n";
else
echo "OK\n";
//die();
}
*/
$client = new SoapClient(null, array( 'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => 'http://localhost/ws/',
'uri' => 'http://localhost/',
'login' => 'ylenaour',
'password' => 'bzh4231*'));
// Faire tourner en auto ce programme pour l'ensemble des annonces Bodacc à compter du 9 juin 2008
//$nbBod=$iDb->select('bodacc_detail d LEFT JOIN rncs_dirigeants r ON d.siren=r.siren', 'd.siren, Bodacc_Date_Parution, typeEven, d.raisonSociale, dateJugement',"d.siren>1000 AND
/*siren between 490000001 AND 500000000 AND */
//r.siren IS NULL AND
//Bodacc_Date_Parution>='2008-10-08' AND (
// typeEven LIKE '%1500%' OR typeEven LIKE '%1501%' OR typeEven LIKE '%1502%' OR typeEven LIKE '%1503%' OR /* CIA */
// typeEven LIKE '%1600%' OR typeEven LIKE '%1601%' OR typeEven LIKE '%1610%' OR typeEven LIKE '%1611%' OR /* IG FP */
// typeEven LIKE '%2202%' OR typeEven LIKE '%2203%' OR typeEven LIKE '%2204%' or typeEven LIKE '%2210%' /* DISSOLUTION */
// )
//GROUP BY d.siren
//ORDER BY Bodacc_Date_Parution ASC
//", true, MYSQL_ASSOC, true);
$nbBod=$iDb->select('rncs_requetes', 'siren', "siren>1000 AND type='QINF' AND presta=12001 AND strXml NOT LIKE '%Erreur base%'", true, MYSQL_ASSOC, true);
// 1503 : Cloture de la procedure pour insuffisance d'actif
$rec=0;
echo date ('Y/m/d - H:i:s')." - Il y a $nbBod dirigeants en IG/FP à mettre à jour...".EOL;
while ($tab=$iDb->fetch(MYSQL_ASSOC)) {
/*$tab2=file('/mnt/samba/partage/production/igfp.csv');
/*shuffle($tab2);
file_put_contents('/mnt/samba/partage/production/igfp2.csv',implode('', $tab2),FILE_APPEND);*
$nbBod=count($tab2);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBod dirigeants en IG/FP à mettre à jour...".EOL;
foreach ($tab2 as $tab) {*/
$rec++;
$siren=$tab['siren']*1;
/*if ($siren<>417512753) continue;
else die('Rec='.$rec."\n");*/
if ($rec<=$index) continue;
$even=@$tab['typeEven'];
$rs=@$tab['raisonSociale'];
$dateJuge=@$tab['dateJugement'];
//print_r($tab);
$tdeb=microtime(true);
$O = $client->getDirigeants($siren, false);
$tfin=microtime(true);
$duree=$tfin-$tdeb;
$dirs=$O['result'];
$nbDirs=count($dirs);
echo date ('Y/m/d - H:i:s')." - $rec : Siren $siren, $rs, $even le $dateJuge : $nbDirs dirigeants ($duree)".EOL;
if ($nbDirs>0) print_r($dirs);
if ($duree>1){
echo '...'.EOL;
//randsleep(7, 21);//,59);
//randsleep(21,59);
//randsleep(31,190);
}
}
echo date('Y/m/d - H:i:s') ." - FIN du programme de post traitement des annonces BODACC.".EOL;
die();
?>