*/ 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 b.org_id = c.org_id AND c.org_id = d.org_id AND c.gp_id = b.gp_id AND d.id = c.id AND c.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 ? "" : ''; 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 = ""; return $dacs; } function GetEstrategiaDistribuicao($dbCon, $codEst) { $query = 'select est_id, est_descricao from pbx_estrategia_distribuicao'; $result = pg_query($dbCon, $query); $codSel = $codEst; $reg = ""; return $reg; } function GetCombo($dbCon, $query, $codSel, $incTodos = true) { $result = pg_query($dbCon, $query); $reg = ""; return $reg; } function GetDacAgente($dbcon, $idUser, $codDac, $disableb = "", $getDac = 0) { $org_id = $_SESSION['SSEmpresaPadrao']; /* * 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 c.org_id = d.org_id and d.id = c.id and a.id = '$idUser' c.org_id = $org_id"; /* $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 = ""; return $dacs; } function GetIdDacPadrao($dbcon, $idUser) { if (IsAdmin()) { return ; } $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) { $org_id = $_SESSION['SSEmpresaPadrao']; $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 and c.org_id = $org_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) { $org_id = $_SESSION['SSEmpresaPadrao']; $isAdm = !$idUser && IsAdmin(); if ($isAdm) { $query = "select d.id, d.nome from pbx_dacs d where d.status = 'A' org_id = $org_id 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' and b.org_id = $org_id 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 b.org_id = $org_id 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) { $org_id = $_SESSION['SSEmpresaPadrao']; /* * Quando $verPausa é definido como true indica que apenas queremos * nos certificar se o agente entrou em pausa. Quando a pausa é ativa- * da pelo supervisor precisamos alimentar os parametro da sessao cor- * rente entao $verPausa é definido como false. */ $query = "SELECT count(*) FROM pbx_supervisor_agentes WHERE matricula = '$mat' AND upper(status) = 'PAUSA' and org_id = $org_id"; $result = pg_query($dbcon, $query); $row = @pg_fetch_row($result); $ret = $row[0]; if ($verPausa && ($ret == 0)) { return false; } elseif ($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 and pbx_eventos_agentes.org_id = $org_id) and a.org_id = $org_id"; $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) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT motivo FROM pbx_motivos_pausas WHERE id = '$codigo' and org_id IN ($org_id, 0)"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); return $row[0]; } function GetDacCod($dbcon, $dac) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT d.id FROM pbx_dacs d WHERE upper(d.nome) = upper('$dac') and d.org_id IN ($org_id, 0)"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); $ret = $row[0]; return $ret; } function GetDacPadraoAgente($dbcon, $getId = true) { $org_id = $_SESSION['SSEmpresaPadrao']; $idUser = GetIdUser(); if (IsAdmin()) return 0; $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 AND b.org_id = $org_id"; //echo $query; $result = pg_query($dbcon, $query); $row = @pg_fetch_row($result); $ret = $getId ? $row[0] : $row[1]; return $ret; } function GetSiteDesc($dbcon, $id) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT d.descricao FROM pbx_sites d WHERE id = $id and org_id = $org_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; //Define zero para capturar configuracoes padrao para todas as empresas $org_id = GetOrganizacao(); /* * Carrega lista de pausas disponiveis por dac. */ //$idMotivoLogin = isset($_SESSION["motivoLogin"]) ? $_SESSION["motivoLogin"] : GetMotivoLogin($dbcon); $idMotivoLogin = GetMotivoLogin($dbcon); /* * A pausa ausente é 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á 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 é adicionada na verificação pois nã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 in ($org_id, 0) " . (UsePausaGrupo() ? "AND id IN( SELECT $idMotivoLogin UNION SELECT c.id FROM pbx_grupo a, pbx_grupo_usuario b, pbx_pausa_grupo_usuario c WHERE a.org_id = b.org_id AND b.org_id = c.org_id AND b.gp_id = a.gp_id AND c.gp_id = b.gp_id AND b.user_id = $idUsuario AND a.org_id IN ($org_id, 0) )" : "") . " ORDER BY a.motivo"; $result = pg_query($dbcon, $query); $sel = ""; $codSel = $codMotivo; $sZ = isset($sZlistaMotivo) ? $sZlistaMotivo : "width:220px; height:26px"; $motivo = ""; return $motivo; } function SetPbx($db, $idUser) { $org_id = $_SESSION['SSEmpresaPadrao']; // // 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 a.org_id = b.org_id and c.fun_id = b.fun_id and c.org_id = b.org_id and a.org_id = $org_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 é 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"]) ? GetRamalWithOrganization($GLOBALS["ramalOperacao"]) : GetRamalWithOrganization(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, $dac); break; case AST_REM_PAUSA: $result = RemPausaAmi($socket, $matricula, $ramal, $dac); 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çã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ção */ return !stripos($get, "Error"); } function GetInfoUrl($acao) { $get = GetUrlAterisk($acao); $get = file_get_contents($get); return nl2br($get); } function GetMenuAgente($idSub) { $block = ""; $menuSel = ""; //$menuDeSel = ""; $menuDeSel = $_SESSION[AGT_EM_PAUSA] || !$_SESSION[AGT_CONECT] ? "" : ""; $menuAgente = ""; $menuAgente .= ""; $menuAgente .= ""; $menuAgente .= ""; $menuAgente .= ""; // $menuAgente .= ""; $menuAgente .= ""; //$menuAgente .= ""; $menuAgente .= ""; $menuAgente .= "
Principal " . ($idSub == AGT_PRINCIPAL ? $menuSel : $menuDeSel) . "DAC " . ($idSub == AGT_SEL_DAC ? $menuSel : $menuDeSel) . "Pausa " . ($idSub == AGT_PAUSA ? $menuSel : $menuDeSel) . "Call ".($idSub == AGT_CALL ? $menuSel : $menuDeSel)."" . GetLogin() . "-" . GetMatricula() . "Call ".($idSub == AGT_CALL ? $menuSel : $menuDeSel)."
"; return $menuAgente; } function GetRamalSip($dbcon, $ramalAgente) { $org_id = $_SESSION['SSEmpresaPadrao']; //$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' and org_id = $org_id"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); $ret = $row[0]; return $ret; } function GetIdUserFromMatricula($dbcon, $matricula) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select id from pbx_usuarios where matricula = '$matricula' and org_id = $org_id"; $result = pg_query($dbcon, $query); $row = @pg_fetch_row($result); $ret = $row[0]; return $ret; } function GetAgenteRamais($dbcon, $ramalAgente) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select nome, nome from pbx_ramais and org_id = $org_id"; $result = pg_query($dbcon, $query); $codSel = $ramalAgente; $ramais = ""; return $ramais; } function VerificaRamalLogado($db, &$dac, &$agente, $org_id) { $ramal = GetRamalMonitorar(RAMAL_MONITOR_AGENTE); $query = "select dac, nome, count(*) from pbx_supervisor_agentes where ramal = '$ramal' and org_id = $org_id 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) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT modo_atendimento FROM pbx_queues_grupos WHERE id = $dac and org_id = $org_id"; $result = pg_query($db, $query); $modo = pg_fetch_assoc($result); return $modo['modo_atendimento']; } function VerficaAgenteLogado($db) { $org_id = $_SESSION['SSEmpresaPadrao']; /* * Funcao modificada para derrubar o agente se já logado. $matricula = GetMatricula(); $query = "delete from pbx_supervisor_agentes where matricula = '$matricula'"; pg_query($db, $query); return false; */ $org_id = GetOrganizacao(); $matricula = GetMatricula(); $query = "select count(*) from pbx_supervisor_agentes where matricula = '$matricula' and org_id = $org_id"; $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) { $org_id = $_SESSION['SSEmpresaPadrao']; $matricula = GetMatricula(); $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]; } function VerificaRamalSigame($db, $ramal, $org_id) { $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' and org_id=$org_id"; $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, $org_id) { if (!GetExigeClas($db, $dac)) return false; $query = "select count(*) as num_dac from pbx_classifica_dacs where id_dac = '$dac' and org_id=$org_id"; $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ões. */ if ($isAgtFixo === 0) { return false; } return true; } function VerificaMaxAgenteLogado($db, $org_id) { //$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 where org_id=$org_id"); $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õ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 where org_id = $org_id"; $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 "
" . $get . "
"; $pos = stripos($get, 'AGENT_LOGGEDOFF'); } return $pos; } function IsSupervisor($db) { $org_id = $_SESSION['SSEmpresaPadrao']; $matricula = GetMatricula(); $query = "SELECT user_id, gp_id FROM pbx_usuarios a INNER JOIN pbx_grupo_usuario b ON a.id = b.user_id and b.org_id = $org_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) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = " SELECT clas_id, clas_descricao FROM pbx_classifica_atendimento where org_id = $org_id and clas_status = 1 and clas_id in (select clas_id from pbx_classifica_dacs where id_dac = '$dac' and org_id = $org_id) order by 2"; $result = pg_query($db, $query); if (!$result) { $clas = ""; return $clas; } $clas = $useSelect ? "" : ""; return $clas; } function GetItem($db, $idClas, $idItem, $useSelect = 1) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT clit_id, clit_descricao FROM pbx_classifica_item where clas_id = $idClas and clit_status = 1 and org_id = $org_id order by 2"; $result = pg_query($db, $query); $clas = $useSelect ? "" : ""; 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 = "") { $org_id = $_SESSION['SSEmpresaPadrao']; //carrega Atendente $codSel = ((!$_SESSION["listaAgente"]) || ($trocaDac)) ? 0 : $_SESSION["listaAgente"]; $sel = !$codSel ? "selected" : ""; $agentes = ""; return $agentes; } function GetTodosAgentes($dbcon, $codSel, $incTodos = 1, $sql = '') { $sel = !$codSel ? "selected" : ""; $agentes = ""; return $agentes; } function GetTodasContas($dbcon, $codSel) { $org_id = $_SESSION['SSEmpresaPadrao']; $sel = !$codSel ? "selected" : ""; $agentes = ""; 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) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT pu.id, nome, apelido, matricula, email FROM pbx_usuarios pu INNER JOIN pbx_organizacao_usuarios pou ON pu.id = pou.id_usuario and pou.id_organizacao = $org_id 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ção de Senha") : ($_SESSION[SS_PRM_SENHA_EXPIRADA] ? $_SESSION[SS_PRM_MSG_SENHA_EXP] : "Alteração de Senha"); } function VerificaCharFinal($str, $ch = "/") { return substr($str, -1) == $ch ? $str : $str . $ch; } function GetHeadMenu($db) { $org_id = $_SESSION['SSEmpresaPadrao']; $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 and org_id = $org_id 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 = "") { $org_id = $_SESSION['SSEmpresaPadrao']; /* * Carrega lista de dacs disponivel * para ser inserdo entre as tags */ $query = "select id, descricao from pbx_sites where status = 1 order by upper(descricao) and org_id = $org_id"; $result = pg_query($dbcon, $query); $codSel = $codSite; $site = ""; return $site; } function GetEmpresas($dbcon, $empresa, $disableb = "", $incTodos = 0, $useSelect = 1, $dispTodos = '--------') { /* * Carrega lista de dacs disponivel * para ser inserdo entre as tags */ $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 = ""; } return $site; } function GetDeptos($dbcon, $empresa, $depto, $disableb = "", $incTodos = 0, $useSelect = 1, $todos = "--------") { /* * Carrega lista de dacs disponivel * para ser inserdo entre as tags */ $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 = ""; return $site; } $codSel = $depto; if ($useSelect) { $site = ""; return $site; } function GetDefCodEmpresa($dbcon) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select min(id) from pbx_empresa where org_id = $org_id"; $result = pg_query($dbcon, $query); $dados = @pg_fetch_row($result); return $dados[0]; } function __GetProto__($db) { $org_id = $_SESSION['SSEmpresaPadrao']; //registra o protocolo para o id corrente $mat = GetMatricula(); $query = "select uniqueid from pbx_supervisor_agentes where matricula = '$mat' and org_id = $org_id"; $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' and org_id = $org_id"; $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, org_id) select '$uniqueId', $anoAtu, $numProto, $proto, org_id where not exists(select '' from pbx_protocolo_reg where uniqueid = '$uniqueId' and org_id = $org_id)"; $result = pg_query($db, $query); if (pg_affected_rows($result) == 0) { $query = "select ano, numProto from pbx_protocolo_reg where uniqueid = '$uniqueId' and org_id = $org_id"; $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 = ""; $link = "{$img}{$txt}"; 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 = ""; $link = "$img$txt"; 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 : ""; if ($disabLink) $link = $img; else $link = "$img"; 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 = ""; $link = sprintf("$img", $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 . " é campo obrigató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álido:" . $nomeCampo . "."; $ret = false; } if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_DATE) && (!is_date($_POST[$value]))) { $msg[] = "Data invá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álido:" . $_POST[$value] . "."; $ret = false; } if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_EMAIL) && (!is_email($_POST[$value]))) { $msg[] = "Email inválido: " . $_POST[$value] . ".";; $ret = false; } if (!empty($_POST[$value]) && ($fieldsType[$value] == TYPE_TIME) && (!is_time($_POST[$value]))) { $msg[] = "Hora invá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) { $org_id = $_SESSION['SSEmpresaPadrao']; //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 and org_id = $org_id) and org_id = $org_id"; $result = pg_query($db, $query); if ($result) { $row = @pg_fetch_row($result); return $row[0]; } return 0; } function SetHosts($dbcon) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select id, descricao, host, usuario, senha, basedados, porta from pbx_sites where org_id = $org_id "; $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 = ""; return $linhas; } function GetGrupoRamais($dbcon, $codSel) { $sel = !$codSel ? "selected" : ""; $linhas = ""; return $linhas; } function GetGrupoId($dbcon) { $org_id = $_SESSION['SSEmpresaPadrao']; $id = array(); $query = "SELECT DISTINCT gp_id FROM pbx_grupo_usuario "; $query .= GetIdUser() ? " WHERE org_id = $org_id and user_id = " . GetIdUser() : "where org_id = $org_id"; $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 = ""; return $linhas; } function GetCentroCusto($dbcon, $codSel) { $sel = !$codSel ? "selected" : ""; $linhas = ""; return $linhas; } function GetUserFromConta($dbcon, $matricula, $incMatricula = 0) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select matricula, apelido from pbx_cs_usuarios where matricula = '$matricula' and org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { $nome = 'Não foi possível realizar a operaçã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 = " "; return $tp; } function GetMotivoLogin($db) { $org_id = GetOrganizacao(); $query = "select id from pbx_motivos_pausas where upper(motivo) = 'LOGIN' and org_id IN ($org_id, 0)"; $result = pg_query($db, $query); $row = @pg_fetch_array($result); $_SESSION["motivoLogin"] = $row[0]; return $row[0]; } function GetMotivoDef($db) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select min(id) from pbx_motivos_pausas where upper(motivo) not in('LOGIN','AUSENTE', 'RECUSADA') and org_id IN ($org_id, 0)"; $result = pg_query($db, $query); $row = @pg_fetch_array($result); return $row[0]; } function GetTempo($dbcon, $nameCombo, $tipotempo, $codSel) { $option = ""; 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á 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) { $org_id = $_SESSION['SSEmpresaPadrao']; $arBuff = array(); $query = "select id, nome, tipo from pbx_troncos and org_id = $org_id"; $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) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select nome from pbx_musichold_grupos where org_id = $org_id"; $result = pg_query($dbcon, $query); $ret = ''; return $ret; } /* Alan Pablo - 11/01/2011 funçã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 = "'; return $ret; } function GetStatusCampanha($dbcon, $codSel, $desabStatus, $filtro = "") { $org_id = $_SESSION['SSEmpresaPadrao']; $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 org_id = $org_id and cpst_status = 1 $filtro order by 2"; //if(IsAdmin()) echo $query; $result = pg_query($dbcon, $query); $ret = "'; return $ret; } function GetCofigPadrao($dbcon) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT * FROM pbx_conf_padrao where org_id = $org_id"; $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) { $org_id = $_SESSION['SSEmpresaPadrao']; $caminho_producao = $_SESSION[CONF_PADRAO_CAMINHO_PRODUCAO]; $arq = $caminho_producao . "extensions_campanha.conf"; $escreve = fopen($arq, 'w+'); if (!$escreve) throw new Exception("Não foi possí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 org_id = $org_id and cmp_status not in(0)"; $result = pg_query($dbcon, $query); if (!$result) throw new Exception("Nã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çã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ão foi possível acessar o arquivo \"extensions_transfere_campanha.conf\"!"); $query = "select cmp_id, cmp_numero from pbx_campanha where org_id = $org_id and cmp_status not in(0)"; $result = pg_query($dbcon, $query); if (!$result) throw new Exception("Nã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ão foi possí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 org_id = $org_id and cmp_status not in(0)"; $result = pg_query($dbcon, $query); if (!$result) throw new Exception("Nã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ão foi possí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 org_id = $org_id and cmp_status not in(0)"; $queryModelo = "select cpmd_id, cmp_id, cpmd_modelo, cpmd_recorte, cpmd_acrescenta from pbx_campanha_modelos where org_id = $org_id and 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.org_id = b.org_id and a.org_id = $org_id and a.cpmd_id = '%s' order by a.cptr_tronco"; $result = pg_query($dbcon, $query); if (!$result) throw new Exception("Nã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ã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ã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(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ão foi possível recarregar a \"Ura\"!"); if (!GetUrl(AST_RELOAD_FILA)) throw new Exception("Não foi possível recarregar a \"Fila\"!"); } function SetAgente($db) { $org_id = $_SESSION['SSEmpresaPadrao']; $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 and a.org_id = d.org_id and a.org_id = $org_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 and a.org_id = b.org_id and a.org_id = c.org_id and a.org_id = $org_id ) > 0 )then 1 else 0 end as fila from pbx_usuarios u inner join pbx_organizacao_usuarios pou ON pou.id_usuario = u.id and pou.id_organizacao = $org_id where u.id = '$idUser' "; $result = pg_query($db, $query); $row = @pg_fetch_row($result); $_SESSION["SSagente"] = ($row[0] + $row[1]) > 0; } function IncluiAgenteFile($dbcon) { $org_id = $_SESSION['SSEmpresaPadrao']; $query = "select matricula, apelido from pbx_usuarios pu inner join pbx_organizacao_usuarios pou ON pou.id_usuarios = pu.id and pou.id_organizacao = $org_id where delete_ = 0"; $result = pg_query($dbcon, $query); if (!$result) { return "Não foi possível acessar o banco de dados!"; } else { $file = fopen(GetFileAgente(), 'w'); if (!$file) { return "Não foi possí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ão foi possível gravar o arquivo de dados!"; } } fclose($file); GetUrl(AST_INCLUI_AGENTE); // return "Não foi possível atualizar o asterisk!"; } } return "OK"; } function GetListaCampanha($dbcon, $idCamp, $listId, $dtIni = '', $dtFim = '') { $org_id = $_SESSION['SSEmpresaPadrao']; $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 and a.org_id = b.org_id and a.org_id = $org_id\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 = ""; return $dacs; } function GetCampanhaRetorno($dbcon, $codDac = -1, $matricula = 0, $size = 12, $mult = 1, $disableb = "") { $org_id = $_SESSION['SSEmpresaPadrao']; $query = " select distinct cmp_id as id, cmp_descricao as nome from pbx_campanha where 1=1 and org_id = $org_id order by 2 "; $result = pg_query($dbcon, $query); $codSel = $codDac; $sel = $codDac ? "selected" : ""; $dacs = ""; return $dacs; } function GetCampanhas($dbcon, $codDac = -1, $matricula = 0, $dataIni = '', $dataFim = '') { /* * Carrega lista de dacs disponivel * para ser inserdo entre as tags */ $org_id = $_SESSION['SSEmpresaPadrao']; $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 and org_id = $org_id " . ($soAtivo ? " and cmp_status <> '0' " : "") . " and cmp_id in(select cmp_id from pbx_campanha_contato_fone where org_id = $org_id and 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 org_id = $org_id and cmp_status <> '0' and exists( select '' from pbx_campanha_usuarios b where matricula = '$matricula' and b.org_id = $org_id ) and exists(select '' from pbx_campanha_contato_fone where org_id = $org_id and 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 = ""; 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á 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á 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; }