You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

175 lines
7.2 KiB

<?php
$id = isset($_GET['id']) ? $_GET['id'] : '';
$dataIni = isset($_POST['dataIni']) ? $_POST['dataIni'] : '';
$dataFim = isset($_POST['dataFim']) ? $_POST['dataFim'] : '';
$versao = isset($_POST['versao']) ? $_POST['versao'] : '';
$autor = isset($_POST['autor']) ? $_POST['autor'] : '';
$action = isset($_GET['act']) ? $_GET['act'] : '';
try {
if ($action == 'imprimir') {
___GetChanceLog();
}
$conexao = ___GetPGConnect();
if ($id && $action == "delete" && IsAdmin()) {
$mensagem = ___GetDeleteReg($conexao, $id);
}
$versoes = ___GetVersoes($conexao, $versao);
$autores = ___GetAutor($conexao, $autor);
$rows = ___GetGridCorrecoes($conexao, $dataIni, $dataFim, $versao, $autor);
} catch (Exception $ex) {
$mensagem = $ex->getMessage();
} finally {
$smarty->assign('rows', $rows);
$smarty->assign('admin', IsAdmin());
$smarty->assign('mensagem', $mensagem);
$smarty->assign('autores', $autores);
$smarty->assign('versoes', $versoes);
$smarty->assign('dataIni', $dataIni);
$smarty->assign('dataFim', $dataFim);
GetTemplate($smarty, 'admin/correcoes.tpl');
}
/*
* CONEXÃO COM A BASE DAS CENTRAIS CADASTRADA
*/
function ___GetPGConnect() {
$ctPg = pg_connect(sprintf("host=%s port=%s dbname=%s user=%s password=%s", IP_CENTRAL_ATUALIZACAO, '5432', 'atualizacoes', 'contacte', 'ctepgSQL'));
___GetErrorPG($ctPg);
return $ctPg;
}
function ___GetVersoes($conexao, $versao = null) {
$query = "SELECT versao_atualizacao FROM aplicativo_atualizacao ORDER BY data_atualizacao DESC";
$result = pg_query($conexao, $query);
$resp = pg_fetch_all($result);
___GetErrorPG($conexao);
$opt = "<option value=''> --------- </option>";
foreach ($resp as $value) {
$selected = "";
if ($value['versao_atualizacao'] == $versao) {
$selected = "selected";
}
$opt .= sprintf("<option value=\"%s\" $selected>%s</option>", $value['versao_atualizacao'], $value['versao_atualizacao']);
}
return $opt;
}
function ___GetAutor($conexao, $nome = null) {
$query = "SELECT DISTINCT autor_controle FROM controle_atualizacao WHERE autor_controle <> '' ORDER BY 1";
$result = pg_query($conexao, $query);
$resp = pg_fetch_all($result);
___GetErrorPG($conexao);
$opt = "<option value=''> --------- </option>";
foreach ($resp as $autor) {
$selected = '';
if ($nome == $autor['autor_controle']) {
$selected = "selected";
}
$opt .= "<option value='{$autor['autor_controle']}' $selected >{$autor['autor_controle']}</option>";
}
return $opt;
}
function ___GetGridCorrecoes($conexao, $dataIni, $dataFim, $versao, $autor) {
$query = "SELECT * FROM controle_atualizacao WHERE 1=1 ";
$dataIni && $dataFim ? $query .= sprintf("AND data_controle::DATE >= '%s' AND data_controle::DATE <= '%s' ", FormatDtMssql($dataIni), FormatDtMssql($dataFim)) : '';
$versao ? $query .= "AND versao_controle = '$versao' " : '';
$autor ? $query .= "AND autor_controle = '$autor' " : '';
$query .= " ORDER BY data_controle DESC";
$result = pg_query($conexao, $query);
$_SESSION['SSDadosChangelog'] = pg_fetch_all($result);
___GetErrorPG($conexao);
if (!$_SESSION['SSDadosChangelog']) {
$linha = "<tr><td align='center' colspan='7'><b>Não encotramos registros com as informações passadas!</b></td></tr>";
}
foreach ($_SESSION['SSDadosChangelog'] as $grid) {
$linha .= "<tr>";
$linha .= "<td>{$grid['versao_controle']}</td>";
$linha .= "<td>{$grid['tipo_controle']}</td>";
$linha .= "<td>{$grid['modulo_controle']}</td>";
$linha .= "<td>{$grid['autor_controle']}</td>";
$linha .= sprintf("<td>%s</td>", date('d/m/Y H:i:s', strtotime($grid['data_controle'])));
if (IsAdmin()) {
$linha .= "<td align=\"center\"><a href=\"javaScript:NovaJanela('index.php?idProg=326&id={$grid['id_controle']}&act=edit', 'CadCentrais', '1100', '50', 'resizable=YES,scrollbars=NO');\"><img width='16px' title='Editar' src='imgSite/edit-solid.png'/></a></td>";
$linha .= "<td align=\"center\"><a href=\"index.php?idProg=325&act=delete&id={$grid['id_controle']}\"><img title=\"Remover\" src=\"imgSite/trash.png\" width=\"16px\"></a></td>";
}
$linha .= "</tr>";
}
return $linha;
}
function ___GetDeleteReg($conexao, $id) {
$query = "DELETE FROM controle_atualizacao WHERE id_controle = $id";
pg_query($conexao, $query);
___GetErrorPG($conexao);
return "Registro foi exluido com sucesso!";
}
function ___GetErrorPG($conexao) {
if (pg_last_error($conexao)) {
throw new Exception('Não foi possível realizar consulta!');
}
}
function ___GetChanceLog() {
$arquivo = '/var/www/html/aplicativo/audio/CHANGELOG.txt';
if ($_SESSION['SSDadosChangelog']) {
$log .= "Changelog - Simples IP - " . date('d/m/Y') . PHP_EOL;
$log .= "Diante deste documento consta as correções/alterações/ajuestes e afins ocorridos nas versões correntes do sistema.". PHP_EOL;
$log .= "___________________________________________________________________________________________________________________" . PHP_EOL;
foreach ($_SESSION['SSDadosChangelog'] as $value) {
$log .= PHP_EOL . "Módulo: {$value['modulo_controle']}" . PHP_EOL;
$log .= "Versão: {$value['versao_controle']}" . PHP_EOL;
$log .= "Tipo: {$value['tipo_controle']}" . PHP_EOL;
$string = strip_tags(html_entity_decode($value['descricao_controle']), '<p>');
$string = preg_replace("~<p>~", "|||", $string);
$str = strip_tags($string);
$log .= "Descrição: ";
$log .= str_replace('|||', PHP_EOL, $str) . PHP_EOL;
$log .= "Autor: {$value['autor_controle']} " . PHP_EOL;
$log .= sprintf("Registrado: %s",date('d/m/Y H:i:s', strtotime($value['data_controle']))) . PHP_EOL;
}
ob_end_clean();
ob_start();
$handle = fopen($arquivo, 'w');
fwrite($handle, html_entity_decode($log));
fclose($handle);
header('HTTP/1.1 200 OK');
header('Content-Description: File Transfer');
header('Content-Transfer-Encoding: binary');
header(sprintf("Content-type: %s", GetMimeContentType('CHANGELOG.txt')));
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=CHANGELOG.txt");
header('Content-length: ' . filesize($arquivo));
header('Connection: close');
readfile($arquivo);
unlink($arquivo);
ob_flush();
exit(0);
}
}