forked from SimplesIP/pabx-app
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
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); |
|
} |
|
} |
|
|