String lsQuery = "";
String lsAssunto = "";
String lsEstadoScript = "";
List listaScript = null;
List listaAssunto = null;
Assunto assunto;
Iterator iter;
// filtra pelo texto informado
lsTexto = " Where (s.descricao LIKE '%" + pTexto + "%' OR"
+ " s.titulo LIKE '%" + pTexto + "%')";
// Monta filtro com o histórico de busca se a opção "Buscar nestes
// resultados" estiver marcada
if ((pBuscarNovamente != null)
&& (pBuscarNovamente.equalsIgnoreCase("S"))) {
if (pHistoricoTextos != null) {
iter = pHistoricoTextos.iterator();
while (iter.hasNext()) {
lsStringHistorico = (String) iter.next();
lsHistoricoTexto = lsHistoricoTexto
+ " and (s.descricao LIKE '%" + lsStringHistorico
+ "%' OR" + " s.titulo LIKE '%" + lsStringHistorico
+ "%')";
}
lsTexto = lsTexto + lsHistoricoTexto;
}
}
// Filtra por assuntos ativos para o funcionario logado
listaAssunto = pFunc.getListaAssuntosComAtuacao("Ativo");
// Verifica se foi selecionado um assunto
if (!pAssunto.equalsIgnoreCase("0")) {
lsAssunto = " and s.assunto.id = " + pAssunto;
}
// Caso não tenha sido selecionado um assunto, traz-se
// apenas os scripts cujo assunto esteja associado ao funcionario
// através do relacionamento de atuação
else {
// Varre os assuntos pegando seus respectivos IDs
if (listaAssunto != null) {
lsAssunto = " and (";
iter = listaAssunto.iterator();
while (iter.hasNext()) {
assunto = (Assunto) iter.next();
lsAssunto = lsAssunto + " s.assunto.id = "
+ assunto.getId() + " or";
}
// retirar último " or"
lsAssunto = lsAssunto.substring(0, (lsAssunto.length() - 3));
lsAssunto = lsAssunto + ")";