package gcom.gui.arrecadacao;
import gcom.arrecadacao.banco.Agencia;
import gcom.arrecadacao.banco.Banco;
import gcom.arrecadacao.banco.FiltroAgencia;
import gcom.arrecadacao.banco.FiltroBanco;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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 org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* [UC00802] Filtrar Debito Automatico
*
* @author Bruno Barros
*
* @date 23/05/2008
*/
public class ExibirFiltrarDebitoAutomaticoAction extends GcomAction {
private Collection colecaoPesquisa;
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirFiltrarDebitoAutomatico");
Fachada fachada = Fachada.getInstancia();
FiltrarDebitoAutomaticoActionForm filtrarDebitoAutomaticoActionForm = (FiltrarDebitoAutomaticoActionForm) actionForm;
String objetoConsulta = (String) httpServletRequest
.getParameter("objetoConsulta");
if (objetoConsulta != null
&& !objetoConsulta.trim().equalsIgnoreCase("")) {
switch (Integer.parseInt(objetoConsulta)) {
// Banco
case 1:
//Recebe o valor do campo bancoID do formul�rio.
String bancoID = filtrarDebitoAutomaticoActionForm
.getBancoID();
FiltroBanco filtroBanco = new FiltroBanco();
filtroBanco
.adicionarParametro(new ParametroSimples(
FiltroBanco.ID, bancoID));
filtroBanco
.adicionarParametro(new ParametroSimples(
FiltroBanco.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna Banco
colecaoPesquisa = fachada.pesquisar(filtroBanco,
Banco.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
filtrarDebitoAutomaticoActionForm.setAgenciaCodigo( null );
filtrarDebitoAutomaticoActionForm.setAgenciaDescricao( null );
//Setor censitario nao encontrado
//Limpa o campo bancoID do formul�rio
filtrarDebitoAutomaticoActionForm.setBancoID("");
filtrarDebitoAutomaticoActionForm
.setBancoDescricao("Banco inexistente.");
httpServletRequest.setAttribute("corBanco",
"exception");
httpServletRequest.setAttribute("nomeCampo", "bancoID");
} else {
Banco objetoBanco = (Banco) Util
.retonarObjetoDeColecao(colecaoPesquisa);
filtrarDebitoAutomaticoActionForm.setBancoID(String
.valueOf(objetoBanco.getId()));
filtrarDebitoAutomaticoActionForm
.setBancoDescricao(objetoBanco
.getDescricao());
httpServletRequest.setAttribute("corBanco",
"valor");
httpServletRequest.setAttribute("nomeCampo", "bancoID");
}
break;
// Ag�ncia
case 2:
//Recebe o valor do campo agenciaID do formul�rio.
String agenciaCodigo = filtrarDebitoAutomaticoActionForm
.getAgenciaCodigo();
FiltroAgencia filtroAgencia = new FiltroAgencia();
filtroAgencia
.adicionarParametro(new ParametroSimples(
FiltroAgencia.CODIGO_AGENCIA, agenciaCodigo));
//Retorna Setor censitario
colecaoPesquisa = fachada.pesquisar(filtroAgencia,
Agencia.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
//Agencia nao encontrado
//Limpa o campo agenciaID do formul�rio
filtrarDebitoAutomaticoActionForm.setAgenciaCodigo("");
filtrarDebitoAutomaticoActionForm
.setAgenciaDescricao("Ag�ncia inexistente.");
httpServletRequest.setAttribute("corAgencia",
"exception");
httpServletRequest.setAttribute("nomeCampo", "agenciaID");
} else {
filtroAgencia
.adicionarParametro(new ParametroSimples(
FiltroAgencia.BANCO_ID, filtrarDebitoAutomaticoActionForm.getBancoID() ) );
//Retorna Setor censitario
colecaoPesquisa = fachada.pesquisar(filtroAgencia,
Agencia.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
filtrarDebitoAutomaticoActionForm.setAgenciaCodigo( null );
filtrarDebitoAutomaticoActionForm.setAgenciaDescricao( null );
throw new ActionServletException( "atencao.agencia.banco_errado", "exibirFiltrarDebitoAutomaticoAction.do", null, new String[] {} );
} else {
Agencia objetoAgencia = (Agencia) Util
.retonarObjetoDeColecao(colecaoPesquisa);
filtrarDebitoAutomaticoActionForm.setAgenciaCodigo(String
.valueOf(objetoAgencia.getCodigoAgencia()));
filtrarDebitoAutomaticoActionForm
.setAgenciaDescricao(objetoAgencia
.getNomeAgencia());
httpServletRequest.setAttribute("corAgencia",
"valor");
httpServletRequest.setAttribute("nomeCampo", "agenciaCodigo");
}
}
break;
default:
break;
}
}
if(filtrarDebitoAutomaticoActionForm.getIndicadorAtualizar()==null){
filtrarDebitoAutomaticoActionForm.setIndicadorAtualizar("1");
}
if (httpServletRequest.getParameter("desfazer") != null &&
httpServletRequest.getParameter("desfazer").equalsIgnoreCase("S")) {
filtrarDebitoAutomaticoActionForm.setMatricula( "" );
filtrarDebitoAutomaticoActionForm.setBancoID("");
filtrarDebitoAutomaticoActionForm.setAgenciaCodigo("");
filtrarDebitoAutomaticoActionForm.setIndicadorAtualizar("");
}
return retorno;
}
}