issue #0001974 : Modification téléchargement direct pour l'avis situation
This commit is contained in:
parent
10b829487e
commit
6d7cc24d0f
@ -127,165 +127,29 @@ class Scores_Insee_AvisSituation
|
|||||||
|
|
||||||
// On télécharge le fichier sur le site
|
// On télécharge le fichier sur le site
|
||||||
else {
|
else {
|
||||||
|
$url = 'http://avis-situation-sirene.insee.fr/avisitu/AvisPdf.do';
|
||||||
$body = false;
|
$post = array(
|
||||||
$cookie = false;
|
'siren' => $siren,
|
||||||
|
'nic' => $nic,
|
||||||
//Initialisation de la session sur le site de l'Insee
|
'bSubmit' => 'Avis+de+Situation'
|
||||||
$url = 'http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp';
|
);
|
||||||
try {
|
try {
|
||||||
$client = new Zend_Http_Client($url);
|
$client = new Zend_Http_Client($url);
|
||||||
$client->setCookieJar();
|
$client->setStream();
|
||||||
$response = $client->request('GET');
|
$client->setParameterPost($post);
|
||||||
if ( $response->isSuccessful() ) {
|
$response = $client->request('POST');
|
||||||
$body = $response->getBody();
|
if ( $response->isSuccessful() && substr($response->getBody(),0,4)=='%PDF' ) {
|
||||||
} else {
|
$body = $response->getBody();
|
||||||
return false;
|
file_put_contents($fichier, $body);
|
||||||
|
return $body;
|
||||||
}
|
}
|
||||||
} catch (Zend_Http_Client_Exception $e) {
|
} catch (Zend_Http_Client_Exception $e) {
|
||||||
if (APPLICATION_ENV=='development') {
|
if (APPLICATION_ENV=='development') {
|
||||||
echo $e->getMessage();
|
echo $e->getMessage();
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$cookie = $client->getCookieJar();
|
|
||||||
|
|
||||||
if (preg_match("/<form name=\"demForm\" method=\"post\" action=\"\/avisitu\/IdentificationListeSiret.do/Uis", $body, $matches)) {
|
|
||||||
|
|
||||||
$dep=$depActif='';
|
|
||||||
if ($nic=='') $crit='S'; // l'établissement siège
|
|
||||||
else $crit=''; // établissement particulier, saisissez le NIC
|
|
||||||
|
|
||||||
//Post du formulaire - Liste
|
|
||||||
$url = 'http://avis-situation-sirene.insee.fr/avisitu/IdentificationListeSiret.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'
|
|
||||||
);
|
|
||||||
try {
|
|
||||||
$client = new Zend_Http_Client($url);
|
|
||||||
$client->setCookieJar($cookie);
|
|
||||||
$client->setParameterPost($post);
|
|
||||||
$response = $client->request('POST');
|
|
||||||
if ( $response->isSuccessful() ) {
|
|
||||||
$body = $response->getBody();
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} catch (Zend_Http_Client_Exception $e) {
|
|
||||||
if (APPLICATION_ENV=='development') {
|
|
||||||
echo $e->getMessage();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$cookie = $client->getCookieJar();
|
|
||||||
|
|
||||||
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($this->pathLog."/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 '.utf8_encode(implode(' ', $tabErreurs)).'</font>'); // Gérer le retour d'une erreur
|
|
||||||
}
|
|
||||||
usleep(round(rand(500000,1000000)));
|
|
||||||
|
|
||||||
// Get format PDF
|
|
||||||
if ( $format == 'pdf' ) {
|
|
||||||
$referer = $url;
|
|
||||||
$url = 'http://avis-situation-sirene.insee.fr/avisitu/AvisPdf.do';
|
|
||||||
$post = array(
|
|
||||||
'siren' => $siren,
|
|
||||||
'nic' => $nic,
|
|
||||||
'bSubmit' => 'Avis+de+Situation'
|
|
||||||
);
|
|
||||||
try {
|
|
||||||
$client = new Zend_Http_Client($url);
|
|
||||||
$client->setCookieJar($cookie);
|
|
||||||
$client->setParameterPost($post);
|
|
||||||
$response = $client->request('POST');
|
|
||||||
if ( $response->isSuccessful() ) {
|
|
||||||
$body = $response->getBody();
|
|
||||||
file_put_contents($fichier, $body);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} catch (Zend_Http_Client_Exception $e) {
|
|
||||||
if (APPLICATION_ENV=='development') {
|
|
||||||
echo $e->getMessage();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$cookie = $client->getCookieJar();
|
|
||||||
} // Fin format PDF
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $body;
|
return false;
|
||||||
} // Fin fichier disponible
|
} // Fin fichier disponible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user