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.
156 lines
4.9 KiB
156 lines
4.9 KiB
<?php |
|
|
|
/* |
|
* Arquivo de template para o formulá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çã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á 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 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çã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á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ão existem arquivos disponíveis ou já 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ído com sucesso mas nem todos foram concluídos sem erro"); |
|
} |
|
$msg = "Backup concluí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; |
|
}
|
|
|