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.
 
 
 
 
 
 

255 lines
9.4 KiB

<?php
/*
* Arquivo de template para o formulário.
*/
$nomeTpl = "cadastros/backup/bkpConfigCad.htm";
/*
* Layout para formulario.
*/
$tpLayout = 1;
$dataAtu = date('d/m/Y');
$erro = 0;
$msg = 'Nova Configuração para "Backup"!';
$login = GetLogin();
/*
* Indique o nome do sistema, este nome será usado para compor mensagens ao usuários.ex:
* $nomeProg = "Cliente";
* $msg = "Não foi possível excuir o $nomeProg selecionado!";
*/
$nomeProg = "\"Configuração\"";
/*
* Titulo para o formulario.
*/
$tituloFormulario = "Backup/Configurações";
/*
* Nome da tabela onde sera feito o insert, so deve ser informado se hover um campo autoinc.
*/
$tableName = 'pbx_backup_configuracao';
/*
* Indique o nome do campo que representa a chave primaria na tabela ou outro uniquekey que possa
* ser usado para editar um excluir um registro.
*/
$nomeRegId = 'cfg_id';
$regId = $_FORMS[$nomeRegId];
/*
* Representa os campos da tabela e variaves de formulario.
* ex.: $fields = array("dst_id" => 0, "prt_id" => "1", "dst_nome" => "");
*/
$fields = array("cfg_id" => "0", "cfg_descricao" => "", "dst_id" => "-1", "cfg_destino_desc" => "",
"tp_id" => "0", "frq_id" => "0", "qt_id" => "0", "cfg_deleta_antigo" => "3", "cfg_email" => "",
"cfg_status" => "1", "user_reg" => "$login", "acaoUser" => "0");
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);
}
}
if (IsPostBack() and isset($_POST['btGravar'])) {
$dst_id = $fields[$nomeRegId];
$desc = trim($fields["cfg_descricao"]);
$query = "select count(*) from pbx_backup_configuracao where cfg_descricao = '$desc' and cfg_id <> '$regId'";
if (!$fields["cfg_descricao"])
throw new Exception("O \"Nome\" é um campo obrigatório!");
if ($fields["dst_id"] == -1)
throw new Exception("\"Destino\" é um campo obrigatório!");
if (!$fields["tp_id"])
throw new Exception("\"Tipo\" é um campo obrigatório!");
if (!$fields["frq_id"])
throw new Exception("\"Frequência\" é um campo obrigatório!");
if (!$fields["qt_id"])
throw new Exception("\"Agendamento\" é um campo obrigatório!");
if (!soNumero($fields["cfg_deleta_antigo"]))
throw new Exception("O \"Parametro para Exclusão\" é um campo obrigatório!");
if (RegistroInc($dbcon, $query))
throw new Exception("O Nome \"$desc\" esta cadastrado!");
if (($fields["acaoUser"] == FORM_INSERT) && (!$dst_id)) {
/*
* Componha a query para insert com base no modelo abaixo. Lembrando
* que as variavesi passadas por post dever estar de acordo com os
* nomes de campos da tabela corrspondente.
*/
$query = "insert
into pbx_backup_configuracao
(cfg_descricao, dst_id, cfg_destino_desc, tp_id, frq_id, qt_id, cfg_deleta_antigo, cfg_email, cfg_status, data_reg, user_reg)
values ({cfg_descricao}, {dst_id}, {cfg_destino_desc}, {tp_id}, {frq_id}, {qt_id}, {cfg_deleta_antigo}, {cfg_email}, {cfg_status}, now(), {user_reg})";
foreach ($fields as $key => $value)
$query = str_replace("{" . $key . "}", QuotedStr($value), $query);
$result = pg_query($dbcon, $query);
$er = pg_errormessage($dbcon);
if (!$result)
throw new Exception("Não foi possível iserir a $nomeProg na base de dados!");
$msg = "$nomeProg inserido com sucesso!";
if ($tableName)
$fields[$nomeRegId] = GetCurrVal($tableName);
}
else {
$query = "update pbx_backup_configuracao
set cfg_descricao={cfg_descricao},
dst_id={dst_id},
cfg_destino_desc={cfg_destino_desc},
tp_id={tp_id},
frq_id={frq_id},
qt_id={qt_id},
cfg_deleta_antigo={cfg_deleta_antigo},
cfg_email={cfg_email},
cfg_status={cfg_status}
where cfg_id={cfg_id}";
foreach ($fields as $key => $value)
$query = str_replace("{" . $key . "}", QuotedStr($value), $query);
$result = pg_query($dbcon, $query);
if (!$result)
throw new Exception("Não foi atualizar atualizar o $nomeProg na base de dados!");
$msg = "$nomeProg atualizado com sucesso!";
}
$jsStartup[] = "window.opener.ResetForm();";
}
else if (!IsPostBack() && ($fields["acaoUser"] == FORM_UPDATE)) {
$query = "select cfg_id,cfg_descricao,dst_id,cfg_destino_desc,tp_id,frq_id,qt_id,cfg_deleta_antigo,cfg_email,cfg_status from pbx_backup_configuracao where $nomeRegId = $regId order by 2";
$result = pg_query($dbcon, $query);
if (!$result)
throw new Exception("Não foi possível consutar o $nomeProg na base de dados!");
if (!pg_num_rows($result))
throw new Exception("$nomeProg não localizado na base de dados!");
$row = pg_fetch_array($result);
foreach ($row as $key => $value)
$fields[$key] = $value;
$msg = "Cadastro de $nomeProg alterado com sucesso!";
$jsStartup[] = "window.opener.ResetForm();";
}
} catch (Exception $ex) {
$erro++;
$msg = $ex->getMessage();
}
$lita_frquencias = GetBkpFrequencia($dbcon, $fields["frq_id"], $fields["tp_id"]);
$lita_agendamentos = GetBkpAgendamento($dbcon, $fields["frq_id"], $fields["qt_id"]);
$lita_tipos = GetBkpTipo($dbcon, $fields["tp_id"]);
$lista_destinos = GetBkpDestino($dbcon, $fields["dst_id"], $fields["tp_id"]);
if (!$fields["frq_id"])
$msgBkp = "(Tempo ou quantidade de arquivos devem ser mantidos no servidor!)";
else if ($fields["frq_id"] == 1)
$msgBkp = "(Indique o tempo em dias que deseja manter arquivos antigos!)";
else if ($fields["frq_id"] == 2)
$msgBkp = "(Indique o número de arquivos antigos que deseja manter no servidor!)";
foreach ($fields as $key => $value)
$smarty->assign($key, $value);
$smarty->assign("tituloFormulario", $tituloFormulario);
$smarty->assign("nomeRegId", $nomeRegId);
$smarty->assign("regId", $regId);
$smarty->assign("lita_frquencias", $lita_frquencias);
$smarty->assign("lita_agendamentos", $lita_agendamentos);
$smarty->assign("lita_tipos", $lita_tipos);
$smarty->assign("lista_destinos", $lista_destinos);
$smarty->assign("msg", $msg);
$smarty->assign("erro", $erro);
$smarty->assign("msgBkp", $msgBkp);
GetTemplate($smarty, $nomeTpl);
function GetBkpFrequencia($db, $id, $tp_id) {
$retAudio = $tp_id == 1 ? "where frq_id = '1'" : "";
if (!$id) {
$sel = "selected";
}
$item = "<option value=\"0\" $sel>------------</option>";
$query = "select frq_id as id, frq_descricao as desc from pbx_backup_frequencia $retAudio order by 2";
$result = pg_query($db, $query);
while ($row = pg_fetch_array($result)) {
$spid = $row["id"];
$desc = $row["desc"];
if ($spid == $id)
$sel = "selected";
else
$sel = "";
$item .= "<option value=\"$spid\" $sel>$desc</option>";
}
return $item;
}
function GetBkpAgendamento($db, $frq_id, $id) {
if (!$id) {
$sel = "selected";
}
$item = "<option value=\"0\" $sel>------------</option>";
$query = "select qt_id as id, qt_descricao as desc from pbx_backup_frequencia_qtde where frq_id = '$frq_id' order by 1";
$result = pg_query($db, $query);
while ($row = pg_fetch_array($result)) {
$spid = $row["id"];
$desc = $row["desc"];
if ($spid == $id)
$sel = "selected";
else
$sel = "";
$item .= "<option value=\"$spid\" $sel>$desc</option>";
}
return $item;
}
function GetBkpTipo($db, $id) {
if (!$id) {
$sel = "selected";
}
$item = "<option value=\"0\" $sel>------------</option>";
$query = "select tp_id as id, tp_desc as desc from pbx_backup_tipo order by 2";
$result = pg_query($db, $query);
while ($row = pg_fetch_array($result)) {
$spid = $row["id"];
$desc = $row["desc"];
if ($spid == $id)
$sel = "selected";
else
$sel = "";
$item .= "<option value=\"$spid\" $sel>$desc</option>";
}
return $item;
}
function GetBkpDestino($db, $id, $tp) {
if (!$id) {
$sel = "selected";
}
$item = "<option value=\"-1\" $sel>------------</option>";
$compl = $tp == 1 ? " where dst_id <> 0 " : " ";
$query = "select dst_id as id, dst_nome as desc from pbx_backup_destino $compl order by 2";
$result = pg_query($db, $query);
while ($row = pg_fetch_array($result)) {
$spid = $row["id"];
$desc = $row["desc"];
if ($spid == $id)
$sel = "selected";
else
$sel = "";
$item .= "<option value=\"$spid\" $sel>$desc</option>";
}
return $item;
}
?>