extranet/application/controllers/TelechargementController.php

294 lines
8.3 KiB
PHP
Raw Normal View History

<?php
class TelechargementController extends Zend_Controller_Action
{
2011-08-19 19:51:34 +00:00
/**
* Temps de mis en cache en heure
* @var interger
*/
protected $filetime = 8;
2012-05-20 16:31:28 +00:00
2011-08-19 19:51:34 +00:00
/**
* Répertoire de stockage pour le fichier
* @var string
*/
protected $path = '';
2012-05-20 16:31:28 +00:00
2011-08-19 19:51:34 +00:00
/**
* Vérifie ou télécharge le fichier sur une url
* @param string $url
* URL of file to download
2012-06-05 16:25:46 +00:00
* @param mixed $filename
* Override filename
2011-08-19 19:51:34 +00:00
*/
2012-06-05 16:25:46 +00:00
protected function getFile($url, $filename=null)
{
if (!is_dir($this->path)) mkdir($this->path);
2012-05-20 16:31:28 +00:00
require_once 'common/curl.php';
2012-05-20 16:31:28 +00:00
// Recuperation du nom du fichier
2012-06-05 16:25:46 +00:00
if ($filename===null) {
$tableau = explode('/', $url);
$file = $tableau[sizeof($tableau) - 1];
} else {
$file = $filename;
}
2012-05-20 16:31:28 +00:00
// Suppression du fichier si le temps de cache est depasse
if (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);
}
}
2012-05-20 16:31:28 +00:00
// Recuperation du fichier sur le serveur
if (!file_exists($this->path.'/'.$file)) {
// On check si le fichier est present sur l'url
$url_tab = getUrl($url, '', '', '', false);
if ($url_tab['code'] == 408 ||
$url_tab['code'] == 400 ||
$url_tab['code'] == 404) {
// Fichier non disponible
return false;
} else {
// Ecriture du fichier sur le serveur en local
$body = $url_tab['body'];
$fp = fopen($this->path.'/'.$file, 'w');
fwrite($fp, $body);
fclose($fp);
}
}
return $file;
}
2012-05-20 16:31:28 +00:00
public function init()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
2012-05-20 16:31:28 +00:00
require_once 'Scores/WsScores.php';
}
2012-05-20 16:31:28 +00:00
2011-08-19 19:51:34 +00:00
/**
* Télécharge la consommation client sous forme de fichier csv et affiche le lien
*/
public function consommationAction()
{
$this->path = APPLICATION_PATH.'/../cache/consommation';
$this->filetime = 1;
2012-05-20 16:31:28 +00:00
$request = $this->getRequest();
$start = $request->getParam('start', false);
2012-05-20 16:31:28 +00:00
//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);
2012-05-20 16:31:28 +00:00
$date = substr($mois, 3, 4).substr($mois, 0, 2);
2012-05-20 16:31:28 +00:00
$user = new Scores_Utilisateur();
if (empty($login) && (!$user->isAdmin() && !$user->isSuperAdmin()) ) {
$login = $user->getLogin();
}
2012-05-20 16:31:28 +00:00
$ws = new WsScores();
$reponse = $ws->getLogsClients($date, $detail, $idClient, $login, $all);
2012-05-20 16:31:28 +00:00
if (!empty($reponse->result->Url)) {
echo $reponse->result->Url;
} else {
echo 'FALSE';
}
} else {
$url = $request->getParam('url', '');
$file = $this->getFile($url);
2012-05-20 16:31:28 +00:00
// Le fichier existe sur l'extranet
if ($file && file_exists($this->path.'/'.$file)) {
if (filesize($this->path.'/'.$file) > 0) {
echo '<u><a title="T&eacute;l&eacute;charger le fichier"'.
' target="_blank" href="/fichier/consommation/'.$file.
'">Cliquez-ici pour t&eacute;l&eacute;charger'.
' le fichier.</a></u>';
} else {
echo 'Aucune consommmation enregistr&eacute;e.';
}
}
}
}
2012-05-20 16:31:28 +00:00
2011-08-19 19:51:34 +00:00
/**
* Télécharge les surveillances sous forme de fichier csv et affiche le lien
*/
public function surveillanceAction()
{
$this->path = APPLICATION_PATH.'/../cache/surveillance';
2012-02-07 20:20:28 +00:00
$this->filetime = 4;
2012-05-20 16:31:28 +00:00
$request = $this->getRequest();
$start = $request->getParam('start', false);
2012-05-20 16:31:28 +00:00
if ($start==1) {
$source = $request->getParam('source', '');
2012-05-20 16:31:28 +00:00
$user = new Scores_Utilisateur();
$login = $user->getLogin();
$idClient = $user->getIdClient();
2012-05-20 16:31:28 +00:00
$ws = new WsScores();
$reponse = $ws->getListeSurveillancesCsv($source, $login, $idClient);
2012-05-20 16:31:28 +00:00
if (!empty($reponse->result->Url)) {
echo $reponse->result->Url;
exit;
}
echo 'FALSE';
exit;
2012-05-20 16:31:28 +00:00
} else {
2012-05-20 16:31:28 +00:00
$url = $request->getParam('url', '');
$file = $this->getFile($url);
// Le fichier existe sur l'extranet
if ($file && file_exists($this->path.'/'.$file)) {
if (filesize($this->path.'/'.$file) > 0) {
echo '<u><a title="T&eacute;l&eacute;charger le fichier"'.
' target="_blank" href="/fichier/surveillance/'.$file.
'">Cliquez-ici pour t&eacute;l&eacute;charger'.
' le fichier.</a></u>';
} else {
echo 'Aucune surveillance enregistr&eacute;e.';
}
}
exit;
}
}
2012-05-20 16:31:28 +00:00
2011-08-19 19:51:34 +00:00
/**
* Télécharge le portefeuille sous forme de fichier csv et affiche le lien
* Enter description here ...
2012-05-20 16:31:28 +00:00
*/
public function portefeuilleAction()
{
$this->path = APPLICATION_PATH.'/../cache/surveillance';
2012-02-07 20:20:28 +00:00
$this->filetime = 4;
2012-05-20 16:31:28 +00:00
$request = $this->getRequest();
$start = $request->getParam('start', false);
2012-05-20 16:31:28 +00:00
if ($start==1) {
2012-05-20 16:31:28 +00:00
$user = new Scores_Utilisateur();
$login = $user->getLogin();
$idClient = $user->getIdClient();
2012-05-20 16:31:28 +00:00
$ws = new WsScores();
$reponse = $ws->getPortefeuilleCsv($login, $idClient);
2012-05-20 16:31:28 +00:00
if (!empty($reponse->result->Url)) {
echo $reponse->result->Url;
exit;
}
echo 'FALSE';
exit;
2012-05-20 16:31:28 +00:00
} else {
2012-05-20 16:31:28 +00:00
$url = $request->getParam('url', '');
$file = $this->getFile($url);
2012-05-20 16:31:28 +00:00
// Le fichier existe sur l'extranet
if ($file && file_exists($this->path.'/'.$file)) {
if (filesize($this->path.'/'.$file) > 0) {
echo '<u><a title="T&eacute;l&eacute;charger le fichier"'.
' target="_blank" href="/fichier/portefeuille/'.$file.
'">Cliquez-ici pour t&eacute;l&eacute;charger'.
' le fichier.</a></u>';
} else {
echo 'Aucune surveillance enregistr&eacute;e.';
}
}
exit;
}
}
2012-05-20 16:31:28 +00:00
/**
* Download pdf of bodacc history
*/
public function histopdfAction()
{
$this->path = APPLICATION_PATH.'/../cache/histopdf';
$request = $this->getRequest();
2012-06-05 15:22:18 +00:00
$q = $request->getParam('q', '');
$host = base64_decode($request->getParam('host', ''));
2012-06-05 15:22:18 +00:00
//Authenticate info
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
$authinfo = '/login/'.$identity->username.'/hach/'.$identity->password;
$url = $host.$authinfo.'/q/'.$q;
2012-06-05 16:25:46 +00:00
$file = $this->getFile($url, uniqid().'.pdf');
// Le fichier existe sur l'extranet
if ($file && file_exists($this->path.'/'.$file)) {
if (filesize($this->path.'/'.$file) > 0) {
echo '<u><a title="T&eacute;l&eacute;charger le fichier"'.
' target="_blank" href="/fichier/histopdf/'.$file.
'">Cliquez-ici pour t&eacute;l&eacute;charger'.
' le fichier.</a></u>';
} else {
echo "Erreur lors du téléchargement du fichier.";
}
}
}
/**
* Download bilan pdf file
*/
public function bilanAction()
{
$this->path = APPLICATION_PATH.'/../cache/bilan';
$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) {
Zend_Registry::get('firebug')->info($url);
$file = $this->getFile($url);
// Le fichier existe sur l'extranet
if ($file && file_exists($this->path.'/'.$file)) {
if (filesize($this->path.'/'.$file) > 0) {
echo '<br/><u><a title="T&eacute;l&eacute;charger le fichier"'.
' target="_blank" href="/fichier/bilan/'.$file.
'">Cliquez-ici pour t&eacute;l&eacute;charger'.
' le fichier.</a></u>';
} else {
echo "<br/>Erreur lors du téléchargement du fichier.";
}
}
} else {
echo "<br/>Erreur.";
}
}
}