package gcom.gui.arrecadacao; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.FiltroArrecadador; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Map; 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; /** * Realiza a pesquisa de cliente de acordo com os par�metros informados * * @author S�vio Luiz * @created 25 de Janeiro de 2006 */ public class PesquisarArrecadadorAction 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 */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("listaArrecadador"); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); PesquisarArrecadadorActionForm pesquisarArrecadadorActionForm = (PesquisarArrecadadorActionForm) actionForm; // Recupera os par�metros do form String inscricaoEstadual = (String) pesquisarArrecadadorActionForm .getInscricaoEstadual(); String idLocalidade = (String) pesquisarArrecadadorActionForm .getIdLocalidade(); String idCliente = (String) pesquisarArrecadadorActionForm .getIdCliente(); String idImovel = (String) pesquisarArrecadadorActionForm.getIdImovel(); // filtro para a pesquisa de endereco do cliente FiltroArrecadador filtroArrecadador = new FiltroArrecadador(); filtroArrecadador.setCampoOrderBy(FiltroArrecadador.CODIGO_AGENTE); boolean peloMenosUmParametroInformado = false; // Insere os par�metros informados no filtro if (inscricaoEstadual != null && !inscricaoEstadual.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroArrecadador.adicionarParametro(new ComparacaoTexto( FiltroArrecadador.INSCRICAO_ESTATAL, inscricaoEstadual)); } if (idLocalidade != null && !idLocalidade.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroArrecadador.adicionarParametro(new ParametroSimples( FiltroArrecadador.LOCALIDADE_ID, idLocalidade)); } if (idCliente != null && !idCliente.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroArrecadador.adicionarParametro(new ParametroSimples( FiltroArrecadador.CLIENTE_ID, idCliente)); } if (idImovel != null && !idImovel.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroArrecadador.adicionarParametro(new ParametroSimples( FiltroArrecadador.IMOVEL_ID, idImovel)); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } filtroArrecadador .adicionarCaminhoParaCarregamentoEntidade("imovel.localidade"); filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("cliente"); Collection colecaoArrecadadores = null; // Obt�m a inst�ncia da Fachada //Fachada fachada = Fachada.getInstancia(); // pesquisa os endere�os do cliente //colecaoArrecadadores = fachada.pesquisar(filtroArrecadador, // Arrecadador.class.getName()); Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroArrecadador, Arrecadador.class.getName()); colecaoArrecadadores = (Collection) resultado.get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); if (colecaoArrecadadores == null || colecaoArrecadadores.isEmpty()) { // Nenhuma cliente cadastrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "Arrecadador"); } else if (colecaoArrecadadores.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("colecaoArrecadadores", colecaoArrecadadores); } return retorno; } }