1 ? fmtMsg('Ramais incluidos com sucesso!') : fmtMsg('Ramal incluido com sucesso!'); } catch (Exception $e) { pg_query($dbcon, 'rollback'); fmtErro($e->getMessage(), pg_last_error($dbcon)); } } } if (isset($fieldsForm['btRemove'])) { if (empty($fieldsForm['listaRamaisIncluidos'])) { $fieldsForm['erro'] = fmtMsg('Selecione um ramal!'); } else { try { $result = pg_query($dbcon, 'begin'); if ($result) { $userAdmin = IsAdmin() ? 1 : 0; $cont = 0; foreach ($fieldsForm['listaRamaisIncluidos'] as $ramal) { $query = "delete from pbx_grupo_ura_ramal where id_ura = '%s' and id_ramal = '%s'"; $query = sprintf($query, $_SESSION['SSIdUraRamal'], $ramal); $result = pg_query($dbcon, $query); DeleteRamalDestino($dbcon, $_SESSION['SSIdUraRamal'], $ramal); if (!$result) break; $cont++; } } $result = $result && pg_query($dbcon, 'commit'); if (!$result) { throw new Exception('A operação não pode ser realizada!'); } $fieldsForm['erro'] = $cont > 1 ? fmtMsg('Ramais removidos com sucesso!') : fmtMsg('Ramal removido com sucesso!'); } catch (Exception $e) { pg_query($dbcon, 'rollback'); fmtErro($e->getMessage(), pg_last_error($dbcon)); } } } $fieldsForm['listaRamaisDisponiveis'] = GetRamaisDisponiveis($dbcon, $_SESSION['SSIdUraRamal'], 0); $fieldsForm['listaRamaisIncluidos'] = GetRamaisIncluidos($dbcon, $_SESSION['SSIdUraRamal'], 0); /* * Atualiza templates templates */ foreach ($fieldsForm as $key => $value) { $smarty->assign($key, $value); } GetTemplate($smarty, $templateName); ############################################################################ ############# QUERYS BANCO DE DADOS ############# ############################################################################ function GetRamaisDisponiveis($dbcon, $id_ura, $codSel) { $gp_id = implode(",", GetGrupoId($dbcon)); $multiple = true; $tamPx = '300'; $size = 8; $query = "SELECT DISTINCT a.id, a.nome FROM pbx_ramais a WHERE NOT EXISTS(SELECT '' FROM pbx_grupo_ura_ramal WHERE a.id = id_ramal and id_ura = '{$id_ura}') AND NOT EXISTS(SELECT '' FROM pbx_grupo_audio_ramal WHERE a.nome = nome and gp_id IN ({$gp_id})) ORDER BY a.nome "; $result = pg_query($dbcon, $query); $cont = 0; $sel = ""; $lista = '\n"; return $lista; } function GetRamaisIncluidos($dbcon, $id_ura,$codSel) { $gp_id = implode(",", GetGrupoId($dbcon)); $multiple = true; $tamPx = '300'; $size = 8; $query = "SELECT DISTINCT a.id, a.nome FROM pbx_ramais a INNER JOIN pbx_grupo_ura_ramal b ON a.id = b.id_ramal WHERE EXISTS(SELECT '' FROM pbx_grupo_ura_ramal WHERE a.id = id_ramal and id_ura = '{$id_ura}') AND NOT EXISTS(SELECT '' FROM pbx_grupo_audio_ramal WHERE a.nome = nome and gp_id IN ({$gp_id})) ORDER BY a.nome "; $result = pg_query($dbcon, $query); $cont = 0; $sel = ""; $lista = '\n"; return $lista; } function CadastraRamalDestino($dbcon, $id_ura, $id_ramal) { $data = VerificaRamal($dbcon, $id_ura, $id_ramal); if (!$data) { $ramal = GetRamal($dbcon, $id_ramal); $query = "INSERT INTO pbx_ura_destino (id_ura, numero, tipo, comando, sequencia,nome_comando, visible) " . "VALUES({$id_ura},'{$ramal}','ramal','{$ramal}',{$ramal},'{$ramal}', 'N')"; pg_query($dbcon, $query); } } function DeleteRamalDestino($dbcon, $id_ura, $id_ramal){ $ramal = GetRamal($dbcon, $id_ramal); $query = "DELETE FROM pbx_ura_destino WHERE id_ura = {$id_ura} AND numero = '{$ramal}' AND visible = 'N'"; pg_query($dbcon, $query); } function VerificaRamal($dbcon, $id_ura, $id_ramal) { $query = "SELECT * FROM pbx_ura_destino a INNER JOIN pbx_ramais b ON a.comando = b.nome INNER JOIN pbx_grupo_ura_ramal c ON c.id_ramal = b.id WHERE c.id_ramal = {$id_ramal} AND a.id_ura = {$id_ura} AND a.visible = 'N'"; $result = pg_query($dbcon, $query); return pg_fetch_assoc($result); } function GetSequencia($dbcon, $id_ura) { $query = "SELECT (MAX(sequencia)+1) AS sequencia FROM pbx_ura_destino WHERE id_ura = {$id_ura}"; $result = pg_query($dbcon, $query); return pg_fetch_assoc($result)['sequencia']; } function GetRamal($dbcon, $id_ramal){ $query = "SELECT nome FROM pbx_ramais WHERE id = {$id_ramal};"; $result = pg_query($dbcon, $query); $ramal = pg_fetch_assoc($result)['nome']; return $ramal; } ?>