package gcom.gui.faturamento; import gcom.arrecadacao.ContratoDemanda; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.faturamento.FiltroContratoDemanda; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.MaiorQue; import gcom.util.filtro.MenorQue; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Date; 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; public class FiltrarContratoDemandaAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirManterContratoDemanda"); Fachada fachada = Fachada.getInstancia(); FiltrarContratoDemandaActionForm filtrarContratoDemandaActionForm = (FiltrarContratoDemandaActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); // Limpa todo o formul�rio para evitar "sujeiras" na tela String numeroContrato = filtrarContratoDemandaActionForm .getNumeroContrato(); String idImovel = filtrarContratoDemandaActionForm.getIdImovel(); String dataInicioContrato = filtrarContratoDemandaActionForm .getDataInicioContrato(); String dataFimContrato = filtrarContratoDemandaActionForm .getDataFimContrato(); // Cria o filtro FiltroContratoDemanda filtroContratoDemanda = new FiltroContratoDemanda(); boolean peloMenosUmParametroInformado = false; // Neste ponto o filtro � criado com os par�metros informados na p�gina // de filtrar contrato de demanda para ser executada a pesquisa no // ExibirManterContratoDemandaAction if (numeroContrato != null && !numeroContrato.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroContratoDemanda.adicionarParametro(new ParametroSimples( FiltroContratoDemanda.MUMEROCONTRATO, numeroContrato)); // [FS0003] - Verificar exist�ncia do contrato de demanda Collection colecaoContratoDemanda = fachada.pesquisar( filtroContratoDemanda, ContratoDemanda.class.getName()); if (colecaoContratoDemanda == null || colecaoContratoDemanda.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Contrato de Demanda"); } } // Verifica se o im�vel existe e em caso afirmativo // seta-a no filtro if (idImovel != null && !idImovel.trim().equals("")) { Imovel imovel = fachada.pesquisarImovel(new Integer(idImovel)); if (imovel == null) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Im�vel"); } else { peloMenosUmParametroInformado = true; filtroContratoDemanda.adicionarParametro(new ParametroSimples( FiltroContratoDemanda.IMOVEL, idImovel)); } } if (dataInicioContrato != null && !dataInicioContrato.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; Date dataInicioFormatada = Util.converteStringParaDate(dataInicioContrato); filtroContratoDemanda.adicionarParametro(new MaiorQue( FiltroContratoDemanda.DATACONTRATOINICIO, dataInicioFormatada)); } if (dataFimContrato != null && !dataFimContrato.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; Date dataFimFormatada = Util.converteStringParaDate(dataFimContrato); filtroContratoDemanda.adicionarParametro(new MenorQue( FiltroContratoDemanda.DATACONTRATOINICIO, dataFimFormatada)); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // Verifica se o checkbox Atualizar est� marcado e em caso afirmativo // manda pela sess�o uma vari�vel para o // ExibirManterEquipeAction e nele verificar se ir� para o // atualizar ou para o manter, caso o checkbox esteja desmarcado remove // da sess�o String indicadorAtualizar = httpServletRequest .getParameter("atualizar"); if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) { sessao.setAttribute("atualizar", indicadorAtualizar); } else { sessao.removeAttribute("atualizar"); } // Manda o filtro pela sessao para o // ExibirManterContratoDemandaAction sessao.setAttribute("filtroContratoDemanda", filtroContratoDemanda); return retorno; } }