logger = Zend_Registry::get('logger'); } $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $c = Zend_Registry::get('config'); $this->path = $c->profil->path->shared.'/temp/files'; require_once 'Scores/WsScores.php'; } /** * Vérifie ou télécharge le fichier sur une url * @param string $url * URL of file to download * @param mixed $filename * Override filename */ protected function getFile($url, $filename=null) { if (!is_dir($this->path)) mkdir($this->path); // --- Recuperation du nom du fichier if ( $filename === null ) { $tableau = explode('/', $url); $file = $tableau[sizeof($tableau) - 1]; } else { $file = $filename; } // --- Suppression du fichier si le temps de cache est depasse if ( $this->filetime == 0 && file_exists($this->path.'/'.$file) ){ unlink($this->path.'/'.$file); } elseif ( file_exists($this->path.'/'.$file) ) { $dateFile = filemtime($this->path.'/'.$file); $now = mktime(date('G'), date('i'), date('s'), date('m') , date('d'), date('Y')); $maxTime = mktime(date('G',$dateFile)+$this->filetime, date('i',$dateFile), date('s',$dateFile), date('m',$dateFile), date('d',$dateFile), date('Y',$dateFile)); if ( $maxTime - $now < 0 ) { unlink($this->path.'/'.$file); } } // --- Lock file exist if ( file_exists($this->path.'/'.$file.'.lock') ) { return null; } // --- Recuperation du fichier sur le serveur if ( file_exists($this->path.'/'.$file) ) { return $file; } else { // --- On check si le fichier est present sur l'url try { $client = new Zend_Http_Client($url); $client->setStream(); $response = $client->request('GET'); if ( $response->isSuccessful() ) { // --- Add a lock file_put_contents($this->path.'/'.$file.'.lock', ''); if ( copy($response->getStreamName(), $this->path.'/'.$file) ) { // --- Remove lock unlink($this->path.'/'.$file.'.lock'); return $file; } // --- Remove lock unlink($this->path.'/'.$file.'.lock'); } return null; } catch (Zend_Http_Client_Exception $e) { return false; } } } /** * Télécharge la consommation client sous forme de fichier csv et affiche le lien */ public function consommationAction() { $this->filetime = 0; $request = $this->getRequest(); $start = $request->getParam('start', false); //On souhaite récupérer l'url du fichier if ( $start == 1 ) { $mois = $request->getParam('mois'); $detail = $request->getParam('detail', 0); $idClient = $request->getParam('idClient', 0); $login = $request->getParam('login', ''); $all = $request->getParam('all', 0); $date = substr($mois, 3, 4).substr($mois, 0, 2); $user = new Scores_Utilisateur(); if (empty($login) && (!$user->isAdmin() && !$user->isSuperAdmin()) ) { $login = $user->getLogin(); } $ws = new WsScores(); $reponse = $ws->getLogsClients($date, $detail, $idClient, $login, $all); if ( !empty($reponse->result->Url) ) { echo $reponse->result->Url; } else { echo 'FALSE'; } } else { $url = $request->getParam('url', ''); $file = $this->getFile($url); // --- En attente if ( $file === null ) { echo ''; } // --- Fichier en erreur elseif ( $file === false ) { echo 'Erreur lors du chargement du fichier.'; } // --- Fichier disponible elseif ( file_exists($this->path.'/'.$file) ) { echo 'Cliquez-ici pour télécharger le fichier.'; } } } /** * Télécharge les surveillances sous forme de fichier csv et affiche le lien */ public function surveillanceAction() { $this->filetime = 4; $request = $this->getRequest(); $start = $request->getParam('start', false); // --- Get File Url if ( $start == 1) { $source = $request->getParam('source', ''); $user = new Scores_Utilisateur(); $login = $user->getLogin(); $idClient = $user->getIdClient(); $ws = new WsScores(); $reponse = $ws->getListeSurveillancesCsv($source, $login, $idClient); if ( !empty($reponse->result->Url) ) { echo $reponse->result->Url; } else { echo 'FALSE'; } } // --- Get File else { $url = $request->getParam('url', ''); $file = $this->getFile($url); // --- En attente if ( $file === null ) { echo ''; } // --- Fichier en erreur elseif ( $file === false ) { echo 'Erreur lors du chargement du fichier.'; } // --- Fichier disponible elseif ( file_exists($this->path.'/'.$file) ) { echo 'Cliquez-ici pour télécharger le fichier.'; } } } /** * Télécharge le portefeuille sous forme de fichier csv et affiche le lien * Enter description here ... */ public function portefeuilleAction() { $this->filetime = 4; $request = $this->getRequest(); $start = $request->getParam('start', false); if ($start==1) { $user = new Scores_Utilisateur(); $login = $user->getLogin(); $idClient = $user->getIdClient(); $ws = new WsScores(); $reponse = $ws->getPortefeuilleCsv($login, $idClient); if ( !empty($reponse->result->Url) ) { echo $reponse->result->Url; } else { echo 'FALSE'; } } else { $url = $request->getParam('url', ''); $file = $this->getFile($url); // --- En attente if ( $file === null ) { echo ''; } // --- Fichier en erreur elseif ( $file === false ) { echo 'Erreur lors du chargement du fichier.'; } // --- Fichier disponible elseif ( file_exists($this->path.'/'.$file) ) { echo 'Cliquez-ici pour télécharger le fichier.'; } } } /** * Download pdf of bodacc history */ public function histopdfAction() { $request = $this->getRequest(); $q = $request->getParam('q', ''); $host = base64_decode($request->getParam('host', '')); //Authenticate info $auth = Zend_Auth::getInstance(); $identity = $auth->getIdentity(); $authinfo = '/login/'.$identity->username.'/hach/'.$identity->password; $url = $host.$authinfo.'/q/'.$q; $this->logger->info($url); $file = $this->getFile($url, uniqid('histo-').'.pdf'); // --- En attente if ( $file === null ) { echo ''; } // --- Fichier en erreur elseif ( $file === false ) { echo 'Erreur lors du chargement du fichier.'; } // --- Fichier disponible elseif ( file_exists($this->path.'/'.$file) ) { if (filesize($this->path.'/'.$file) > 0) { echo 'Cliquez-ici pour télécharger le fichier.'; } else { echo "Erreur lors du téléchargement du fichier."; } } } /** * Download bilan pdf file */ public function bilanAction() { $this->filetime = 40; $request = $this->getRequest(); $siren = $request->getParam('siren'); $dateCloture = $request->getParam('dateCloture'); $reference = $request->getParam('reference'); //Récupération du l'URL require_once 'Scores/WsScores.php'; $ws = new WsScores(); $url = $ws->getPiecesBilan($siren, 'T', $dateCloture, $reference); //Téléchargement if( $url !== false) { $this->logger->info($url); $file = $this->getFile($url); $this->logger->info('File:'.$this->path.'/'.$file); // --- En attente if ( $file === null ) { echo ''; } // --- Fichier en erreur elseif ( $file === false ) { echo 'Erreur lors du chargement du fichier.'; } // --- Fichier disponible elseif ( file_exists($this->path.'/'.$file) ) { if (filesize($this->path.'/'.$file) > 0) { echo '
Cliquez-ici pour télécharger le fichier.'; } else { echo "
Erreur lors du téléchargement du fichier."; } } } else { echo "
Erreur."; } } }