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.
200 lines
6.7 KiB
200 lines
6.7 KiB
<?php |
|
|
|
/* |
|
* Arquivo de template para o formulário. |
|
*/ |
|
$nomeTpl = 'cadastros/backup/bkpDestinoCad.tpl'; |
|
|
|
/* |
|
* Layout para formulario. |
|
*/ |
|
$tpLayout = 1; |
|
$dataAtu = date('d/m/Y'); |
|
$erro = 0; |
|
$msg = 'Novo Destino'; |
|
$login = GetLogin(); |
|
$trasaction = 0; |
|
|
|
/* |
|
* Representa os campos da tabela "pbx_backup_destino" e valores default. |
|
*/ |
|
$fields = array("dst_id" => 0, "prt_id" => "1", "dst_nome" => "", "dst_host" => "", "dst_porta" => "0", "dst_user_anonimo" => "2", "dst_user" => "", "dst_senha" => "", "dst_diretorio_remoto" => "", "user_reg" => "$login", "acaoUser" => FORM_INSERT); |
|
try { |
|
/* |
|
* Alimenta os campos do array $field com valores de uma requisição get ou post. |
|
*/ |
|
foreach ($_REQUEST as $key => $value) { |
|
if (array_key_exists($key, $fields)) { |
|
$fields[$key] = trim($value); |
|
} |
|
} |
|
|
|
/* |
|
* Botao gravar foi pressionado. |
|
*/ |
|
if (isset($_POST['btGravar'])) { |
|
/* |
|
* Validacao da submissao do formulario. |
|
*/ |
|
if (!$fields["dst_nome"]) { |
|
GeraExcept("O \"Nome\" é um campo obrigatório!"); |
|
} |
|
|
|
if (($fields["acaoUser"] == FORM_INSERT)) { |
|
if (RegistroInc($dbcon, sprintf("select count(*) from pbx_backup_destino where upper(dst_nome) = upper(%s)", QuotedStr($fields["dst_nome"])))) { |
|
GeraExcept(sprintf("O Nome: \"%s\" já esta cadastrado!", $fields["dst_nome"])); |
|
} |
|
|
|
/* |
|
* Prepara o insert para o banco de dados. |
|
*/ |
|
$query = "insert |
|
into pbx_backup_destino |
|
( prt_id,dst_nome,dst_host,dst_porta,dst_user_anonimo, dst_user,dst_senha, dst_diretorio_remoto, user_reg, data_reg ) |
|
values ( {prt_id},{dst_nome},{dst_host},{dst_porta},{dst_user_anonimo},{dst_user},{dst_senha},{dst_diretorio_remoto},{user_reg}, now() )"; |
|
|
|
foreach ($fields as $key => $value) { |
|
$query = str_replace("{" . $key . "}", QuotedStr($value), $query); |
|
} |
|
|
|
/* |
|
* Inicia uma transacao com o banco de dados. |
|
*/ |
|
if (!pg_query($dbcon, 'begin')) { |
|
GeraExcept("Não foi possível iniciar a operação!"); |
|
} |
|
$trasaction = 1; |
|
|
|
/* |
|
* Executa a query de insert. |
|
*/ |
|
$result = pg_query($dbcon, $query); |
|
if (!$result) { |
|
GeraExcept("Não foi possível iserir o registro na base de dados!"); |
|
} |
|
|
|
/* |
|
* Finaliza uma transacao com o banco de dados. |
|
*/ |
|
if (!pg_query($dbcon, 'commit')) { |
|
GeraExcept("Não foi possível finalizar a operação!"); |
|
} |
|
|
|
/* |
|
* Mensagem de operacao realizada. |
|
*/ |
|
$msg = "Registro inserido com sucesso!"; |
|
|
|
/* |
|
* Recupera a ultima sequencia para a sessao atual. |
|
*/ |
|
$fields["dst_id"] = GetSequenciaDb($dbcon, 'pbx_backup_destino_dst_id_seq'); |
|
|
|
/* |
|
* Altera a acao do registro. |
|
*/ |
|
$fields["acaoUser"] = FORM_UPDATE; |
|
} else { |
|
/* |
|
* Inicia uma transacao com o banco de dados. |
|
*/ |
|
if (!pg_query($dbcon, 'begin')) { |
|
GeraExcept("Não foi possível iniciar a operação!"); |
|
} |
|
$trasaction = 1; |
|
|
|
/* |
|
* Prepara o update para o banco de dados. |
|
*/ |
|
$query = "update pbx_backup_destino |
|
set dst_host = {dst_host}, |
|
dst_porta = {dst_porta}, |
|
dst_user_anonimo = {dst_user_anonimo}, |
|
dst_user = {dst_user}, |
|
dst_senha = {dst_senha}, |
|
dst_diretorio_remoto = {dst_diretorio_remoto} |
|
where dst_id = {dst_id} "; |
|
|
|
foreach ($fields as $key => $value) { |
|
$query = str_replace("{" . $key . "}", QuotedStr($value), $query); |
|
} |
|
|
|
/* |
|
* Atualiza o registro. |
|
*/ |
|
$result = pg_query($dbcon, $query); |
|
if (!$result) { |
|
GeraExcept("Não foi atualizar o destino na base de dados!"); |
|
} |
|
|
|
/* |
|
* Finaliza uma transacao com o banco de dados. |
|
*/ |
|
if (!pg_query($dbcon, 'commit')) { |
|
GeraExcept("Não foi possível finalizar a operação!"); |
|
} |
|
$msg = "Destino atualizado com sucesso!"; |
|
} |
|
|
|
/* |
|
* Recarrega o formulario de consulta. |
|
*/ |
|
$jsStartup[] = "window.opener.ResetForm(); window.close();"; |
|
} else if ($fields["acaoUser"] == FORM_UPDATE) { |
|
/* |
|
* Carrrega informacoes do registro a partir do bando de dados. |
|
*/ |
|
$dstId = $fields["dst_id"]; |
|
$query = "select a.dst_id, a.dst_nome, a.dst_host, a.dst_porta,a.dst_user, a.dst_senha, a.dst_diretorio_remoto, |
|
a.dst_user_anonimo, a.prt_id, b.prt_descricao |
|
from pbx_backup_destino a, pbx_backup_protocolo b |
|
where b.prt_id = a.prt_id |
|
and a.dst_id = $dstId |
|
order by 2"; |
|
$result = pg_query($dbcon, $query); |
|
if (!$result || !pg_num_rows($result)) { |
|
GeraExcept("Não foi possível localizar o registro na base de dados!"); |
|
} |
|
|
|
/* |
|
* Alimenta o array $fields com os valores recuperados do banco. |
|
*/ |
|
$row = pg_fetch_array($result); |
|
foreach ($row as $key => $value) { |
|
$fields[$key] = $value; |
|
} |
|
$msg = "cadastro do destino editado com sucesso!"; |
|
} |
|
} catch (Exception $ex) { |
|
$erro++; |
|
|
|
/* |
|
* Rollback no banco qdo uma transacao em curso. |
|
*/ |
|
if ($trasaction) { |
|
pg_query($dbcon, 'rollback'); |
|
} |
|
|
|
/* |
|
* Mensagem para o usuario. |
|
*/ |
|
$msg = $ex->getMessage(); |
|
|
|
/* |
|
* Registra o erro para analise posterior no diretorio de log. |
|
*/ |
|
GravaLogApl(array($msg, sprintf("Cmd: %s", $query), sprintf("Sys: %s", GetLasterror())), 'backup', GetLogin()); |
|
} |
|
|
|
/* |
|
* Atualiza o formulario com os dados retornados do banco ou da submissao do formulario. |
|
*/ |
|
foreach ($fields as $key => $value) { |
|
$smarty->assign($key, $value); |
|
} |
|
$smarty->assign("formUpdate", FORM_UPDATE); |
|
$smarty->assign("acaoUser", $fields["acaoUser"]); |
|
$smarty->assign("msg", $msg); |
|
$smarty->assign("erro", $erro); |
|
GetTemplate($smarty, $nomeTpl); |
|
?>
|
|
|