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.

157 lines
4.9 KiB

<?php
/*
* Arquivo de template para o formul<EFBFBD>rio.
*/
$nomeTpl = "cadastros/backup/bkpManual.htm";
/*
* Layout para formulario.
*/
$tpLayout = 1;
$dataAtual = isset($_POST['dataBakup']) ? $_POST['dataBakup'] : date("d/m/Y");
$erro = 0;
$msg = 'Nova Configura<EFBFBD><EFBFBD>o para "Backup"!';
$login = GetLogin();
$download_diferencial = isset($_POST['download_diferencial']) ? $_POST['download_diferencial'] : '0';
$janH = 220;
/*
* Indique o nome do sistema, este nome ser<EFBFBD> usado para compor mensagens ao usu<EFBFBD>rios.ex:
* $nomeProg = "Cliente";
* $msg = "N<EFBFBD>o foi poss<EFBFBD>vel excuir o $nomeProg selecionado!";
*/
$nomeProg = "\"Configura<EFBFBD><EFBFBD>o\"";
/*
* Titulo para o formulario.
*/
$tituloFormulario = "Backup Manual";
/*
* Nome da tabela onde sera feito o insert, so deve ser informado se hover um campo autoinc.
*/
$tableName = 'pbx_backup';
/*
* 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 = 'bkp_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("bkp_id" => "0", "tp_id" => "0");
/*
* Data atual
*/
$dataAtualBD = date('Y-m-d');
$msgBkp = $msgErroDisp = "Erro ao realizar o backup Manual!";
try {
/*
* Alimenta os campos do array $field com valores de uma requisi<EFBFBD><EFBFBD>o get ou post.
*/
foreach ($_REQUEST as $key => $value) {
if (array_key_exists($key, $fields)) {
$fields[$key] = trim($value);
}
}
if (isset($_POST["btConsulta"])) {
$tpId = $fields["tp_id"];
if ($tableName) {
$fields[$nomeRegId] = GetCurrVal($tableName);
}
$jsStartup[] = "window.opener.ResetForm();";
$jsStartup[] = "window.setTimeout(\"Close()\", 5000);";
if (!$tpId) {
throw new Exception("Informe o \"Tipo\"!");
}
if (($tpId == 1) && (soNumero($dataAtual) != '') && (!is_date($dataAtual))) {
throw new Exception("Data informada inv<EFBFBD>lida!");
}
$dataBkp = date("d/m/Y");
$dataBkp = (soNumero($dataAtual) ? FormatDtMssql($dataAtual) : FormatDtMssql($dataBkp));
$result = '';
$ret = array();
$cmd = sprintf("/var/lib/asterisk/scripts/backup/backup.php %s %s %s %s %s %s", "manual", $fields["tp_id"], $download_diferencial, $dataBkp, GetLogin(), $_ENV['env']);
exec($cmd, $ret, $result);
$msgErro = implode($ret);
if (($tpId == 1) && StringClass::ContemTexto($msgErro, "existem arquivos para realizar")) {
$msgBkp = $msgErroDisp = "N<EFBFBD>o existem arquivos dispon<EFBFBD>veis ou j<EFBFBD> foram descarregados!";
throw new Exception($msgErroDisp);
}
if (!StringClass::ContemTexto($msgErro, "Backup efetuado com sucesso") &&
StringClass::ContemTexto($msgErro, "Backup efetuado com erro")) {
$msgBkp = $msgErro;
throw new Exception($msgErro);
}
if (StringClass::ContemTexto($msgErro, "Backup efetuado com sucesso") &&
StringClass::ContemTexto($msgErro, "Backup efetuado com erro")) {
$msgBkp = $msgErro;
throw new Exception("Backup conclu<EFBFBD>do com sucesso mas nem todos foram conclu<EFBFBD>dos sem erro");
}
$msg = "Backup conclu<EFBFBD>do!";
if (StringClass::ContemTexto($msgErro, "Backup efetuado com sucesso") &&
!StringClass::ContemTexto($msgErro, "Backup efetuado com erro")) {
$msgBkp = $msg = "Backup Gerado com sucesso!";
}
}
} catch (Exception $ex) {
$erro++;
$msgBkp = $msg = $ex->getMessage();
}
$lita_tipos = GetBkpTipo($dbcon, $fields["tp_id"]);
foreach ($fields as $key => $value) {
$smarty->assign($key, $value);
}
$smarty->assign("tituloFormulario", $tituloFormulario);
$smarty->assign("nomeRegId", $nomeRegId);
$smarty->assign("regId", $regId);
$smarty->assign("tp_id", $fields["tp_id"]);
$smarty->assign("lita_tipos", $lita_tipos);
$smarty->assign("dataBakup", $dataAtual);
$smarty->assign("download_diferencial", $download_diferencial);
$smarty->assign("msg", $msg);
$smarty->assign("erro", $erro);
$smarty->assign("msgBkp", $msgBkp);
GetTemplate($smarty, $nomeTpl);
function GetBkpTipo($db, $id) {
$sel = '';
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;
}