package gcom.gui.cadastro; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.FiltroCep; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; 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; /** * [UC0884]Filtrar Cep * * @author Vin�cius Medeiros * @date 12/02/2009 */ public class FiltrarCepAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o caminho do retorno ActionForward retorno = actionMapping.findForward("exibirAtualizarCep"); // Mudar isso quando for implementado o esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); FiltrarCepActionForm filtrarCepActionForm = (FiltrarCepActionForm) actionForm; FiltroCep filtroCep = new FiltroCep(); boolean informouCodigo = false; String codigo = filtrarCepActionForm.getCodigo(); String codigoCep = null; if(codigo.length() == 10){ codigoCep = Util.retirarFormatacaoCEP(filtrarCepActionForm.getCodigo()); } else if (codigo.length() == 8){ codigoCep = codigo; } if (codigoCep != null && !codigoCep.trim().equals("")) { //boolean achou = fachada.verificarExistenciaAgente(new Integer(codigoCep)); //if (achou) { informouCodigo = true; filtroCep.adicionarParametro( new ParametroSimples(FiltroCep.CODIGO, codigoCep)); //} } Collection<Cep> colecaoCep = fachada.pesquisar( filtroCep, Cep.class.getName()); // Verificar a existencia de um CEP if (colecaoCep.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null,"CEP"); } // Filtragem sem parametros if (!informouCodigo == true) { throw new ActionServletException( "atencao.cep_deve_ser_informado"); } // Pesquisa sem registros if (colecaoCep == null || colecaoCep.isEmpty()) { throw new ActionServletException("atencao.cep.inexistente"); } else { httpServletRequest.setAttribute("colecaoCep",colecaoCep); Cep cep = new Cep(); cep = (Cep) Util.retonarObjetoDeColecao(colecaoCep); String idRegistroAtualizacao = cep.getCepId().toString(); sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao); httpServletRequest.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao); } sessao.setAttribute("filtroCep", filtroCep); httpServletRequest.setAttribute("filtroCep",filtroCep); return retorno; } }