Novo Serviço', QuotedStr($filtroNovo));
$org_id = GetOrganizacao();
if ($acao == 'apagar') {
$serv_id = strtoupper(trim($_REQUEST['serv_id']));
$status = trim($_REQUEST['serv_status']);
try {
if (!$serv_id) {
GeraExcept("Informe um indentificador válido para o \"Serviço\"!");
} else if (RegistroInc($dbcon, sprintf(' select count(*) from pbx_rotas_entrada where serv_id = %s', QuotedStr($serv_id)))) {
GeraExcept("Desvincule o serviço das rotas de entrada para desativa-lo!");
}
$query = sprintf("UPDATE pbx_servicos SET serv_status = $status WHERE serv_id = %s", QuotedStr($serv_id));
$result = pg_query($dbcon, $query);
if (!$result) {
GeraExcept("Erro ao realizar a operação!");
}
$jsStartup[] = sprintf("alert('%s');", 'Operação realizada com sucesso!');
} catch (Exception $ex) {
$jsStartup[] = sprintf("alert('%s');", $ex->getMessage());
}
} else if ($acao == 'novo') {
$serv_id = strtoupper(trim($_REQUEST['serv_id']));
try {
if (!$serv_id) {
GeraExcept("Informe um indentificador válido para o \"Serviço\"!");
} else if (RegistroInc($dbcon, sprintf('select count(*) from pbx_servicos where serv_id = %s', QuotedStr($serv_id)))) {
GeraExcept("Serviço já cadastrado!");
}
$query = sprintf("INSERT INTO pbx_servicos(serv_id, org_id) VALUES(%s, %s)", QuotedStr($serv_id), $org_id);
$result = pg_query($dbcon, $query);
if (!$result) {
GeraExcept("Erro ao realizar a operação!");
}
$jsStartup[] = sprintf("alert('%s');", 'Operação realizada com sucesso!');
} catch (Exception $ex) {
$jsStartup[] = sprintf("alert('%s');", $ex->getMessage());
}
}
$compl = '';
if (isset($_REQUEST['paramPesquisa']) && $_REQUEST['paramPesquisa']) {
$compl = PreparaLike($filtro, true);
$compl = sprintf("and (a.serv_id ilike %s)", $compl);
}
switch ($filtroStatus) {
case 'A':
$compl .= 'AND serv_status = 1';
break;
case 'I':
$compl .= 'AND serv_status = 0';
break;
}
$query = "SELECT serv_id, serv_status FROM pbx_servicos WHERE 1=1 $compl order by 1";
$linha = "";
$params = "¶mPesquisa=$filtro";
$links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true);
$query .= " limit $regPagina offset $offSet";
$result = pg_query($dbcon, $query);
while ($dados = @pg_fetch_array($result)) {
$serv_id = $dados["serv_id"];
$serv_status = $dados["serv_status"];
$rotas = ServicosRotas($serv_id);
$msgDelete = ($serv_status ? 'Desativa o registro selecionado!' : 'Ativa o registro selecionado!');
$imgEdit = "";
$serv = sprintf("$serv_id", ($serv_status ? '#000' : '#f00'), ($serv_status ? 'Desativa' : 'Ativa'), ($serv_status ? 0 : 1), $msgDelete);
$imgDelete = sprintf("", ($serv_status ? 'deletaUser.png' : 'volta16.gif'), ($serv_status ? 'Desativa' : 'Ativa'), ($serv_status ? 0 : 1), $msgDelete);
$imgRotas = sprintf("", ($rotas ? 'troncoOn16.png' : 'troncoOff16.png'), ($rotas ? $rotas : 'Não existem rotas dependentes!'));
$imgStatus = sprintf("", ($serv_status ? 'ok16.gif' : 'fecha16.png'));
$linha .= "
$serv |
$imgRotas |
$imgStatus |
$imgDelete |
";
}
$smarty->assign('erro', $msg);
$smarty->assign("linhas", $linha);
$smarty->assign("paramPesquisa", $paramPesquisa);
$smarty->assign("imgNovo", $imgNovo);
$smarty->assign("links", $links);
$smarty->assign("pagMostra", $pagMostra);
$smarty->assign("totalReg", $totalReg);
$smarty->assign("pgn", $_REQUEST["pgn"]);
$smarty->assign("bloco", $_REQUEST["bloco"]);
$smarty->assign("pg", $_REQUEST["pg"]);
$smarty->assign('filtroStatus', $filtroStatus);
GetTemplate($smarty, $tpl);
function ServicosRotas($serv_id)
{
global $dbcon;
$query = sprintf("SELECT id, nome FROM pbx_rotas_entrada WHERE serv_id = %s ORDER BY nome", QuotedStr($serv_id));
$result = pg_query($dbcon, $query);
if (!$result || !pg_num_rows($result)) {
return '';
}
$str = 'Rotas associadas a este serviço: ';
while ($dados = pg_fetch_array($result)) {
$str .= $dados['id'] . '-' . $dados['nome'] . '; ';
}
return $str;
}