package gcom.gui.operacional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.operacional.FiltroFonteCaptacao;
import gcom.operacional.FiltroTipoCaptacao;
import gcom.operacional.FonteCaptacao;
import gcom.operacional.TipoCaptacao;
import gcom.util.ConstantesSistema;
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;
/**
*
* @author Fernando Fontelles Filho
* @date 30/10/2009
*/
public class ExibirFiltrarSistemaAbastecimentoAction extends GcomAction{
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("filtrarSistemaAbastecimento");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarSistemaAbastecimentoActionForm form = (FiltrarSistemaAbastecimentoActionForm) actionForm;
// C�digo para checar ou n�o o ATUALIZAR e Passar o valor do Indicador de Uso como "TODOS"
String primeiraVez = httpServletRequest.getParameter("menu");
if (primeiraVez != null && !primeiraVez.equals("")) {
sessao.setAttribute("indicadorAtualizar", "1");
form.setTipoPesquisa(ConstantesSistema.TIPO_PESQUISA_INICIAL.toString());
}
//pesquisa os dados do enter
pesquisarEnter(form, httpServletRequest,fachada);
return retorno;
}
private void pesquisarEnter(
FiltrarSistemaAbastecimentoActionForm form,
HttpServletRequest httpServletRequest, Fachada fachada) {
// pesquisa enter de FONTE DE CAPTACAO sem ter realizado pesquisa de TIPO DE CAPTACAO
if ((form.getTipoCaptacao() == null || form.getTipoCaptacao().equals(""))
&& form.getIdFonteCaptacao() != null
&& !form.getIdFonteCaptacao().equals("")) {
FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao();
try {
filtroFonteCaptacao.adicionarParametro(new ParametroSimples(
FiltroFonteCaptacao.ID, new Integer(
form.getIdFonteCaptacao())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Fonte de Capta��o");
}
filtroFonteCaptacao
.setCampoOrderBy(FiltroFonteCaptacao.DESCRICAO);
Collection colecaoFonteCaptacao = fachada.pesquisar(
filtroFonteCaptacao, FonteCaptacao.class.getName());
if (colecaoFonteCaptacao != null
&& !colecaoFonteCaptacao.isEmpty()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) Util.retonarObjetoDeColecao(colecaoFonteCaptacao);
form.setDescricaoFonteCaptacao(fonteCaptacao.getDescricao());
if (form.getDescricaoTipoCaptacao() != null && form.getTipoCaptacao() != null
&& !form.getDescricaoTipoCaptacao().equals("TIPO DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
}
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
} else {
form.setIdFonteCaptacao("");
form.setDescricaoFonteCaptacao("FONTE DE CAPTAC�O INEXISTENTE");
}
}
//pesquisa enter de tipo de captacao
if (form.getTipoCaptacao() != null
&& !form.getTipoCaptacao().equals("")) {
FiltroTipoCaptacao filtroTipoCaptacao = new FiltroTipoCaptacao();
try {
filtroTipoCaptacao.adicionarParametro(new ParametroSimples(
FiltroTipoCaptacao.ID, new Integer(
form.getTipoCaptacao())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Tipo de Capta��o");
}
filtroTipoCaptacao
.setCampoOrderBy(FiltroFonteCaptacao.DESCRICAO);
Collection colecaoTipoCaptacao = fachada.pesquisar(
filtroTipoCaptacao, TipoCaptacao.class.getName());
if (colecaoTipoCaptacao != null
&& !colecaoTipoCaptacao.isEmpty()) {
TipoCaptacao tipoCaptacao = (TipoCaptacao) Util.retonarObjetoDeColecao(colecaoTipoCaptacao);
form.setDescricaoTipoCaptacao(tipoCaptacao.getDescricao());
if (form.getDescricaoFonteCaptacao() != null && form.getIdFonteCaptacao() != null
&& !form.getDescricaoFonteCaptacao().equals("FONTE DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
}
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
} else {
form.setTipoCaptacao("");
form.setDescricaoTipoCaptacao("TIPO DE CAPTAC�O INEXISTENTE");
if (form.getDescricaoFonteCaptacao() != null && form.getIdFonteCaptacao() != null
&& !form.getDescricaoFonteCaptacao().equals("FONTE DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
}
}
}
//Pesquisar Fonte de Captacao Com Tipo de Captacao
if (form.getTipoCaptacao() != null
&& !form.getTipoCaptacao().equals("")
&& form.getIdFonteCaptacao() != null
&& !form.getIdFonteCaptacao().equals("")
&& (form.getDescricaoFonteCaptacao() == null || form.getDescricaoFonteCaptacao().equals(""))) {
FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao();
try {
filtroFonteCaptacao.adicionarParametro(new ParametroSimples(
FiltroFonteCaptacao.ID_TIPO_CAPTACAO,form.getTipoCaptacao()));
filtroFonteCaptacao.adicionarParametro(new ParametroSimples(
FiltroFonteCaptacao.ID, new Integer(
form.getIdFonteCaptacao())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Fonte de Capta��o");
}
filtroFonteCaptacao
.setCampoOrderBy(FiltroFonteCaptacao.DESCRICAO);
Collection colecaoFonteCaptacao = fachada.pesquisar(
filtroFonteCaptacao, FonteCaptacao.class.getName());
if (colecaoFonteCaptacao != null
&& !colecaoFonteCaptacao.isEmpty()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) Util.retonarObjetoDeColecao(colecaoFonteCaptacao);
form.setDescricaoFonteCaptacao(fonteCaptacao.getDescricao());
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
} else {
form.setIdFonteCaptacao("");
form.setDescricaoFonteCaptacao("FONTE DE CAPTAC�O INEXISTENTE");
}
}
}
}