package gcom.gui.faturamento;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.SetorComercial;
import gcom.fachada.Fachada;
import gcom.faturamento.FiltroQualidadeAgua;
import gcom.faturamento.QualidadeAgua;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.operacional.FiltroFonteCaptacao;
import gcom.operacional.FonteCaptacao;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
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;
/**
* FILTRAR Qualidade Agua
*
* @author Fl�vio
* @date 02/10/2007
*/
public class FiltrarQualidadeAguaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirManterQualidadeAgua");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarQualidadeAguaActionForm form = (FiltrarQualidadeAguaActionForm) actionForm;
// Recupera todos os campos da p�gina para ser colocada no filtro
// posteriormente
String referencia = form.getReferencia();
String idLocalidade = form.getIdLocalidade();
String codigoSetor = form.getCodigoSetor();
String idFonteCaptacao = form.getFonteCaptacao();
String sistemaAbastecimento = form.getSistemaAbastecimento();
// Indicador Atualizar
String indicadorAtualizar = httpServletRequest
.getParameter("indicadorAtualizar");
if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) {
sessao.setAttribute("indicadorAtualizar", indicadorAtualizar);
} else {
sessao.removeAttribute("indicadorAtualizar");
}
boolean peloMenosUmParametroInformado = false;
FiltroQualidadeAgua filtroQualidadeAgua = new FiltroQualidadeAgua();
// C�digo do Arrecadador
if (referencia != null && !referencia.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.ANO_MES_REFERENCIA, Util.formatarMesAnoComBarraParaAnoMes(referencia)));
}
// Cliente
if (idLocalidade != null && !idLocalidade.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.LOCALIDADE_ID, idLocalidade));
}
// Setor Comercial
if (codigoSetor != null && !codigoSetor.trim().equals("")) {
peloMenosUmParametroInformado = true;
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetor));
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, form.getIdLocalidade()));
Collection colecaoSetor = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName());
SetorComercial setorComercial = (SetorComercial)colecaoSetor.iterator().next();
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.SETOR_COMERCIAL_ID, setorComercial.getId()));
}
// Fonte Captacao
if (idFonteCaptacao != null && !idFonteCaptacao.trim().equals("")) {
peloMenosUmParametroInformado = true;
FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao();
filtroFonteCaptacao.adicionarParametro(new ParametroSimples
(FiltroFonteCaptacao.ID, idFonteCaptacao));
Collection colecaoFonte = fachada.pesquisar(filtroFonteCaptacao, FonteCaptacao.class.getName());
FonteCaptacao fonteCaptacao = (FonteCaptacao)colecaoFonte.iterator().next();
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.ID_FONTE_CAPTACAO, fonteCaptacao.getId()));
}
// Sistema de Abastecimento
if (sistemaAbastecimento != null && !sistemaAbastecimento.equals("-1")){
peloMenosUmParametroInformado = true;
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(FiltroQualidadeAgua.SISTEMA_ABASTECIMENTO, sistemaAbastecimento));
}
// Erro caso o usu�rio mandou filtrar sem nenhum par�metro
if (!peloMenosUmParametroInformado) {
throw new ActionServletException(
"atencao.filtro.nenhum_parametro_informado");
}
filtroQualidadeAgua.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroQualidadeAgua.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroQualidadeAgua.adicionarCaminhoParaCarregamentoEntidade("setorComercial.municipio");
filtroQualidadeAgua.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao");
filtroQualidadeAgua.adicionarCaminhoParaCarregamentoEntidade("sistemaAbastecimento");
filtroQualidadeAgua.setCampoOrderBy(FiltroQualidadeAgua.LOCALIDADE_ID);
Collection<QualidadeAgua> colecaoQualidadeAgua = fachada.pesquisar(
filtroQualidadeAgua, QualidadeAgua.class.getName());
if (colecaoQualidadeAgua == null || colecaoQualidadeAgua.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Qualidade da �gua");
} else {
httpServletRequest.setAttribute("colecaoQualidadeAgua",
colecaoQualidadeAgua);
QualidadeAgua qualidadeAgua = new QualidadeAgua();
qualidadeAgua = (QualidadeAgua) Util
.retonarObjetoDeColecao(colecaoQualidadeAgua);
String idRegistroAtualizacao = qualidadeAgua.getId().toString();
sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao);
}
sessao.setAttribute("filtroQualidadeAgua", filtroQualidadeAgua);
httpServletRequest.setAttribute("filtroQualidadeAgua", filtroQualidadeAgua);
return retorno;
}
}