<?php
require_once '../config/prepend.php';
require_once 'index.fct.php';
require_once 'fwk.php';
require_once 'index_auth.php';
require_once 'user/user.php';

$stopUrl = false;
if($_REQUEST['url']==1){
	$stopUrl = true;
}

if (!hasPerm('portefeuille')){
	echo "Vous n'avez pas les permissions nécessaire !";
	exit;
}

$login = $_SESSION['tabInfo']['login'];
$idClient = $_SESSION['tabInfo']['idClient'];

$client = new SoapClient(null, array(
	'trace'        => 1,
	'soap_version' => SOAP_1_1,
	'location'     => 'http://78.31.45.206/ws2/',
	'uri'          => 'http://78.31.45.206/',
	'login'        => $login,
	'password'     => $_SESSION['tabInfo']['password']
));

try {
	$res = $client->getPortefeuilleCsv($login, $idClient);
}
catch (SoapFault $fault)
{
	echo "Erreur";
	exit;
}
$url = '';
if (isset($res['result']['Url']) == true) {
	$url = $res['result']['Url'];
}

if($stopUrl){
	echo $url;
	exit;
}

FB::log($url,'URL');
//On arrete tout, il y a eu un problème
if (empty($url)){
	echo 'La construction du fichier à échoué !';
	exit;
}

//Récupération du fichier
require_once 'common/curl.php';
$path = PATH_SITE.'/cache/portefeuille/';

// Recuperation du nom du fichier
$tableau = explode('/', $url);
$file = $tableau[sizeof($tableau) - 1];
FB::log($file,'Fichier');
// Suppression du fichier si le temps de cache est depasse
if (file_exists($path.$file)){
	$dateFile = filemtime($path.$file);
    $now = mktime(date('G'), date('i'), date('s'),
    	date('m') , date('d'), date('Y'));
	$maxTime = mktime(date('G',$dateFile)+1, date('i',$dateFile),
    	date('s',$dateFile), date('m',$dateFile),
    	date('d',$dateFile), date('Y',$dateFile));
	if (in_array(ENVIRONNEMENT, array('REC','DEV')) || $maxTime-$now<0) {
		FB::info('Suppression fichier de cache');
    	unlink($path.$file);
	}
}
sleep(5);
// Recuperation du fichier sur le serveur
if (!file_exists($path.$file)) {
	// On check si le fichier est present sur l'url
    $url_tab = getUrl($url, '', '', '', false, '', '', 0);
    if ($url_tab['code'] == 408 ||
    	$url_tab['code'] == 400 ||
        $url_tab['code'] == 404) {
        // Fichier non disponible
        FB::info('Erreur lors de la recup du fichier');
	} else {
    	// Ecriture du fichier sur le serveur en local
        $body = $url_tab['body'];
        $fp = fopen($path.$file, 'w');
        fwrite($fp, $body);
        fclose($fp);
	}
}

// Le fichier existe sur l'extranet
$content_type = 'application/csv-tab-delimited-table';
if (file_exists($path.$file)) {
	if (filesize($path.$file) > 0) {
		header('Content-Transfer-Encoding: none');
	    header('Content-type: ' . $content_type.'');
	    header('Content-Length: ' . filesize($path.$file));
	    header('Content-MD5: ' . base64_encode(md5_file($path.$file)));
	    header('Content-Disposition: filename="' . basename($path.$file) . '"');
	    header('Cache-Control: private, max-age=0, must-revalidate');
	    header('Pragma: public');
	    ini_set('zlib.output_compression', '0');
	    echo file_get_contents($path.$file);
	} else {
		echo 'Fichier vide.';
	}
} else {
	echo '--';
}