package gcom.gui.micromedicao.hidrometro; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.FiltrarHidrometroHelper; import gcom.micromedicao.hidrometro.FiltroHidrometro; import gcom.micromedicao.hidrometro.Hidrometro; import gcom.util.Util; import java.util.Collection; import java.util.Map; 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; /** * < <Descri��o da Classe>> * * @author Administrador * @created 8 de Setembro de 2005 */ public class ExibirManterHidrometroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("manterHidrometro"); Collection hidrometros = null; //Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); if (httpServletRequest.getParameter("limpaSessao") != null && !httpServletRequest.getParameter("limpaSessao").equals("")) { sessao.removeAttribute("faixaInicial"); sessao.removeAttribute("faixaFinal"); sessao.removeAttribute("fixo"); } if (sessao.getAttribute("i") != null){ sessao.removeAttribute("i"); } String atualizar = httpServletRequest.getParameter("atualizar"); //Parte da verifica��o do filtro FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); //Verifica se o filtro foi informado pela p�gina de filtragem de // hidrometro if (sessao.getAttribute("filtroHidrometro") != null && sessao.getAttribute("voltarFiltrar") != null ) { filtroHidrometro = (FiltroHidrometro) sessao.getAttribute("filtroHidrometro"); sessao.removeAttribute("voltarFiltrar"); } else { if (sessao.getAttribute("fixo") == null && sessao.getAttribute("instalado") == null) { //Caso o exibirManterHidrometro n�o tenha passado por algum esquema // de filtro, a quantidade de registros � verificada para avaliar a // necessidade de filtragem filtroHidrometro = new FiltroHidrometro(); //Se o limite de registros foi atingido, a p�gina de // filtragem � chamada retorno = actionMapping.findForward("filtrarHidrometro"); }else if (httpServletRequest.getParameter("voltarFiltro") != null){ retorno = actionMapping.findForward("filtrarHidrometro"); } } //A pesquisa de hidrometros s� ser� feita se o forward estiver // direcionado para a p�gina de manterHidrometro if (retorno.getName().equalsIgnoreCase("manterHidrometro")) { //caso venha do FiltrarHidrometro e foi escolhido como parametros o // fixo e a faixa da numera��o do hidrometro ent�o faz outra pesquisa sem o filtro. //Como � obrigat�rio a faixa caso coloque como parametro o fixo , // ent�o n�o � necessario fazer a verifica��o da faixa s� do fixo. if (sessao.getAttribute("fixo") != null && !sessao.getAttribute("fixo").equals("")) { String fixo = (String) sessao.getAttribute("fixo"); String faixaInicial = (String) sessao.getAttribute("faixaInicial"); String faixaFinal = (String) sessao.getAttribute("faixaFinal"); // 1� Passo - Pegar o total de registros atrav�s de um count da consulta // que aparecer� na tela String numeroFormatadoInicial = ""; String numeroFormatadoFinal = ""; numeroFormatadoInicial = Util.adicionarZerosEsquedaNumero(6,faixaInicial); numeroFormatadoFinal = Util.adicionarZerosEsquedaNumero(6,faixaFinal); Integer totalRegistros = this.getFachada().pesquisarNumeroHidrometroFaixaCount(fixo, fixo + numeroFormatadoInicial, fixo + numeroFormatadoFinal); // 2� Passo - Chamar a fun��o de Pagina��o passando o total de registros retorno = this.controlarPaginacao(httpServletRequest, retorno,totalRegistros); hidrometros = this.getFachada().pesquisarNumeroHidrometroFaixaPaginacao(fixo, faixaInicial, faixaFinal, ((Integer) httpServletRequest.getAttribute("numeroPaginasPesquisa"))); if (hidrometros == null || hidrometros.isEmpty()) { //Nenhum hidrometro cadastrado throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } // else // { // hidrometros2 = fachada.pesquisarNumeroHidrometroFaixa(fixo, // faixaInicial, faixaFinal); // } //seta um valor no form para que o bot�o // atualizarConjuntoHidrometro possa atualizar um //conjunto de hidrometro //hidrometroActionForm.setConjuntoHidrometro("1"); httpServletRequest.setAttribute("conjuntoHidrometro",new Boolean(true)); }else if(sessao.getAttribute("instalado") != null){ FiltrarHidrometroHelper helper = (FiltrarHidrometroHelper) sessao.getAttribute("helper"); Integer totalRegistros = this.getFachada().pesquisarNumeroHidrometroSituacaoInstaladoPaginacaoCount(helper); // 2� Passo - Chamar a fun��o de Pagina��o passando o total de registros retorno = this.controlarPaginacao(httpServletRequest, retorno,totalRegistros); hidrometros = this.getFachada().pesquisarNumeroHidrometroSituacaoInstaladoPaginacao(helper, ((Integer) httpServletRequest.getAttribute("numeroPaginasPesquisa"))); if (hidrometros == null || hidrometros.isEmpty()) { //Nenhum hidrometro cadastrado throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } }else { //Seta a ordena��o desejada do filtro filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroMarca"); filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroCapacidade"); filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroSituacao"); filtroHidrometro.setCampoOrderBy(FiltroHidrometro.NUMERO_HIDROMETRO); // Aciona o controle de pagina��o para que sejam pesquisados apenas // os registros que aparecem na p�gina Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroHidrometro, Hidrometro.class.getName()); hidrometros = (Collection) resultado.get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); if (hidrometros == null || hidrometros.isEmpty()) { throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } else if (atualizar != null && hidrometros.size() == 1) { Hidrometro hidrometro = (Hidrometro) hidrometros.iterator().next(); httpServletRequest.setAttribute("idRegistroAtualizacao",hidrometro.getId()); retorno = actionMapping.findForward("exibirAtualizarHidrometro"); } } // if(hidrometros2 != null && !hidrometros2.isEmpty()){ // sessao.setAttribute("hidrometros2", hidrometros2); // } sessao.setAttribute("hidrometros", hidrometros); sessao.setAttribute("parametroInformado", "sim"); } httpServletRequest.setAttribute("nomeCampo","numeroHidrometro"); return retorno; } }