PABX da Simples IP
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

<?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);
?>