Ajout méthode de vérification site actif
This commit is contained in:
parent
a0b9b5237a
commit
b9f0a673fc
@ -26,171 +26,208 @@ else
|
||||
* @param boolean $force True aller obligatoirement le chercher à l'insee
|
||||
* @return string Le PDF demandé
|
||||
*/
|
||||
function getAvisSituation($siret, $format='pdf', $force=0) {
|
||||
function getAvisSituation($siret, $format='pdf', $force=0)
|
||||
{
|
||||
$force=$force*1;
|
||||
$date=date('Ymd');
|
||||
$siren=trim(substr($siret,0,9));
|
||||
$nic=trim(substr($siret,9,5));
|
||||
$fichier = PATH_DATA.'/pdf/avis-'.$siren.'-'.$nic.'-'.$date.'.pdf';
|
||||
if ($format<>'pdf') return 'Format pdf uniquement';
|
||||
if ($force==0 && file_exists($fichier)) {
|
||||
if ($format!='pdf') return 'Format pdf uniquement';
|
||||
if ($force==0 && file_exists($fichier))
|
||||
{
|
||||
// On délivre l'avis en base
|
||||
$body=file_get_contents($fichier);
|
||||
} else {
|
||||
/** Initialisation de la session sur le site de l'Insee
|
||||
**/
|
||||
$url='http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp';
|
||||
return file_get_contents($fichier);
|
||||
}
|
||||
else
|
||||
{
|
||||
/** Initialisation de la session sur le site de l'Insee **/
|
||||
$url = 'http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp';
|
||||
//http://avis-situation-sirene.insee.fr/avisituV2/jsp/avis.jsp';
|
||||
$referer=$cookie='';
|
||||
$page=getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
|
||||
$fp=@fopen($fichier, "a");
|
||||
@fwrite($fp, $body);
|
||||
@fclose($fp);
|
||||
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
usleep(round(rand(500000,2000000)));
|
||||
|
||||
$dep=$depActif='';
|
||||
if ($nic=='') $crit='S'; // l'établissement siège
|
||||
else $crit=''; // établissement particulier, saisissez le NIC
|
||||
/* $crit='T'; // tous les établissements de l'entreprise
|
||||
$crit='T'; // tous les établissements de l'entreprise du département $dep
|
||||
$crit='A'; // tous les établissements actifs de l'entreprise
|
||||
$crit='A'; // tous les établissements actifs de l'entreprise du département $depActif
|
||||
*/
|
||||
$url='http://avis-situation-sirene.insee.fr/avisitu/IdentificationListeSiret.do';
|
||||
//$url='http://avis-situation-sirene.insee.fr/avisituV2/IdentificationDetailEtab.do';
|
||||
$post=array('siren'=>$siren,
|
||||
'critere'=>$crit, // S pour le siège ou vide avec un NIC !!!
|
||||
'nic'=>$nic,
|
||||
'departement'=>$dep,
|
||||
'departement_actif'=>$depActif,
|
||||
'bSubmit'=>'Valider');
|
||||
$page=getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
|
||||
$body=$page['body'];
|
||||
|
||||
$fp=@fopen($fichier, "a");
|
||||
@fwrite($fp, $body);
|
||||
@fclose($fp);
|
||||
|
||||
if (preg_match("/<h3>Fiche établissement<\/h3>/Uis", $body, $matches))//<li class="ongletActif">établissement</li>
|
||||
$tabInfos['fiche']='etab';
|
||||
|
||||
if (preg_match('/<div class="TitreGauche">(.*)<br\/>/Uis', $body, $matches)) {
|
||||
$tabInfos['raiSoc']=trim($matches[1]);
|
||||
$referer = $cookie = '';
|
||||
$page = getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
|
||||
//Code en 4xx ou 5xx signifie une erreur du serveur
|
||||
$codeN = floor($page['code']/100);
|
||||
if($codeN==4 || $codeN==5)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$referer = $url;
|
||||
$body = $page['body'];
|
||||
$serviceDispo = true;
|
||||
|
||||
if (preg_match("/Dernière mise à jour : (.*)<\/div>/Uis", $body, $matches))
|
||||
$tabInfos['dateMaj']=trim($matches[1]);
|
||||
|
||||
$s1=substr($siren,0,3);
|
||||
$s2=substr($siren,3,3);
|
||||
$s3=substr($siren,6,3);
|
||||
if (preg_match('/<div class="TitreDroite">(?:.*)('.$s1.'(?:.*)'.$s2.'(?:.*)'.$s3.')(?:.*)('.$nic.')(?:.*)<\/div>/Uis', $body, $matches)) {
|
||||
$tabInfos['siren'] = trim($matches[1]);
|
||||
$tabInfos['nic'] = trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">Etat : <\/label>(.*)depuis le(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['etat'] = trim($matches[1]);
|
||||
$tabInfos['dateEtat']= trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">Catégorie d\'établissement : <\/label>(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['typeEtab']= trim($matches[1]);
|
||||
}
|
||||
|
||||
$tabAdresse=array();
|
||||
if (preg_match('/<label id="labelFiche">Adresse d\'implantation : <\/label>(?:.*)<ul id="adresse">(.*)<\/ul>/Uis', $body, $matches)) {
|
||||
$strTmp=trim($matches[1]);
|
||||
$tabTmp=explode('</li>', $strTmp);
|
||||
foreach ($tabTmp as $i=>$strTmp)
|
||||
$tabAdresse[$i]=trim(str_replace('<li>','',$strTmp));
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">(?:.*)Catégorie juridique :(?:.*)<\/label>(.*) - (.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['fjCod']= trim($matches[1]);
|
||||
$tabInfos['fjLib']= trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">Activité principale exercée :(?:.*)<\/label>(.*) - (.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['nafCod']=trim($matches[1]);
|
||||
$tabInfos['nafLib']=trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">(?:.*)Tranche d'effectif(.*)<\/label>(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['effPeriode']=trim($matches[1]);
|
||||
$tabInfos['effTranche']=trim($matches[2]);
|
||||
}
|
||||
|
||||
$strCsv=$siren.';'.$nic.';'.$tabInfos['fiche'].';'.$tabInfos['dateMaj'].';'.
|
||||
$tabInfos['siren'].';'.$tabInfos['nic'].';'.$tabInfos['raiSoc'].';'.
|
||||
$tabInfos['etat'].';'.$tabInfos['dateEtat'].';'.$tabInfos['fjCod'].';'.$tabInfos['fjLib'].';'.
|
||||
$tabInfos['nafCod'].';'.$tabInfos['nafLib'].';'.$tabInfos['effPeriode'].';'.
|
||||
$tabInfos['effTranche'].';'.
|
||||
$tabInfos['typeEtab'].';'.@implode(';',@$tabAdresse).
|
||||
";\n";
|
||||
$fp=@fopen(PATH_LOGS."avis.csv", "a");
|
||||
@fwrite($fp, $strCsv);
|
||||
@fclose($fp);
|
||||
/*
|
||||
<div class="contenu" id="etab1">
|
||||
<fieldset id="fieldsetCacheFonce">
|
||||
|
||||
|
||||
*/
|
||||
// $body contient l'avis de situation au format html
|
||||
|
||||
$tabErreurs=array();
|
||||
if (preg_match('/name="erreurs" value="(.*)" class="erreurText" readonly/Ui', $body, $matches1) ||
|
||||
preg_match('/name="erreurs_bis" value="(.*)" class="erreurTextBis" readonly/Ui', $body, $matches2)) {
|
||||
$tabErreurs[]=@$matches1[1];
|
||||
$tabErreurs[]=@$matches2[1];
|
||||
die('<font color="red">ERREUR '.implode(' ', $tabErreurs).'</font>'); // Gérer le retour d'une erreur
|
||||
}
|
||||
usleep(round(rand(500000,1000000)));
|
||||
|
||||
if ($format=='pdf') {
|
||||
$referer=$url;
|
||||
$url='http://avis-situation-sirene.insee.fr/avisitu/AvisPdf.do';
|
||||
//$url='http://avis-situation-sirene.insee.fr/avisituV2/AvisPdf.do';
|
||||
$post=array('siren'=>$siren,
|
||||
//On doit retrouver sur la page
|
||||
/*
|
||||
<form name="demForm" method="post" action="/avisitu/IdentificationListeSiret.do
|
||||
*/
|
||||
if (preg_match("/<form name=\"demForm\" method=\"post\" action=\"\/avisitu\/IdentificationListeSiret.do/Uis", $body, $matches))
|
||||
{
|
||||
$fp = @fopen($fichier, "a");
|
||||
@fwrite($fp, $body);
|
||||
@fclose($fp);
|
||||
$cookie = $page['header']['Set-Cookie'];
|
||||
usleep(round(rand(500000,2000000)));
|
||||
|
||||
$dep=$depActif='';
|
||||
if ($nic=='') $crit='S'; // l'établissement siège
|
||||
else $crit=''; // établissement particulier, saisissez le NIC
|
||||
/* $crit='T'; // tous les établissements de l'entreprise
|
||||
$crit='T'; // tous les établissements de l'entreprise du département $dep
|
||||
$crit='A'; // tous les établissements actifs de l'entreprise
|
||||
$crit='A'; // tous les établissements actifs de l'entreprise du département $depActif
|
||||
*/
|
||||
//Post du formulaire
|
||||
$url = 'http://avis-situation-sirene.insee.fr/avisitu/IdentificationListeSiret.do';
|
||||
//$url='http://avis-situation-sirene.insee.fr/avisituV2/IdentificationDetailEtab.do';
|
||||
$post = array(
|
||||
'siren' => $siren,
|
||||
'critere' => $crit, // S pour le siège ou vide avec un NIC !!!
|
||||
'nic' => $nic,
|
||||
'departement' => $dep,
|
||||
'departement_actif' => $depActif,
|
||||
'bSubmit' => 'Valider');
|
||||
$page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
|
||||
|
||||
$body = $page['body'];
|
||||
$fp=@fopen($fichier, "a");
|
||||
@fwrite($fp, $body);
|
||||
@fclose($fp);
|
||||
|
||||
if (preg_match("/<h3>Fiche établissement<\/h3>/Uis", $body, $matches))//<li class="ongletActif">établissement</li>
|
||||
$tabInfos['fiche']='etab';
|
||||
|
||||
if (preg_match('/<div class="TitreGauche">(.*)<br\/>/Uis', $body, $matches)) {
|
||||
$tabInfos['raiSoc']=trim($matches[1]);
|
||||
}
|
||||
|
||||
if (preg_match("/Dernière mise à jour : (.*)<\/div>/Uis", $body, $matches))
|
||||
$tabInfos['dateMaj']=trim($matches[1]);
|
||||
|
||||
$s1=substr($siren,0,3);
|
||||
$s2=substr($siren,3,3);
|
||||
$s3=substr($siren,6,3);
|
||||
if (preg_match('/<div class="TitreDroite">(?:.*)('.$s1.'(?:.*)'.$s2.'(?:.*)'.$s3.')(?:.*)('.$nic.')(?:.*)<\/div>/Uis', $body, $matches)) {
|
||||
$tabInfos['siren'] = trim($matches[1]);
|
||||
$tabInfos['nic'] = trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">Etat : <\/label>(.*)depuis le(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['etat'] = trim($matches[1]);
|
||||
$tabInfos['dateEtat']= trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">Catégorie d\'établissement : <\/label>(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['typeEtab']= trim($matches[1]);
|
||||
}
|
||||
|
||||
$tabAdresse=array();
|
||||
if (preg_match('/<label id="labelFiche">Adresse d\'implantation : <\/label>(?:.*)<ul id="adresse">(.*)<\/ul>/Uis', $body, $matches)) {
|
||||
$strTmp=trim($matches[1]);
|
||||
$tabTmp=explode('</li>', $strTmp);
|
||||
foreach ($tabTmp as $i=>$strTmp)
|
||||
$tabAdresse[$i]=trim(str_replace('<li>','',$strTmp));
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">(?:.*)Catégorie juridique :(?:.*)<\/label>(.*) - (.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['fjCod']= trim($matches[1]);
|
||||
$tabInfos['fjLib']= trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">Activité principale exercée :(?:.*)<\/label>(.*) - (.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['nafCod']=trim($matches[1]);
|
||||
$tabInfos['nafLib']=trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/<label id="labelFiche">(?:.*)Tranche d'effectif(.*)<\/label>(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$tabInfos['effPeriode']=trim($matches[1]);
|
||||
$tabInfos['effTranche']=trim($matches[2]);
|
||||
}
|
||||
|
||||
$strCsv=$siren.';'.$nic.';'.$tabInfos['fiche'].';'.$tabInfos['dateMaj'].';'.
|
||||
$tabInfos['siren'].';'.$tabInfos['nic'].';'.$tabInfos['raiSoc'].';'.
|
||||
$tabInfos['etat'].';'.$tabInfos['dateEtat'].';'.$tabInfos['fjCod'].';'.$tabInfos['fjLib'].';'.
|
||||
$tabInfos['nafCod'].';'.$tabInfos['nafLib'].';'.$tabInfos['effPeriode'].';'.
|
||||
$tabInfos['effTranche'].';'.
|
||||
$tabInfos['typeEtab'].';'.@implode(';',@$tabAdresse).
|
||||
";\n";
|
||||
$fp=@fopen(PATH_LOGS."avis.csv", "a");
|
||||
@fwrite($fp, $strCsv);
|
||||
@fclose($fp);
|
||||
|
||||
// $body contient l'avis de situation au format html
|
||||
$tabErreurs=array();
|
||||
if (preg_match('/name="erreurs" value="(.*)" class="erreurText" readonly/Ui', $body, $matches1) ||
|
||||
preg_match('/name="erreurs_bis" value="(.*)" class="erreurTextBis" readonly/Ui', $body, $matches2)) {
|
||||
$tabErreurs[]=@$matches1[1];
|
||||
$tabErreurs[]=@$matches2[1];
|
||||
die('<font color="red">ERREUR '.implode(' ', $tabErreurs).'</font>'); // Gérer le retour d'une erreur
|
||||
}
|
||||
usleep(round(rand(500000,1000000)));
|
||||
|
||||
if ($format=='pdf')
|
||||
{
|
||||
$referer = $url;
|
||||
$url = 'http://avis-situation-sirene.insee.fr/avisitu/AvisPdf.do';
|
||||
//$url='http://avis-situation-sirene.insee.fr/avisituV2/AvisPdf.do';
|
||||
$post = array(
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'bSubmit'=>'Avis+de+Situation');
|
||||
$page=getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
|
||||
$body=$page['body'];
|
||||
$fp=@fopen($fichier, "w");
|
||||
@fwrite($fp, $body);
|
||||
@fclose($fp);
|
||||
//@exec("/var/www/site_extranet/www/pdf/pdftohtml -xml $fichier");
|
||||
}
|
||||
}
|
||||
|
||||
return $body;
|
||||
'bSubmit'=>'Avis+de+Situation'
|
||||
);
|
||||
$page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
|
||||
$body = $page['body'];
|
||||
$fp = @fopen($fichier, "w");
|
||||
@fwrite($fp, $body);
|
||||
@fclose($fp);
|
||||
//@exec("/var/www/site_extranet/www/pdf/pdftohtml -xml $fichier");
|
||||
} // Fin format PDF
|
||||
}
|
||||
else
|
||||
{
|
||||
$body = false;
|
||||
}
|
||||
return $body;
|
||||
} // Fin erreur initialisation
|
||||
} // Fin fichier disponible
|
||||
}
|
||||
|
||||
$body=getAvisSituation($siret, 'pdf', 1);
|
||||
|
||||
header("Pragma: public");
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
||||
header("Cache-Control: must-revalidate");
|
||||
header("Content-type: application/pdf");
|
||||
header("Content-Length: ".strlen($body));
|
||||
header('Content-disposition: inline; filename="avis-'.$siret.'.pdf"');// attachement or inline
|
||||
header("Accept-Ranges: ".strlen($body));
|
||||
echo $body;
|
||||
|
||||
$client = new SoapClient(null, array( 'trace' => 1,
|
||||
'soap_version' => SOAP_1_1,
|
||||
'location' => WEBSERVICE_URL,
|
||||
'uri' => WEBSERVICE_URI,
|
||||
'login' => $_SESSION['tabInfo']['login'],
|
||||
'password' => $_SESSION['tabInfo']['password']));
|
||||
$O = $client->setLog('avis_situation'.$vue, $siret, 0, $option);
|
||||
|
||||
$body = getAvisSituation($siret, 'pdf', 1);
|
||||
if($body !== false)
|
||||
{
|
||||
|
||||
header("Pragma: public");
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
||||
header("Cache-Control: must-revalidate");
|
||||
header("Content-type: application/pdf");
|
||||
header("Content-Length: ".strlen($body));
|
||||
header('Content-disposition: inline; filename="avis-'.$siret.'.pdf"');// attachement or inline
|
||||
header("Accept-Ranges: ".strlen($body));
|
||||
echo $body;
|
||||
|
||||
$client = new SoapClient(null, array( 'trace' => 1,
|
||||
'soap_version' => SOAP_1_1,
|
||||
'location' => WEBSERVICE_URL,
|
||||
'uri' => WEBSERVICE_URI,
|
||||
'login' => $_SESSION['tabInfo']['login'],
|
||||
'password' => $_SESSION['tabInfo']['password']));
|
||||
$O = $client->setLog('avis_situation'.$vue, $siret, 0, $option);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//Envoi mail erreur
|
||||
mail( 'support@scores-decisions.com',"Avis Situation INSEE",
|
||||
'Accès impossible au site de situation INSEE : '.$_REQUEST['siren'].EOL.
|
||||
'http://avis-situation-sirene.insee.fr'.EOL.
|
||||
'pour login '.$_SESSION['tabInfo']['login'].EOL
|
||||
);
|
||||
|
||||
//Affichage message d'erreur
|
||||
echo '<h3>Le site partenaire n\'a pas répondu correctement ou est indisponible. Merci d\'essayer à nouveau ultérieurement.</h3>';
|
||||
}
|
||||
}
|
||||
?>
|
Loading…
x
Reference in New Issue
Block a user