package gcom.gui.atendimentopublico.ligacaoagua;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ComparacaoTexto;
import gcom.util.filtro.ComparacaoTextoCompleto;
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;
/**
* [UC0786]Filtrar Situacao de Ligacao de Agua
*
* @author Vin�cius Medeiros
* @date 15/05/2008
*/
public class FiltrarLigacaoAguaSituacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o caminho de retorno
ActionForward retorno = actionMapping.findForward("exibirManterLigacaoAguaSituacao");
// Mudar isso quando houver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
FiltrarLigacaoAguaSituacaoActionForm filtrarLigacaoAguaSituacaoActionForm = (FiltrarLigacaoAguaSituacaoActionForm) actionForm;
FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao();
boolean peloMenosUmParametroInformado = false;
String id = filtrarLigacaoAguaSituacaoActionForm.getId();
String descricao = filtrarLigacaoAguaSituacaoActionForm.getDescricao();
String descricaoAbreviada = filtrarLigacaoAguaSituacaoActionForm.getDescricaoAbreviada();
String consumoMinimoFaturamento = filtrarLigacaoAguaSituacaoActionForm.getConsumoMinimoFaturamento();
String tipoPesquisa = filtrarLigacaoAguaSituacaoActionForm.getTipoPesquisa();
// Filtro pelo ID
if (id != null && !id.trim().equals("")) {
boolean achou = fachada.verificarExistenciaAgente(new Integer(id));
if (achou) {
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoAguaSituacao.ID, id));
}
}
// Filtro pela Descri��o
if (descricao != null && !descricao.trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
if (tipoPesquisa != null&& tipoPesquisa.equals(
ConstantesSistema.TIPO_PESQUISA_COMPLETA.toString())) {
filtroLigacaoAguaSituacao.adicionarParametro(
new ComparacaoTextoCompleto(FiltroLigacaoAguaSituacao.DESCRICAO,
descricao));
} else {
filtroLigacaoAguaSituacao.adicionarParametro(new ComparacaoTexto(
FiltroLigacaoAguaSituacao.DESCRICAO, descricao));
}
}
// Filtro pela Descri��o Abreviada
if (descricaoAbreviada != null && !descricaoAbreviada.trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ComparacaoTextoCompleto(FiltroLigacaoAguaSituacao.DESCRICAO_ABREVIADA,
descricaoAbreviada));
} else {
filtroLigacaoAguaSituacao.adicionarParametro(
new ComparacaoTexto(FiltroLigacaoAguaSituacao.DESCRICAO_ABREVIADA,
descricaoAbreviada));
}
// Filtro pelo Consumo Minimo Faturamento
if (consumoMinimoFaturamento != null && !consumoMinimoFaturamento.trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ComparacaoTextoCompleto(FiltroLigacaoAguaSituacao.CONSUMO_MINIMO,
consumoMinimoFaturamento));
} else {
filtroLigacaoAguaSituacao.adicionarParametro(
new ComparacaoTexto(FiltroLigacaoAguaSituacao.CONSUMO_MINIMO,
consumoMinimoFaturamento));
}
// Verifica se o indicador de faturamento est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorFaturamentoSituacao().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_FATURAMENTO,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorFaturamentoSituacao() ) );
}
// Verifica se o indicador de existencia de rede est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorExistenciaRede().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_EXISTENCIA_REDE,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorExistenciaRede() ) );
}
// Verifica se o indicador de existencia de liga��o est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorExistenciaLigacao().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples(FiltroLigacaoAguaSituacao.INDICADOR_EXISTENCIA_LIGACAO,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorExistenciaLigacao() ) );
}
//Verifica se o indicador abastecimento est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorAbastecimento().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_EXISTENCIA_REDE,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorAbastecimento() ) );
}
//Verifica se o indicador �gua ativa est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorAguaAtiva().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_AGUA_ATIVA,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorAguaAtiva() ) );
}
//Verifica se o indicador �gua desligada est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorAguaDesligada().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_AGUA_DESLIGADA,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorAguaDesligada() ) );
}
//Verifica se o indicador �gua cadastrada est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorAguaCadastrada().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_AGUA_CADASTRADA,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorAguaCadastrada() ) );
}
//Verifica se o indicador analise de �gua est� sendo utilizado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorAnalizeAgua().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_ANALISE_AGUA,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorAnalizeAgua() ) );
}
// Verifica se o indicador de uso est� sendo usado
if ( !filtrarLigacaoAguaSituacaoActionForm.getIndicadorUso().equals( ConstantesSistema.TODOS.toString() ) ){
peloMenosUmParametroInformado = true;
filtroLigacaoAguaSituacao.adicionarParametro(
new ParametroSimples(FiltroLigacaoAguaSituacao.INDICADOR_USO,
filtrarLigacaoAguaSituacaoActionForm.getIndicadorUso() ) );
}
Collection<LigacaoAguaSituacao> colecaoLigacaoAguaSituacao = fachada.pesquisar(
filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
// Verifica a existencia de uma Situa��o de Liga��o de �gua
if (colecaoLigacaoAguaSituacao.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,"Situa��o de Liga��o de �gua");
}
// Filtragem sem parametros
if (!peloMenosUmParametroInformado == true) {
throw new ActionServletException(
"atencao.filtro.nenhum_parametro_informado");
}
// Pesquisa sem registros
if (colecaoLigacaoAguaSituacao == null|| colecaoLigacaoAguaSituacao.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado", null, "Situa��o de Liga��o de �gua");
} else {
httpServletRequest.setAttribute("colecaoLigacaoAguaSituacao",
colecaoLigacaoAguaSituacao);
LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao();
ligacaoAguaSituacao = (LigacaoAguaSituacao) Util
.retonarObjetoDeColecao(colecaoLigacaoAguaSituacao);
String idRegistroAtualizacao = ligacaoAguaSituacao.getId().toString();
sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao);
}
sessao.setAttribute("filtroLigacaoAguaSituacao", filtroLigacaoAguaSituacao);
httpServletRequest.setAttribute("filtroLigacaoAguaSituacao",filtroLigacaoAguaSituacao);
return retorno;
}
}