package gcom.gui.faturamento.consumotarifa; import gcom.faturamento.consumotarifa.FiltroConsumoTarifaVigencia; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.MaiorQue; import gcom.util.filtro.MenorQue; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; 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; /** * Filtra as tarifas de consumo * * @author Tiago Moreno,Rafael Santos */ public class FiltrarConsumoTarifaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirManterConsumoTarifa"); FiltrarConsumoTarifaActionForm filtrarConsumoTarifaActionForm = (FiltrarConsumoTarifaActionForm) actionForm; //Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Variavel para testar se o campo naum obrigatorio esta vazio String descTarifa = filtrarConsumoTarifaActionForm.getDescTarifa(); String dataVigenciaInicial = filtrarConsumoTarifaActionForm.getDataVigencia(); String dataVigenciaFinal = filtrarConsumoTarifaActionForm .getDataVigenciaFim(); String atualizar = (String)httpServletRequest.getParameter("atualizarFiltro"); //valida o intervalo de datas if ((dataVigenciaInicial.trim().length() == 10) && (dataVigenciaFinal.trim().length() == 10)) { Calendar calendarInicio = new GregorianCalendar(); Calendar calendarFim = new GregorianCalendar(); calendarInicio.set(Calendar.DAY_OF_MONTH, new Integer(dataVigenciaInicial .substring(0, 2)).intValue()); calendarInicio.set(Calendar.MONTH, new Integer(dataVigenciaInicial .substring(3, 5)).intValue()); calendarInicio.set(Calendar.YEAR, new Integer(dataVigenciaInicial .substring(6, 10)).intValue()); calendarFim.set(Calendar.DAY_OF_MONTH, new Integer(dataVigenciaFinal .substring(0, 2)).intValue()); calendarFim.set(Calendar.MONTH, new Integer(dataVigenciaFinal .substring(3, 5)).intValue()); calendarFim.set(Calendar.YEAR, new Integer(dataVigenciaFinal .substring(6, 10)).intValue()); // joga exess�o if (calendarFim.compareTo(calendarInicio) < 0) { throw new ActionServletException( "atencao.data_vigencia_final.menor.data_vigencia_inicial"); } } FiltroConsumoTarifaVigencia filtroConsumoTarifaVigencia = new FiltroConsumoTarifaVigencia(); /*filtroConsumoTarifaVigencia .adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoTarifaVigencia.CONSUMO_TARIFA_DESCRICAO);*/ filtroConsumoTarifaVigencia.adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoTarifaVigencia.CONSUMO_TARIFA); boolean parametroPesquisaInformando = false; //Descricao da Tarifa if (descTarifa != null && !descTarifa.trim().equalsIgnoreCase("")) { filtroConsumoTarifaVigencia.adicionarParametro(new ComparacaoTexto( FiltroConsumoTarifaVigencia.CONSUMO_TARIFA_DESCRICAO, descTarifa)); parametroPesquisaInformando = true; } //data de Vigencia Inicial if (dataVigenciaInicial != null && !dataVigenciaInicial.trim().equalsIgnoreCase("")) { SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Date dataInicial = null; try { dataInicial = formatoData.parse(dataVigenciaInicial); } catch (ParseException e) { dataInicial = null; } filtroConsumoTarifaVigencia.adicionarParametro(new MaiorQue( FiltroConsumoTarifaVigencia.DATA_VIGENCIA, dataInicial)); parametroPesquisaInformando = true; } //data de Vigencia final if (dataVigenciaFinal != null && !dataVigenciaFinal.trim().equalsIgnoreCase("")) { SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Date dataFinal = null; try { dataFinal = formatoData.parse(dataVigenciaFinal); } catch (ParseException e) { dataFinal = null; } filtroConsumoTarifaVigencia.adicionarParametro(new MenorQue( FiltroConsumoTarifaVigencia.DATA_VIGENCIA, dataFinal)); parametroPesquisaInformando = true; } if(!parametroPesquisaInformando){ // Exception que nao foi digitado nada!!! throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } filtroConsumoTarifaVigencia.setCampoOrderBy( FiltroConsumoTarifaVigencia.CONSUMO_TARIFA_DESCRICAO, FiltroConsumoTarifaVigencia.DATA_VIGENCIA); sessao.setAttribute("filtroConsumoTarifaVigencia", filtroConsumoTarifaVigencia); sessao.setAttribute("indicadorAtualizar", atualizar); return retorno; } }