batch/1.1/old/getRPS.php
2012-10-16 07:44:31 +00:00

222 lines
9.6 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');
$modeDebug=$noTimer=false;
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Mise à jour des tribunaux compétents pour les codes insee des communes depuis le site du ministère de la justice.
/**@todo : Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!**/
Options :
-d Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
-t Pas de timer du tout
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
";*/
$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 'd': $modeDebug=true; break;
case 't': $noTimer=true; break;
//case 'i': $iDeb=substr($argv[$i],3); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
/** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
**
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
**/
$iDb=new WDB('sdv1');
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises avec RPS...".EOL;
$url='http://www.travailler-mieux.gouv.fr/spip.php?page=stress_liste&cla=1';
$page=getUrl($url, '', '', '', false);
$referer=$url;
$body=$page['body'];
if(preg_match_all('/<li><a href="spip\.php\?page=stress_entreprise&amp;idfent=(\d+)">(.*)<\/a>(.*)<\/li>/Uis',$body, $matches)) {
$tabEnt=$tabTri=array();
foreach ($matches[1] as $i=>$idfent) {
$tabEnt['_'.$idfent]=array( 'idfent' => $idfent,
'raiSoc' => html_entity_decode(trim($matches[2][$i])),
'cpVille'=> html_entity_decode(trim(preg_replace('/^\s+\-/','',$matches[3][$i]))),
);
$tabTri[]='_'.$idfent;
}
}
$nbEnt=count($tabEnt);
shuffle($tabTri);
echo date ('Y/m/d - H:i:s')." - Il y a $nbEnt entreprises avec RPS à vérifier...".EOL;
$ret=$iDb->select('gouv_rps', 'idfent, dateMAJ, dateInsert*1 as dateInsert, dateUpdate*1 as lastUpdate', '1', false, MYSQL_ASSOC);
$nbEntEnBase=0;
foreach ($ret as $j=>$tmp) {
$idfent=$tmp['idfent'];
if ($tmp['dateInsert']>$tmp['lastUpdate']) $dateUpdate=$tmp['dateInsert'];
else $dateUpdate=$tmp['lastUpdate'];
$tabEnt['_'.$idfent]['lastMajBase']=$dateUpdate;
$tabEnt['_'.$idfent]['lastMajSite']=$tmp['dateMAJ'];
$nbEntEnBase++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbEntEnBase entreprises avec RPS en base...".EOL;
foreach ($tabTri as $i=>$idfent_) {
$idfent=preg_replace('/^_/','',$idfent_);
$libEnt=$tabEnt[$idfent_];
// Pour l'instant si déjà en base, aucune MAJ
if (isset($tabEnt[$idfent_]['lastMajSite']) && ($tabEnt[$idfent_]['lastMajSite']>0)) continue;
$url="http://www.travailler-mieux.gouv.fr/spip.php?page=stress_entreprise&idfent=$idfent";
$page=getUrl($url, '', '', $referer, false);
$body=$page['body'];
//print_r($page);
//die();
/*
<div id="onecol">
<div class="titre"><p>Suivi des négociations sur la prévention des RPS</p></div>
<div class="liste">
<div class="top"></div>
<div class="middle">
<div class="titre">
<h1>FONDATION BON SAUVEUR D'ALBY</h1>
</div>
<div class="notalpha">
<div id="regions">
<div class="corps">
<p><em>Fiche mise à jour le 18/02/2010</em></p><h2></h2>
<h2 class="bigger">Informations générales</h2>
<div class="rowfiche">
<span class="librfiche">Raison sociale :</span>
<span class="fieldrfiche">FONDATION BON SAUVEUR D'ALBY</span>
</div>
<div class="rowfiche">
<span class="librfiche">Code postal :</span>
<span class="fieldrfiche">81000</span>
</div>
<div class="rowfiche">
<span class="librfiche">Ville :</span>
<span class="fieldrfiche">ALBI</span>
</div>
<div class="rowfiche">
<span class="librfiche"><acronym title="Système d'Identification du Répertoire des Entreprises">SIREN</acronym> :</span>
<span class="fieldrfiche">320662612</span>
</div>
<div class="rowfiche">
<span class="librfiche">Département :</span>
<span class="fieldrfiche">81 - Tarn</span>
</div>
<div class="rowfiche">
<span class="librfiche">Région :</span>
<span class="fieldrfiche"><a href="spip.php?page=stress_region&amp;idreg=15">Midi-Pyrénées</a></span>
</div>
<div class="etire">&nbsp;</div>
<h2 class="bigger">Etat de la négociation</h2>
<div class="rowfiche">
</div>
<div class="etire">&nbsp;</div>
<h2 class="bigger">En l'absence d'accord ou en cas d'échec de la négociation</h2>
<div class="rowfiche">
<span class="librfiche">Qu'avez-vous mis en place ?</span>
<span class="fieldrfiche">un plan d'actions concerté avec les IRP et délégués syndicaux<br/></span>
</div>
<div class="etire">&nbsp;</div>
<div class="rowfiche">
<span class="librfiche">Ce plan d'actions porte sur :</span>
<span class="fieldrfiche">état des lieux/diagnostic de la situation<br/>mise en place dâun groupe projet/comité de pilotage...<br/>processus de consultation et/ou consultation des acteurs<br/>formation (cadres, salariés, IRP...)<br/></span>
</div>
*/
$tabInsert=$tabEnt[$idfent_];
if (preg_match('/<p><em>Fiche mise .+ jour le (.*)<\/em><\/p>/Uis', $body, $results))
$tabInsert['dateMAJ']=WDate::dateT('d/m/Y','Ymd',$results[1]);
if (preg_match('/">SIREN<\/acronym> \:<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
$tabInsert['siren']=$results[1];
if (preg_match('/<span class="librfiche">Avez\-vous engag.+ des n.+gociations \?<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
$tabInsert['negotiations']=$results[1];
//else
$tabInsert['debugHtml']=$body;
if (preg_match('/<span class="librfiche">Nbre de r.+unions tenues \:<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
$tabInsert['nbreunions']=$results[1];
if (preg_match('/<span class="librfiche">Avez vous sign.+ un accord \?<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
$tabInsert['accordsigne']=$results[1];
if (preg_match('/<span class="librfiche">Date de signature de l\'accord \:<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
{
$tabInsert['accorddateTxt']=utf8_decode($results[1]);
$tabInsert['accorddate']=WDate::dateT('dMY','Ymd',$tabInsert['accorddateTxt']);
}
if (preg_match('/<span class="librfiche">Type d\'accord \:<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
$tabInsert['accordtype']=str_replace('de méthodede contenu', 'de méthode et de contenu', strip_tags(utf8_decode($results[1])));
if (preg_match('/<span class="librfiche">Signataires de l\'accord \:<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
$tabInsert['accordsignataires']=strip_tags(utf8_decode($results[1]));
//if (preg_match('/<span class="librfiche"><span class="librfiche">Si accord de m.+thode, il porte sur \:<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
//if (preg_match('/<h2 class="bigger">Contenu de l\'accord<\/h2>(?:.*)<div class="rowfiche">(?:.*)<span class="librfiche">(.*)<\/span>(?:.*)<span class="fieldrfiche">(.*)<\/span>/Uis', $body, $results))
if (preg_match('/<h2 class="bigger">Contenu de l\'accord<\/h2>(?:.*)<div class="rowfiche">(?:.*)<span class="librfiche">(.*)<\/div>/Uis', $body, $results))
$tabInsert['accordinfo']=utf8_decode($results[1]);
if (preg_match('/<h2 class="bigger">En l\'absence d\'accord ou en cas d.+chec de la n.+gociation<\/h2>(?:.*)<div class="rowfiche">(?:.*)<span class="librfiche">(.*)<hr\/>/Uis', $body, $results))
$tabInsert['absenceEchec']=utf8_decode($results[1]);
$tabInsert['dateInsert']=date('YmdHis');
if (!$iDb->insert('gouv_rps', $tabInsert)) {
unset($tabInsert['dateInsert']);
$ret=$iDb->update('gouv_rps', $tabInsert, "idfent=$idfent");
}
print_r($tabInsert);
//die();
/* 'popMunicipaleTxt'=> trim(strtr($results[1], array(chr(160)=>'', ' '=>''))),
'popCptApartTxt'=> trim(strtr($results[2], array(chr(160)=>'', ' '=>''))),
'popTotaleTxt' => trim(strtr($results[3], array(chr(160)=>'', ' '=>''))),
'popMunicipale' => trim(strtr($results[1], array(chr(160)=>'', ' '=>'')))*1,
'popCptApart' => trim(strtr($results[2], array(chr(160)=>'', ' '=>'')))*1,
'popTotale' => trim(strtr($results[3], array(chr(160)=>'', ' '=>'')))*1,
'popAnnee' => 2007,
);
if (preg_match('/<p><strong>Région<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['region']=trim($results2[1]);
if (preg_match('/<p><strong>Département<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['dept']=trim($results2[1]);
if (preg_match('/<p><strong>Arrondissement<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['arrond']=trim($results2[1]);
if (preg_match('/<p><strong>Canton<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['canton']=trim($results2[1]);
if (preg_match('/<p><strong>Commune<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['commune']=trim($results2[1]);
$ret=$iDb->insert('insee_population', $tabInsert);
// print_r($tabInsert);
echo date ('Y/m/d - H:i:s')." - Commune ".$tabInsert['commune'].' : '.$tabInsert['popTotale']." habitants ($ret)".EOL;
//die();*/
if ($noTimer) randsleep(1,2);
else randsleep(7,21);
}
die();
?>