package gcom.gui.atendimentopublico.ligacaoesgoto;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
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;
/**
* [UC0789] Filtrar Situacao de Liga��o de Esgoto
*
* @author Bruno Barros
*
* @date 15/05/2008
*/
public class FiltrarLigacaoEsgotoSituacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirManterLigacaoEsgotoSituacao");
// Sess�o
HttpSession sessao = httpServletRequest.getSession(false);
// Form
FiltrarLigacaoEsgotoSituacaoActionForm filtrarSistemaEsgotoActionForm
= (FiltrarLigacaoEsgotoSituacaoActionForm) actionForm;
// Verificamos os campos obrigat�rios foram informados
boolean informouAoMenos1Parametro = false;
// Criamos o filtro para a pesquisa
FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao();
// Verificamos se o c�digo foi informado
if ( filtrarSistemaEsgotoActionForm.getCodigo() != null &&
!filtrarSistemaEsgotoActionForm.getCodigo().equals( "" ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.ID, filtrarSistemaEsgotoActionForm.getCodigo() ) );
informouAoMenos1Parametro = true;
}
// Verificamos se a descri��o foi informada
if (filtrarSistemaEsgotoActionForm.getDescricao() != null &&
!filtrarSistemaEsgotoActionForm.getDescricao().trim().equalsIgnoreCase("")) {
informouAoMenos1Parametro = true;
if (filtrarSistemaEsgotoActionForm.getDescricao() != null &&
filtrarSistemaEsgotoActionForm.getDescricao().equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA.toString())) {
filtroLigacaoEsgotoSituacao
.adicionarParametro(new ComparacaoTextoCompleto(
FiltroLigacaoEsgotoSituacao.DESCRICAO, filtrarSistemaEsgotoActionForm.getDescricao() ) );
} else {
filtroLigacaoEsgotoSituacao.adicionarParametro(new ComparacaoTexto(
FiltroLigacaoEsgotoSituacao.DESCRICAO, filtrarSistemaEsgotoActionForm.getDescricao() ) );
}
}
// Verificamos se a descri��o abreviada foi informada
if ( filtrarSistemaEsgotoActionForm.getDescricaoAbreviada() != null &&
!filtrarSistemaEsgotoActionForm.getDescricaoAbreviada().equals( "" ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.DESCRICAOABREVIADA, filtrarSistemaEsgotoActionForm.getDescricaoAbreviada() ) );
informouAoMenos1Parametro = true;
}
// Verificamos se o Consumo Minimo foi informado
if ( filtrarSistemaEsgotoActionForm.getConsumoMinimoFaturamento() != null &&
!filtrarSistemaEsgotoActionForm.getConsumoMinimoFaturamento().equals( "" ) ){
// Verificamos se o volume minimo � um n�mero v�lido
if ( Util.validarStringNumerica( filtrarSistemaEsgotoActionForm.getConsumoMinimoFaturamento() ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.VOLUMEMINIMOFATURAMENTO, filtrarSistemaEsgotoActionForm.getConsumoMinimoFaturamento() ) );
informouAoMenos1Parametro = true;
} else {
throw new ActionServletException( "atencao.campo_texto.numero_obrigatorio", null, "Consumo M�nimo" );
}
}
// Verificamos se o indicador de faturamento est� sendo usado
if ( !filtrarSistemaEsgotoActionForm.getIndicadorFaturamento().equals( ConstantesSistema.TODOS.toString() ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.INDICADORFATURAMENTOSITUACAO, filtrarSistemaEsgotoActionForm.getIndicadorFaturamento() ) );
informouAoMenos1Parametro = true;
}
// Verificamos se o indicador de existencia de rede est� sendo usado
if ( !filtrarSistemaEsgotoActionForm.getIndicadorExistenciaRede().equals( ConstantesSistema.TODOS.toString() ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.INDICADOREXISTENCIAREDE, filtrarSistemaEsgotoActionForm.getIndicadorExistenciaRede() ) );
informouAoMenos1Parametro = true;
}
// Verificamos se o indicador de existencia de liga��o est� sendo usado
if ( !filtrarSistemaEsgotoActionForm.getIndicadorExistenciaLigacao().equals( ConstantesSistema.TODOS.toString() ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.INDICADOREXISTENCIALIGACAO, filtrarSistemaEsgotoActionForm.getIndicadorExistenciaLigacao() ) );
informouAoMenos1Parametro = true;
}
// Verificamos se o indicador de uso est� sendo usado
if ( !filtrarSistemaEsgotoActionForm.getIndicadorUso().equals( ConstantesSistema.TODOS.toString() ) ){
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples( FiltroLigacaoEsgotoSituacao.INDICADORUSO, filtrarSistemaEsgotoActionForm.getIndicadorUso() ) );
informouAoMenos1Parametro = true;
}
// FS0001 - Verificar preenchimento dos campos
if ( !informouAoMenos1Parametro ){
throw new ActionServletException( "atencao.filtrar_informar_um_filtro" );
}
// Pega a instancia da fachada
Fachada fachada = Fachada.getInstancia();
Collection<LigacaoEsgotoSituacao> colecaoLigacaoEsgotoSituacao = fachada
.pesquisar( filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName() );
// Pesquisa sem registros
if (colecaoLigacaoEsgotoSituacao == null
|| colecaoLigacaoEsgotoSituacao.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado", null, "Situa��o de Liga��o de Esgoto");
} else {
// Guardamos a colecao no request e o id do registro que ser� atualizado
httpServletRequest.setAttribute( "colecaoLigacaoEsgotoSituacao", colecaoLigacaoEsgotoSituacao );
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) Util
.retonarObjetoDeColecao(colecaoLigacaoEsgotoSituacao);
String idRegistroAtualizacao = ligacaoEsgotoSituacao.getId().toString();
sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao);
}
// Colocamos o filtro na sessao
sessao.setAttribute("filtroLigacaoEsgotoSituacao", filtroLigacaoEsgotoSituacao);
httpServletRequest.setAttribute("filtroLigacaoEsgotoSituacao",
filtroLigacaoEsgotoSituacao);
return retorno;
}
}