|
|
<?php |
|
|
|
|
|
function GetDac($dbcon, $codDac, $disableb = "", $incTodos = 0, $soAtivo = 1, $incCampanha = 0, $matricula = 0, $useNull = 0, $valueUseNull = '', $useSelect = 1, $permTodos = 0) |
|
|
{ |
|
|
/* |
|
|
* Carrega lista de dacs disponivel |
|
|
* para ser inserdo entre as tags <select></select> |
|
|
*/ |
|
|
global $sZlistaDacs; |
|
|
|
|
|
$isAdm = (IsAdmin() && !$matricula); |
|
|
if ($isAdm) { |
|
|
$status = $soAtivo ? " and status = 'A' " : ""; |
|
|
} else { |
|
|
$status = $soAtivo ? " and d.status = 'A' " : ""; |
|
|
} |
|
|
|
|
|
$org_id = GetOrganizacao(); |
|
|
|
|
|
$idUser = !$matricula ? GetIdUser() : GetIdUserFromMatricula($dbcon, $matricula); |
|
|
$matricula = !$matricula ? GetMatricula() : $matricula; |
|
|
if (!$codDac && !IsPostBack()) { |
|
|
$codDac = GetDacPadraoAgente($dbcon); |
|
|
} |
|
|
|
|
|
if ($isAdm) { |
|
|
$query = "SELECT DISTINCT id, nome AS nome, 'Receptivo' AS tipo FROM pbx_queues_grupos d WHERE 1=1 AND org_id = $org_id " . ($soAtivo ? " and status = 'A' " : "") . " ORDER BY 2"; |
|
|
} else { |
|
|
$query = "SELECT DISTINCT d.id, d.nome, 'Receptivo' AS tipo, 'false' AS padrao |
|
|
FROM pbx_usuarios a, pbx_grupo_usuario b, pbx_fila_grupos c, pbx_dacs d |
|
|
WHERE b.user_id = a.id |
|
|
AND c.gp_id = b.gp_id |
|
|
AND d.id = c.id |
|
|
AND a.org_id = $org_id |
|
|
AND lower(a.matricula) = lower('$matricula') " . ($soAtivo ? " and d.status = 'A' " : "") . " order by 1, 2 "; |
|
|
} |
|
|
|
|
|
|
|
|
$sZ = isset($sZlistaDacs) ? "style=\"$sZlistaDacs\"" : ''; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
$prmTodos = ''; |
|
|
$x = 0; |
|
|
if ($permTodos) { |
|
|
$todos = pg_fetch_all($result); |
|
|
|
|
|
foreach ($todos as $dacs) { |
|
|
if ($x != 0) { |
|
|
$prmTodos .= "|"; |
|
|
} |
|
|
$prmTodos .= "{$dacs['id']}"; |
|
|
$x = 1; |
|
|
} |
|
|
} |
|
|
|
|
|
$codSel = $codDac; |
|
|
$dacs = $useSelect ? "<select name=\"listaDacs\" id=\"listaDacs\" size=\"1\" $sZ $disableb>" : ''; |
|
|
if ($incTodos && !$useNull) { |
|
|
$sel = $codSel == '0' ? "selected" : ""; |
|
|
$value = $prmTodos ? $prmTodos : '0'; |
|
|
$dacs .= "<option value=\"$value\" $sel>Todos</option>"; |
|
|
} |
|
|
|
|
|
if ($useNull) { |
|
|
$dacs .= "<option value=\"$valueUseNull\" selected>-------------------</option>"; |
|
|
} |
|
|
|
|
|
$cont = 0; |
|
|
$i = 0; |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$fila = GravaNomeOrganizacao($dados[1]); |
|
|
$dacs .= "<option value=\"$dados[0]\" $sel>$fila</option>"; |
|
|
$cont++; |
|
|
} |
|
|
if ((!$cont || !$i) && ($codSel != '0') && (!$useNull) && (!$incTodos)) |
|
|
$dacs .= "<option value=\"\" selected>-------------------</option>"; |
|
|
$dacs .= $useSelect ? "</select>" : ''; |
|
|
return $dacs; |
|
|
} |
|
|
|
|
|
function GetDacs($dbcon, $codDac, $disableb = "", $incTodos = 1, $soAtivo = 1) |
|
|
{ |
|
|
|
|
|
$org_id = GetOrganizacao(); |
|
|
$query = "SELECT DISTINCT id, nome as nome FROM pbx_queues_grupos WHERE org_id = $org_id " . ($soAtivo ? " AND status = 'A' " : "") . " ORDER BY 2"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
$codSel = $codDac; |
|
|
$dacs = "<select name=\"listaDacs\" id=\"listaDacs\" size=\"1\" $disableb>"; |
|
|
$sel = $codSel == '0' ? "selected" : ""; |
|
|
$dacs .= "<option value=\"0\" $sel>" . ($incTodos ? "TODOS" : '------------') . "</option>"; |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
$sel = ""; |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
} |
|
|
$fila = GravaNomeOrganizacao($dados[1]); |
|
|
$dacs .= "<option value=\"$dados[0]\" $sel>$fila</option>"; |
|
|
} |
|
|
|
|
|
$dacs .= "</select>"; |
|
|
return $dacs; |
|
|
} |
|
|
|
|
|
function GetEstrategiaDistribuicao($dbCon, $codEst) |
|
|
{ |
|
|
$query = 'select est_id, est_descricao from pbx_estrategia_distribuicao'; |
|
|
$result = pg_query($dbCon, $query); |
|
|
$codSel = $codEst; |
|
|
$reg = "<select name=\"cmp_estrategia_distribuicao\" id=\"cmp_estrategia_distribuicao\" size=\"1\" style=\"width:500px;\" >"; |
|
|
|
|
|
$reg .= "<option value=\"0\">--------------</option>"; |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$reg .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$reg .= "</select>"; |
|
|
return $reg; |
|
|
} |
|
|
|
|
|
function GetCombo($dbCon, $query, $codSel, $incTodos = true) |
|
|
{ |
|
|
$result = pg_query($dbCon, $query); |
|
|
|
|
|
$reg = "<select name=\"listaEstrategia\" id=\"listaEstrategia\" size=\"1\">"; |
|
|
if ($incTodos) |
|
|
$reg .= "<option value=\"0\">--------------</option>"; |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$reg .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$reg .= "</select>"; |
|
|
return $reg; |
|
|
} |
|
|
|
|
|
function GetDacAgente($dbcon, $idUser, $codDac, $disableb = "", $getDac = 0) |
|
|
{ |
|
|
/* |
|
|
* Carrega lista de dacs por usuarios |
|
|
* |
|
|
*/ |
|
|
$query = "select d.id, d.nome |
|
|
from pbx_usuarios a, pbx_grupo_usuario b, pbx_fila_grupos c, pbx_dacs d |
|
|
where b.user_id = a.id |
|
|
and c.gp_id = b.gp_id |
|
|
and d.id = c.id |
|
|
and a.id = '$idUser' "; |
|
|
/* $query = "select d.id, d.nome |
|
|
from pbx_dac_usuario u, pbx_dacs d |
|
|
where d.id = u.id_dac |
|
|
and u.id_usuario = $idUser"; |
|
|
* |
|
|
*/ |
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $codDac; |
|
|
$dacs = "<select name=\"listaDacAgente\" style=\"width:200px;\" id=\"listaDacAgente\" size=\"6\" $disableb>"; |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$dacs .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
if ($getDac) |
|
|
$_SESSION["SSdacTemp"][] = $dados[0]; |
|
|
} |
|
|
$dacs .= "</select>"; |
|
|
return $dacs; |
|
|
} |
|
|
|
|
|
function GetIdDacPadrao($dbcon, $idUser) |
|
|
{ |
|
|
$isAdm = (strtolower(GetLoginFromId($dbcon, $idUser)) == 'admin') && IsAdmin(); |
|
|
if ($isAdm) { |
|
|
$query = "select d.id, d.nome |
|
|
from pbx_dacs d |
|
|
where d.status = 'A' limit 1"; |
|
|
} else { |
|
|
$query = "select dac_padrao from pbx_usuarios where id = $idUser"; |
|
|
} |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
$ret = 0; |
|
|
if (pg_num_rows($result) > 0) { |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
} |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function SetIdDacPadrao($dbcon, $idUser) |
|
|
{ |
|
|
$query = "SELECT DISTINCT id_dac,nome_dac |
|
|
FROM pbx_usuarios a |
|
|
INNER JOIN pbx_usuarios_dacs b ON a.id = b.id_usuario |
|
|
INNER JOIN pbx_dacs c ON id_dac = c.id |
|
|
WHERE a.id = $idUser |
|
|
AND c.status = 'A' |
|
|
ORDER BY 1 |
|
|
LIMIT 1"; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_assoc($result); |
|
|
return $row['id_dac'] ? $row['id_dac'] : 0; |
|
|
} |
|
|
|
|
|
function GetLoginFromId($dbcon, $idUser) |
|
|
{ |
|
|
$query = "select apelido from pbx_usuarios where id = $idUser"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$ret = 0; |
|
|
if ($result && pg_num_rows($result)) { |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
} |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetNomeDacPadrao($dbcon, $idUser) |
|
|
{ |
|
|
$isAdm = !$idUser && IsAdmin(); |
|
|
if ($isAdm) { |
|
|
$query = "select d.id, d.nome |
|
|
from pbx_dacs d |
|
|
where d.status = 'A' limit 1"; |
|
|
} else { |
|
|
$query = "select b.id, b.nome from pbx_usuarios a, pbx_dacs b where b.id = a.dac_padrao and a.id = '$idUser' |
|
|
union |
|
|
select b.cmp_id as id, b.cmp_descricao as nome from pbx_usuarios a, pbx_campanha b where b.cmp_id = a.dac_padrao and a.id = '$idUser' "; |
|
|
} |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
$ret = ""; |
|
|
if (pg_num_rows($result) > 0) { |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[1]; |
|
|
} |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetDacDesc($dbcon, $id) |
|
|
{ |
|
|
$org_id = GetOrganizacao(); |
|
|
$idDac = (!isset($id) || empty(trim($id))) ? '0' : $id; |
|
|
$query = "SELECT d.nome FROM pbx_queues_grupos d WHERE id = $idDac AND org_id = $org_id;"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetPausa($dbcon, $mat, $verPausa = false) |
|
|
{ |
|
|
/* |
|
|
* Quando $verPausa <EFBFBD> definido como true indica que apenas queremos |
|
|
* nos certificar se o agente entrou em pausa. Quando a pausa <EFBFBD> ativa- |
|
|
* da pelo supervisor precisamos alimentar os parametro da sessao cor- |
|
|
* rente entao $verPausa <EFBFBD> definido como false. |
|
|
*/ |
|
|
$query = "SELECT count(*) FROM pbx_supervisor_agentes WHERE matricula = '$mat' AND upper(status) = 'PAUSA'"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = @pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
|
|
|
if ($verPausa && ($ret == 0)) { |
|
|
return false; |
|
|
} else if ($verPausa) { |
|
|
return true; |
|
|
} |
|
|
|
|
|
if ($ret > 0) { |
|
|
$query = "SELECT id, id_motivo_pausa |
|
|
FROM pbx_eventos_agentes a |
|
|
WHERE matricula = '$mat' |
|
|
AND entrada_pausa IS NOT NULL |
|
|
AND id = (SELECT max(id) FROM pbx_eventos_agentes WHERE matricula = a.matricula)"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$_SESSION[AGT_ID_PAUSA] = $row[0]; |
|
|
$_SESSION[AGT_EM_PAUSA] = 1; |
|
|
$_SESSION[AGT_PAUSA_MOTIVO] = $row[1]; |
|
|
return true; |
|
|
} |
|
|
return false; |
|
|
} |
|
|
|
|
|
function GetPausaDescricao($dbcon, $codigo) |
|
|
{ |
|
|
$query = "SELECT motivo FROM pbx_motivos_pausas WHERE id = '$codigo'"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
function GetDacCod($dbcon, $dac) |
|
|
{ |
|
|
$query = "SELECT d.id FROM pbx_dacs d WHERE upper(d.nome) = upper('$dac')"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetDacPadraoAgente($dbcon, $getId = true) |
|
|
{ |
|
|
$idUser = GetIdUser(); |
|
|
if (IsAdmin()) |
|
|
$query = "SELECT * FROM pbx_dacs a WHERE a.status = 'A' AND EXISTS(SELECT '' FROM pbx_fila_grupos WHERE id = a.id) ORDER BY 1 LIMIT 1"; |
|
|
else |
|
|
$query = "SELECT dac_padrao AS id_dac, b.nome FROM pbx_usuarios a, pbx_dacs b WHERE b.id = a.dac_padrao AND a.id = $idUser "; |
|
|
//echo $query; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = @pg_fetch_row($result); |
|
|
$ret = $getId ? $row[0] : $row[1]; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetSiteDesc($dbcon, $id) |
|
|
{ |
|
|
$query = "SELECT d.descricao FROM pbx_sites d WHERE id = $id"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetMotivo($dbcon, $codMotivo, $disableb = "", $incTodos = 0, $incTpPausa = 0) |
|
|
{ |
|
|
global $sZlistaMotivo; |
|
|
$org_id = GetOrganizacao(); |
|
|
|
|
|
/* |
|
|
* Carrega lista de pausas disponiveis por dac. |
|
|
*/ |
|
|
//$idMotivoLogin = isset($_SESSION["motivoLogin"]) ? $_SESSION["motivoLogin"] : GetMotivoLogin($dbcon); |
|
|
$idMotivoLogin = GetMotivoLogin($dbcon); |
|
|
|
|
|
/* |
|
|
* A pausa ausente <EFBFBD> colocada automaticamente pelo sistema, e nunca devera ser selecionada pelo usuario. |
|
|
*/ |
|
|
$motAusente = $disableb ? '' : " and upper(a.motivo) not in('AUSENTE', 'RECUSADA') "; |
|
|
|
|
|
/* |
|
|
* Se o usuario for admin libera todos os motivos. |
|
|
*/ |
|
|
$idUsuario = IsAdmin() ? ' b.user_id ' : GetIdUser(); |
|
|
|
|
|
/* |
|
|
* Se o agente estiver logado a variavel $_SESSION[AGT_PAUSA_MOTIVO] configurada.indica que esta em pausa. |
|
|
* so mostara a pausa login se o agente j<EFBFBD> estiver em pausa, pois esta pausa nunca deve ser setada manualmente. |
|
|
*/ |
|
|
$mot = isset($_SESSION[AGT_PAUSA_MOTIVO]) && ($_SESSION[AGT_PAUSA_MOTIVO] != $idMotivoLogin) ? " where id <> $idMotivoLogin" : "where 1=1 "; |
|
|
|
|
|
/* |
|
|
* a pausa de login <EFBFBD> adicionada na verifica<EFBFBD><EFBFBD>o pois n<EFBFBD>o pode ser atribuida manualmente para um grupo. |
|
|
*/ |
|
|
$query = "SELECT a.id, upper(a.motivo) AS motivo, a.produtiva FROM pbx_motivos_pausas a $mot $motAusente AND a.flag = 1 AND org_id = $org_id " . |
|
|
(UsePausaGrupo() ? "AND id IN( |
|
|
SELECT $idMotivoLogin |
|
|
UNION |
|
|
SELECT c.id FROM pbx_grupo a, pbx_grupo_usuario b, pbx_pausa_grupo_usuario c |
|
|
WHERE b.gp_id = a.gp_id |
|
|
AND c.gp_id = b.gp_id |
|
|
AND b.user_id = $idUsuario |
|
|
)" : "") . " ORDER BY a.motivo"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
$sel = ""; |
|
|
$codSel = $codMotivo; |
|
|
$sZ = isset($sZlistaMotivo) ? $sZlistaMotivo : "width:220px; height:26px"; |
|
|
$motivo = "<select name=\"listaMotivo\" id=\"listaMotivo\" style=\"$sZ\" size=\"1\" $disableb>"; |
|
|
if ($incTodos) { |
|
|
$sel = $codSel ? "" : "selected"; |
|
|
$motivo .= "<option value=\"0\" $sel>------------</option>"; |
|
|
} |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$codPausa = $dados[0]; |
|
|
$tpPausa = $dados[2]; |
|
|
$motivo .= sprintf("<option value=\"%s\" $sel>$dados[1]</option>", ($incTpPausa ? ("$codPausa|$tpPausa") : $codPausa)); |
|
|
} |
|
|
$motivo .= "</select>"; |
|
|
return $motivo; |
|
|
} |
|
|
|
|
|
function SetPbx($db, $idUser) |
|
|
{ |
|
|
// |
|
|
// Esta funcao retorna true se o usuario tiver algum menu ativado |
|
|
// para pbx |
|
|
$query = "select count(*) |
|
|
from pbx_grupo_usuario a, pbx_grupo_funcoes b, pbx_funcoes_menu_pbx c |
|
|
where b.gp_id = a.gp_id |
|
|
and c.fun_id = b.fun_id |
|
|
and a.user_id = $idUser"; |
|
|
|
|
|
|
|
|
$result = pg_query($db, $query); |
|
|
|
|
|
if (!$result) |
|
|
$_SESSION["SSacessoPbx"] = 0; |
|
|
|
|
|
$row = pg_fetch_row($result); |
|
|
$_SESSION["SSacessoPbx"] = $row[0]; |
|
|
} |
|
|
|
|
|
function SetCmdAmi($cmd) |
|
|
{ |
|
|
$_SESSION[SS_EXECUTA_AMI] = $cmd; |
|
|
} |
|
|
|
|
|
function AgenteAtendeManual() |
|
|
{ |
|
|
return $_SESSION[AGT_TP_ATEND] == AGT_MODU_MANUAL; |
|
|
} |
|
|
|
|
|
function GetChannel() |
|
|
{ |
|
|
return GetRamalMonitorar(CANAL_MONITOR_AGENTE); |
|
|
} |
|
|
|
|
|
function GetChannelTransf() |
|
|
{ |
|
|
return $_SESSION[AGT_CHANNEL_TRANSF]; |
|
|
} |
|
|
|
|
|
function GetModoAtende() |
|
|
{ |
|
|
return $_SESSION[SS_MODO_ATENDIMENTO_COD]; |
|
|
} |
|
|
|
|
|
function GetDestinoIntercalar() |
|
|
{ |
|
|
return $_SESSION[SS_DESTINO_INTERCALAR]; |
|
|
} |
|
|
|
|
|
function GetMatricula() |
|
|
{ |
|
|
return $_SESSION["SSmatriculaUser"]; |
|
|
} |
|
|
|
|
|
function GetDacAtende() |
|
|
{ |
|
|
return $_SESSION[AGT_DAC_CONECT_DESC]; |
|
|
} |
|
|
|
|
|
function GetNumDiscTransf() |
|
|
{ |
|
|
return $_SESSION[AGT_NUM_DISC]; |
|
|
} |
|
|
|
|
|
function IsAgente() |
|
|
{ |
|
|
return $_SESSION["SSagente"]; |
|
|
} |
|
|
|
|
|
function GetChannelTrConsulta() |
|
|
{ |
|
|
return $_SESSION[AGT_CHANNEL_TRCONSULTA]; |
|
|
} |
|
|
|
|
|
function GetChannelAgente() |
|
|
{ |
|
|
return $_SESSION[SS_AGT_CHANNEL_AGENTE]; |
|
|
} |
|
|
|
|
|
function __GetContextoRamal() |
|
|
{ |
|
|
return !$_SESSION[SS_AGT_CONTEXTO_RAMAL] ? 'padrao' : $_SESSION[SS_AGT_CONTEXTO_RAMAL]; |
|
|
} |
|
|
|
|
|
function GetCmdAmi() |
|
|
{ |
|
|
return !$_SESSION[SS_EXECUTA_AMI] ? array() : $_SESSION[SS_EXECUTA_AMI]; |
|
|
} |
|
|
|
|
|
function GetCodigoParam($param = null) |
|
|
{ |
|
|
if ($param) { |
|
|
$_SESSION['SSCodigoParam'] = $param; |
|
|
} |
|
|
return $_SESSION['SSCodigoParam'] ? $_SESSION['SSCodigoParam'] : null; |
|
|
} |
|
|
|
|
|
function GetUrlAterisk($acao, $dacLogoff = '', $matLogoff = '', $urlInfo = '', $socket = null, $socketSuporte = 0) |
|
|
{ |
|
|
//$url = "http://192.168.80.13:9876/"; |
|
|
//$url = "http://172.16.51.14:9876/"; |
|
|
|
|
|
/* |
|
|
* Quando $dacLogoff <EFBFBD> passado como array o mesmo contem todos os parametros. |
|
|
* |
|
|
*/ |
|
|
if (is_array($dacLogoff)) { |
|
|
$params = $dacLogoff; |
|
|
} else { |
|
|
$dac = !empty($dacLogoff) ? $dacLogoff : GetDacAtende(); |
|
|
} |
|
|
|
|
|
|
|
|
$url = !empty($urlInfo) ? VerificaCharFinal($urlInfo) : VerificaCharFinal($_SESSION[SS_PRM_URL_ASTERISK]); |
|
|
$result = ""; |
|
|
$channel = GetChannel(); |
|
|
$channelTransf = GetChannelTransf(); |
|
|
$modoAtende = GetModoAtende(); |
|
|
$ramal = isset($GLOBALS["ramalOperacao"]) ? $GLOBALS["ramalOperacao"] : GetRamalMonitorar(RAMAL_MONITOR_AGENTE); |
|
|
$matricula = !empty($matLogoff) ? $matLogoff : GetMatricula(); |
|
|
$numDisc = GetNumDiscTransf(); |
|
|
$dac = !empty($dacLogoff) ? $dacLogoff : GetDacAtende(); |
|
|
$rand = rand(0, 99999999999); //.rand(0, 99999999999); |
|
|
$penalidade = $_SESSION["SSagentePenalidade"]; |
|
|
$ramalIntercalar = GetRamalMonitorar(RAMAL_MONITOR_SUPERVISOR); |
|
|
$canalIntercalar = GetRamalMonitorar(CANAL_MONITOR_SUPERVISOR); |
|
|
$rmalDestinoIntercalar = GetDestinoIntercalar(); |
|
|
$channelAgente = ($_SESSION[SS_MODO_ATENDIMENTO_COD] == ATENDIMENTO_MANUAL) ? GetRamalMonitorar(CANAL_MONITOR_AGENTE) : ("Local/$ramal@app-callcenter/n"); |
|
|
$channelTransfConsulta = GetChannelTrConsulta(); |
|
|
$contextoRamal = __GetContextoRamal(); |
|
|
$channelAgenteAborta = GetChannelAgente(); |
|
|
$codigoparam = GetCodigoParam(); |
|
|
$cmdAmi = GetCmdAmi(); |
|
|
|
|
|
switch ($acao) { |
|
|
case AST_LOGIN_AGENTE: |
|
|
$result = LoginAgenteAmi($socket, $channel, $modoAtende, $ramal, $dac, $matricula, $penalidade); |
|
|
break; |
|
|
case AST_LOGOFF_AGENTE: |
|
|
$result = LogoffAgenteAmi($socket, $matricula, $ramal, $dac); |
|
|
break; |
|
|
case AST_ADD_FILA: |
|
|
$result = AddFilaAmi($socket, $dac, $matricula); |
|
|
break; |
|
|
case AST_REM_FILA: |
|
|
$result = RemFilaAmi($socket, $dac, $matricula, $ramal); |
|
|
break; |
|
|
case AST_ADD_PAUSA: |
|
|
$result = AddPausaAmi($socket, $matricula, $ramal); |
|
|
break; |
|
|
case AST_REM_PAUSA: |
|
|
$result = RemPausaAmi($socket, $matricula, $ramal); |
|
|
break; |
|
|
case AST_DISCAR: |
|
|
$result = DiscarCallAmi($socket, $channelAgente, $matricula, $numDisc, $ramal, $contextoRamal, $codigoparam); |
|
|
break; |
|
|
case AST_TRANSFERIR: |
|
|
$result = TransferirAmi($socket, $channelTransf, $numDisc); |
|
|
break; |
|
|
case AST_TRANSF_PESQUISA: |
|
|
$result = TransferirPesquisaAmi($socket, $channelTransf, $numDisc, $GLOBALS["PESQUISA_MATRICULA"]); |
|
|
break; |
|
|
case AST_INCLUI_AGENTE: |
|
|
$result = IncluiAgenteAmi($socket); |
|
|
break; |
|
|
case AST_TESTE_URL: |
|
|
$result = TesteUrlAmi($socket); |
|
|
break; |
|
|
case MONITOR_AGENTS: |
|
|
$result = MonitorAgentsAmi($socket); |
|
|
break; |
|
|
case AST_INTERCALAR: |
|
|
$result = IntercalarAmi($socket, $canalIntercalar, $ramalIntercalar, $rmalDestinoIntercalar); |
|
|
break; |
|
|
case AST_MONITORAR: |
|
|
$result = MonitorarAmi($socket, $params); |
|
|
break; |
|
|
case AST_RELOAD_URA: |
|
|
$result = ReloadUraAmi($socket); |
|
|
break; |
|
|
case AST_RELOAD_FILA: |
|
|
$result = ReloadFilaAmi($socket); |
|
|
break; |
|
|
case AST_DESLIGAR_LIGACAO: |
|
|
$result = DesligarAmi($socket, $channelAgenteAborta); |
|
|
break; |
|
|
case AST_DESLIGAR_TODOS: |
|
|
$result = DesligaTodasAmi($socket, $ramalIntercalar); |
|
|
break; |
|
|
case AST_PENDULO_ADD_CANAIS: |
|
|
$result = PenduloAddCanaisAmi($socket, $ramal, $matricula, $channelTransf, $numDisc, $channelAgenteAborta, ($modoAtende != ATENDIMENTO_MANUAL)); |
|
|
break; |
|
|
//Remove musica em espera |
|
|
case AST_PENDULO_REM_CANAIS: |
|
|
$result = PenduloRemCanaisAmi($socket, $ramal, $matricula, $channelTransf); |
|
|
break; |
|
|
case AST_TRCONSULTA_ESPERA: |
|
|
$result = TrConsultaEsperaAmi($socket, $ramal, $matricula, $numDisc, $contextoRamal); |
|
|
break; |
|
|
//Transferie a liga<EFBFBD><EFBFBD>o |
|
|
case AST_TRCONSULTA_TRANSFERE: |
|
|
$result = TrConsultaTransfereAmi($socket, $channelTransfConsulta, $matricula, $channelAgenteAborta); |
|
|
break; |
|
|
//Retorna da consulta sem transferir |
|
|
case AST_TRCONSULTA_TRANSFERE_ABORTA: |
|
|
$result = TrConsultaTransfereAbortaAmi($socket, $channelAgenteAborta, $matricula); |
|
|
break; |
|
|
//case AST_TRCONSULTA_LIBERA_AGENTE: $result = TrConsultaLiberaAgenteAmi($socket, $channelTransf); |
|
|
// break; |
|
|
//Inicia uma conferencia |
|
|
case AST_TRCONSULTA_CONFERENCIA: |
|
|
$result = TrConsultaConferenciaAmi($socket, $channelTransfConsulta, $matricula); |
|
|
break; |
|
|
//Inicia o MUTE na parte cliente |
|
|
case AST_MUTE_CLIENTE: |
|
|
$result = TrMuteClienteAmi($socket, $channelTransf, $matricula); |
|
|
break; |
|
|
//Inicia o MUTE na parte atendente |
|
|
case AST_MUTE_ATENDENTE: |
|
|
$result = TrMuteAtendenteAmi($socket, $ramal, $matricula); |
|
|
break; |
|
|
//Remove o Mute |
|
|
case AST_REM_MUTE: |
|
|
$result = TrRemMuteAmi($socket, $channelTransf, $matricula); |
|
|
break; |
|
|
//Seta variavel no canal |
|
|
case AST_SET_VAR: |
|
|
$result = SetVarAmi($socket, $channelTransf, $ramal, $channelAgenteAborta, $matricula); |
|
|
break; |
|
|
case AST_EXEC_AMI: |
|
|
$result = ExecutaAgtAmi($socket, $cmdAmi); |
|
|
break; |
|
|
case AST_ALERTA_AGENTE: |
|
|
$result = AlertaAgtAmi($socket, (($modoAtende == ATENDIMENTO_MANUAL) ? $channel : $channelAgente), $ramal); |
|
|
break; |
|
|
} |
|
|
return $url . $result; |
|
|
} |
|
|
|
|
|
function GetUrl($acao, $dacLogoff = '', $matLogoff = '', $url = "") |
|
|
{ |
|
|
|
|
|
|
|
|
/* |
|
|
* Abre o socket |
|
|
*/ |
|
|
list($sckHost, $sckPort, $sckUser, $sckPass) = GetSckConnect(); |
|
|
$socket = ConectaAmi($sckHost, $sckPort, $sckUser, $sckPass); |
|
|
|
|
|
/* |
|
|
* Chama funcoes de socket de acordo com a acao |
|
|
*/ |
|
|
$get = @GetUrlAterisk($acao, $dacLogoff, $matLogoff, $url, $socket, 1); |
|
|
$_SESSION['SSanalisaGetUrl'] = $get; |
|
|
/* |
|
|
* fechar o socket |
|
|
*/ |
|
|
DesconectaAmi($socket); |
|
|
/* |
|
|
* Retorna true se nao houver a palavra erro no retorno da execu<EFBFBD><EFBFBD>o |
|
|
*/ |
|
|
return !stripos($get, "Error"); |
|
|
} |
|
|
|
|
|
function GetInfoUrl($acao) |
|
|
{ |
|
|
$get = GetUrlAterisk($acao); |
|
|
$get = file_get_contents($get); |
|
|
return nl2br($get); |
|
|
} |
|
|
|
|
|
function GetMenuAgente($idSub) |
|
|
{ |
|
|
$block = "<img src=\"imgSite/lock12.png\" align=\"absmiddle\" border=0>"; |
|
|
$menuSel = "<img src=\"imgSite/stAprovado.png\" align=\"absmiddle\" border=0>"; |
|
|
|
|
|
//$menuDeSel = "<img src=\"imgSite/desel12.gif\" width=\"12\" height=\"12\" align=\"absmiddle\" border=0>"; |
|
|
$menuDeSel = $_SESSION[AGT_EM_PAUSA] || !$_SESSION[AGT_CONECT] ? "<img src=\"imgSite/lock12.png\" align=\"absmiddle\" border=0>" : ""; |
|
|
|
|
|
$menuAgente = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">"; |
|
|
$menuAgente .= "<tr>"; |
|
|
$menuAgente .= "<th width=70 class=\"headColun\"><a href=\"index.php?idProg=14&idSubProg=" . AGT_PRINCIPAL . "\">Principal " . ($idSub == AGT_PRINCIPAL ? $menuSel : $menuDeSel) . "</a></th>"; |
|
|
$menuAgente .= "<th width=70 class=\"headColun\"><a href=\"index.php?idProg=14&idSubProg=" . AGT_SEL_DAC . "\">DAC " . ($idSub == AGT_SEL_DAC ? $menuSel : $menuDeSel) . "</a></th>"; |
|
|
$menuAgente .= "<th width=70 class=\"headColun\"><a href=\"index.php?idProg=14&idSubProg=" . AGT_PAUSA . "\" onClick=\"return SaidaPausaLogoff()\">Pausa " . ($idSub == AGT_PAUSA ? $menuSel : $menuDeSel) . "</a></th>"; |
|
|
// $menuAgente .= "<th width=70 class=\"headColun\"><a href=\"index.php?idProg=14&idSubProg=".AGT_CALL."\">Call ".($idSub == AGT_CALL ? $menuSel : $menuDeSel)."</a></th>"; |
|
|
$menuAgente .= "<th style=\"background-color:#DDDDDD; color:#FF0000\" align=center class=\"headColun\">" . GetLogin() . "-" . GetMatricula() . "</th>"; |
|
|
//$menuAgente .= "<th width=70 class=\"headColun\"><a href=\"index.php?idProg=14&idSubProg=".AGT_CALL."\">Call ".($idSub == AGT_CALL ? $menuSel : $menuDeSel)."</a></th>"; |
|
|
$menuAgente .= "</tr>"; |
|
|
$menuAgente .= "</table>"; |
|
|
return $menuAgente; |
|
|
} |
|
|
|
|
|
function GetRamalSip($dbcon, $ramalAgente) |
|
|
{ |
|
|
//$query = "select dispositivo from pbx_ramais where nome = '$ramalAgente'"; |
|
|
$query = "select case when( upper(tipo_ramal) = 'KHOMP')then upper(tipo_ramal) || '/r' || nome else dispositivo end as dispositivo from pbx_ramais where nome = '$ramalAgente'"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetIdUserFromMatricula($dbcon, $matricula) |
|
|
{ |
|
|
$query = "select id from pbx_usuarios where matricula = '$matricula'"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$row = @pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetAgenteRamais($dbcon, $ramalAgente) |
|
|
{ |
|
|
$query = "select nome, nome from pbx_ramais"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $ramalAgente; |
|
|
$ramais = "<select name=\"agtRamal\" id=\"agtRamal\" size=\"1\" $disableb>"; |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$ramais .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$ramais .= "</select>"; |
|
|
return $ramais; |
|
|
} |
|
|
|
|
|
function VerificaRamalLogado($db, &$dac, &$agente) |
|
|
{ |
|
|
$ramal = GetRamalMonitorar(RAMAL_MONITOR_AGENTE); |
|
|
$query = "select dac, nome, count(*) from pbx_supervisor_agentes where ramal = '$ramal' group by dac, nome"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_array($result); |
|
|
|
|
|
if (pg_num_rows($result)) { |
|
|
$dac = $row["dac"]; |
|
|
$agente = $row["nome"]; |
|
|
return true; |
|
|
} |
|
|
return false; |
|
|
} |
|
|
|
|
|
function VerificaModoAtendimento($db, $dac) |
|
|
{ |
|
|
$query = "SELECT modo_atendimento FROM pbx_queues_grupos WHERE id = $dac"; |
|
|
$result = pg_query($db, $query); |
|
|
$modo = pg_fetch_assoc($result); |
|
|
return $modo['modo_atendimento']; |
|
|
} |
|
|
|
|
|
function VerficaAgenteLogado($db) |
|
|
{ |
|
|
/* |
|
|
* Funcao modificada para derrubar o agente se j<EFBFBD> logado. |
|
|
$matricula = GetMatricula(); |
|
|
$query = "delete from pbx_supervisor_agentes where matricula = '$matricula'"; |
|
|
pg_query($db, $query); |
|
|
return false; |
|
|
*/ |
|
|
|
|
|
$matricula = GetMatricula(); |
|
|
$query = "select count(*) from pbx_supervisor_agentes where matricula = '$matricula' "; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$ret = $row[0]; |
|
|
/* |
|
|
if ($ret) { |
|
|
$query = "select extract(epoch from (now() - logado))::int , trim(ramal) from pbx_supervisor_agentes where matricula = '$matricula'"; |
|
|
$result = pg_query($db, $query); |
|
|
$dados = pg_fetch_row($result); |
|
|
if (empty($dados[1]) || ($dados[0] >= 60)) { |
|
|
$query = "delete from pbx_supervisor_agentes where matricula = '$matricula'"; |
|
|
$result = pg_query($db, $query); |
|
|
$ret = false; |
|
|
} |
|
|
} |
|
|
* * |
|
|
*/ |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetRamalAgenteLogado($db) |
|
|
{ |
|
|
$matricula = GetMatricula(); |
|
|
$query = "select ramal from pbx_supervisor_agentes where matricula = '$matricula' "; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
function VerificaRamalSigame($db, $ramal) |
|
|
{ |
|
|
$matricula = GetMatricula(); |
|
|
$query = "select trim(coalesce(sigame_interno, '')) as sigame_interno, trim(coalesce(sigame_externo, '')) as sigame_externo, trim(coalesce(sigame_naoatende, '')) as sigame_naoatende, trim(coalesce(sigame_ocupado, '')) as sigame_ocupado from pbx_ramais where nome = '$ramal'"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_array($result); |
|
|
//return ($row['sigame_interno'] || $row['sigame_externo'] || $row['sigame_naoatende'] || $row['sigame_ocupado']); |
|
|
return ($row['sigame_interno'] || $row['sigame_externo']); |
|
|
} |
|
|
|
|
|
function VerificaClassObrigatoria($db, $dac) |
|
|
{ |
|
|
if (!GetExigeClas($db, $dac)) |
|
|
return false; |
|
|
$query = "select count(*) as num_dac from pbx_classifica_dacs where id_dac = '$dac'"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
return $row[0] ? false : true; |
|
|
} |
|
|
|
|
|
function VerificaAgenteFixo($db) |
|
|
{ |
|
|
$idAgt = GetUsuario($db, GetMatricula()); |
|
|
$result = pg_query($db, "SELECT pa_fixo FROM pbx_usuarios WHERE id = {$idAgt['id']}"); |
|
|
$isAgtFixo = (int) pg_fetch_assoc($result); |
|
|
|
|
|
/* |
|
|
* Numero de PAs setado como zero permite ilimitada conex<EFBFBD>es. |
|
|
*/ |
|
|
if ($isAgtFixo === 0) { |
|
|
return false; |
|
|
} |
|
|
|
|
|
return true; |
|
|
} |
|
|
|
|
|
function VerificaMaxAgenteLogado($db) |
|
|
{ |
|
|
//$numAgt = GetModeloPa(); |
|
|
$result = pg_query($db, "select coalesce(prm_max_licenca,0) as prm_max_licenca, coalesce(prm_max_licenca_fixo,0) as prm_max_licenca_fixo FROM pbx_parametros"); |
|
|
$dadosLicenca = pg_fetch_assoc($result); |
|
|
$numLicencaDinanmica = $dadosLicenca['prm_max_licenca']; |
|
|
$numLicencaFixa = $dadosLicenca['prm_max_licenca_fixo']; |
|
|
|
|
|
$matriculaAgente = GetMatricula(); |
|
|
$result = pg_query($db, "SELECT coalesce(pa_fixo,0) as pa_fixo FROM pbx_usuarios WHERE matricula = '$matriculaAgente'"); |
|
|
$dadosAgente = pg_fetch_assoc($result); |
|
|
$licencaFixa = $dadosAgente['pa_fixo'] > 0; |
|
|
|
|
|
|
|
|
/* |
|
|
* Numero de PAs setado como zero permite ilimitada conex<EFBFBD>es. |
|
|
*/ |
|
|
if (($numLicencaFixa + $numLicencaDinanmica) === 0) { |
|
|
return false; |
|
|
} |
|
|
|
|
|
/* |
|
|
* Verifico a quantidade de PAs logado. |
|
|
*/ |
|
|
$query = "select |
|
|
count(*) as num_total_pa, |
|
|
coalesce(sum((select 1 from pbx_usuarios where matricula = a.matricula and pa_fixo = 0)),0) + 1 as num_pa_dinamico, |
|
|
coalesce(sum((select 1 from pbx_usuarios where matricula = a.matricula and pa_fixo = 1)),0) + 1 as num_pa_fixo |
|
|
from pbx_supervisor_agentes a"; |
|
|
$result = pg_query($db, $query); |
|
|
$dadosConexao = pg_fetch_assoc($result); |
|
|
|
|
|
$numPaFixoLogado = $dadosConexao['num_pa_fixo']; |
|
|
$numPaDinamicoLogado = $dadosConexao['num_pa_dinamico']; |
|
|
|
|
|
|
|
|
return $licencaFixa ? ($numPaFixoLogado > $numLicencaFixa) : ($numPaDinamicoLogado > $numLicencaDinanmica); |
|
|
} |
|
|
|
|
|
function VerificaAgenteLogadoAstrisk($login) |
|
|
{ |
|
|
$get = GetUrlAterisk(MONITOR_AGENTS, '', '', 'http://172.16.51.78:9876'); |
|
|
$get = @file_get_contents($get); |
|
|
|
|
|
$pos = stripos($get, $login); |
|
|
if ($pos) { |
|
|
$len = stripos($get, 'LoggedInChan', $pos); |
|
|
$get = substr($get, $pos, $len - $pos); |
|
|
echo "<br>" . $get . "<br>"; |
|
|
$pos = stripos($get, 'AGENT_LOGGEDOFF'); |
|
|
} |
|
|
return $pos; |
|
|
} |
|
|
|
|
|
function IsSupervisor($db) |
|
|
{ |
|
|
$matricula = GetMatricula(); |
|
|
$query = "SELECT user_id, gp_id |
|
|
FROM pbx_usuarios a |
|
|
INNER JOIN pbx_grupo_usuario b ON a.id = b.user_id |
|
|
WHERE matricula = '$matricula' |
|
|
AND gp_id = 30"; |
|
|
|
|
|
if (IsAdmin()) { |
|
|
return true; |
|
|
} |
|
|
|
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_assoc($result); |
|
|
if ($row) { |
|
|
return true; |
|
|
} |
|
|
return false; |
|
|
} |
|
|
|
|
|
function GetClassificacao($db, $idClas, $dac, $useSelect = 1) |
|
|
{ |
|
|
$query = " SELECT clas_id, clas_descricao FROM pbx_classifica_atendimento where clas_status = 1 and clas_id in(select clas_id from pbx_classifica_dacs where id_dac = '$dac' ) order by 2"; |
|
|
$result = pg_query($db, $query); |
|
|
|
|
|
if (!$result) { |
|
|
|
|
|
$clas = "<select name=\"listaClas\" style=\"width:210px;\" onChange=\"CarregaItem(this.form)\">" |
|
|
. "<option value=\"0\" selected>Selecione uma Classifica<EFBFBD><EFBFBD>o</option>" |
|
|
. "</select>"; |
|
|
|
|
|
return $clas; |
|
|
} |
|
|
|
|
|
|
|
|
$clas = $useSelect ? "<select name=\"listaClas\" style=\"width:210px;\" onChange=\"CarregaItem(this.form)\">" : ""; |
|
|
$def = $idClas; |
|
|
|
|
|
$sel = !$idClas || !pg_num_rows($result) ? 'selected' : ''; |
|
|
$clas .= "<option value=\"0\" $sel>Selecione uma Classifica<EFBFBD><EFBFBD>o</option>"; |
|
|
|
|
|
|
|
|
|
|
|
while ($dados = @pg_fetch_row($result)) { |
|
|
$sel = ($idClas == $dados[0]) ? "selected" : ""; |
|
|
$id = $dados[0]; |
|
|
$desc = $dados[1]; |
|
|
$clas .= "<option value=\"$id\" $sel>$desc</option>"; |
|
|
} |
|
|
$clas .= $useSelect ? "</select>" : ""; |
|
|
|
|
|
return $clas; |
|
|
} |
|
|
|
|
|
function GetItem($db, $idClas, $idItem, $useSelect = 1) |
|
|
{ |
|
|
$query = " SELECT clit_id, clit_descricao FROM pbx_classifica_item where clas_id = $idClas and clit_status = 1 order by 2"; |
|
|
$result = pg_query($db, $query); |
|
|
$clas = $useSelect ? "<select name=\"listaItem\" style=\"width:250px;\">" : ""; |
|
|
|
|
|
if (!$idClas) |
|
|
$clas .= "<option value=\"0\" selected>Selecione o Item de Classifica<EFBFBD><EFBFBD>o</option>"; |
|
|
else { |
|
|
$sel = !$idItem ? "selected" : ''; |
|
|
$clas .= "<option value=\"0\" $sel>Selecione o Item de Classifica<EFBFBD><EFBFBD>o</option>"; |
|
|
$sel = ''; |
|
|
while ($dados = @pg_fetch_row($result)) { |
|
|
$sel = ($idItem == $dados[0]) ? "selected" : ""; |
|
|
$id = $dados[0]; |
|
|
$desc = $dados[1]; |
|
|
$clas .= "<option value=\"$id\" $sel>$desc</option>"; |
|
|
} |
|
|
} |
|
|
$clas .= $useSelect ? "</select>" : ""; |
|
|
|
|
|
return $clas; |
|
|
} |
|
|
|
|
|
function ArrayOut($ar, $vl) |
|
|
{ |
|
|
$arAux = array(); |
|
|
foreach ($ar as $value) { |
|
|
if ($vl != $value) |
|
|
$arAux[] = $value; |
|
|
} |
|
|
return $arAux; |
|
|
} |
|
|
|
|
|
//parametros |
|
|
function GetHeadRel($nivel = 0) |
|
|
{ |
|
|
|
|
|
return $_SESSION[SS_PRM_RELATORIO_HEAD]; |
|
|
} |
|
|
|
|
|
function GetFootRel() |
|
|
{ |
|
|
return $_SESSION[SS_PRM_RELATORIO_LINHA1]; |
|
|
} |
|
|
|
|
|
function GetLogoRel() |
|
|
{ |
|
|
return "imgSite/" . $_SESSION[SS_PRM_LOGO_RELATORIO]; |
|
|
} |
|
|
|
|
|
function GetEmpresa() |
|
|
{ |
|
|
return GetSlogan(); |
|
|
} |
|
|
|
|
|
function GetAgentes($dbcon, $codSel, $idDac, $query = "") |
|
|
{ |
|
|
//carrega Atendente |
|
|
$codSel = ((!$_SESSION["listaAgente"]) || ($trocaDac)) ? 0 : $_SESSION["listaAgente"]; |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$agentes = "<select name=\"listaAgente\" id=\"listaAgente\" size=\"1\">"; |
|
|
$agentes .= "<option value=\"0\" $sel>Todos</option>"; |
|
|
$dac = $idDac ? " and fila = (select nome from pbx_dacs where id = $idDac )" : ""; |
|
|
|
|
|
if (empty($query)) { |
|
|
$query = "select matricula, nome |
|
|
from pbx_usuarios u |
|
|
where exists(select '' from pbx_eventos_dacs |
|
|
where substring(agente, 7, 4) = u.matricula |
|
|
$dac ) |
|
|
order by 2"; |
|
|
} |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$agentes .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$agentes .= "</select>"; |
|
|
return $agentes; |
|
|
} |
|
|
|
|
|
function GetTodosAgentes($dbcon, $codSel, $incTodos = 1, $sql = '') |
|
|
{ |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$agentes = "<select name=\"listaAgente\" id=\"listaAgente\" size=\"1\">"; |
|
|
|
|
|
if ($incTodos) |
|
|
$agentes .= "<option value=\"0\" $sel>Todos</option>\n"; |
|
|
|
|
|
$sql = trim($sql) ? $sql : "select matricula, apelido as nome from pbx_usuarios u where status = true and apelido <> 'sinccontasenha' order by 2"; |
|
|
$result = pg_query($dbcon, $sql); |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$agentes .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$agentes .= "</select>"; |
|
|
return $agentes; |
|
|
} |
|
|
|
|
|
function GetTodasContas($dbcon, $codSel) |
|
|
{ |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$agentes = "<select name=\"listaAgente\" id=\"listaAgente\" size=\"1\">"; |
|
|
//$agentes .= "<option value=\"0\" $sel>Todos</option>"; |
|
|
|
|
|
$result = pg_query($dbcon, "select matricula, apelido as nome from pbx_usuarios_cs u order by 2"); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$agentes .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$agentes .= "</select>"; |
|
|
return $agentes; |
|
|
} |
|
|
|
|
|
function GetTempoAgente() |
|
|
{ |
|
|
return ($_SESSION[SS_PRM_AGENTE_ATUALIZA] ? $_SESSION[SS_PRM_AGENTE_ATUALIZA] : AGT_TEMPO_ATUALIZA) * 1000; |
|
|
} |
|
|
|
|
|
function GetTempoSupervisor() |
|
|
{ |
|
|
return ($_SESSION[SS_PRM_SUPER_ATUALIZA] ? $_SESSION[SS_PRM_SUPER_ATUALIZA] : AGT_SUPERVISOR_ATUALIZA) * 1000; |
|
|
} |
|
|
|
|
|
function GetFileAgente() |
|
|
{ |
|
|
return $_SESSION[SS_PRM_PATH_ARQ_AGENTE] ? $_SESSION[SS_PRM_PATH_ARQ_AGENTE] : DB_CONFIG_AGENTE; |
|
|
} |
|
|
|
|
|
function GetUsuario($dbcon, $matricula) |
|
|
{ |
|
|
$query = "SELECT id, nome, apelido, matricula, email FROM pbx_usuarios WHERE matricula = '{$matricula}'"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$data = pg_fetch_assoc($result); |
|
|
return $data; |
|
|
} |
|
|
|
|
|
function GetMsgSenha() |
|
|
{ |
|
|
return $_SESSION[SS_SENHA_DEF] ? ($_SESSION[SS_PRM_MSG_SENHA_DEF] ? $_SESSION[SS_PRM_MSG_SENHA_DEF] : "Altera<EFBFBD><EFBFBD>o de Senha") : ($_SESSION[SS_PRM_SENHA_EXPIRADA] ? $_SESSION[SS_PRM_MSG_SENHA_EXP] : "Altera<EFBFBD><EFBFBD>o de Senha"); |
|
|
} |
|
|
|
|
|
function VerificaCharFinal($str, $ch = "/") |
|
|
{ |
|
|
return substr($str, -1) == $ch ? $str : $str . $ch; |
|
|
} |
|
|
|
|
|
function GetHeadMenu($db) |
|
|
{ |
|
|
$query = "select fun_id, fun_nome, fun_menu, fun_menu_text, fun_menu_url, fun_menu_img, fun_id_pai |
|
|
from pbx_funcoes |
|
|
where fun_id_pai is null |
|
|
order by 4"; |
|
|
$head = array(); |
|
|
$result = pg_query($db, $query); |
|
|
while ($row = pg_fetch_array($result)) |
|
|
$head[] = $row; |
|
|
$_SESSION[PRF_MENU_HEAD] = $head; |
|
|
} |
|
|
|
|
|
function GetSites($dbcon, $codSite, $disableb = "") |
|
|
{ |
|
|
/* |
|
|
* Carrega lista de dacs disponivel |
|
|
* para ser inserdo entre as tags <select></select> |
|
|
*/ |
|
|
$query = "select id, descricao from pbx_sites where status = 1 order by upper(descricao)"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $codSite; |
|
|
$site = "<select name=\"listaSites\" id=\"listaSites\" size=\"1\" $disableb onchange=\"submit()\">"; |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$site .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$site .= "</select>"; |
|
|
|
|
|
return $site; |
|
|
} |
|
|
|
|
|
function GetEmpresas($dbcon, $empresa, $disableb = "", $incTodos = 0, $useSelect = 1, $dispTodos = '--------') |
|
|
{ |
|
|
/* |
|
|
* Carrega lista de dacs disponivel |
|
|
* para ser inserdo entre as tags <select></select> |
|
|
*/ |
|
|
|
|
|
$org_id = GetOrganizacao(); |
|
|
$query = "SELECT id, nome FROM pbx_empresa WHERE org_id = {$org_id} order by 2"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $empresa; |
|
|
$sel = ''; |
|
|
if ($useSelect) { |
|
|
$site = "<select name=\"listaEmpresas\" id=\"listaEmpresas\" size=\"1\" $disableb>"; |
|
|
} |
|
|
$sel = $empresa ? "" : "selected"; |
|
|
|
|
|
if ($incTodos) { |
|
|
$site .= "<option value=\"0\" $sel>$dispTodos</option>"; |
|
|
} |
|
|
|
|
|
$sel = ""; |
|
|
while ($dados = @pg_fetch_row($result)) { |
|
|
if ((!$codSel && !$incTodos) || ($codSel == $dados[0])) { |
|
|
$sel = "selected"; |
|
|
$codSel = $dados[0]; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$site .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
|
|
|
if ($useSelect) { |
|
|
$site .= "</select>"; |
|
|
} |
|
|
return $site; |
|
|
} |
|
|
|
|
|
function GetDeptos($dbcon, $empresa, $depto, $disableb = "", $incTodos = 0, $useSelect = 1, $todos = "--------") |
|
|
{ |
|
|
/* |
|
|
* Carrega lista de dacs disponivel |
|
|
* para ser inserdo entre as tags <select></select> |
|
|
*/ |
|
|
$org_id = GetOrganizacao(); |
|
|
$query = "SELECT id, nome_depto FROM pbx_departamentos WHERE 1 = 1 AND org_id = {$org_id} "; |
|
|
if ($empresa) { |
|
|
$query .= " AND empresa = $empresa "; |
|
|
} |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$result) { |
|
|
$site = "<select name=\"listaDeptos\" id=\"listaDeptos\" style=\"width: 180px;\" size=\"1\" $disableb>" |
|
|
. "<option value=\"0\" selected>$todos</option>" |
|
|
. "</select>"; |
|
|
return $site; |
|
|
} |
|
|
|
|
|
$codSel = $depto; |
|
|
if ($useSelect) { |
|
|
$site = "<select name=\"listaDeptos\" id=\"listaDeptos\" style=\"width: 180px;\" size=\"1\" $disableb>"; |
|
|
} |
|
|
|
|
|
if ($incTodos) { |
|
|
$sel = $codSel ? "" : "selected"; |
|
|
$site .= "<option value=\"0\" $sel>$todos</option>"; |
|
|
} |
|
|
$sel = ''; |
|
|
while ($dados = @pg_fetch_row($result)) { |
|
|
if ((!$codSel && !$incTodos) || ($codSel == $dados[0])) { |
|
|
$sel = "selected"; |
|
|
$codSel = $dados[0]; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$site .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
|
|
|
if ($useSelect) |
|
|
$site .= "</select>"; |
|
|
return $site; |
|
|
} |
|
|
|
|
|
function GetDefCodEmpresa($dbcon) |
|
|
{ |
|
|
$query = "select min(id) from pbx_empresa"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$dados = @pg_fetch_row($result); |
|
|
return $dados[0]; |
|
|
} |
|
|
|
|
|
function __GetProto__($db) |
|
|
{ |
|
|
//registra o protocolo para o id corrente |
|
|
$mat = GetMatricula(); |
|
|
$query = "select uniqueid from pbx_supervisor_agentes where matricula = '$mat'"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$uniqueId = $row[0]; |
|
|
|
|
|
//Geraprotocolo |
|
|
$anoAtu = date('Y'); |
|
|
$query = "select max(numProto) from pbx_protocolo_reg where ano = '$anoAtu'"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$numProto = $row[0] ? $row[0] + 1 : 1; |
|
|
$proto = $anoAtu . str_pad($numProto, 6, '0', STR_PAD_LEFT); |
|
|
|
|
|
$query = "insert into pbx_protocolo_reg(uniqueid, ano, numProto, protocolo) |
|
|
select '$uniqueId', $anoAtu, $numProto, $proto where not exists(select '' from pbx_protocolo_reg where uniqueid = '$uniqueId')"; |
|
|
$result = pg_query($db, $query); |
|
|
|
|
|
if (pg_affected_rows($result) == 0) { |
|
|
$query = "select ano, numProto from pbx_protocolo_reg where uniqueid = '$uniqueId'"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = pg_fetch_row($result); |
|
|
$proto = trim($row[0]) . "-" . trim(str_pad($row[1], 6, '0', STR_PAD_LEFT)); |
|
|
} else { |
|
|
$proto = trim($anoAtu) . "-" . trim(str_pad($numProto, 6, '0', STR_PAD_LEFT)); |
|
|
} |
|
|
|
|
|
return $proto; |
|
|
} |
|
|
|
|
|
function GetTemplate($smarty, $nomeTpl) |
|
|
{ |
|
|
$smarty->display($nomeTpl); |
|
|
} |
|
|
|
|
|
function GetFormAcao() |
|
|
{ |
|
|
/* |
|
|
* Retorna o dipo de acao que o usuario esta realizando |
|
|
* com base no parametro formAction |
|
|
*/ |
|
|
if ((!isset($_GET["formAction"]) && !isset($_POST["formAction"])) || (isset($_POST["formAction"]) && ($_POST["formAction"] == FORM_SELECT))) |
|
|
return FORM_SELECT; |
|
|
if (isset($_GET["formAction"]) && ($_GET["formAction"] == FORM_NEW)) |
|
|
return FORM_NEW; |
|
|
else if (isset($_POST["formAction"]) && ($_POST["formAction"] == FORM_INSERT)) |
|
|
return FORM_INSERT; |
|
|
else if (isset($_GET["formAction"]) && ($_GET["formAction"] == FORM_UPDATE)) |
|
|
return FORM_UPDATE; |
|
|
else if (isset($_POST["formAction"]) && ($_POST["formAction"] == FORM_SAVE)) |
|
|
return FORM_SAVE; |
|
|
else if (isset($_GET["formAction"]) && ($_GET["formAction"] == FORM_DELETE)) |
|
|
return FORM_DELETE; |
|
|
else if (isset($_REQUEST["formAction"])) |
|
|
return $_REQUEST["formAction"]; |
|
|
else |
|
|
return -1; |
|
|
|
|
|
|
|
|
/* |
|
|
if(!isset($_REQUEST["formAction"])) |
|
|
{ |
|
|
RETURN FORM_UNDEF; |
|
|
} |
|
|
|
|
|
return $_REQUEST["formAction"]; |
|
|
*/ |
|
|
} |
|
|
|
|
|
function GetFormAcaoDesc($acao) |
|
|
{ |
|
|
switch ($acao) { |
|
|
case FORM_NEW: |
|
|
case FORM_INSERT: |
|
|
return "Inserir"; |
|
|
case FORM_UPDATE: |
|
|
case FORM_SAVE: |
|
|
return "Alterar"; |
|
|
case FORM_DELETE: |
|
|
return "Apagar"; |
|
|
case FORM_DOWNLOAD: |
|
|
return "Download"; |
|
|
case FORM_UPLOAD: |
|
|
return "Upload"; |
|
|
default: |
|
|
return "Indefinido"; |
|
|
} |
|
|
} |
|
|
|
|
|
function GetTotalRegistro($db, $query) |
|
|
{ |
|
|
$result = pg_query($db, PaginacaoSql($query)); |
|
|
$row = pg_fetch_row($result); |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
function GetLinkFormAction($nomeJanela, $action, $idProg = null, $imagem = "", $addParam = "", $txt = "") |
|
|
{ |
|
|
$link = ""; |
|
|
$img = ""; |
|
|
if (!$idProg) { |
|
|
$idProg = isset($_GET["idProg"]) ? $_GET["idProg"] : $_POST["idProg"]; |
|
|
} |
|
|
$imgDef = empty($imagem) ? "imgSite/novoUser.png" : $imagem; |
|
|
$atributos = "resizable=NO,scrollbars=0"; |
|
|
$janW = $GLOBALS["janW"] ? $GLOBALS["janW"] : 500; |
|
|
$janH = $GLOBALS["janH"] ? $GLOBALS["janH"] : 300; |
|
|
|
|
|
$endeLink = "index.php?idProg=$idProg&formAction=$action&janW=$janW&janH=$janH"; |
|
|
if (!empty($addParam)) |
|
|
$endeLink .= '&' . $addParam; |
|
|
$img = "<img src=\"$imgDef\" width=\"16\" height=\"16\" border=\"0\" align=\"absmiddle\" title=\"Inclui novo registro\">"; |
|
|
$link = "<a href=\"javaScript:NovaJanela('$endeLink', '$nomeJanela', '$janW', '$janH', '$atributos');\">{$img}{$txt}</a>"; |
|
|
|
|
|
return $link; |
|
|
} |
|
|
|
|
|
function GetLinkFormInsert($nomeJanela, $imagem = "", $addParam = "", $txt = "") |
|
|
{ |
|
|
$link = ""; |
|
|
$img = ""; |
|
|
$idProg = isset($_GET["idProg"]) ? $_GET["idProg"] : $_POST["idProg"]; |
|
|
$imgDef = empty($imagem) ? "imgSite/novoUser.png" : $imagem; |
|
|
$atributos = "resizable=NO,scrollbars=0"; |
|
|
$janW = $GLOBALS["janW"] ? $GLOBALS["janW"] : 500; |
|
|
$janH = $GLOBALS["janH"] ? $GLOBALS["janH"] : 300; |
|
|
$action = FORM_NEW; |
|
|
$endeLink = "index.php?idProg=$idProg&formAction=$action"; |
|
|
if (!empty($addParam)) |
|
|
$endeLink .= '&' . $addParam; |
|
|
$img = "<img src=\"$imgDef\" width=\"16\" height=\"16\" border=\"0\" align=\"absmiddle\" title=\"Inclui novo registro\">"; |
|
|
$link = "<a href=\"javaScript:NovaJanela('$endeLink', '$nomeJanela', '$janW', '$janH', '$atributos');\">$img$txt</a>"; |
|
|
|
|
|
return $link; |
|
|
} |
|
|
|
|
|
function GetLinkFormUpdate($varUrl, $nomeJanela, $imagem = "", $disabLink = 0, $useText = 0, $text = '', $progId = 0) |
|
|
{ |
|
|
$link = ""; |
|
|
$img = ""; |
|
|
$idProg = $progId ? $progId : $_REQUEST["idProg"]; |
|
|
$imgDef = empty($imagem) ? "imgSite/editaUser.png" : $imagem; |
|
|
$atributos = "resizable=NO,scrollbars=NO"; |
|
|
$janW = $GLOBALS["janW"] ? $GLOBALS["janW"] : 500; |
|
|
$janH = $GLOBALS["janH"] ? $GLOBALS["janH"] : 300; |
|
|
$action = FORM_UPDATE; |
|
|
|
|
|
$img = $useText ? $text : "<img src=\"$imgDef\" width=\"16\" height=\"16\" border=\"0\" title=\"Edita este registro\">"; |
|
|
if ($disabLink) |
|
|
$link = $img; |
|
|
else |
|
|
$link = "<a style=\"color: #000;\" href=\"javaScript:NovaJanela('index.php?idProg=$idProg&formAction=$action$varUrl', '$nomeJanela', '$janW', '$janH', '$atributos');\">$img</a>"; |
|
|
|
|
|
return $link; |
|
|
} |
|
|
|
|
|
function GetLinkFormDelete($param, $nomeFuncao, $imagem = "") |
|
|
{ |
|
|
$link = ""; |
|
|
$img = ""; |
|
|
$imgDef = empty($imagem) ? "imgSite/deletaUser.png" : $imagem; |
|
|
$atributos = "resizable=NO,scrollbars=NO"; |
|
|
$janW = isset($GLOBALS["janW"]) ? $GLOBALS["janW"] : 500; |
|
|
$janH = isset($GLOBALS["janH"]) ? $GLOBALS["janH"] : 300; |
|
|
$action = FORM_DELETE; |
|
|
if (strpos($param, "|") !== false) { |
|
|
$params = explode("|", $param); |
|
|
$p = ""; |
|
|
foreach ($params as $value) { |
|
|
$p .= !$p ? QuotedStr($value) : ", " . QuotedStr($value); |
|
|
} |
|
|
$param = $p; |
|
|
} else { |
|
|
$param = QuotedStr($param); |
|
|
} |
|
|
|
|
|
$img = "<img src=\"$imgDef\" width=\"16\" height=\"16\" border=\"0\" title=\"Apaga este registro!\">"; |
|
|
$link = sprintf("<a href=\"javaScript:$nomeFuncao(%s);\">$img</a>", $param); |
|
|
return $link; |
|
|
} |
|
|
|
|
|
function validaForm($fields, $fieldsObrig, $fieldsType, $fieldsDiplay, &$msg) |
|
|
{ |
|
|
$ret = true; |
|
|
foreach ($fields as $value) { |
|
|
$nomeCampo = isset($fieldsDiplay[$value]) ? $fieldsDiplay[$value] : $value; |
|
|
if ((isset($fieldsObrig[$value]) && ($fieldsObrig[$value])) && (!isset($_POST[$value]) || empty($_POST[$value]))) { |
|
|
$msg[] = $nomeCampo . " <EFBFBD> campo obrigat<EFBFBD>rio" . "."; |
|
|
$ret = false; |
|
|
} else { |
|
|
if (array_search($value, $_POST) !== false) { |
|
|
if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_INTEGER) && (!is_numeric($_POST[$value]))) { |
|
|
$msg[] = "Valor inv<EFBFBD>lido:" . $nomeCampo . "."; |
|
|
$ret = false; |
|
|
} |
|
|
if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_DATE) && (!is_date($_POST[$value]))) { |
|
|
$msg[] = "Data inv<EFBFBD>lida:" . $_POST[$value] . "."; |
|
|
$ret = false; |
|
|
} |
|
|
//if(($fieldsType[$value] == TYPE_DETETIME) && (!is_($_POST[$value]))) |
|
|
if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_FLOAT) && (!is_numeric($_POST[$value]))) { |
|
|
$msg[] = "Valor inv<EFBFBD>lido:" . $_POST[$value] . "."; |
|
|
$ret = false; |
|
|
} |
|
|
if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_EMAIL) && (!is_email($_POST[$value]))) { |
|
|
$msg[] = "Email inv<EFBFBD>lido: " . $_POST[$value] . ".";; |
|
|
$ret = false; |
|
|
} |
|
|
if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_TIME) && (!is_time($_POST[$value]))) { |
|
|
$msg[] = "Hora inv<EFBFBD>lido: " . $_POST[$value] . ".";; |
|
|
$ret = false; |
|
|
} |
|
|
} |
|
|
//if(($fieldsType[$value] == TYPE_CPFCGC) && ()) |
|
|
//if($fieldsType[$value] == TYPE_IE && ()) |
|
|
//if($fieldsType[$value] == TYPE_FONE && ()) |
|
|
//if($fieldsType[$value] == TYPE_IDENTIFICA && ()) |
|
|
} |
|
|
} |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetTipoIdentificaDesc($tpIdent) |
|
|
{ |
|
|
switch ($tpIdent) { |
|
|
case TIPO_IDENTIFICA_CPF: |
|
|
return "CPF"; |
|
|
case TIPO_IDENTIFICA_CRC: |
|
|
return "CRC"; |
|
|
case TIPO_IDENTIFICA_CNPJ: |
|
|
return "CNPJ"; |
|
|
case TIPO_IDENTIFICA_IE: |
|
|
return "IE"; |
|
|
case TIPO_IDENTIFICA_OUTRO: |
|
|
return "OUTRO"; |
|
|
default: |
|
|
return "CNPJ"; |
|
|
} |
|
|
} |
|
|
|
|
|
function GetRelacionaEventos($db, $matricula) |
|
|
{ |
|
|
//and cast(login as date) = cast(now as date) |
|
|
$query = "select relaciona_eventos from pbx_eventos_agentes a |
|
|
where matricula = '$matricula' |
|
|
and login is not null |
|
|
and login = (select max(login) from pbx_eventos_agentes where matricula = a.matricula)"; |
|
|
|
|
|
$result = pg_query($db, $query); |
|
|
if ($result) { |
|
|
$row = @pg_fetch_row($result); |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
return 0; |
|
|
} |
|
|
|
|
|
function SetHosts($dbcon) |
|
|
{ |
|
|
$query = "select id, descricao, host, usuario, senha, basedados, porta from pbx_sites "; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$hosts = array(); |
|
|
|
|
|
while ($row = pg_fetch_array($result)) { |
|
|
$hosts[] = $row; |
|
|
} |
|
|
|
|
|
$_SESSION[HOSTS_INFO] = $hosts; |
|
|
} |
|
|
|
|
|
function GetHost($id) |
|
|
{ |
|
|
$hosts = array(); |
|
|
$host = array(); |
|
|
|
|
|
$hosts = $_SESSION[HOSTS_INFO]; |
|
|
|
|
|
for ($i = 0; $i < count($hosts); $i++) { |
|
|
$host = $hosts[$i]; |
|
|
|
|
|
if ($host[0] == $id) { |
|
|
return $host; |
|
|
} |
|
|
} |
|
|
return ""; |
|
|
} |
|
|
|
|
|
function GetDbFromHost($id) |
|
|
{ |
|
|
$host = GetHost($id); |
|
|
//select id, empresa, descricao, host, usuario, senha, basedados, porta, tag |
|
|
$dbPort = $host["porta"]; |
|
|
$dbHost = $host["host"]; |
|
|
$dbName = $host["basedados"]; |
|
|
$dbUser = $host["usuario"]; |
|
|
$dbPassword = $host["senha"]; |
|
|
$connectionString = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'"; |
|
|
return pg_connect($connectionString); |
|
|
} |
|
|
|
|
|
function GetDefaultSite() |
|
|
{ |
|
|
return $_SESSION["SSDefaultSite"]; |
|
|
} |
|
|
|
|
|
function GetContas($dbcon, $codSel) |
|
|
{ |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$linhas = "<select name=\"conta\" id=\"conta\" size=\"1\">"; |
|
|
|
|
|
$query = "select 1 as cod_conta, 'Conta Um' as nome_conta union |
|
|
select 2 as cod_conta, 'Conta Dois' as nome_conta union |
|
|
select 3 as cod_conta, 'Conta Treis' as nome_conta union |
|
|
select 4 as cod_conta, 'Conta Quatro' as nome_conta "; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$linhas .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$linhas .= "</select>"; |
|
|
return $linhas; |
|
|
} |
|
|
|
|
|
function GetGrupoRamais($dbcon, $codSel) |
|
|
{ |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$linhas = "<select name=\"gpRamal\" id=\"gpRamal\" size=\"1\">"; |
|
|
|
|
|
$query = "select 1 as cod_conta, 'Grupo Um' as nome_conta union |
|
|
select 2 as cod_conta, 'Grupo Dois' as nome_conta union |
|
|
select 3 as cod_conta, 'Grupo Treis' as nome_conta union |
|
|
select 4 as cod_conta, 'Grupo Quatro' as nome_conta "; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$linhas .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$linhas .= "</select>"; |
|
|
return $linhas; |
|
|
} |
|
|
|
|
|
function GetGrupoId($dbcon) |
|
|
{ |
|
|
$id = array(); |
|
|
$query = "SELECT DISTINCT gp_id FROM pbx_grupo_usuario "; |
|
|
$query .= GetIdUser() ? " WHERE user_id = " . GetIdUser() : ''; |
|
|
$query .= ' ORDER BY gp_id'; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$data = pg_fetch_all($result); |
|
|
|
|
|
foreach ($data as $value) { |
|
|
array_push($id, $value['gp_id']); |
|
|
} |
|
|
|
|
|
return $id; |
|
|
} |
|
|
|
|
|
function GetGrupoContas($dbcon, $codSel) |
|
|
{ |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$linhas = "<select name=\"gpConta\" id=\"gpConta\" size=\"1\">"; |
|
|
|
|
|
$query = "select 1 as cod_conta, 'Grupo Um' as nome_conta union |
|
|
select 2 as cod_conta, 'Grupo Dois' as nome_conta union |
|
|
select 3 as cod_conta, 'Grupo Treis' as nome_conta union |
|
|
select 4 as cod_conta, 'Grupo Quatro' as nome_conta "; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$linhas .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$linhas .= "</select>"; |
|
|
return $linhas; |
|
|
} |
|
|
|
|
|
function GetCentroCusto($dbcon, $codSel) |
|
|
{ |
|
|
$sel = !$codSel ? "selected" : ""; |
|
|
|
|
|
$linhas = "<select name=\"gpCentroCusto\" id=\"gpCentroCusto\" size=\"1\">"; |
|
|
|
|
|
$query = "select 1 as cod_conta, 'Centro Custo Um' as nome_conta union |
|
|
select 2 as cod_conta, 'Centro Custo Dois' as nome_conta union |
|
|
select 3 as cod_conta, 'Centro Custo Treis' as nome_conta union |
|
|
select 4 as cod_conta, 'Centro Custo Quatro' as nome_conta "; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$linhas .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
$linhas .= "</select>"; |
|
|
return $linhas; |
|
|
} |
|
|
|
|
|
function GetUserFromConta($dbcon, $matricula, $incMatricula = 0) |
|
|
{ |
|
|
$query = "select matricula, apelido from pbx_cs_usuarios where matricula = '$matricula' "; |
|
|
$result = pg_query($dbcon, $query); |
|
|
if (!$result) { |
|
|
$nome = 'N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o!'; |
|
|
} else { |
|
|
$row = @pg_fetch_row($result); |
|
|
if ($incMatricula) |
|
|
$nome = $row[0] . "-" . $row[1]; |
|
|
else |
|
|
$nome = $row[1]; |
|
|
} |
|
|
return $nome; |
|
|
} |
|
|
|
|
|
function GetHostAsterisk() |
|
|
{ |
|
|
$url = explode(":", $_SESSION[SS_PRM_URL_ASTERISK]); |
|
|
return str_replace("//", "", $url[1]); |
|
|
} |
|
|
|
|
|
function GetMunicipioPadrao() |
|
|
{ |
|
|
return $_SESSION["prm_mun_padrao"]; |
|
|
} |
|
|
|
|
|
function GetUfPadrao() |
|
|
{ |
|
|
return $_SESSION["prm_uf_padrao"]; |
|
|
} |
|
|
|
|
|
function GetTipoLigacao($tipo) |
|
|
{ |
|
|
$ligacoes = array("0", "saida-pstn", "entrada-pstn", "interna"); |
|
|
$display = array("Todas", "Saintes", "Entrantes", "Internas"); |
|
|
$select = ""; |
|
|
|
|
|
$tp = " <select name=\"tipoLigacao\" id=\"tipoLigacao\"> "; |
|
|
for ($i = 0; $i < count($ligacoes); $i++) { |
|
|
$value = $ligacoes[$i]; |
|
|
$text = $display[$i]; |
|
|
$select = ($tipo == $value) ? "selected" : ""; |
|
|
$tp .= "<option value=\"$value\" $select>$text</option>"; |
|
|
$sel = ""; |
|
|
} |
|
|
$tp .= "</select>"; |
|
|
|
|
|
return $tp; |
|
|
} |
|
|
|
|
|
function GetMotivoLogin($db) |
|
|
{ |
|
|
$query = "select id from pbx_motivos_pausas where upper(motivo) = 'LOGIN'"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = @pg_fetch_array($result); |
|
|
$_SESSION["motivoLogin"] = $row[0]; |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
function GetMotivoDef($db) |
|
|
{ |
|
|
$query = "select min(id) from pbx_motivos_pausas where upper(motivo) not in('LOGIN','AUSENTE', 'RECUSADA')"; |
|
|
$result = pg_query($db, $query); |
|
|
$row = @pg_fetch_array($result); |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
function GetTempo($dbcon, $nameCombo, $tipotempo, $codSel) |
|
|
{ |
|
|
|
|
|
$option = "<select name=\"$nameCombo\" id=\"$nameCombo\" size=\"1\">"; |
|
|
//$agentes .= "<option value=\"0\" $sel>Todos</option>"; |
|
|
|
|
|
$result = pg_query($dbcon, "select tempo from pbx_tempo_meta order by tempo"); |
|
|
|
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$option .= "<option value=\"$dados[0]\" $sel>$dados[0] $tipotempo</option>"; |
|
|
} |
|
|
$option .= "</select>"; |
|
|
return $option; |
|
|
} |
|
|
|
|
|
function GetAbsPath() |
|
|
{ |
|
|
return $_SESSION[PATH_ABSOLUTO]; |
|
|
} |
|
|
|
|
|
function GetBarPath() |
|
|
{ |
|
|
return $_SESSION[PATH_BAR]; |
|
|
} |
|
|
|
|
|
function ExecutaComando($comando, $conexao) |
|
|
{ |
|
|
/* |
|
|
$query = "SELECT usuario_servidor, senha_servidor, porta_servidor FROM pbx_conf_padrao"; |
|
|
$result = pg_query($conexao, $query); |
|
|
|
|
|
$dados = pg_fetch_array($result); |
|
|
$usuario_servidor = $dados['usuario_servidor']; |
|
|
$senha_servidor = $dados['senha_servidor']; |
|
|
$porta_servidor = $dados['porta_servidor']; |
|
|
|
|
|
//endereco do servidor onde ser<EFBFBD> executado o comando |
|
|
$ssh = new Net_SSH2('127.0.0.1', $porta_servidor); |
|
|
if (!$ssh->login($usuario_servidor, $senha_servidor)) { |
|
|
return false; |
|
|
} |
|
|
// return $ssh->exec($comando); |
|
|
return $ssh->exec(sprintf("%s", $comando)); |
|
|
*/ |
|
|
return CnvrtFileExec($comando); |
|
|
} |
|
|
|
|
|
function MascaraDisp() |
|
|
{ |
|
|
$mascara = array(); |
|
|
$mascara[] = array('MODELOS DISPONIVEIS' => ''); |
|
|
$mascara[] = array('FIXO LOCAL' => '[2-5]XXXXXXX'); |
|
|
$mascara[] = array('MOVEL LOCAL' => '[6-9]XXXXXXX'); |
|
|
$mascara[] = array('UTILIDADE PUBLICA' => '1XX'); |
|
|
$mascara[] = array('0300' => '0300XXXXXXX'); |
|
|
$mascara[] = array('0303' => '0303XXXXXXX'); |
|
|
$mascara[] = array('0500' => '0500XXXXXXX'); |
|
|
$mascara[] = array('0800' => '0800XXXXXXX'); |
|
|
$mascara[] = array('0900' => '0900XXXXXXX'); |
|
|
$mascara[] = array('400X' => '400NXXXX'); |
|
|
$mascara[] = array('LONGA DISTANCIA FIXO' => '0ZZZZ[2-5]XXXXXXX'); |
|
|
$mascara[] = array('LONGA DISTANCIA FIXO 2' => '0ZZ[2-5]XXXXXXX'); |
|
|
$mascara[] = array('LONGA DISTANCIA FIXO 3' => 'ZZ[2-5]XXXXXXX'); |
|
|
$mascara[] = array('LONGA DISTANCIA MOVEL' => '0ZZZZ[6-9]XXXXXXX'); |
|
|
$mascara[] = array('LONGA DISTANCIA MOVEL 2' => '0ZZ[6-9]XXXXXXX'); |
|
|
$mascara[] = array('LONGA DISTANCIA MOVEL 3' => 'ZZ[6-9]XXXXXXX'); |
|
|
|
|
|
return $mascara; |
|
|
} |
|
|
|
|
|
function GetTroncosDisponiveis($dbcon) |
|
|
{ |
|
|
$arBuff = array(); |
|
|
$query = "select id, nome, tipo from pbx_troncos "; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
while ($dados = pg_fetch_array($result)) { |
|
|
$arBuff[] = $dados; |
|
|
} |
|
|
return $arBuff; |
|
|
} |
|
|
|
|
|
function GetIdResult($result) |
|
|
{ |
|
|
$row = pg_fetch_row($result); |
|
|
return $row[0]; |
|
|
} |
|
|
|
|
|
function GetAudio($dbcon, $codSel) |
|
|
{ |
|
|
$query = "select nome from pbx_musichold_grupos"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$ret = '<select name="cmp_audio" style="width:500px">'; |
|
|
$ret .= "<option value=\"0\">--------------</option>"; |
|
|
while ($row = pg_fetch_array($result)) { |
|
|
$value = $row['nome']; |
|
|
|
|
|
if ($codSel == $value) { |
|
|
$sel = "selected"; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
if (!empty($value)) |
|
|
$ret .= "<option value=\"$value\" $sel>$value</option>"; |
|
|
} |
|
|
$ret .= '</select>'; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
/* |
|
|
Alan Pablo - 11/01/2011 |
|
|
fun<EFBFBD><EFBFBD>o GetFormatoAudio |
|
|
Itens alterados: |
|
|
- WAV = wav49 |
|
|
- wav = Wav |
|
|
|
|
|
*/ |
|
|
|
|
|
function GetFormatoAudio($codSel, $nomeCampo = 'cmp_formato_gravacao') |
|
|
{ |
|
|
$linhas[] = array('id' => 'WAV', 'nome' => 'wav49'); |
|
|
$linhas[] = array('id' => 'gsm', 'nome' => 'Gsm'); |
|
|
$linhas[] = array('id' => 'wav', 'nome' => 'Wav'); |
|
|
$ret = "<select name=\"$nomeCampo\">"; |
|
|
$ret .= "<option value=\"0\">--------------</option>"; |
|
|
foreach ($linhas as $row) { |
|
|
$value = $row['id']; |
|
|
$desc = $row['nome']; |
|
|
|
|
|
if ($codSel == $value) { |
|
|
$sel = "selected"; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
if (!empty($value)) |
|
|
$ret .= "<option value=\"$value\" $sel>$desc</option>"; |
|
|
} |
|
|
$ret .= '</select>'; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetStatusCampanha($dbcon, $codSel, $desabStatus, $filtro = "") |
|
|
{ |
|
|
$desab = $desabStatus ? "disabled" : ""; |
|
|
$filtro = $filtro ? " and cpst_id not in($filtro) " : ""; |
|
|
$query = "select cpst_id as id, cpst_nome as nome from pbx_campanha_status where cpst_status = 1 $filtro order by 2"; |
|
|
//if(IsAdmin()) echo $query; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
$ret = "<select name=\"cmp_status\" id=\"cmp_status\" style=\"width:200px\" $desab >"; |
|
|
$ret .= "<option value=\"-1\">--------------</option>"; |
|
|
while ($row = pg_fetch_array($result)) { |
|
|
$value = $row['id']; |
|
|
$nome = $row['nome']; |
|
|
|
|
|
if ($codSel == $value) { |
|
|
$sel = "selected"; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
//if(!empty($value)) |
|
|
$ret .= "<option value=\"$value\" $sel>$nome</option>"; |
|
|
} |
|
|
$ret .= '</select>'; |
|
|
return $ret; |
|
|
} |
|
|
|
|
|
function GetCofigPadrao($dbcon) |
|
|
{ |
|
|
$query = "SELECT * FROM pbx_conf_padrao"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$dados = pg_fetch_array($result); |
|
|
|
|
|
$_SESSION[CONF_PADRAO_CAMINHO_BACK] = $dados['caminho_backup']; |
|
|
$_SESSION[CONF_PADRAO_CAMINHO_PRODUCAO] = $dados['caminho_producao']; |
|
|
$_SESSION[CONF_PADRAO_CAMINHO_MUSICAS] = $dados['caminho_musicas']; |
|
|
$_SESSION[CONF_PADRAO_URL_MUSICAS] = $dados['url_musicas']; |
|
|
$_SESSION[CONF_PADRAO_URL_ASTERISK] = $dados['url_asterisk']; |
|
|
} |
|
|
|
|
|
function GravaCampanha($dbcon) |
|
|
{ |
|
|
$caminho_producao = $_SESSION[CONF_PADRAO_CAMINHO_PRODUCAO]; |
|
|
$arq = $caminho_producao . "extensions_campanha.conf"; |
|
|
$escreve = fopen($arq, 'w+'); |
|
|
|
|
|
if (!$escreve) |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel abrir o arquivo $caminho_producao\"extensions_campanha.conf\""); |
|
|
|
|
|
$query = "select cmp_id, cmp_numero,cmp_descricao, cmp_formato_gravacao, cmp_habilitar_gravacao, cmp_status, cmp_qt_tronco_pa from pbx_campanha where cmp_status not in(0)"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$result) |
|
|
throw new Exception("N<EFBFBD>o foi consultar o banco de dados!"); |
|
|
|
|
|
$str = sprintf('[ext-campanha]%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,1,Noop(MATRICULA = ${MATRICULA} e IDORIGEM = ${IDORIGEM} e MUTE = ${MUTE})%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,GotoIf($["${MUTE}" = "V"]?mute)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,GotoIf($["${ESPERA}" = "V"]?espera)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,GotoIf($["${TRANSFER}" = "V"]?transfer)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,GotoIf($["X${MATRICULA}" = "X"]?desliga)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
//Alan Pablo - 10/01/2011 => Remover parametros |
|
|
// $str = sprintf('exten => h,n,GotoIf($["${DB(CANAL/${MATRICULA}/${IDORIGEM})}" = "DESLIGADO"]?desliga)%s', "\n"); |
|
|
// fwrite($escreve,$str); |
|
|
// $str = sprintf('exten => h,n,Set(DB(CANAL/${MATRICULA}/${IDORIGEM})=DESLIGADO)%s', "\n"); |
|
|
// fwrite($escreve,$str); |
|
|
$str = sprintf('exten => h,n,System(${ATUALIZAR} CAMPANHA ${MATRICULA})%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n(desliga),Hangup()%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n(mute),Goto(ext-app-mute|${MATRICULA}|cliente-fila)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,Hangup()%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n(espera),Goto(ext-app-espera|${MATRICULA}|cliente-fila)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,Hangup()%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n(transfer),Goto(ext-app-transfer|${MATRICULA}|cliente-fila)%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => h,n,Hangup()%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
/* |
|
|
|
|
|
$str = sprintf('exten => h,1,Noop(MATRICULA = ${MATRICULA} e IDORIGEM = ${IDORIGEM})%s', "\n"); |
|
|
fwrite($escreve,$str); |
|
|
$str = sprintf('exten => h,n,GotoIf($["X${MATRICULA}" = "X"]?desliga)%s', "\n"); |
|
|
fwrite($escreve,$str); |
|
|
$str = sprintf('exten => h,n,GotoIf($["${DB(CANAL/${MATRICULA}/${IDORIGEM})}" = "DESLIGADO"]?desliga)%s', "\n"); |
|
|
fwrite($escreve,$str); |
|
|
$str = sprintf('exten => h,n,Set(DB(CANAL/${MATRICULA}/${IDORIGEM})=DESLIGADO)%s', "\n"); |
|
|
fwrite($escreve,$str); |
|
|
$str = sprintf('exten => h,n,System(${ATUALIZAR} LIVRE ${MATRICULA})%s', "\n"); |
|
|
fwrite($escreve,$str); |
|
|
$str = sprintf('exten => h,n(desliga),Hangup()%s', "\n"); |
|
|
fwrite($escreve,$str); |
|
|
*/ |
|
|
while ($dados = pg_fetch_array($result)) { |
|
|
$arCampanha[] = $dados; |
|
|
/* |
|
|
Alan Pablo - 10/01/2011 |
|
|
Arquivo extensions_campanha |
|
|
- Remover parametros comentados |
|
|
- Adicionado tratamento para desabilitar grava<EFBFBD><EFBFBD>o |
|
|
*/ |
|
|
|
|
|
// $str = sprintf('exten => %s,1,ResetCDR(w)%s', $dados["cmp_id"], "\n"); |
|
|
// fwrite($escreve,$str); |
|
|
$str = sprintf('exten => %s,1,Answer()%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
// $str = sprintf('exten => %s,n,AGI(pbx_complemento.php|ext-campanha)%s', $dados["cmp_id"], "\n"); |
|
|
// fwrite($escreve,$str); |
|
|
|
|
|
if ($dados["cmp_habilitar_gravacao"]) { |
|
|
$str = sprintf('exten => %s,n,Set(CDR(accountcode)=${UNIQUEID})%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(UNICO=${RAND(0000000000|9999999999)})%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(MONITOR_FILENAME=${EXTEN}-${UNICO}-${UNIQUEID})%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(_AUDIO=${EXTEN}-${UNICO}-${UNIQUEID}.%s)%s', $dados["cmp_id"], $dados["cmp_formato_gravacao"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(__DISCAGEM=AUTO)%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(__TIPOLIGACAO=${TIPOLIGACAO})%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(__IDENTIFICADOR_CLI=${IDENTIFICADOR})%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
} |
|
|
|
|
|
$str = sprintf('exten => %s,n,Queue(%s|Ttr|||5|agente_campanha.php|%s|%s)%s', $dados["cmp_id"], $dados["cmp_descricao"], $dados["cmp_descricao"], $dados["cmp_qt_tronco_pa"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,AGI(retorna_campanha.php|${ID_CLI})%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Hangup()%s', $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
} |
|
|
fclose($escreve); |
|
|
|
|
|
/* |
|
|
* Arquivo para transferir chamadas para a campanha |
|
|
*/ |
|
|
$arq = $caminho_producao . "extensions_transfere_campanha.conf"; |
|
|
$escreve = fopen($arq, 'w+'); |
|
|
|
|
|
if (!$escreve) |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel acessar o arquivo \"extensions_transfere_campanha.conf\"!"); |
|
|
|
|
|
$query = "select cmp_id, cmp_numero from pbx_campanha where cmp_status not in(0)"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$result) |
|
|
throw new Exception("N<EFBFBD>o foi consultar o banco de dados!"); |
|
|
|
|
|
$str = sprintf('[transf-campanha]%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
while ($dados = pg_fetch_array($result)) { |
|
|
if ($dados['cmp_numero']) { |
|
|
$str = sprintf('exten => %s,1,Set(__TIPO=EXTERNA)%s', $dados["cmp_numero"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Set(__TIPOLIGACAO=RECEPTIVA)%s', $dados["cmp_numero"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Goto(ext-campanha|%s|1)%s', $dados["cmp_numero"], $dados["cmp_id"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('exten => %s,n,Hangup()%s', $dados["cmp_numero"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
} |
|
|
} |
|
|
fclose($escreve); |
|
|
|
|
|
|
|
|
/* |
|
|
* Inicio Queues campanha |
|
|
*/ |
|
|
|
|
|
$arq = $caminho_producao . "queues_campanha.conf"; |
|
|
$escreve = fopen($arq, 'w+'); |
|
|
|
|
|
if (!$escreve) |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel acessar o arquivo \"queues_campanha.conf\"!"); |
|
|
|
|
|
|
|
|
$query = "select cmp_id, cmp_descricao, cmp_estrategia_distribuicao, cmp_formato_gravacao, cmp_habilitar_gravacao from pbx_campanha where cmp_status not in(0)"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$result) |
|
|
throw new Exception("N<EFBFBD>o foi consultar o banco de dados!"); |
|
|
|
|
|
|
|
|
while ($dados = pg_fetch_array($result)) { |
|
|
$str = sprintf('[%s]%s', $dados["cmp_descricao"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('strategy=%s%s', $dados["cmp_estrategia_distribuicao"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('servicelevel=60%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('retry=1%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('timeout=30%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('maxlen=0%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('announce=beep%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('joinempty=yes%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('wrapuptime=0%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('autofill=yes%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
if ($dados["cmp_habilitar_gravacao"]) { |
|
|
if ($dados["cmp_formato_gravacao"] == 'WAV') { |
|
|
$dados["cmp_formato_gravacao"] = 'wav49'; |
|
|
} |
|
|
$str = sprintf('monitor-format=%s%s', $dados["cmp_formato_gravacao"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
$str = sprintf('monitor-type=mixmonitor%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
} |
|
|
$str = sprintf('setinterfacevar=yes%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
$str = sprintf('%s', "\n"); |
|
|
fwrite($escreve, $str); |
|
|
} |
|
|
fclose($escreve); |
|
|
|
|
|
|
|
|
/* |
|
|
* Grava rotas de saida da campanha |
|
|
*/ |
|
|
$arq = $caminho_producao . "extensions_rotas_saida_campanha.conf"; |
|
|
$escreve = fopen($arq, 'w+'); |
|
|
if (!$escreve) |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel acessar o arquivo \"extensions_rotas_saida_campanha.conf\"!"); |
|
|
|
|
|
$query = "select cmp_id, cmp_descricao, cmp_estrategia_distribuicao, cmp_formato_gravacao, cmp_habilitar_gravacao from pbx_campanha where cmp_status not in(0)"; |
|
|
$queryModelo = "select cpmd_id, cmp_id, cpmd_modelo, cpmd_recorte, cpmd_acrescenta from pbx_campanha_modelos where cmp_id = '%s' "; |
|
|
$queryTronco = "select a.cptr_id, a.cmp_id, a.cpmd_id, a.cptr_tronco, a.cptr_nome_tronco, |
|
|
b.tipo, b.username |
|
|
from pbx_campanha_troncos a, pbx_troncos b |
|
|
where b.id = a.cptr_tronco |
|
|
and a.cpmd_id = '%s' order by a.cptr_tronco"; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$result) |
|
|
throw new Exception("N<EFBFBD>o foi consultar o banco de dados!"); |
|
|
|
|
|
|
|
|
while ($dados = pg_fetch_array($result)) { |
|
|
/* |
|
|
* Dados referentes a campanha |
|
|
*/ |
|
|
$str = sprintf('[saida-campanha-%s]%s', $dados["cmp_descricao"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
$str = sprintf('include => saida-campanha-%s%s', $dados["cmp_descricao"] . "_custom", "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
// $str = sprintf("include => saida-zenite"."\n"); |
|
|
// fwrite($escreve,$str); |
|
|
|
|
|
$str = sprintf("include => padrao" . "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
/* |
|
|
* Seleciona os modelos por tronco |
|
|
*/ |
|
|
$query = sprintf($queryModelo, $dados["cmp_id"]); |
|
|
$resultModelo = pg_query($dbcon, $query); |
|
|
if (!$resultModelo) |
|
|
throw new Exception("N<EFBFBD>o foi consultar o banco de dados!"); |
|
|
|
|
|
|
|
|
while ($dadosModelo = pg_fetch_array($resultModelo)) { |
|
|
/* |
|
|
* Grava os dados referentes ao modelo |
|
|
*/ |
|
|
$str = sprintf('exten => _%s,1,Noop(TIPO-DISCAGEM == ${TIPO-DISCAGEM})%s', $dadosModelo["cpmd_modelo"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
$str = sprintf('exten => _%s,n,AGI(canal_discagem_automatica.php|${ID_CLI})%s', $dadosModelo["cpmd_modelo"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
$str = sprintf('exten => _%s,n,AGI(pbx_complemento.php|${CONTEXT})%s', $dadosModelo["cpmd_modelo"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
|
|
|
/* |
|
|
* Seleciona os troncos por modelo |
|
|
*/ |
|
|
$query = sprintf($queryTronco, $dadosModelo["cpmd_id"]); |
|
|
$resultTronco = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$resultTronco) |
|
|
throw new Exception("N<EFBFBD>o foi consultar o banco de dados!"); |
|
|
|
|
|
while ($dadosTronco = pg_fetch_array($resultTronco)) { |
|
|
// $str = sprintf('exten => _%s,n,Set(GROUP()=%s)%s', $dadosModelo["cpmd_modelo"], $dadosTronco["cptr_tronco"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
// $str = sprintf('exten => _%s,n,GotoIf($[${GROUP_COUNT(%s)} > 30]?limite)%s', $dadosModelo["cpmd_modelo"], $dadosTronco["cptr_tronco"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
/* |
|
|
Alan Pablo - 10/01/2011 |
|
|
Remover parametros |
|
|
*/ |
|
|
// $str = sprintf('exten => _%s,n,Set(_TIPO=EXTERNO)%s', $dadosModelo["cpmd_modelo"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
// $str = sprintf('exten => _%s,n,Macro(gravacao|OUT|${CALLERID(NUM)})%s', $dadosModelo["cpmd_modelo"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
$recortar = $dadosModelo["cpmd_recorte"] ? sprintf(':%s', $dadosModelo["cpmd_recorte"]) : ''; |
|
|
$acrescentar = $dadosModelo["cpmd_acrescenta"] ? $dadosModelo["cpmd_acrescenta"] : ''; |
|
|
$str = sprintf('exten => _%s,n,Macro(dial-campanha|%s/%s/%s${EXTEN%s}|r|${ID_CLI}|${IDENTIFICADOR}|${EXTEN:-10})%s', $dadosModelo["cpmd_modelo"], $dadosTronco["tipo"], $dadosTronco["username"], $acrescentar, $recortar, "\n"); |
|
|
fwrite($escreve, $str); |
|
|
} |
|
|
$str = sprintf('exten => _%s,n,Hangup()%s', $dadosModelo["cpmd_modelo"], "\n"); |
|
|
fwrite($escreve, $str); |
|
|
// $str = sprintf('exten => _%s,n(limite),Playback(appsounds/linhas_ocupadas)%s', $dadosModelo["cpmd_modelo"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
// $str = sprintf('exten => _%s,n,Hangup()%s', $dadosModelo["cpmd_modelo"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
// $str = sprintf('exten => _%s,n(senha),Playback(appsounds/utilize_senha)%s', $dadosModelo["cpmd_modelo"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
// $str = sprintf('exten => _%s,n,Hangup()%s', $dadosModelo["cpmd_modelo"], "\n" ); |
|
|
// fwrite($escreve,$str); |
|
|
} |
|
|
} |
|
|
fclose($escreve); |
|
|
if (!GetUrl(AST_RELOAD_URA)) |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel recarregar a \"Ura\"!"); |
|
|
if (!GetUrl(AST_RELOAD_FILA)) |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel recarregar a \"Fila\"!"); |
|
|
} |
|
|
|
|
|
function SetAgente($db) |
|
|
{ |
|
|
$idUser = GetIdUser(); |
|
|
$query = "select |
|
|
case when( |
|
|
( |
|
|
select count(*) |
|
|
from pbx_grupo_usuario a, pbx_usuarios b, pbx_campanha_usuarios c, pbx_campanha d |
|
|
where b.id = a.user_id |
|
|
and c.matricula = b.matricula |
|
|
and d.cmp_id = c.cmp_id |
|
|
and a.user_id = u.id |
|
|
) > 0 |
|
|
)then 1 else 0 end as campanha, |
|
|
case when( |
|
|
( |
|
|
select count(*) |
|
|
from pbx_grupo_usuario a, pbx_fila_grupos b, pbx_queues_grupos c |
|
|
where b.gp_id = a.gp_id |
|
|
and c.id = b.id |
|
|
and a.user_id = u.id |
|
|
) > 0 |
|
|
)then 1 else 0 end as fila |
|
|
from pbx_usuarios u |
|
|
where u.id = '$idUser' "; |
|
|
|
|
|
|
|
|
$result = pg_query($db, $query); |
|
|
$row = @pg_fetch_row($result); |
|
|
$_SESSION["SSagente"] = ($row[0] + $row[1]) > 0; |
|
|
} |
|
|
|
|
|
function IncluiAgenteFile($dbcon) |
|
|
{ |
|
|
$query = "select matricula, apelido from pbx_usuarios where delete_ = 0"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if (!$result) { |
|
|
return "N<EFBFBD>o foi poss<EFBFBD>vel acessar o banco de dados!"; |
|
|
} else { |
|
|
$file = fopen(GetFileAgente(), 'w'); |
|
|
if (!$file) { |
|
|
return "N<EFBFBD>o foi poss<EFBFBD>vel acessar o arquivo de dados!"; |
|
|
} else { |
|
|
while ($row = pg_fetch_array($result)) { |
|
|
$userMatricula = $row["matricula"]; |
|
|
$userLogin = $row["apelido"]; |
|
|
$conteudo = "[$userMatricula](agents)\n"; |
|
|
$conteudo .= "fullname = $userLogin\n"; |
|
|
if (fwrite($file, $conteudo) === false) { |
|
|
return "N<EFBFBD>o foi poss<EFBFBD>vel gravar o arquivo de dados!"; |
|
|
} |
|
|
} |
|
|
fclose($file); |
|
|
GetUrl(AST_INCLUI_AGENTE); // return "N<EFBFBD>o foi poss<EFBFBD>vel atualizar o asterisk!"; |
|
|
} |
|
|
} |
|
|
return "OK"; |
|
|
} |
|
|
|
|
|
function GetListaCampanha($dbcon, $idCamp, $listId, $dtIni = '', $dtFim = '') |
|
|
{ |
|
|
$query = "select distinct a.list_id, a.list_nome || ' [' || a.list_id::text || ']' as list_nome |
|
|
from pbx_campanha_lista a, pbx_campanha_contato_fone b where b.cmp_id = a.cmp_id |
|
|
and b.list_id = a.list_id |
|
|
and b.cmp_id = $idCamp\n"; |
|
|
if ($dtIni) |
|
|
$query .= "and b.conf_data::date >= '$dtIni'\n"; |
|
|
if ($dtIni) |
|
|
$query .= "and b.conf_data::date <= '$dtFim'\n"; |
|
|
$query .= "order by 1"; |
|
|
|
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $listId; |
|
|
|
|
|
$dacs = "<select name=\"listId\" id=\"listId\" size=\"1\" style=\"width:340px;\">"; |
|
|
$sel = pg_num_rows($result) ? " selected" : ""; |
|
|
$dacs .= "<option value=\"0\"$sel>--------------------</option>"; |
|
|
|
|
|
while ($dados = @pg_fetch_array($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$dacs .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
} |
|
|
|
|
|
$dacs .= "</select>"; |
|
|
return $dacs; |
|
|
} |
|
|
|
|
|
function GetCampanhaRetorno($dbcon, $codDac = -1, $matricula = 0, $size = 12, $mult = 1, $disableb = "") |
|
|
{ |
|
|
$query = " select distinct cmp_id as id, cmp_descricao as nome from pbx_campanha where 1=1 order by 2 "; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $codDac; |
|
|
$sel = $codDac ? "selected" : ""; |
|
|
$dacs = "<select name=\"listaDacs\" id=\"listaDacs\" $mult size=\"$size\" $disableb style=\"width:340px;\" onchange=\"GetCampanhaLista()\">"; |
|
|
$dacs .= "<option value=\"0\" $sel>--------------------</option>"; |
|
|
$cont = 0; |
|
|
$i = 0; |
|
|
while ($dados = pg_fetch_row($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
$i = 1; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$dacs .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
|
$cont++; |
|
|
} |
|
|
|
|
|
$dacs .= "</select>"; |
|
|
return $dacs; |
|
|
} |
|
|
|
|
|
function GetCampanhas($dbcon, $codDac = -1, $matricula = 0, $dataIni = '', $dataFim = '') |
|
|
{ |
|
|
/* |
|
|
* Carrega lista de dacs disponivel |
|
|
* para ser inserdo entre as tags <select></select> |
|
|
*/ |
|
|
$size = 1; |
|
|
$mult = 0; |
|
|
$disableb = ""; |
|
|
$soAtivo = 0; |
|
|
$dtIni = empty($dataIni) || !is_date($dataIni) ? date('Y-m-d') : FormatDtMssql($dataIni); |
|
|
$dtFim = empty($dataFim) || !is_date($dataFim) ? date('Y-m-d') : FormatDtMssql($dataFim); |
|
|
$mult = $mult ? "multiple" : ""; |
|
|
$isAdm = IsAdmin() && !$matricula; |
|
|
if ($isAdm) |
|
|
$status = $soAtivo ? " and status = 'A' " : ""; |
|
|
else |
|
|
$status = $soAtivo ? " and d.status = 'A' " : ""; |
|
|
|
|
|
$idUser = !$matricula ? GetIdUser() : GetIdUserFromMatricula($dbcon, $matricula); |
|
|
$matricula = !$matricula ? GetMatricula() : $matricula; |
|
|
if (!$codDac && !IsPostBack()) |
|
|
$codDac = GetDacPadraoAgente($dbcon); |
|
|
|
|
|
|
|
|
if ($isAdm) { |
|
|
$query = " select distinct cmp_id as id, cmp_descricao as nome, 'A' as tipo, false as padrao from pbx_campanha a where 1=1 " . ($soAtivo ? " and cmp_status <> '0' " : "") . |
|
|
" and cmp_id in(select cmp_id from pbx_campanha_contato_fone where conf_data::date >= '$dtIni' and conf_data::date <= '$dtFim' and cmp_id = a.cmp_id) order by 3 desc, 4 desc, 2 asc "; |
|
|
// echo $query; |
|
|
} else { |
|
|
$query = "select distinct cmp_id as id, cmp_descricao as nome, 'A' as tipo, 'false' as padrao from pbx_campanha a where 1=1 and cmp_status <> '0' |
|
|
and exists( |
|
|
select '' |
|
|
from pbx_campanha_usuarios b |
|
|
where matricula = '$matricula' |
|
|
) |
|
|
and exists(select '' from pbx_campanha_contato_fone where conf_data::date >= '$dtIni' and conf_data::date <= '$dtFim' and cmp_id = a.cmp_id) |
|
|
order by 1, 2 "; |
|
|
} |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
$codSel = $codDac; |
|
|
$sel = $codDac ? "selected" : ""; |
|
|
$dacs = "<select name=\"listaDacs\" id=\"listaDacs\" $mult size=\"$size\" $disableb style=\"width:300px;\">"; //onchange=\"GetCampanhaLista();\" |
|
|
$dacs .= "<option value=\"0\" $sel>--------------------</option>"; |
|
|
$cont = 0; |
|
|
while ($dados = pg_fetch_array($result)) { |
|
|
if ($codSel == $dados[0]) { |
|
|
$sel = "selected"; |
|
|
} else { |
|
|
$sel = ""; |
|
|
} |
|
|
$dacs .= "<option value=\"$dados[0]-$dados[2]\" $sel>$dados[1]</option>"; |
|
|
$cont++; |
|
|
} |
|
|
$dacs .= "</select>"; |
|
|
return $dacs; |
|
|
} |
|
|
|
|
|
function _VerificaNomeTronco($db, $nome) |
|
|
{ |
|
|
$sql = "select '' from pbx_troncos where upper(nome) = upper('$nome')"; |
|
|
$result = pg_query($db, $sql); |
|
|
if (pg_num_rows($result)) { |
|
|
return "Este \"Nome\" j<EFBFBD> esta associado a outro \"Tronco\"!"; |
|
|
} |
|
|
|
|
|
|
|
|
$sql = "select '' from pbx_ramais where nome = '$nome'"; |
|
|
$result = pg_query($db, $sql); |
|
|
if (pg_num_rows($result)) { |
|
|
return "Este \"Nome\" j<EFBFBD> esta associado a um \"Ramal\"!"; |
|
|
} |
|
|
return false; |
|
|
} |
|
|
|
|
|
function base64ToFile($base64) |
|
|
{ |
|
|
$file = tempnam(sys_get_temp_dir(), time()); |
|
|
$ifp = fopen($file, 'wb'); |
|
|
fwrite($ifp, base64_decode($base64)); |
|
|
fclose($ifp); |
|
|
|
|
|
return $file; |
|
|
} |
|
|
|
|
|
/* |
|
|
* Esta funcao verifica se o dacpadrao ja foi atribuido ao usuario. |
|
|
*/ |
|
|
|
|
|
function GetNotExistsDacUser($dacPadraoSel, $idUser) |
|
|
{ |
|
|
$query = sprintf( |
|
|
"SELECT '' FROM pbx_fila_grupos WHERE id = %s AND gp_id IN(SELECT gp_id FROM pbx_grupo_usuario WHERE user_id = %s);", |
|
|
QuotedStr($dacPadraoSel), |
|
|
QuotedStr($idUser) |
|
|
); |
|
|
$result = pg_query($query); |
|
|
return pg_num_rows($result) ? true : false; |
|
|
}
|
|
|
|