package gcom.gui.seguranca.acesso; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroOperacao; import gcom.seguranca.acesso.FiltroPesquisarOperacao; import gcom.seguranca.acesso.Operacao; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Descri��o da classe * * @author Administrador * @date 05/05/2006 */ public class PesquisarOperacaoAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ /* (non-Javadoc) * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("listaPesquisarOperacaoResultado"); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); PesquisarOperacaoActionForm pesquisarOperacaoActionForm = (PesquisarOperacaoActionForm) actionForm; // Recupera os par�metros do form String idOperacao = pesquisarOperacaoActionForm.getCodigoOperacao(); String nomeOperacao = pesquisarOperacaoActionForm.getNomeOperacao(); String tipoOperacao = pesquisarOperacaoActionForm.getTipoOperacao(); String idFuncionalidade = pesquisarOperacaoActionForm .getIdFuncionalidade(); // filtro para a pesquisa de endereco do cliente FiltroPesquisarOperacao filtroPesquisarOperacao = new FiltroPesquisarOperacao(); filtroPesquisarOperacao.setCampoOrderBy(FiltroOperacao.ID); boolean peloMenosUmParametroInformado = false; // Insere os par�metros informados no filtro if (idOperacao != null && !idOperacao.trim().equals("")) { peloMenosUmParametroInformado = true; filtroPesquisarOperacao.adicionarParametro(new ParametroSimples( FiltroPesquisarOperacao.ID, idOperacao)); } if (nomeOperacao != null && !nomeOperacao.trim().equals("")) { peloMenosUmParametroInformado = true; filtroPesquisarOperacao.adicionarParametro(new ComparacaoTexto( FiltroPesquisarOperacao.DESCRICAO, nomeOperacao)); } if (tipoOperacao != null && !tipoOperacao.trim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroPesquisarOperacao.adicionarParametro(new ParametroSimples( FiltroPesquisarOperacao.OPERACAO_TIPO, tipoOperacao)); } if (idFuncionalidade != null && !idFuncionalidade.trim().equals("")) { peloMenosUmParametroInformado = true; filtroPesquisarOperacao.adicionarParametro(new ParametroSimples( FiltroPesquisarOperacao.FUNCIONALIDADE, idFuncionalidade)); } // if (idfuncionalidade != null && !idfuncionalidade.trim().equals("")) // { // peloMenosUmParametroInformado = true; // filtroPesquisarOperacao.adicionarParametro(new ParametroSimples( // FiltroUnidadeOrganizacional.ID_UNIDADE_SUPERIOR, idfuncionalidade)); // } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } filtroPesquisarOperacao .adicionarCaminhoParaCarregamentoEntidade("tabelaColuna"); filtroPesquisarOperacao .adicionarCaminhoParaCarregamentoEntidade("operacaoTipo"); filtroPesquisarOperacao .adicionarCaminhoParaCarregamentoEntidade("funcionalidade"); Collection colecaoPesquisarOperacao = null; // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); // pesquisa os endere�os do cliente colecaoPesquisarOperacao = fachada.pesquisar(filtroPesquisarOperacao, Operacao.class.getName()); if (colecaoPesquisarOperacao == null || colecaoPesquisarOperacao.isEmpty()) { // Nenhuma cliente cadastrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "Opera��o"); } else if (colecaoPesquisarOperacao.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { // Muitos registros encontrados throw new ActionServletException("atencao.pesquisa.muitosregistros"); } else { // Coloca a cole��o na sess�o sessao.setAttribute("colecaoPesquisarOperacao", colecaoPesquisarOperacao); } return retorno; } }