pathAvisPdf = APPLICATION_PATH.'/../cache/avis'; $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path'); $this->pathLog = realpath($config->data).'/'.$config->log; $this->fichierErreur = $this->pathLog.'/aviserreur.lock'; $this->siret = $siret; } public function erreurcpt($action) { switch($action){ case 'plus': if (file_exists($this->fichierErreur)){ $handle = fopen($this->fichierErreur, 'r'); $data = fgetcsv($handle, '1000', ';'); $date_creation = $data[0]; $date_modification = time(); $nb = $data[2]; fclose($handle); } else { $date_creation = time(); $date_modification = time(); $nb = 0; } $nb++; $handle = fopen($this->fichierErreur, 'w'); fputcsv($handle, array($date_creation, $date_modification, $nb), ';'); fclose($handle); break; case 'raz': $handle = fopen($this->fichierErreur, 'w'); $date_creation = time(); $date_modification = time(); $nb = 0; fputcsv($handle, array($date_creation, $date_modification, $nb), ';'); fclose($handle); break; } } public function nberreur() { if (file_exists($this->fichierErreur)){ $handle = fopen($this->fichierErreur, 'r'); $data = fgetcsv($handle, '1000', ';'); $nb = $data[2]; fclose($handle); } else { $nb = 1; } return $nb; } public function erreur() { if (file_exists($this->fichierErreur)) { $handle = fopen($this->fichierErreur, 'r'); $data = fgetcsv($handle, '1000', ';'); $date_creation = $data[0]; $date_modification = $data[1]; $nb = $data[2]; fclose($handle); } else { $date_creation = 0; $date_modification = 0; } if ($nb>0 && $date_modification<$date_creation+$this->retryDelay){ return true; } else { return false; } } public function mailerreur() { require_once 'Scores/Utilisateur.php'; $user = new Utilisateur(); $objet = "AVIS INSEE - (Date :".date("d")."/".date("m")."/".date("Y").")"; $texte = 'Accès impossible au site de situation INSEE : '. $this->siret.EOL. 'http://avis-situation-sirene.insee.fr'.EOL. 'pour login '.$user->getLogin().EOL; require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('support'); $mail->setSubject($objet); $mail->setBodyText($texte); $mail->send(); } public function erreurmsg(){ return "

Le site partenaire n'a pas répondu correctement ou est indisponible. Merci d'essayer à nouveau ultérieurement.

"; } /** * Récupére l'avis de situtation à partir du site au format pdf * @param string $format Format 'pdf' ou 'array' * @param boolean $force True aller obligatoirement le chercher à l'insee * @return string Le PDF demandé */ public function get($format='pdf', $force=0) { $force=$force*1; $date=date('Ymd'); $siren=trim(substr($this->siret,0,9)); $nic=trim(substr($this->siret,9,5)); $fichier = $this->pathAvisPdf.'/avis-'.$siren.'-'.$nic.'-'.$date.'.pdf'; if ($format!='pdf') return 'Format pdf uniquement'; if ($force==0 && file_exists($fichier)) { // On délivre l'avis en base 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', '', $this->timeout); //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; //On doit retrouver sur la page /*
$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', '', AVIS_TIMEOUT); $body = $page['body']; $fp=@fopen($fichier, "a"); @fwrite($fp, $body); @fclose($fp); if (preg_match("/

Fiche établissement<\/h3>/Uis", $body, $matches))//
  • établissement
  • $tabInfos['fiche']='etab'; if (preg_match('/
    (.*)/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('/
    (?:.*)('.$s1.'(?:.*)'.$s2.'(?:.*)'.$s3.')(?:.*)('.$nic.')(?:.*)<\/div>/Uis', $body, $matches)) { $tabInfos['siren'] = trim($matches[1]); $tabInfos['nic'] = trim($matches[2]); } if (preg_match('/