Browse Source

correcao para confirmar agente somente na empresa determinada

1.9
Matheo Bonucia 3 months ago
parent
commit
428ab1a06d
  1. 30
      agente/agentert.php
  2. 3
      asterisk/var_lib_asterisk/agi-bin/intercala_lgpd.php
  3. 17
      include/util/funcoesApl.php

30
agente/agentert.php

@ -42,7 +42,7 @@
classifica -> Lista com classificacoes cadastradas para o dac
clasItem -> Listas com itens relacioanados a classificação da chamada
*/
$org_id = $_SESSION['SSEmpresaPadrao'];
/*
* Constantes para sesssao do agente,
* definidas em constantes.php sessao AgenteRT
@ -209,12 +209,12 @@ if (!IsAjax()) {
$jsStartup[] = "alert('Selecione um DAC!')";
} else {
if (AgenteON()) {
DesConectaAgenteRt($dbcon);
DesConectaAgenteRt($dbcon,'',$org_id);
}
ConnectaAgenteRt($dbcon, $dac, $tpAtende);
ConnectaAgenteRt($dbcon, $dac, $tpAtende, $org_id);
}
} else if (DesconectarDac()) {
DesConectaAgenteRt($dbcon);
DesConectaAgenteRt($dbcon,'',$org_id);
} else if (SairDePausa()) {
SairPausa($dbcon);
} else if (EntrarPausa()) {
@ -380,7 +380,7 @@ if (!IsAjax()) {
}
if ($acao == 'avisodesconnect') {
DesConectaAgenteRt($dbcon, 'DESCONNECT');
DesConectaAgenteRt($dbcon, 'DESCONNECT', $org_id);
exit;
}
@ -1277,7 +1277,7 @@ function EntraPausa($db, $codMotivo)
}
}
function SairPausa($db)
function SairPausa($db, $org_id)
{
global $jsStartup;
$regProc = QuotedStr(sprintf("|RemPausa: Login: %s Scrp: %s Func: %s ", GetLogin(), 'agentert.php', 'SairPausa'));
@ -1301,7 +1301,7 @@ function SairPausa($db)
$audio = GetStatusChamadaClassificada($dac);
if ($audio) {
$audio = substr($audio, 0, -4);
GetAudioClassificacaoRamal($audio);
GetAudioClassificacaoRamal($audio, $org_id);
$modo = GetModoAtende() == ATENDIMENTO_AUTOMATICO ? ',1' : '';
$jsStartup[] = sprintf("GetAlertConfirmAudio('$audio'%s)", $modo);
$_SESSION['SSClassificaPendente'] = 1;
@ -1379,7 +1379,7 @@ function SairPausa($db)
}
}
function ConnectaAgenteRt($db, $dac, $tpAtend)
function ConnectaAgenteRt($db, $dac, $tpAtend, $org_id)
{
global $jsStartup, $argv;
$regProc = QuotedStr(sprintf("AddPausa: Login: %s Scrp: %s Func: %s ", GetLogin(), 'agentert.php', 'ConnectaAgenteRt'));
@ -1438,7 +1438,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend)
/*
* Seleciona a descricao do dac escolhido;
*/
$query = "select nome from pbx_dacs where id = '$dac'";
$query = "select nome from pbx_dacs where id = '$dac' and org_id = '$org_id'";
$result = pg_query($db, $query);
if (!$result) {
@ -1462,7 +1462,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend)
/**
* Verifica a disponibilidade da fila
*/
$q = "SELECT disponivelfila FROM pbx_queues_grupos WHERE id = '$dac'";
$q = "SELECT disponivelfila FROM pbx_queues_grupos WHERE id = '$dac' AND org_id = '$org_id'";
$res = pg_query($db, $q);
$ret = pg_fetch_assoc($res);
$_SESSION["prm_disponivel_fila"] = $ret['disponivelfila'];
@ -1473,7 +1473,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend)
$ramal = GetRamalMonitorar(RAMAL_MONITOR_AGENTE);
$login = GetLogin();
$conAst = false;
$_SESSION[SS_AGT_CONTEXTO_RAMAL] = GetContextoRamal($db, $ramal);
$_SESSION[SS_AGT_CONTEXTO_RAMAL] = GetContextoRamal($db, $ramal, $org_id);
/*
* loga o agente no asterisk
@ -1613,7 +1613,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend)
}
}
function DesConectaAgenteRt($db, $type = '')
function DesConectaAgenteRt($db, $type = '', $org_id)
{
global $jsStartup;
$matricula = GetMatricula();
@ -1637,7 +1637,7 @@ function DesConectaAgenteRt($db, $type = '')
* Se o agente estiver em pausa é removido antes de deslogar.
*/
if ($_SESSION[SS_PAUSA_AGENTE]) {
@SairPausa($db);
@SairPausa($db, $org_id);
}
/*
@ -2803,12 +2803,12 @@ function GetStatusChamadaClassificada($dac)
return false;
}
function GetAudioClassificacaoRamal($audio)
function GetAudioClassificacaoRamal($audio, $org_id)
{
global $debugAmi, $dbcon;
$ramal = GetRamalAgenteLogado($dbcon);
$canalMonitorar = ValidaRamalApl($ramal);
$canalMonitorar = ValidaRamalApl($ramal, $org_id);
$_SESSION['ramalMonitorAudio'] = $ramal;
$_SESSION['canalMonitorAudio'] = $canalMonitorar;

3
asterisk/var_lib_asterisk/agi-bin/intercala_lgpd.php

@ -148,8 +148,7 @@ try {
*/
write("GET VARIABLE RAMAL");
$ramal_var = substr(strrchr(read(), "("), 1, -1);
$ramal_agente = ValidaRamalApl($ramal_var) ? $ramal_var : $agi['callerid'];
$ramal_agente = ValidaRamalApl($ramal_var, GetOrganizacao()) ? $ramal_var : $agi['callerid'];
$resposta = is_numeric(trim($argv[2])) ? $argv[2] : '0';
GravaLog(sprintf("ramal_agente = %s resposta = %s RAMAL = %s\n", $ramal_agente, $resposta, $ramal_var), $pathLog);

17
include/util/funcoesApl.php

@ -1944,8 +1944,8 @@ function GetErrorLast($message, $display = 0, $html = 0) {
return sprintf("%s-%s-%s", $ano, $mes, $diaFecha);
}
*/
function GetContextoRamal($db, $ramal) {
$query = "select contexto from pbx_ramais where nome = '$ramal'";
function GetContextoRamal($db, $ramal, $org_id) {
$query = "select contexto from pbx_ramais where nome = '$ramal' and org_id = '$org_id'";
$result = pg_query($db, $query);
$row = pg_fetch_row($result);
return $row[0];
@ -1958,8 +1958,8 @@ function ChamdaClassificadaAgente($db, $matricula) {
return $row[0];
}
function GetRamalLogado($db, $matricula) {
$query = "select ramal from pbx_supervisor_agentes where matricula = '$matricula'";
function GetRamalLogado($db, $matricula, $org_id) {
$query = "select ramal from pbx_supervisor_agentes where matricula = '$matricula' and org_id='$org_id'";
$result = pg_query($db, $query);
$row = pg_fetch_row($result);
return $row[0];
@ -3713,12 +3713,12 @@ function GetRamalMonitorar($name) {
return isset($_SESSION[$name]) ? $_SESSION[$name] : null;
}
function ValidaRamalApl($ramal) {
function ValidaRamalApl($ramal, $org_id) {
/*
* Esta função verifica se o ramal existe, e retorna o canal se o ramal é valido.
*/
global $dbcon;
$query = "select dispositivo from pbx_ramais where nome = '$ramal'";
$query = "select dispositivo from pbx_ramais where nome = '$ramal' and org_id = '$org_id'";
$result = pg_query($dbcon, $query);
if (!$result || !pg_num_rows($result)) {
@ -3778,7 +3778,8 @@ function ConfigRamalMonitorar() {
/*
* função verifica se o ramal é vélido, retornando ok caso afirmativo.
*/
$canalMonitorar = ValidaRamalApl($ramalMonitorar);
$org_id = GetOrganizacao();
$canalMonitorar = ValidaRamalApl($ramalMonitorar, $org_id) ;
/*
* Ramal invélido retorna falso.
@ -5047,7 +5048,7 @@ function RemoveOrganizacaoStr($str) {
if (!$org_id) {
return $str;
}
return strpos($str, $orgId) === 0 ? substr($str, strlen($orgId)) : $str;
return strpos($str, $org_id) === 0 ? substr($str, strlen($org_id)) : $str;
}
function GetMusicaEspera($db, $musicSel = null) {

Loading…
Cancel
Save