package gcom.gui.arrecadacao;
import gcom.arrecadacao.Arrecadador;
import gcom.arrecadacao.FiltroArrecadador;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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;
/**
* [UC0536]FILTRAR ARRECADADOR
*
* @author Marcio Roberto
* @date 01/02/2007
*/
public class FiltrarArrecadadorAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("exibirManterArrecadador");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarArrecadadorActionForm filtrarArrecadadorActionForm = (FiltrarArrecadadorActionForm) actionForm;
// Recupera todos os campos da p�gina para ser colocada no filtro posteriormente
String idAgente = filtrarArrecadadorActionForm.getIdAgente();
String idCliente = filtrarArrecadadorActionForm.getIdCliente();
String idImovel = filtrarArrecadadorActionForm.getIdImovel();
String inscricaoEstadual = filtrarArrecadadorActionForm.getInscricaoEstadual();
String indicadorUso = filtrarArrecadadorActionForm.getIndicadorUso();
// Indicador Atualizar
String indicadorAtualizar = httpServletRequest.getParameter("indicadorAtualizar");
if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) {
sessao.setAttribute("indicadorAtualizar", indicadorAtualizar);
} else {
sessao.removeAttribute("indicadorAtualizar");
}
boolean peloMenosUmParametroInformado = false;
FiltroArrecadador filtroArrecadador = new FiltroArrecadador();
// C�digo do Arrecadador
if (idAgente != null && !idAgente.trim().equals("")) {
// [FS0003] - Verificando a exist�ncia do Agente
boolean achou = fachada.verificarExistenciaAgente(new Integer(idAgente));
if (achou) {
peloMenosUmParametroInformado = true;
filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.CODIGO_AGENTE, idAgente));
}
}
// Cliente
if (idCliente != null && !idCliente.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.CLIENTE_ID, idCliente));
}
// Imovel
if (idImovel != null && !idImovel.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.IMOVEL_ID, idImovel));
}
// Inscricao Estadual
if (inscricaoEstadual != null && !inscricaoEstadual.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.INSCRICAO_ESTATAL, inscricaoEstadual));
}
//Indicador de Uso
if (indicadorUso != null && !indicadorUso.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.INDICADOR_USO, indicadorUso));
}
// Erro caso o usu�rio mandou filtrar sem nenhum par�metro
if (!peloMenosUmParametroInformado) {
throw new ActionServletException("atencao.filtro.nenhum_parametro_informado");
}
filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("imovel");
Collection<Arrecadador> colecaoArrecadador = fachada.pesquisar(
filtroArrecadador, Arrecadador.class.getName());
if (colecaoArrecadador == null || colecaoArrecadador.isEmpty()) {
throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null,"Arrecadador");
} else {
httpServletRequest.setAttribute("colecaoArrecadador",colecaoArrecadador);
Arrecadador arrecadador = new Arrecadador();
arrecadador = (Arrecadador) Util.retonarObjetoDeColecao(colecaoArrecadador);
String idRegistroAtualizacao = arrecadador.getId().toString();
sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao);
}
sessao.setAttribute("filtroArrecadador", filtroArrecadador);
httpServletRequest.setAttribute("filtroArrecadador", filtroArrecadador);
return retorno;
}
}