package gcom.gui.faturamento.autoinfracao; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.faturamento.autoinfracao.FiltroAutosInfracao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.Intervalo; 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 FiltrarAutoInfracaoAction extends GcomAction { /** * Filtrar Autos de Infra��o * * @author R�mulo Aur�lio - 22/04/2009 */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirManterAutoInfracaoAction"); HttpSession sessao = httpServletRequest.getSession(false); FiltrarAutoInfracaoActionForm form = (FiltrarAutoInfracaoActionForm) actionForm; boolean peloMenosUmParametroInformado = false; String idImovel = form.getIdImovel(); String idFuncionario = form.getIdFuncionario(); String idFiscalizacaoSituacao = form.getIdFiscalizacaoSituacao(); String idAutoInfracaoSituacao = form.getIdAutoInfracaoSituacao(); String dataEmissaoInicialForm = form.getDataEmissaoInicial(); String dataEmissaoFinalForm = form.getDataEmissaoFinal(); String dataInicioRecursoInicialForm = form .getDataInicioRecursoInicial(); String dataInicioRecursoFinalForm = form.getDataInicioRecursoFinal(); String dataTerminoRecursoInicialForm = form .getDataTerminoRecursoInicial(); String dataTerminoRecursoFinalForm = form.getDataTerminoRecursoFinal(); FiltroAutosInfracao filtroAutosInfracao = new FiltroAutosInfracao(); // Verifica se o campo codigo foi informado if (idImovel != null && !idImovel.trim().equalsIgnoreCase("")) { FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples( FiltroImovel.ID, idImovel)); Collection colecaoImovel = this.getFachada().pesquisar( filtroImovel, Imovel.class.getName()); if (colecaoImovel == null || colecaoImovel.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Im�vel"); } else { filtroAutosInfracao.adicionarParametro(new ParametroSimples( FiltroAutosInfracao.IMOVEL_ID, idImovel)); peloMenosUmParametroInformado = true; } } if (idFuncionario != null && !idFuncionario.trim().equalsIgnoreCase("")) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, idFuncionario)); Collection colecaoFuncionario = this.getFachada().pesquisar( filtroFuncionario, Funcionario.class.getName()); if (colecaoFuncionario == null || colecaoFuncionario.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Funcion�rio"); } else { filtroAutosInfracao.adicionarParametro(new ParametroSimples( FiltroAutosInfracao.FUNCIONARIO_ID, idFuncionario)); peloMenosUmParametroInformado = true; } } if (idFiscalizacaoSituacao != null && !idFiscalizacaoSituacao.trim().equalsIgnoreCase("-1")) { peloMenosUmParametroInformado = true; filtroAutosInfracao.adicionarParametro(new ParametroSimples( FiltroAutosInfracao.FISCALIZACAO_SITUACAO_ID, idFiscalizacaoSituacao)); } if (idAutoInfracaoSituacao != null && !idAutoInfracaoSituacao.trim().equalsIgnoreCase("-1")) { peloMenosUmParametroInformado = true; filtroAutosInfracao.adicionarParametro(new ParametroSimples( FiltroAutosInfracao.AUTO_INFRACAO_SITUACAO_ID, idAutoInfracaoSituacao)); } if (dataEmissaoInicialForm != null && !dataEmissaoInicialForm.equalsIgnoreCase("")) { Date dataEmissaoInicial = Util .converteStringParaDate(dataEmissaoInicialForm); Date dataEmissaoFinal = Util .converteStringParaDate(dataEmissaoFinalForm); if (dataEmissaoInicial.compareTo(dataEmissaoFinal) > 0) { throw new ActionServletException( "atencao.data_final_anterior_data_inicial", null, "de Emiss�o"); } else { peloMenosUmParametroInformado = true; filtroAutosInfracao.adicionarParametro(new Intervalo( FiltroAutosInfracao.DATA_EMISSAO, dataEmissaoInicial, dataEmissaoFinal)); } } if (dataInicioRecursoInicialForm != null && !dataInicioRecursoInicialForm.equalsIgnoreCase("")) { Date dataInicioRecursoInicial = Util .converteStringParaDate(dataInicioRecursoInicialForm); Date dataInicioRecursoFinal = Util .converteStringParaDate(dataInicioRecursoFinalForm); if (dataInicioRecursoInicial.compareTo(dataInicioRecursoFinal) > 0) { throw new ActionServletException( "atencao.data_final_anterior_data_inicial", null, "de In�cio do Recurso"); } else { peloMenosUmParametroInformado = true; filtroAutosInfracao.adicionarParametro(new Intervalo( FiltroAutosInfracao.DATA_INICIO_RECURSO, dataInicioRecursoInicial, dataInicioRecursoFinal)); } } if (dataTerminoRecursoInicialForm != null && !dataTerminoRecursoInicialForm.equalsIgnoreCase("")) { Date dataTerminoRecursoInicial = Util .converteStringParaDate(dataTerminoRecursoInicialForm); Date dataTerminoRecursoFinal = Util .converteStringParaDate(dataTerminoRecursoFinalForm); if (dataTerminoRecursoInicial.compareTo(dataTerminoRecursoFinal) > 0) { throw new ActionServletException( "atencao.data_final_anterior_data_inicial", null, "de In�cio do Recurso"); } else { peloMenosUmParametroInformado = true; filtroAutosInfracao.adicionarParametro(new Intervalo( FiltroAutosInfracao.DATA_TERMINO_RECURSO, dataTerminoRecursoInicial, dataTerminoRecursoFinal)); } } // Verifica se o checkbox Atualizar est� marcado e em caso afirmativo // manda pelo um request uma vari�vel para o // ExibirManterAutoInfracaoAction e nele verificar se ir� para o // atualizar ou para o manter if (form.getAtualizar() != null && form.getAtualizar().equalsIgnoreCase("1")) { httpServletRequest.setAttribute("atualizar", form.getAtualizar()); } // Erro caso o usu�rio mandou Pesquisar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } filtroAutosInfracao.setCampoOrderBy(FiltroAutosInfracao.ID); // Manda o filtro pelo sessao para o // ExibirFuncionalidadeAction sessao.setAttribute("filtroAutosInfracao", filtroAutosInfracao); return retorno; } }