package gcom.gui.arrecadacao.pagamento; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.faturamento.debito.DebitoCreditoSituacao; import gcom.faturamento.debito.DebitoTipo; import gcom.faturamento.debito.FiltroDebitoCreditoSituacao; import gcom.faturamento.debito.FiltroDebitoTipo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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 guia de pagamento para cliente ou im�vel * * @author Pedro Alexandre * @date 07/03/2006 */ public class ExibirPesquisarGuiaPagamentoAction extends GcomAction { /** * Pesquisa as guias de pagamento existentes para o im�vel ou cliente * * [UC0249] Pesquisar Guia de Pagamento * * <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 Pedro Alexandre * @date 07/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 guia de pagamento ActionForward retorno = actionMapping.findForward("pesquisarGuiaPagamento"); //Cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); //Recupera o c�digo do im�vel e o do cliente do request String idImovel = httpServletRequest.getParameter("idImovel"); String idCliente = httpServletRequest.getParameter("idCliente"); //PesquisarGuiaPagamentoActionForm pesquisarGuiaPagamentoActionForm = (PesquisarGuiaPagamentoActionForm) actionForm; //Caso o c�digo do im�vel tenha sido informado pelo caso de uso que chamou a tela de pesquisar guia de pagamento, //Caso contr�rio verifica se o cliente foi informado if(idImovel != null && !idImovel.trim().equalsIgnoreCase("")){ //Pesquisa se o im�vel informado esta cadastrado no sistema, //Caso contr�rio, levanta a exce��o para o usu�rio indicando que o im�vel n�o existe FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, idImovel)); Collection colecaoImovel = fachada.pesquisar(filtroImovel, Imovel.class.getName()); //Caso o im�vel informado n�o tenha sido cadastrado no sistema //Caso contr�rio manda o c�digo do im�vel no request e o c�digo do cliente como nulo if (colecaoImovel == null || colecaoImovel.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Im�vel"); }else{ httpServletRequest.setAttribute("idImovel",idImovel); httpServletRequest.setAttribute("idCliente",""); } //Caso o c�digo do cliente tenha sido informado pelo caso de uso que chamou a tela de pesquisar guia de pagamento, //Caso contr�rio levanta aexce��o para o usu�rio indicando que o im�vel ou o cliente tem que ser informado }else if(idCliente != null && !idCliente.trim().equalsIgnoreCase("")){ //Pesquisa se o cliente informado esta cadastrado no sistema, //Caso contr�rio, levanta a exce��o para o usu�rio indicando que o cliente n�o existe FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, idCliente)); Collection colecaoCliente = fachada.pesquisar(filtroCliente, Cliente.class.getName()); //Caso o cliente informado n�o tenha sido cadastrado no sistema //Caso contr�rio manda o c�digo do cliente no request e o c�digo do im�vel como nulo if (colecaoCliente == null || colecaoCliente.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Cliente"); }else{ httpServletRequest.setAttribute("idImovel",""); httpServletRequest.setAttribute("idCliente",idCliente); } }else{ //Indica que o usu�rio tem de informar o im�vel ou o cliente throw new ActionServletException("atencao.naoinformado",null, "Im�vel ou Cliente"); } //Cria o filtro para pesquisar as situa��es de guia de pagamento no sistema //e seta a ordena��o do resultado da pesquisa pela descri��o da situa��o FiltroDebitoCreditoSituacao filtroDebitoCreditoSituacao = new FiltroDebitoCreditoSituacao(); filtroDebitoCreditoSituacao.setCampoOrderBy(FiltroDebitoCreditoSituacao.DESCRICAO); //Pesquisa as situa��es de guia de pagamento no sistema Collection colecaoSituacaoGuiaPagamento = fachada.pesquisar(filtroDebitoCreditoSituacao, DebitoCreditoSituacao.class.getName()); //Caso nenhuma situa��o de guia de pagamento cadastrada no sistema if(colecaoSituacaoGuiaPagamento == null || colecaoSituacaoGuiaPagamento.isEmpty()){ //Levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naocadastrado",null, "Situa��o de Guia de Pagamento"); }else{ //Manda a cole��o de situa��o de guia de pagamento no request para a p�gina de pesquisar httpServletRequest.setAttribute("colecaoSituacaoGuiaPagamento",colecaoSituacaoGuiaPagamento); } //Cria o filtro para pesquisar ao tipos de d�bito sem limite de registros de guia de pagamento no sistema //e seta a ordena��o do resultado da pesquisa pela descri��o do tipo de d�bito FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo(); filtroDebitoTipo.setConsultaSemLimites(true); filtroDebitoTipo.setCampoOrderBy(FiltroDebitoTipo.DESCRICAO); //Pesquisa os tipos de d�bito no sistema Collection colecaoTipoDebito = fachada.pesquisar(filtroDebitoTipo, DebitoTipo.class.getName()); //Caso nenhum tipo de d�bito if(colecaoTipoDebito == null || colecaoTipoDebito.isEmpty()){ //Levanta a exce��o para a pr�xima camada throw new ActionServletException("atencao.naocadastrado",null, "Tipo de D�bito"); }else{ //Manda a cole��o de tipo de d�bito de guia de pagamento no request para a p�gina de pesquisar httpServletRequest.setAttribute("colecaoTipoDebito",colecaoTipoDebito); } if (httpServletRequest .getParameter("caminhoRetornoTelaPesquisaGuiaPagamento") != null) { sessao .setAttribute( "caminhoRetornoTelaPesquisaGuiaPagamento", httpServletRequest .getParameter("caminhoRetornoTelaPesquisaGuiaPagamento")); } //Retorna o mapeamento contido na vari�vel retorno return retorno; } }