pathAvisPdf = $c->profil->path->files; $this->pathLog = realpath($c->profil->path->data).'/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() { $user = new Scores_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; $mail = new Scores_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'; // On délivre l'avis en base if ($force==0 && file_exists($fichier)) { return file_get_contents($fichier); } // On télécharge le fichier sur le site else { $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->setStream(); $client->setParameterPost($post); $response = $client->request('POST'); if ( $response->isSuccessful() && substr($response->getBody(),0,4)=='%PDF' ) { $body = $response->getBody(); file_put_contents($fichier, $body); return $body; } } catch (Zend_Http_Client_Exception $e) { if (APPLICATION_ENV=='development') { echo $e->getMessage(); } } return false; } // Fin fichier disponible } }