package gcom.gui.util.tabelaauxiliar.unidade; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.util.tabelaauxiliar.DadosTelaTabelaAuxiliar; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; import gcom.util.tabelaauxiliar.unidade.FiltroTabelaAuxiliarUnidade; import gcom.util.tabelaauxiliar.unidade.TabelaAuxiliarUnidade; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Descri��o da classe * * @author COMPESA * @date 02/08/2006 */ public class PesquisarTabelaAuxiliarUnidadeAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm; // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("retornoPesquisaTabelaAuxiliarUnidade"); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Pega o parametro passado no request DadosTelaTabelaAuxiliar dados = (DadosTelaTabelaAuxiliarUnidade) sessao .getAttribute("dados"); // Recupera os par�metros do form String id = (String) pesquisarActionForm.get("id"); String descricao = (String) pesquisarActionForm.get("descricao"); String descricaoAbreviada = (String) pesquisarActionForm .get("descricaoAbreviada"); String unidadeMaterial = (String) pesquisarActionForm .get("unidadeMaterial"); // cria o filtro para Tabela Auxiliar abreviada FiltroTabelaAuxiliarUnidade filtroTabelaAuxiliarUnidade = new FiltroTabelaAuxiliarUnidade(); filtroTabelaAuxiliarUnidade.adicionarCaminhoParaCarregamentoEntidade("materialUnidade"); boolean peloMenosUmParametroInformado = false; // Insere os par�metros informados no filtro if (id != null && !id.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroTabelaAuxiliarUnidade .adicionarParametro(new ParametroSimples( FiltroTabelaAuxiliarUnidade.ID, id)); } if (descricao != null && !descricao.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroTabelaAuxiliarUnidade.adicionarParametro(new ComparacaoTexto( FiltroTabelaAuxiliarUnidade.DESCRICAO, descricao)); } if (descricaoAbreviada != null && !descricaoAbreviada.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroTabelaAuxiliarUnidade.adicionarParametro(new ComparacaoTexto( FiltroTabelaAuxiliarUnidade.DESCRICAOABREVIADA, descricaoAbreviada)); } if (unidadeMaterial != null && !unidadeMaterial.trim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroTabelaAuxiliarUnidade .adicionarParametro(new ParametroSimples( FiltroTabelaAuxiliarUnidade.MATERIAL_UNIDADE_ID, unidadeMaterial)); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } Collection colecaoTabelaAuxiliarUnidade = null; // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); TabelaAuxiliarUnidade tabelaAuxiliarUnidade = (TabelaAuxiliarUnidade) dados .getTabelaAuxiliar(); // Faz a busca das empresas colecaoTabelaAuxiliarUnidade = fachada.pesquisar( filtroTabelaAuxiliarUnidade, tabelaAuxiliarUnidade.getClass() .getName()); if (colecaoTabelaAuxiliarUnidade == null || colecaoTabelaAuxiliarUnidade.isEmpty()) { // Nenhum municipio cadastrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, dados.getTitulo()); } else if (colecaoTabelaAuxiliarUnidade.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { // Muitos registros encontrados throw new ActionServletException( "atencao.pesquisa.muitosregistros"); } else { if (colecaoTabelaAuxiliarUnidade.size() == ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { httpServletRequest.setAttribute("limitePesquisa", ""); } // Coloca a cole��o na sess�o sessao.setAttribute("colecaoTabelaAuxiliarUnidade", colecaoTabelaAuxiliarUnidade); } // Repassa o tipo da pesquisa para a tela de resultado httpServletRequest.setAttribute("tipoPesquisa", httpServletRequest .getParameter("tipoPesquisa")); // Repassa o caminho do resultado para a tela de resultado httpServletRequest.setAttribute("caminhoRetorno", httpServletRequest .getParameter("caminhoRetorno")); // Devolve o mapeamento de retorno return retorno; } }