package gcom.gui.operacional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.operacional.FiltroProducaoAgua; import gcom.operacional.ProducaoAgua; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; 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; /** * [UC0813]Filtrar Producao de Agua * * @author Vin�cius Medeiros * @date 10/06/2008 */ public class FiltrarProducaoAguaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirManterProducaoAgua"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); FiltrarProducaoAguaActionForm filtrarProducaoAguaActionForm = (FiltrarProducaoAguaActionForm) actionForm; FiltroProducaoAgua filtroProducaoAgua = new FiltroProducaoAgua(); boolean peloMenosUmParametroInformado = false; String id = filtrarProducaoAguaActionForm.getId(); String anoMesReferencia = filtrarProducaoAguaActionForm.getAnoMesReferencia(); String localidadeID = filtrarProducaoAguaActionForm.getLocalidadeID(); String volumeProduzido = filtrarProducaoAguaActionForm .getVolumeProduzido(); // ID if (id != null && !id.trim().equals("")) { boolean achou = fachada.verificarExistenciaAgente(new Integer(id)); if (achou) { peloMenosUmParametroInformado = true; filtroProducaoAgua.adicionarParametro(new ParametroSimples( FiltroProducaoAgua.ID, id)); } } // Ano Mes Referencia if(anoMesReferencia != null && !anoMesReferencia.trim().equals("")){ Integer anoMes = Util.formatarMesAnoComBarraParaAnoMes(anoMesReferencia); peloMenosUmParametroInformado = true; filtroProducaoAgua.adicionarParametro(new ParametroSimples( FiltroProducaoAgua.MES_ANO_REFERENCIA, anoMes)); } // Localidade if (localidadeID != null && !localidadeID.equalsIgnoreCase("")) { pesquisarLocalidade(filtrarProducaoAguaActionForm,fachada,localidadeID); peloMenosUmParametroInformado = true; filtroProducaoAgua.adicionarParametro(new ParametroSimples( FiltroProducaoAgua.ID_LOCALIDADE, new Integer(localidadeID))); } // Volume Produzido if (volumeProduzido != null && !volumeProduzido.equals("") && !volumeProduzido.trim().equals(BigDecimal.ZERO)) { BigDecimal volume = Util.formatarMoedaRealparaBigDecimal(volumeProduzido); peloMenosUmParametroInformado = true; filtroProducaoAgua.adicionarParametro(new ParametroSimples( FiltroProducaoAgua.VOLUME_PRODUZIDO, volume)); } Collection colecaoProducaoAgua = fachada .pesquisar(filtroProducaoAgua, ProducaoAgua.class .getName()); // Verificar a existencia de uma atividade if (colecaoProducaoAgua.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null,"Produ��o de �gua"); } // Filtragem sem parametros if (!peloMenosUmParametroInformado == true) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // Pesquisa sem registros if (colecaoProducaoAgua == null || colecaoProducaoAgua.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "Produ��o de �gua"); } else { httpServletRequest.setAttribute("colecaoProducaoAgua", colecaoProducaoAgua); ProducaoAgua producaoAgua = new ProducaoAgua(); producaoAgua = (ProducaoAgua) Util .retonarObjetoDeColecao(colecaoProducaoAgua); String idRegistroAtualizacao = producaoAgua.getId().toString(); httpServletRequest.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao); } sessao.setAttribute("filtroProducaoAgua", filtroProducaoAgua); httpServletRequest.setAttribute("filtroProducaoAgua", filtroProducaoAgua); return retorno; } private void pesquisarLocalidade( FiltrarProducaoAguaActionForm filtrarProducaoAguaActionForm, Fachada fachada, String localidadeID) { Collection colecaoPesquisa; FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidadeID)); //Retorna localidade colecaoPesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { //Localidade nao encontrada //Limpa o campo localidadeID do formul�rio filtrarProducaoAguaActionForm.setLocalidadeID(""); filtrarProducaoAguaActionForm.setLocalidadeDescricao("Localidade inexistente."); throw new ActionServletException("atencao.pesquisa_inexistente", null,"Localidade"); }else { Localidade objetoLocalidade = (Localidade) Util .retonarObjetoDeColecao(colecaoPesquisa); filtrarProducaoAguaActionForm.setLocalidadeID(String .valueOf(objetoLocalidade.getId())); filtrarProducaoAguaActionForm .setLocalidadeDescricao(objetoLocalidade.getDescricao()); } } }