package gcom.gui.faturamento.debito;
import gcom.fachada.Fachada;
import gcom.financeiro.FiltroFinanciamentoTipo;
import gcom.financeiro.FinanciamentoTipo;
import gcom.financeiro.lancamento.FiltroLancamentoItemContabil;
import gcom.financeiro.lancamento.LancamentoItemContabil;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
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;
/**
* Action que define o pr�-processamento da p�gina de pesquisa de tipos d�bitos
*
* @author Pedro Alexandre
* @created 09 de mar�o de 2006
*/
public class ExibirPesquisarTipoDebitoAction extends GcomAction {
/**
* consiste em pesquisar os tipos de d�bitos cadastrados no sistema
*
* [UC0303] Pesquisar Tipo de D�bito
*
* <Breve descri��o sobre o subfluxo>
*
* <Identificador e nome do subfluxo>
*
* <Breve descri��o sobre o fluxo secund�rio>
*
* <Identificador e nome do fluxo secund�rio>
*
* @author Administrador
* @date 09/03/2006
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//seta o mapeamento de retorno para a tela de pesquisar tipos de d�bitos
ActionForward retorno = actionMapping.findForward("pesquisarTipoDebito");
//cria uma inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
//se essa variavel tiver algum valor, isso indica que apenas do Tipo de Financimento SERVI�O deve ser carregado na colecao
String tipoFinanciamentoServico = "";
if (httpServletRequest.getParameter("tipoFinanciamentoServico") != null &&
!httpServletRequest.getParameter("tipoFinanciamentoServico").equals("")){
tipoFinanciamentoServico = httpServletRequest.getParameter("tipoFinanciamentoServico");
sessao.setAttribute("tipoFinanciamentoServico",httpServletRequest.getParameter("tipoFinanciamentoServico"));
}else if(sessao.getAttribute("tipoFinanciamentoServico")!= null &&
!sessao.getAttribute("tipoFinanciamentoServico").equals("")){
tipoFinanciamentoServico = (String)sessao.getAttribute("tipoFinanciamentoServico");
}
PesquisarTipoDebitoActionForm pesquisarTipoDebitoActionForm = (PesquisarTipoDebitoActionForm) actionForm;
if ((httpServletRequest.getParameter("limparForm") != null
&& httpServletRequest.getParameter("limparForm").equalsIgnoreCase("1"))
|| (httpServletRequest.getParameter("objetoConsulta") == null
&& httpServletRequest.getParameter("tipoConsulta") == null
&& httpServletRequest.getParameter("voltarPesquisa") == null)){
pesquisarTipoDebitoActionForm.setIdTipoDebito("");
pesquisarTipoDebitoActionForm.setDescricao("");
pesquisarTipoDebitoActionForm.setIdTipoFinanciamento(null);
pesquisarTipoDebitoActionForm.setIdItemLancamentoContabil(null);
pesquisarTipoDebitoActionForm.setIntervaloValorLimiteInicial("");
pesquisarTipoDebitoActionForm.setIntervaloValorLimiteFinal("");
pesquisarTipoDebitoActionForm.setTipoPesquisa(ConstantesSistema.TIPO_PESQUISA_INICIAL.toString());
}
//cria o filtro de lan�amentos de item cont�bil para pesquisa
FiltroLancamentoItemContabil filtroLancamentoItemContabil = new FiltroLancamentoItemContabil();
//seta a ordena��o do resultado da pesquisa de lan�amentos de item cont�bil pela descri��o
filtroLancamentoItemContabil.setCampoOrderBy(FiltroLancamentoItemContabil.DESCRICAO);
//pesquisa a cole��o de lan�amentos de item cont�bil no sistema
Collection colecaoLancamentoItemContabil = fachada.pesquisar(filtroLancamentoItemContabil, LancamentoItemContabil.class.getName());
//se nenhum lan�amento de item cont�bil cadastrado no sistema
if(colecaoLancamentoItemContabil == null || colecaoLancamentoItemContabil.isEmpty()){
//levanta a exce��o para a pr�xima camada
throw new ActionServletException("atencao.naocadastrado",null, "Lan�amento de Item Cont�bil");
}else{
//se existir lan�amento de item cont�bil cadastrado(s) no sistema, manda
//a cole��o pesquisada no request para a p�gina de pesquisar item de lan�amento cont�bil
httpServletRequest.setAttribute("colecaoLancamentoItemContabil",colecaoLancamentoItemContabil);
}
//cria o filtro de tipo de financiamento para pesquisa
FiltroFinanciamentoTipo filtroFinanciamentoTipo = new FiltroFinanciamentoTipo();
//seta para pesquisar apenas o tipo de financiamento SERVI�O
if(tipoFinanciamentoServico != null && !tipoFinanciamentoServico.equals("")){
filtroFinanciamentoTipo.adicionarParametro(new ParametroSimples(FiltroFinanciamentoTipo.ID,FinanciamentoTipo.SERVICO_NORMAL));
}
//seta a ordena��o do resultado da pesquisa de tipo de financiamento pela descri��o
filtroFinanciamentoTipo.setCampoOrderBy(FiltroFinanciamentoTipo.DESCRICAO);
//pesquisa a cole��o de tipo(s) de financiamento no sistema
Collection colecaoFinanciamentoTipo = fachada.pesquisar(filtroFinanciamentoTipo, FinanciamentoTipo.class.getName());
//se nenhum tipo de financiamento cadastrado no sistema
if(colecaoFinanciamentoTipo == null || colecaoFinanciamentoTipo.isEmpty()){
//levanta a exce��o para a pr�xima camada
throw new ActionServletException("atencao.naocadastrado",null, "Tipo de Financiamento");
}else{
//se existir tipo(s) de financiamento cadastrado(s) no sistema, manda
//a cole��o pesquisada no request para a p�gina de pesquisar tipo de financiamento
httpServletRequest.setAttribute("colecaoFinanciamentoTipo",colecaoFinanciamentoTipo);
}
if (httpServletRequest.getParameter("caminhoRetornoTelaPesquisaTipoDebito") != null) {
sessao.setAttribute("caminhoRetornoTelaPesquisaTipoDebito",
httpServletRequest
.getParameter("caminhoRetornoTelaPesquisaTipoDebito"));
}
//retorna o mapeamento contido na vari�vel "retorno"
return retorno;
}
}