<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

<?
include "includes/pg_begin.php";     //carrega arquivo de conexão

//recupera dados do formulario
$aux_codigocomposto = trim(pg_escape_string($_GET['form_indicador']));
$aux_parametros = explode (";", $aux_codigocomposto);
$sc_indicador = $aux_parametros[0];
$sc_granularidade = $aux_parametros[1];
$sc_periodicidade = $aux_parametros[2];

// busca os dados do indicador
// ATENCAO: alterar o select para verificar se o usuário tem acesso ao indicador

// comando básico de acesso à definição textual do indicador
$sql="
	select *
	from indicador I, tema T, granularidade G, indicadorgranularidade IG, periodicidade P, indicadorperiodicidade IP
	where I.codigotema = T.codigotema
	and I.codigoindicador = IG.codigoindicador
	and IG.codigogranularidade = G.codigogranularidade
	and I.codigoindicador = IP.codigoindicador
	and IP.codigoperiodicidade = P.codigoperiodicidade
	and I.codigoindicador = '" . $sc_indicador . "'  
	and G.codigogranularidade = '" . $sc_granularidade . "'
	and P.codigoperiodicidade = " . $sc_periodicidade;

$result=pg_query($dbh, $sql);

if (!$result) {
   header('location:index.php?msn=4');
   exit;
}

// recupera a tupla selecionada
$nt=pg_fetch_array($result);

//atribui valor a variaveis locais para db
$db_nomeindicador       = utf8_decode(trim(pg_escape_string($nt['nomeindicador'])));
$db_codigogranularidade = trim(pg_escape_string($nt['codigogranularidade']));
$db_nomeperiodicidade   = utf8_decode(trim(pg_escape_string($nt['nomeperiodicidade'])));
$db_nomegranularidade   = utf8_decode(trim(pg_escape_string($nt['nomegranularidade'])));

// comando básico de acesso à série histórica
$sql="
	select *
	from seriehistorica S
	where S.codigoindicador = '" . $sc_indicador . "'  
	and S.codigogranularidade = '" . $sc_granularidade . "'
	and S.codigoperiodicidade = " . $sc_periodicidade . "
	and S.status = 0
	order by S.valorperiodo";

// debug
// echo $sql;
// exit;

$result=pg_query($dbh, $sql);

if (!$result) {
   header('location:index.php?msn=4');
   exit;
}

// envia os cabeçalhos para forçar o download
header("Content-type: text/csv");
$aux_header = 'Content-Disposition: attachment; filename='
	. 'Indicador-' 
	. $sc_indicador 
	. '#' 
	. $sc_granularidade. '-SerieHistorica.csv';
header($aux_header);
header("Pragma: no-cache");
header("Expires: 0");

// grava na saída cabeçalho com nome do indicador, granularidade e periodicidade
if ($db_codigogranularidade == 1) {
	$aux_preposicao = 'do'; // município
} else {
	$aux_preposicao = 'por';
}

echo $db_nomeindicador .' (' . $sc_indicador  . ')';
echo ' - ' . $db_nomeperiodicidade;
echo ' - ' . $aux_preposicao . ' '. $db_nomegranularidade;
echo "\n";
echo "\n";

$rows = pg_num_rows ($result);
if ($rows <= 0) { # não há série histórica desta  granularidade para este indicador
	echo utf8_decode ("No momento não há valores calculados para este indicador.");
	echo "\n";

} else {

	// define o delimitador
	$delimitador = ',';

	// recupera as tuplas selecionadas
	while ($nt=pg_fetch_array($result))
	{
		//atribui valor a variaveis locais para db
		$db_valorperiodo = trim(pg_escape_string($nt['valorperiodo']));
		$db_valorgranularidade = utf8_decode(trim(pg_escape_string($nt['valorgranularidade'])));
		$db_valorindicador = number_format(trim(pg_escape_string($nt['valorindicador'])), 4, ',', '');
		
		// grava na saída os dados da série histórica
		echo
			$sc_indicador . $delimitador . 
			$db_valorperiodo . $delimitador . 
			'"' . $db_valorgranularidade . '"' . $delimitador . 
			'"' . $db_valorindicador . '"' . "\n";
	}
}
?>
