package gcom.gui.cobranca; import gcom.cobranca.FiltroResolucaoDiretoria; import gcom.cobranca.ResolucaoDiretoria; 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 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; /** * Permite pesquisar resolu��es de diretoria * [UC0223] Pesquisar Resolu��o de Diretoria * * @author Vivianne Sousa * @since 19/04/2006 */ public class PesquisarResolucaoDiretoriaAction extends GcomAction { /** * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("pesquisarResolucaoDiretoriaAction"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); PesquisarResolucaoDiretoriaActionForm pesquisarResolucaoDiretoriaActionForm = (PesquisarResolucaoDiretoriaActionForm)actionForm; String numeroResolucaoDiretoria = pesquisarResolucaoDiretoriaActionForm.getNumeroResolucaoDiretoria(); String dataInicioVigencia = pesquisarResolucaoDiretoriaActionForm.getDataInicioVigencia(); String dataFimVigencia = pesquisarResolucaoDiretoriaActionForm.getDataFimVigencia(); validacaoFinal(pesquisarResolucaoDiretoriaActionForm); FiltroResolucaoDiretoria filtroResolucaoDiretoria = new FiltroResolucaoDiretoria(); filtroResolucaoDiretoria.setCampoOrderBy(FiltroResolucaoDiretoria.NUMERO); boolean peloMenosUmParametroInformado = false; if (numeroResolucaoDiretoria != null && (!numeroResolucaoDiretoria.equalsIgnoreCase(""))){ peloMenosUmParametroInformado = true; filtroResolucaoDiretoria.adicionarParametro(new ParametroSimples( FiltroResolucaoDiretoria.NUMERO, numeroResolucaoDiretoria)); } if (dataInicioVigencia != null && (!dataInicioVigencia.equalsIgnoreCase(""))){ peloMenosUmParametroInformado = true; Date dataInicioVigenciaDate = Util.converteStringParaDate(dataInicioVigencia); filtroResolucaoDiretoria.adicionarParametro(new ParametroSimples( FiltroResolucaoDiretoria.DATA_VIGENCIA_INICIO, dataInicioVigenciaDate)); } if (dataFimVigencia != null && (!dataFimVigencia.equalsIgnoreCase(""))){ peloMenosUmParametroInformado = true; Date dataFimVigenciaDate = Util.converteStringParaDate(dataFimVigencia); filtroResolucaoDiretoria.adicionarParametro(new ParametroSimples( FiltroResolucaoDiretoria.DATA_VIGENCIA_FIM, dataFimVigenciaDate)); } // [FS0002] Verificar preenchimento dos campos if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // Filtrando os dados... filtroResolucaoDiretoria.isConsultaSemLimites(); Collection<ResolucaoDiretoria> collectionResolucaoDiretoria = fachada.pesquisar(filtroResolucaoDiretoria,ResolucaoDiretoria.class.getName()); if (collectionResolucaoDiretoria == null || collectionResolucaoDiretoria.isEmpty()) { // [FS0004] Nenhum registro encontrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "resolu��o de diretoria"); } /*else if (collectionResolucaoDiretoria.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { // [FS0003] Muitos registros encontrados throw new ActionServletException("atencao.pesquisa.muitosregistros"); }*/ else { sessao.setAttribute("collectionResolucaoDiretoria", collectionResolucaoDiretoria); } return retorno; } private void validacaoFinal(PesquisarResolucaoDiretoriaActionForm form) { Date DataInicioVigencia = Util.converteStringParaDate(form.getDataInicioVigencia()); Date DataFimVigencia = Util.converteStringParaDate(form.getDataFimVigencia()); if (DataInicioVigencia != null && DataFimVigencia != null) { if (!DataInicioVigencia.equals("") && !DataFimVigencia.equals("")) { if (DataInicioVigencia.after(DataFimVigencia) || Util.datasIguais(DataInicioVigencia,DataFimVigencia) ) { //O T�rmino de Vig�ncia deve ser maior que o In�cio da Vig�ncia throw new ActionServletException( "atencao.termino_maior_inicio_vigencia"); } } } } }