package gcom.gui.seguranca;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.ConsultaCdl;
import gcom.seguranca.FiltrarConsultaCadastroCdlActionForm;
import gcom.seguranca.FiltroConsultaCadastroCdl;
import gcom.util.Util;
import gcom.util.filtro.Intervalo;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
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
*
* @author Rodrigo Cabral
* @date 22/10/2010
*/
public class FiltrarConsultaCadastroCdlAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("resultadoPesquisaConsultaCadastroCdl");
FiltrarConsultaCadastroCdlActionForm form = (FiltrarConsultaCadastroCdlActionForm) actionForm;
FiltroConsultaCadastroCdl filtroConsultaCadastroCdl = new FiltroConsultaCadastroCdl();
HttpSession sessao = httpServletRequest.getSession(false);
boolean peloMenosUmParametroInformado = false;
// Verifica se o campo CPF Cliente foi informado
if (form.getCpfCliente() != null && !form.getCpfCliente().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.CPF_CLIENTE, form.getCpfCliente()));
}
// Verifica se o campo Cod. Cliente Gsan foi informado
if (form.getCodigoCliente() != null && !form.getCodigoCliente().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.COD_CLIENTE_GSAN, form.getCodigoCliente()));
}
// Verifica se o campo CNPJ Cliente foi informado
if (form.getCnpjCliente() != null && !form.getCnpjCliente().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.CNPJ_CLIENTE, form.getCnpjCliente()));
}
// Verifica se o campo CNPJ Cliente foi informado
if (form.getNomeCliente() != null && !form.getNomeCliente().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.NOME_CLIENTE, form.getNomeCliente()));
}
// Verifica se o campo Matr�cula do Funcion�rio foi informado
if (form.getIdMatriculaFuncionario() != null && !form.getIdMatriculaFuncionario().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.ID_FUNCIONARIO, form.getIdMatriculaFuncionario()));
}
// Verifica se o campo Nome do Usu�rio foi informado
if (form.getNomeUsuario() != null && !form.getNomeUsuario().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.NOME_USUARIO, form.getNomeUsuario()));
}
// Verifica se o campo N�mero do CPF Usu�rio foi informado
if (form.getCpfUsuario() != null && !form.getCpfUsuario().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.CPF_USUARIO, form.getCpfUsuario()));
}
// Verifica se o campo Login Usu�rio foi informado
if (form.getLoginUsuario() != null && !form.getLoginUsuario().equals("")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.LOGIN_USUARIO, form.getLoginUsuario()));
}
// Verifica se o campo Per�odo Acesso Inicial e Final foi informado
if (form.getPeriodoAcessoFinal() != null && !form.getPeriodoAcessoFinal().trim().equalsIgnoreCase("") &&
form.getPeriodoAcessoInicial() != null && !form.getPeriodoAcessoInicial().trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
Date dataInicioFormatada = Util.converteStringParaDate(form.getPeriodoAcessoInicial());
Date dataFinalFormatada = Util.converteStringParaDate(form.getPeriodoAcessoFinal());
filtroConsultaCadastroCdl.adicionarParametro(new Intervalo(
FiltroConsultaCadastroCdl.DATA_ULTIMA_ALTERACAO, Util.formatarDataInicial(dataInicioFormatada),
Util.formatarDataFinal(dataFinalFormatada)));
}
// Verifica se o campo A��o do Operador foi informado
if (form.getAcaoOperador() != null &&
!form.getAcaoOperador().equals("-1") &&
!form.getAcaoOperador().equals("4")) {
peloMenosUmParametroInformado = true;
filtroConsultaCadastroCdl.adicionarParametro(new ParametroSimples(
FiltroConsultaCadastroCdl.ACAO_OPERADOR, form.getAcaoOperador()));
}
// Erro caso o usu�rio mandou Pesquisar sem nenhum par�metro
if (!peloMenosUmParametroInformado) {
throw new ActionServletException(
"atencao.filtro.nenhum_parametro_informado");
}
Collection<ConsultaCdl> colecaoConsultaCdl = null;
Map resultado =
controlarPaginacao( httpServletRequest,
retorno,
filtroConsultaCadastroCdl,
ConsultaCdl.class.getName());
colecaoConsultaCdl = (Collection<ConsultaCdl>) resultado.get("colecaoRetorno");
retorno = (ActionForward) resultado.get("destinoActionForward");
//Nenhum registro encontrado
if (colecaoConsultaCdl == null || colecaoConsultaCdl.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado");
}
httpServletRequest.setAttribute("colecaoConsultaCdl",colecaoConsultaCdl);
httpServletRequest.setAttribute("periodoAcessoInicial",form.getPeriodoAcessoInicial());
httpServletRequest.setAttribute("periodoAcessoFinal",form.getPeriodoAcessoFinal());
httpServletRequest.setAttribute("filtroConsultaCadastroCdl", filtroConsultaCadastroCdl);
sessao.setAttribute("filtroConsultaCadastroCdl", filtroConsultaCadastroCdl);
return retorno;
}
}