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.

403 lines
19 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="admin/css/validationEngine.jquery.css" type="text/css" media="screen" title="no title" charset="ISO-8859-1" />
<script type="text/javascript" src="admin/js/jquery-1.4.js"></script>
<script type="text/javascript" src="admin/js/jquery.blockUI.js?v2.29"></script>
<script src="admin/js/jquery.min.js" type="text/javascript"></script>
<script src="admin/js/jquery.validationEngine.js" type="text/javascript"></script>
<script src="admin/js/jquery.validationEngine-en.js" type="text/javascript"></script>
<script src="admin/js/pbxAjax.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$("#form1").validationEngine({
sucess: function() {
document.form1.submit();
},
failure: function() {}
})
});
function Copia() {
var relacao = document.getElementById("relacao");
j = relacao.length;
for (var i = 0; i < j; i++) {
if (relacao.options[i].value == document.form1.numeros.value) {
var passa = false;
alert('NÚMERO JÁ ESTÁ NA RELAÇÃO!');
return false;
} else {
var passa = true;
}
}
if (j == 0) {
var passa = true;
}
if (passa == true) {
var x = document.getElementById("relacao"); //retorna o objeto select
var options = x.getElementsByTagName("option"); //pega a lista de options do select
var y = document.createElement('option'); //cria um novo elemento option
y.text = document.form1.numeros.value;
y.value = document.form1.numeros.value;
document.form1.numeros.value = '';
try {
x.add(y, null); // adiciona um novo option no fim da lista para navegadores complacentes
} catch (ex) {
x.add(y); // adiciona um novo option no fim da lista para o IE
}
}
}
function _remove() {
var relacao = document.getElementById("relacao");
j = relacao.length;
for (var i = 0; i < j; i++) {
if (relacao.options[i].selected) {
document.form1.numeros.value = relacao.options[i].value;
relacao.options[i] = null;
}
}
}
function marca_todos() {
var relacao = document.getElementById("relacao");
for (var i = 0; i < relacao.length; i++) {
relacao.options[i].selected = true;
}
}
</script>
<link href="admin/css/forms.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif
}
.style5 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
body {
background-color: #EAEAEA;
}
-->
</style>
</head>
<body>
<?php
$acao = $_GET["acao"];
$acao2 = isset($_POST["acao2"]) ? "salva" : "";
$org_id = GetOrganizacao();
require_once("opcoes.php");
/*
* Parametros necessarios para manter a pagina<EFBFBD><EFBFBD>o.
*/
$param = sprintf('&numRamal=%s&pgn=%s&bloco=%s&pg=%s', $_REQUEST['numRamal'], $_REQUEST['pgn'], $_REQUEST['bloco'], $_REQUEST['pg']);
function salvarCallback($descricao, $opcaoDest, $acaoDest, $opcao1, $acao1, $ramalSaida, $tempoDesligamento, $org_id) {
global $dbcon;
if(AcoesExist($dbcon, $opcaoDest, $acaoDest) === false && AcoesExist($dbcon, $opcao1, $acao1) === false ) {
return false;
}
$to_asterisk = Acoes_asterisk($dbcon, $opcaoDest, $acaoDest);
$to_asterisk_1 = Acoes_asterisk($dbcon, $opcao1, $acao1);
pg_query($dbcon, "begin");
$try_query = "INSERT INTO pbx_callback( descricao, opcao, acao, opcao1, acao1,ramal_saida, tempo_desligamento, org_id, acao_asterisk, acao1_asterisk, ramal_saida_asterisk)
VALUES ('$descricao', '$opcaoDest', '$acaoDest', '$opcao1', '$acao1', '$ramalSaida', $tempoDesligamento, $org_id, $to_asterisk, $to_asterisk_1, $org_id$ramalSaida) RETURNING id";
$result_query = pg_query($dbcon, $try_query);
if(!$result_query){
pg_query($dbcon,"rollback");
return false;
}
$dados = pg_fetch_assoc($result_query);
$last_id = $dados["id"];
$update_query = "UPDATE pbx_callback set id_asterisk = $org_id$last_id WHERE id = $last_id AND org_id = $org_id";
$result_query = pg_query($dbcon, $update_query);
if(!$result_query){
pg_query($dbcon,"rollback");
return false;
}
CommandAsterisk2($dbcon, 'ORG_ID', "$org_id$last_id", $org_id);
CommandAsterisk2($dbcon, 'ORG_CALLBACK', "$org_id$last_id", "$last_id");
CommandAsterisk2($dbcon, 'TIPO', "$org_id$last_id", "CALLBACK");
CommandAsterisk2($dbcon, 'NOME_APP', "$org_id$last_id", "$descricao");
CommandAsterisk2($dbcon, 'NUMERO', "$org_id$last_id", "$org_id$last_id");
CommandAsterisk2($dbcon, 'ID_APP', "$org_id$last_id", "$last_id");
pg_query($dbcon,'commit');
//Retorna last_id para que seja adicionado os modelos vinculados a este ID
return $last_id;
}
if ($acao2 == "salva") {
try {
$id = $_POST["id"];
$tempoDesligamento = $_POST["tempo_desligamento"];
$descricao = RemoveAcentos($_POST["descricao"], true);
$opcaoDest = trim($_POST["opcaoDest"]);
$acaoDest = trim($_POST["acaoDest"]);
$opcao1 = trim($_POST["opcao1"]);
$acao1 = trim($_POST["acao1"]);
$numeros = $_POST["numeros"];
$ramalSaida = $_POST["ramal_saida"];
if ($acao == "inseri") {
//Faz os procedimentos do salvarAsterisk e retorna para o script o valor do ultimo ID adicionado
$last_id = salvarCallback($descricao, $opcaoDest, $acaoDest, $opcao1, $acao1, $ramalSaida, $tempoDesligamento, $org_id);
} else if ($acao == "edita") {
//REALIZA BACKUP BO BANCO
//@backup($dbcon,'pbx_callback','U',$id,'update','CALLBACK');
$to_asterisk = Acoes_asterisk($dbcon, $opcaoDest, $acaoDest);
$to_asterisk_1 = Acoes_asterisk($dbcon, $opcao1, $acao1);
$query = "UPDATE pbx_callback
SET descricao = '$descricao',
opcao = '$opcaoDest',
acao = '$acaoDest',
opcao1 = '$opcao1',
acao1 = '$acao1',
ramal_saida = '$ramalSaida',
tempo_desligamento = $tempoDesligamento,
id_asterisk = $org_id$id,
acao_asterisk = '$to_asterisk',
acao1_asterisk = '$to_asterisk_1',
ramal_saida_asterisk = $org_id$ramalSaida
WHERE id = '$id'
AND org_id = $org_id";
pg_query($dbcon, $query);
$query = "delete from pbx_callback_numeros where id_callback = '$id' and org_id = $org_id";
pg_query($dbcon, $query);
}
$numeros = $_POST["relacao"];
for ($i = 0; $i < count($numeros); $i++) {
if ($acao == "edita") {
$idx = $id;
} else {
$idx = $last_id;
}
$numero = QuotedStr($numeros[$i]);
$query = "insert into pbx_callback_numeros (id_callback,numero, org_id) values ($idx, $numero, $org_id)";
pg_query($dbcon, $query);
} //gera arquivos e executa o reload dos dados no asterisk
gera_arquivos($dbcon, 'CALLBACK');
PbxFechaPopup('index.php?idProg=10020&pbxRequest=1$param&acao=$acao');
} catch (Exception $ex) {
PbxFechaPopup('index.php?idProg=10020&pbxRequest=1$param&acao=$acao');
}
}
if ($acao == "edita") {
$id = isset($_GET["id"]) ? $_GET["id"] : $_POST["id"];
$query = "SELECT * FROM pbx_callback WHERE id='$id' AND org_id = $org_id";
$result = pg_query($dbcon, $query);
$dados = pg_fetch_array($result);
}
if ($dados) {
$id = $dados["id"];
$tempoDesligamento = $dados["tempo_desligamento"];
$descricao = $dados["descricao"];
$opcaoDest = $dados["opcao"];
$acaoDest = $dados["acao"];
$opcao1 = $dados["opcao1"];
$acao1 = $dados["acao1"];
$ramalSaida = $dados["ramal_saida"];
}
?>
<link href="admin/css/forms.css" rel="stylesheet" type="text/css">
<form name="form1" method="post" action="index.php?idProg=11020&pbxRequest=1&acao=<?= $acao . $param; ?>" id="form1">
<table border="1" align="center" cellpadding="0" cellspacing="0" class="tabela">
<tr bordercolor="#EAEAEA" bgcolor="#EAEAEA" class="cabecalho" background="img/button03.gif">
<td>
<div align="center">CADASTRO DE CALLBACK
<input name="id" type="hidden" id="id" value="<?= ($acao == 'edita') ? $id : null; ?>" />
</div>
</td>
</tr>
<tr bordercolor="#EAEAEA" bgcolor="#EAEAEA">
<td bgcolor="#EAEAEA" class="labels">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<fieldset>
<legend class="labels">Descri&ccedil;&atilde;o:</legend>
<input name="descricao" type="text" class="validate[required,length[0,100]] caixas" id="descricao2" value="<?= ($acao == 'edita') ? $descricao : null; ?>" size="40" />
</fieldset>
</td>
<td>
<fieldset>
<legend class="labels">Ramal Saida:</legend>
<select class="validate[required] caixas" name="ramal_saida" id="ramal_saida">
<option value="" <?= $ramalSaida ? "selected=\"selected\"" : ""; ?>>----------</option>
<?php
$query = "select nome from pbx_ramais where org_id = {$org_id} order by nome";
$result = pg_query($dbcon, $query);
while ($row = pg_fetch_row($result)) {
$nome = $row[0];
$sel = $ramalSaida == $nome ? "selected=\"selected\"" : "";
echo "<option value=\"$nome\" $sel>$nome</option>\n";
}
?>
</select>
</fieldset>
</td>
</tr>
</table>
</td>
</tr>
<tr bordercolor="#EAEAEA" bgcolor="#EAEAEA">
<td class="labels">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<fieldset>
<legend class="labels">Tempo de Desligamento:</legend>
<input name="tempo_desligamento" type="text" class="caixas" id="tempo_desliga" value="<?= ($tempoDesligamento ? $tempoDesligamento : 1); ?>" size="5" />
</fieldset>
</td>
</tr>
</table>
</td>
</tr>
<tr bordercolor="#EAEAEA" bgcolor="#EAEAEA">
<td class="labels">
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="tabela">
<tr>
<td width="37%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<fieldset>
<legend class="labels">N&uacute;meros:</legend>
<input name="numeros" type="text" class="caixas" id="numeros" value="" size="20" />
</fieldset>
</td>
</tr>
</table>
</td>
<td width="18%" align="center" valign="middle">
<div align="center">
<input name="Submit3" type="button" class="caixas" value="&gt;" onclick="Copia();" />
<br />
<input name="Submit4" type="button" class="caixas" value="&lt;" onclick="_remove();" />
</div>
</td>
<td width="45%">
<div align="center">
<fieldset>
<legend class="labels">N&uacute;meros Cadastrados:</legend>
<div align="center">
<select name="relacao[]" size="10" multiple="multiple" class="validate[required] caixas" id="relacao">
<?php
if ($acao == 'edita') {
$query2 = "select id, id_callback, numero as numeros from pbx_callback_numeros where org_id = {$org_id} and id_callback='$id' order by id desc";
$result2 = pg_query($dbcon, $query2);
while ($dados2 = pg_fetch_array($result2)) {
?>
<option value="<?= $dados2['numeros'] ?>"><?= $dados2['numeros'] ?></option>
<?php
}
}
?>
</select>
</div>
</fieldset>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr class="labels" bordercolor="#EAEAEA" bgcolor="#EAEAEA">
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="left">
<fieldset>
<legend class="labels">A&ccedil;&atilde;o Caso Combine :</legend>
<select name="opcaoDest" class="caixas" id="opcaoDest" onchange="ajaxComboBox('admin/popula.php?id=<?php echo $acaoDest; ?>', 'acaoDest', 'opcaoDest', '<?php echo $acaoDest; ?>');">
<?php
$opcao = $opcaoDest;
include_once("admin/opcoes.php");
echo _GetOpcoes($dbcon, $opcao);
?>
</select>
<select name="acaoDest" class="caixas" id="acaoDest">
<?= ($acao == 'edita' && !empty($opcaoDest)) ? GetAcaoAlt($dbcon, $opcaoDest, $acaoDest) : null; ?>
</select>
</fieldset>
</div>
</td>
<td>
<div align="left">
<fieldset>
<legend class="labels">A&ccedil;&atilde;o Caso n&atilde;o Combine :</legend>
<select name="opcao1" class="caixas" id="opcao1" onchange="ajaxComboBox('admin/popula.php?id=<?= $acao1; ?>', 'acao1', 'opcao1', '<?= $acao1; ?>');">
<?php
$opcao = $opcao1;
include_once("admin/opcoes.php");
echo _GetOpcoes($dbcon, $opcao);
?>
</select><select name="acao1" class="caixas" id="acao1">
</select>
</fieldset>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr bordercolor="#EAEAEA" bgcolor="#EAEAEA">
<td>
<div align="center">
<span class="style1"></span>
<span class="style1"></span>
<span class="style1"></span>
<span class="style1">
<input name="Submit2" type="button" class="labels" value="Fechar" id="btfechar" onclick="fecha_popup();">
<input name="acao2" type="submit" class="labels" id="acao2" onclick="marca_todos();" value="Salvar">
</span>
</div>
</td>
</tr>
</table>
<?php if ($acao == 'edita') { ?>
<script>
ajaxComboBox2('admin/popula.php?id=<?= $acao1; ?>', 'acao1', 'opcao1');
</script>
<?php } ?>
</form>