package gcom.gui.micromedicao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.bean.FiltrarLeiturasTelemetriaHelper; import gcom.util.Util; 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; /** * [UC1070] Filtrar Leituras Telemetria * * @author Hugo Amorim * @date 27/09/2010 * */ public class FiltrarLeiturasTelemetriaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o caminho de retorno ActionForward retorno = actionMapping .findForward("exibirManterLeiturasTemeletriaAction"); FiltrarLeiturasTelemetriaForm form = (FiltrarLeiturasTelemetriaForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); this.executarValidacoes(form); FiltrarLeiturasTelemetriaHelper helper = this.criarHelper(form); Integer qtdTotalRegistros = this.getFachada().countFiltrarLeiturasTelemetria(helper); if(qtdTotalRegistros==0){ throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } boolean existeLeiturasNaoProcessadas = this.getFachada().verificarLeiturasTelemetriaNaoProcessadas(helper); sessao.setAttribute("filtro", helper); sessao.setAttribute("existeLeiturasNaoProcessadas", existeLeiturasNaoProcessadas); sessao.setAttribute("qtdTotalRegistros", qtdTotalRegistros); return retorno; } private FiltrarLeiturasTelemetriaHelper criarHelper( FiltrarLeiturasTelemetriaForm form) { FiltrarLeiturasTelemetriaHelper retorno = new FiltrarLeiturasTelemetriaHelper(); retorno.setSituacaoLeitura(form.getSituacaoLeitura()); if (Util.verificarNaoVazio(form.getPeriodoEnvioInicial())){ Date periodoInicial = Util.converteStringParaDate(form.getPeriodoEnvioInicial()); retorno.setPeriodoEnvioInicial(periodoInicial); } if (Util.verificarNaoVazio(form.getPeriodoEnvioFinal())){ Date periodoFinal = Util.converteStringParaDate(form.getPeriodoEnvioFinal()); retorno.setPeriodoEnvioFinal(periodoFinal); } if (Util.verificarNaoVazio(form.getPeriodoLeituraInicial())){ Date periodoInicial = Util.converteStringParaDate(form.getPeriodoLeituraInicial()); retorno.setPeriodoLeituraInicial(periodoInicial); } if (Util.verificarNaoVazio(form.getPeriodoLeituraFinal())){ Date periodoFinal = Util.converteStringParaDate(form.getPeriodoLeituraFinal()); retorno.setPeriodoLeituraFinal(periodoFinal); } return retorno; } private void executarValidacoes(FiltrarLeiturasTelemetriaForm form) { //Valida Datas de Envio no filtro. if (Util.verificarNaoVazio(form.getPeriodoEnvioInicial()) && Util.verificarNaoVazio(form.getPeriodoEnvioFinal())) { Date periodoInicial = Util.converteStringParaDate(form .getPeriodoEnvioInicial()); Date periodoFinal = Util.converteStringParaDate(form .getPeriodoEnvioFinal()); if (periodoFinal.compareTo(periodoInicial) < 0) { throw new ActionServletException( "atencao.data_final_periodo.anterior.data_inicial_periodo"); } } //Valida Datas de Leituras no filtro. if (Util.verificarNaoVazio(form.getPeriodoLeituraInicial()) && Util.verificarNaoVazio(form.getPeriodoLeituraFinal())) { Date periodoInicial = Util.converteStringParaDate(form .getPeriodoLeituraInicial()); Date periodoFinal = Util.converteStringParaDate(form .getPeriodoLeituraFinal()); if (periodoFinal.compareTo(periodoInicial) < 0) { throw new ActionServletException( "atencao.data_final_periodo.anterior.data_inicial_periodo"); } } } }