Browse Source

Merge pull request 'correcao para confirmar agente somente na empresa determinada' (#257) from matheorb/developer:dev-1.9 into 1.9

Reviewed-on: SimplesIP/pabx-app#257
1.9
Matheo Bonucia 3 months ago
parent
commit
03fb4f5d7f
  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 classifica -> Lista com classificacoes cadastradas para o dac
clasItem -> Listas com itens relacioanados a classificação da chamada clasItem -> Listas com itens relacioanados a classificação da chamada
*/ */
$org_id = $_SESSION['SSEmpresaPadrao'];
/* /*
* Constantes para sesssao do agente, * Constantes para sesssao do agente,
* definidas em constantes.php sessao AgenteRT * definidas em constantes.php sessao AgenteRT
@ -209,12 +209,12 @@ if (!IsAjax()) {
$jsStartup[] = "alert('Selecione um DAC!')"; $jsStartup[] = "alert('Selecione um DAC!')";
} else { } else {
if (AgenteON()) { if (AgenteON()) {
DesConectaAgenteRt($dbcon); DesConectaAgenteRt($dbcon,'',$org_id);
} }
ConnectaAgenteRt($dbcon, $dac, $tpAtende); ConnectaAgenteRt($dbcon, $dac, $tpAtende, $org_id);
} }
} else if (DesconectarDac()) { } else if (DesconectarDac()) {
DesConectaAgenteRt($dbcon); DesConectaAgenteRt($dbcon,'',$org_id);
} else if (SairDePausa()) { } else if (SairDePausa()) {
SairPausa($dbcon); SairPausa($dbcon);
} else if (EntrarPausa()) { } else if (EntrarPausa()) {
@ -380,7 +380,7 @@ if (!IsAjax()) {
} }
if ($acao == 'avisodesconnect') { if ($acao == 'avisodesconnect') {
DesConectaAgenteRt($dbcon, 'DESCONNECT'); DesConectaAgenteRt($dbcon, 'DESCONNECT', $org_id);
exit; exit;
} }
@ -1277,7 +1277,7 @@ function EntraPausa($db, $codMotivo)
} }
} }
function SairPausa($db) function SairPausa($db, $org_id)
{ {
global $jsStartup; global $jsStartup;
$regProc = QuotedStr(sprintf("|RemPausa: Login: %s Scrp: %s Func: %s ", GetLogin(), 'agentert.php', 'SairPausa')); $regProc = QuotedStr(sprintf("|RemPausa: Login: %s Scrp: %s Func: %s ", GetLogin(), 'agentert.php', 'SairPausa'));
@ -1301,7 +1301,7 @@ function SairPausa($db)
$audio = GetStatusChamadaClassificada($dac); $audio = GetStatusChamadaClassificada($dac);
if ($audio) { if ($audio) {
$audio = substr($audio, 0, -4); $audio = substr($audio, 0, -4);
GetAudioClassificacaoRamal($audio); GetAudioClassificacaoRamal($audio, $org_id);
$modo = GetModoAtende() == ATENDIMENTO_AUTOMATICO ? ',1' : ''; $modo = GetModoAtende() == ATENDIMENTO_AUTOMATICO ? ',1' : '';
$jsStartup[] = sprintf("GetAlertConfirmAudio('$audio'%s)", $modo); $jsStartup[] = sprintf("GetAlertConfirmAudio('$audio'%s)", $modo);
$_SESSION['SSClassificaPendente'] = 1; $_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; global $jsStartup, $argv;
$regProc = QuotedStr(sprintf("AddPausa: Login: %s Scrp: %s Func: %s ", GetLogin(), 'agentert.php', 'ConnectaAgenteRt')); $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; * 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); $result = pg_query($db, $query);
if (!$result) { if (!$result) {
@ -1462,7 +1462,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend)
/** /**
* Verifica a disponibilidade da fila * 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); $res = pg_query($db, $q);
$ret = pg_fetch_assoc($res); $ret = pg_fetch_assoc($res);
$_SESSION["prm_disponivel_fila"] = $ret['disponivelfila']; $_SESSION["prm_disponivel_fila"] = $ret['disponivelfila'];
@ -1473,7 +1473,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend)
$ramal = GetRamalMonitorar(RAMAL_MONITOR_AGENTE); $ramal = GetRamalMonitorar(RAMAL_MONITOR_AGENTE);
$login = GetLogin(); $login = GetLogin();
$conAst = false; $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 * 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; global $jsStartup;
$matricula = GetMatricula(); $matricula = GetMatricula();
@ -1637,7 +1637,7 @@ function DesConectaAgenteRt($db, $type = '')
* Se o agente estiver em pausa é removido antes de deslogar. * Se o agente estiver em pausa é removido antes de deslogar.
*/ */
if ($_SESSION[SS_PAUSA_AGENTE]) { if ($_SESSION[SS_PAUSA_AGENTE]) {
@SairPausa($db); @SairPausa($db, $org_id);
} }
/* /*
@ -2803,12 +2803,12 @@ function GetStatusChamadaClassificada($dac)
return false; return false;
} }
function GetAudioClassificacaoRamal($audio) function GetAudioClassificacaoRamal($audio, $org_id)
{ {
global $debugAmi, $dbcon; global $debugAmi, $dbcon;
$ramal = GetRamalAgenteLogado($dbcon); $ramal = GetRamalAgenteLogado($dbcon);
$canalMonitorar = ValidaRamalApl($ramal); $canalMonitorar = ValidaRamalApl($ramal, $org_id);
$_SESSION['ramalMonitorAudio'] = $ramal; $_SESSION['ramalMonitorAudio'] = $ramal;
$_SESSION['canalMonitorAudio'] = $canalMonitorar; $_SESSION['canalMonitorAudio'] = $canalMonitorar;

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

@ -148,8 +148,7 @@ try {
*/ */
write("GET VARIABLE RAMAL"); write("GET VARIABLE RAMAL");
$ramal_var = substr(strrchr(read(), "("), 1, -1); $ramal_var = substr(strrchr(read(), "("), 1, -1);
$ramal_agente = ValidaRamalApl($ramal_var, GetOrganizacao()) ? $ramal_var : $agi['callerid'];
$ramal_agente = ValidaRamalApl($ramal_var) ? $ramal_var : $agi['callerid'];
$resposta = is_numeric(trim($argv[2])) ? $argv[2] : '0'; $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); 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); return sprintf("%s-%s-%s", $ano, $mes, $diaFecha);
} }
*/ */
function GetContextoRamal($db, $ramal) { function GetContextoRamal($db, $ramal, $org_id) {
$query = "select contexto from pbx_ramais where nome = '$ramal'"; $query = "select contexto from pbx_ramais where nome = '$ramal' and org_id = '$org_id'";
$result = pg_query($db, $query); $result = pg_query($db, $query);
$row = pg_fetch_row($result); $row = pg_fetch_row($result);
return $row[0]; return $row[0];
@ -1958,8 +1958,8 @@ function ChamdaClassificadaAgente($db, $matricula) {
return $row[0]; return $row[0];
} }
function GetRamalLogado($db, $matricula) { function GetRamalLogado($db, $matricula, $org_id) {
$query = "select ramal from pbx_supervisor_agentes where matricula = '$matricula'"; $query = "select ramal from pbx_supervisor_agentes where matricula = '$matricula' and org_id='$org_id'";
$result = pg_query($db, $query); $result = pg_query($db, $query);
$row = pg_fetch_row($result); $row = pg_fetch_row($result);
return $row[0]; return $row[0];
@ -3713,12 +3713,12 @@ function GetRamalMonitorar($name) {
return isset($_SESSION[$name]) ? $_SESSION[$name] : null; 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. * Esta função verifica se o ramal existe, e retorna o canal se o ramal é valido.
*/ */
global $dbcon; 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); $result = pg_query($dbcon, $query);
if (!$result || !pg_num_rows($result)) { if (!$result || !pg_num_rows($result)) {
@ -3778,7 +3778,8 @@ function ConfigRamalMonitorar() {
/* /*
* função verifica se o ramal é vélido, retornando ok caso afirmativo. * 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. * Ramal invélido retorna falso.
@ -5047,7 +5048,7 @@ function RemoveOrganizacaoStr($str) {
if (!$org_id) { if (!$org_id) {
return $str; 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) { function GetMusicaEspera($db, $musicSel = null) {

Loading…
Cancel
Save