diff --git a/asterisk/var_lib_asterisk/scripts/callcenter/atualizar-dacs.php b/asterisk/var_lib_asterisk/scripts/callcenter/atualizar-dacs.php index d364d682..756b35bf 100755 --- a/asterisk/var_lib_asterisk/scripts/callcenter/atualizar-dacs.php +++ b/asterisk/var_lib_asterisk/scripts/callcenter/atualizar-dacs.php @@ -42,12 +42,13 @@ fclose($socket); foreach ($colas as $key => $cola) { $info = GetNomeOrganizacao($key); - $query = sprintf("SELECT dac FROM pbx_supervisor_dacs WHERE dac = %s", QuotedStr($info['nome'])); - $result = pg_query($dbcon, $query); - $exists = pg_num_rows($result); $nome = $info['nome']; $org_id = $info['org_id']; + $query = sprintf("SELECT dac FROM pbx_supervisor_dacs WHERE dac = %s", QuotedStr($nome)); + $result = pg_query($dbcon, $query); + $exists = pg_num_rows($result); + if ($exists) { $query = "UPDATE pbx_supervisor_dacs set atendidas = %s, abandonadas = %s, espera = %s, tempo_espera = %s, tempo_nivel_servico = %s, percentual_nivel_servico = %s WHERE dac = %s"; $query = sprintf($query, QuotedStr($cola['Completed']), QuotedStr($cola['Abandoned']), QuotedStr($cola['Calls']), QuotedStr(($cola['Calls'] ? $cola['Holdtime'] : 0)), QuotedStr($cola['ServiceLevel']), QuotedStr($cola['ServicelevelPerf']), QuotedStr($nome)); diff --git a/include/util/funcoesSsupervisor.php b/include/util/funcoesSsupervisor.php index b09b89df..ecada710 100755 --- a/include/util/funcoesSsupervisor.php +++ b/include/util/funcoesSsupervisor.php @@ -83,7 +83,8 @@ define("TEMPO_DELAY_AGENTE", 3); */ $patLog = "/var/log/asterisk/supervisor.log"; -function sCreateMemory($fileKey, $paramMalloc, $mode = SHM_ACESS_MODE_C, $perms = SHM_ACESS_PERMISSION) { +function sCreateMemory($fileKey, $paramMalloc, $mode = SHM_ACESS_MODE_C, $perms = SHM_ACESS_PERMISSION) +{ $readOnly = $mode == SHM_ACESS_MODE_R; /* @@ -121,14 +122,16 @@ function sCreateMemory($fileKey, $paramMalloc, $mode = SHM_ACESS_MODE_C, $perms return $shmKey; } -function Malloc($param) { +function Malloc($param) +{ /* * Calculates necessary memory for 100 simultaneous processes. */ - return !count($param) ? 0 : ( $param[0] + ( $param[1] * $param[2] ) ); + return !count($param) ? 0 : ($param[0] + ($param[1] * $param[2])); } -function GetInfoControle() { +function GetInfoControle() +{ try { /* * Verifica se o server esta trabalhando. @@ -156,7 +159,8 @@ function GetInfoControle() { } } -function RetornaDadosDac($paramControle, $dacUser = array()) { +function RetornaDadosDac($paramControle, $dacUser = array()) +{ try { /* * Verifica se o server esta trabalhando. @@ -174,13 +178,14 @@ function RetornaDadosDac($paramControle, $dacUser = array()) { $dadosDac = ShmReadVar($shmKey, 0, $sizeControle); if (is_array($dadosDac)) { - - if (Count($dacUser)) { + if (count($dacUser)) { $arDacs = array(); foreach ($dacUser as $dac) { $arDacs[$dac] = $dadosDac[$dac]; } $dadosDac = $arDacs; + } else { + $dadosDac = []; } return $dadosDac; } @@ -191,7 +196,8 @@ function RetornaDadosDac($paramControle, $dacUser = array()) { } } -function RetornaDadosAgt($paramControle) { +function RetornaDadosAgt($paramControle) +{ try { /* * Verifica se o server esta trabalhando. @@ -218,7 +224,8 @@ function RetornaDadosAgt($paramControle) { } } -function LimpaSessaoAgente($shmkey, $pos) { +function LimpaSessaoAgente($shmkey, $pos) +{ $offSet = $pos * TAM_SEGMENTO_SESSAO_CONTROLE; $data = str_repeat(' ', TAM_SEGMENTO_SESSAO_CONTROLE); ShmWrite($shmkey, $data, $offSet); diff --git a/supervisor.php b/supervisor.php index ac86ae79..b15ff5ed 100644 --- a/supervisor.php +++ b/supervisor.php @@ -321,7 +321,7 @@ function GetDadosAgt($dac) $dacAll = strtoupper($dac) == "TODOS"; $arControle = GetInfoControle(); - // print_r($arControle); exit; + /* * Verifica o tempo de atuzlização do servidor, * se for inferior a 10s usa o servidor do su- @@ -459,11 +459,15 @@ function GetQueryDac() function GetDacsAcesso($idUser, $array = false) { global $dbcon; - $query = "SELECT DISTINCT b.nome FROM pbx_queues_grupos b + $org_id = GetOrganizacao(); + + $query = "SELECT DISTINCT SUBSTRING(b.nome, 1, position('@' IN b.nome) - 1) AS nome + FROM pbx_queues_grupos b INNER JOIN pbx_fila_grupos c ON c.id = b.id - INNER JOIN pbx_grupo_usuario d ON d.gp_id = c.gp_id + INNER JOIN pbx_grupo_usuario d ON d.gp_id = c.gp_id AND d.user_id = %s and b.status = 'A' "; $query = sprintf($query, IsAdmin() ? 'd.user_id' : QuotedStr($idUser)); + $query .= " AND b.org_id = {$org_id}"; $result = pg_query($dbcon, $query); $linha = $array ? array() : '';