package gcom.gui.cadastro.sistemaparametro; import gcom.cadastro.geografico.Municipio; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import gcom.util.tabelaauxiliar.abreviada.FiltroTabelaAuxiliarAbreviada; 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; /** * [UC0536]FILTRAR FERIADO * * @author K�ssia Albuquerque * @date 19/01/2006 */ public class FiltrarFeriadoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirManterFeriado"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); FiltrarFeriadoActionForm form = (FiltrarFeriadoActionForm) actionForm; // Recupera todos os campos da p�gina para ser colocada no filtro // posteriormente String indicadorTipoFeriado = form.getIndicadorTipoFeriado(); Integer idMunicipio = null; String descricaoMunicipio = form.getDescricaoMunicipio(); Date dataFeriadoInicio = null; Date dataFeriadoFim = null; String descricaoFeriado = form.getDescricaoFeriado(); // Indicador Atualizar String indicadorAtualizar = httpServletRequest.getParameter("indicadorAtualizar"); if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) { sessao.setAttribute("indicadorAtualizar", indicadorAtualizar); } else { sessao.removeAttribute("indicadorAtualizar"); } boolean peloMenosUmParametroInformado = false; if (indicadorTipoFeriado.equals("1") ) { // Indicador de Tipo do feriado peloMenosUmParametroInformado = true; // Data do Feriado if ((form.getDataFeriadoInicio() != null && form.getDataFeriadoFim() != null)&&(!form.getDataFeriadoInicio().equalsIgnoreCase("")&& !form.getDataFeriadoFim().equalsIgnoreCase(""))) { peloMenosUmParametroInformado = true; dataFeriadoInicio = Util.converteStringParaDate(form.getDataFeriadoInicio()); dataFeriadoFim = Util.converteStringParaDate(form.getDataFeriadoFim()); } // Descri��o do Feriado if (descricaoFeriado != null && !descricaoFeriado.equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException("atencao.filtro.nenhum_parametro_informado"); } }else if(indicadorTipoFeriado.equals("2")){ // Indicador de Tipo do feriado peloMenosUmParametroInformado = true; // Municipio if (form.getIdMunicipio() != null && !form.getIdMunicipio().trim().equals("")) { peloMenosUmParametroInformado = true; idMunicipio = Integer.parseInt(form.getIdMunicipio()); if (descricaoMunicipio == null|| descricaoMunicipio.equals("")) { FiltroTabelaAuxiliarAbreviada filtroTabelaAuxiliarAbreviada = new FiltroTabelaAuxiliarAbreviada(); filtroTabelaAuxiliarAbreviada.adicionarParametro(new ParametroSimples(FiltroTabelaAuxiliarAbreviada.ID, idMunicipio)); Collection colecaoMunicipio = fachada.pesquisar(filtroTabelaAuxiliarAbreviada, Municipio.class.getName()); if (colecaoMunicipio == null || colecaoMunicipio.isEmpty()) { throw new ActionServletException( "atencao.municipio_inexistente"); } } } // Data do Feriado if ((form.getDataFeriadoInicio() != null && form.getDataFeriadoFim() != null)&&(!form.getDataFeriadoInicio().equalsIgnoreCase("")&& !form.getDataFeriadoFim().equalsIgnoreCase(""))) { peloMenosUmParametroInformado = true; dataFeriadoInicio = Util.converteStringParaDate(form.getDataFeriadoInicio()); dataFeriadoFim = Util.converteStringParaDate(form.getDataFeriadoFim()); } // Descri��o do Feriado if (descricaoFeriado != null && !descricaoFeriado.equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException("atencao.filtro.nenhum_parametro_informado"); } }else{ // Indicador de Tipo do feriado peloMenosUmParametroInformado = true; // Municipio if (form.getIdMunicipio() != null && !form.getIdMunicipio().trim().equals("")) { peloMenosUmParametroInformado = true; idMunicipio = Integer.parseInt(form.getIdMunicipio()); if (descricaoMunicipio == null|| descricaoMunicipio.equals("")) { FiltroTabelaAuxiliarAbreviada filtroTabelaAuxiliarAbreviada = new FiltroTabelaAuxiliarAbreviada(); filtroTabelaAuxiliarAbreviada.adicionarParametro(new ParametroSimples(FiltroTabelaAuxiliarAbreviada.ID, idMunicipio)); Collection colecaoMunicipio = fachada.pesquisar(filtroTabelaAuxiliarAbreviada, Municipio.class.getName()); if (colecaoMunicipio == null || colecaoMunicipio.isEmpty()) { throw new ActionServletException( "atencao.municipio_inexistente"); } } } // Data do Feriado if ((form.getDataFeriadoInicio() != null && form.getDataFeriadoFim() != null)&&(!form.getDataFeriadoInicio().equalsIgnoreCase("")&& !form.getDataFeriadoFim().equalsIgnoreCase(""))) { peloMenosUmParametroInformado = true; dataFeriadoInicio = Util.converteStringParaDate(form.getDataFeriadoInicio()); dataFeriadoFim = Util.converteStringParaDate(form.getDataFeriadoFim()); } // Descri��o do Feriado if (descricaoFeriado != null && !descricaoFeriado.equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException("atencao.filtro.nenhum_parametro_informado"); } } Integer totalRegistros = fachada.pesquisarFeriadoCount( Short.parseShort(indicadorTipoFeriado), descricaoFeriado, dataFeriadoInicio, dataFeriadoFim, idMunicipio); retorno = this.controlarPaginacao(httpServletRequest, retorno, totalRegistros); Collection colecaoFeriado = fachada.pesquisarFeriado( Short.parseShort(indicadorTipoFeriado), descricaoFeriado, dataFeriadoInicio, dataFeriadoFim, idMunicipio,(Integer) httpServletRequest.getAttribute("numeroPaginasPesquisa")); if (colecaoFeriado != null && !colecaoFeriado.isEmpty()) { sessao.setAttribute("colecaoFeriado", colecaoFeriado); } else { throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } return retorno; } }