package gcom.gui.faturamento.credito; import gcom.fachada.Fachada; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaHistorico; import gcom.faturamento.conta.FiltroConta; import gcom.faturamento.conta.FiltroContaHistorico; import gcom.faturamento.credito.CreditoRealizado; import gcom.faturamento.credito.CreditoRealizadoHistorico; import gcom.faturamento.credito.FiltroCreditoRealizado; import gcom.faturamento.credito.FiltroCreditoRealizadoHistorico; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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; /** * action respons�vel pela exibi��o da p�gina de consultar cr�ditos realizados * * @author pedro alexandre * @created 04 de Janeiro de 2006 */ public class ExibirConsultarCreditoRealizadoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // cria a vari�vel de retorno e seta o mapeamento para a tela de // consultar cr�ditos realizados ActionForward retorno = actionMapping .findForward("exibirConsultarCreditoRealizado"); // cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); // cria uma inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); String tipoConsulta = httpServletRequest.getParameter("tipoConsulta"); if (tipoConsulta.equalsIgnoreCase("conta")) { // recupera o c�digo da conta do request String idConta = httpServletRequest.getParameter("contaID"); // se o c�digo n�o for nulo if (idConta != null && !idConta.equalsIgnoreCase("")) { // remove o objeto conta da sess�o sessao.removeAttribute("conta"); // remove o objeto conta da sess�o sessao.removeAttribute("contaHistorico"); // remove a cole��o de categorias sessao.removeAttribute("colecaoContaCategoria"); // remove a cole��o de impostos deduzidos sessao.removeAttribute("colecaoContaImpostosDeduzidos"); // remove a cole��o de cr�ditos realizados sessao.removeAttribute("colecaoContaCreditosRealizados"); sessao .removeAttribute("colecaoContaCreditosRealizadosHistorico"); } /*Pesquisando a conta a partir do id recebido*/ // cria o objeto conta Conta conta = null; // se o c�digo da conta n�o for nulo if (idConta != null && !idConta.equalsIgnoreCase("")) { // cria o filtro da conta FiltroConta filtroConta = new FiltroConta(); // carrega o im�vel filtroConta.adicionarCaminhoParaCarregamentoEntidade("imovel"); // carrega a situa��o da conta filtroConta .adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAtual"); // carrega a situa��o da liga��o de �gua filtroConta .adicionarCaminhoParaCarregamentoEntidade("ligacaoAguaSituacao"); // carrega a a situa��o de esgoto filtroConta .adicionarCaminhoParaCarregamentoEntidade("ligacaoEsgotoSituacao"); // seta o c�digo da conta no filtro filtroConta.adicionarParametro(new ParametroSimples( FiltroConta.ID, new Integer(idConta))); // pesquisa a conta na base de dados Collection colecaoConta = fachada.pesquisar(filtroConta, Conta.class.getName()); // se n�o encontrou nenhuma conta com o c�digo informado if (colecaoConta == null || colecaoConta.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.conta.inexistente"); } // recupera o objeto conta da cole��o conta = (Conta) Util.retonarObjetoDeColecao(colecaoConta); // seta o objeto conta na sess�o sessao.setAttribute("conta", conta); } // se j� existe uma conta na sess�o else if (sessao.getAttribute("conta") != null) { // recupera a conta da sess�o conta = (Conta) sessao.getAttribute("conta"); } else { // levanta o erro de conta inexistente throw new ActionServletException( "atencao.pesquisa.conta.inexistente"); } // ==================================================================== // cria a vari�vel de cole��o de cr�ditos realizados Collection colecaoContaCreditosRealizados; /* * Creditos Realizados (Carregar cole��o) * ====================================================================== */ // se n�o existir nenhuma cole��o de cr�ditos realizados na sess�o if (sessao.getAttribute("colecaoContaCreditosRealizados") == null) { // cria o filtro de credito realizado FiltroCreditoRealizado filtroCreditoRealizado = new FiltroCreditoRealizado(); // carrega o tipo de cr�dito filtroCreditoRealizado .adicionarCaminhoParaCarregamentoEntidade("creditoTipo"); // seta o c�digo da conta no filtro filtroCreditoRealizado.adicionarParametro(new ParametroSimples( FiltroCreditoRealizado.CONTA_ID, conta.getId())); // pesquisa a cole��o de cr�ditos realizados colecaoContaCreditosRealizados = fachada.pesquisar( filtroCreditoRealizado, CreditoRealizado.class .getName()); // seta a cole��o de cr�ditos realizados na sess�o sessao.setAttribute("colecaoContaCreditosRealizados", colecaoContaCreditosRealizados); } // ==================================================================== } else if (tipoConsulta.equalsIgnoreCase("contaHistorico")) { String idContaHistorico = httpServletRequest .getParameter("contaID"); // se o c�digo n�o for nulo if (idContaHistorico != null && !idContaHistorico.equalsIgnoreCase("")) { // remove o objeto conta da sess�o sessao.removeAttribute("conta"); // remove o objeto conta hist�rico da sess�o sessao.removeAttribute("contaHistorico"); // remove a cole��o de categorias sessao.removeAttribute("colecaoContaCategoria"); // remove a cole��o de impostos deduzidos sessao.removeAttribute("colecaoContaImpostosDeduzidos"); // remove a cole��o de cr�ditos realizados sessao.removeAttribute("colecaoContaCreditosRealizados"); sessao.removeAttribute("colecaoContaCreditosRealizadosHistorico"); } /* * Pesquisando a conta hist�rico a partir do id recebido * ===================================================================== */ // cria o objeto conta hist�rico ContaHistorico contaHistorico = null; // se o c�digo da conta hist�rico n�o for nulo if (idContaHistorico != null && !idContaHistorico.equalsIgnoreCase("")) { // pesquisa a conta hist�rico na base de dados Collection colecaoContaHistorico = this.getFachada().consultarContaHistorico(new Integer(idContaHistorico)); // se n�o encontrou nenhuma conta hist�rico com o c�digo // informado if (colecaoContaHistorico == null || colecaoContaHistorico.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.conta.inexistente"); } // recupera o objeto conta hist�rico da cole��o contaHistorico = (ContaHistorico) Util .retonarObjetoDeColecao(colecaoContaHistorico); // seta o objeto conta historico na sess�o sessao.setAttribute("contaHistorico", contaHistorico); } // se j� existe uma conta na sess�o else if (sessao.getAttribute("contaHistorico") != null) { // recupera a conta da sess�o contaHistorico = (ContaHistorico) sessao .getAttribute("contaHistorico"); } else { // levanta o erro de conta inexistente throw new ActionServletException( "atencao.pesquisa.conta.inexistente"); } // ==================================================================== // cria a vari�vel de cole��o de cr�ditos realizados hist�rico Collection colecaoContaCreditosRealizadosHistorico; /* * Creditos Realizados Hist�rico (Carregar cole��o) * ====================================================================== */ // se n�o existir nenhuma cole��o de cr�ditos realizados hist�rico // na sess�o if (sessao.getAttribute("colecaoContaCreditosRealizadosHistorico") == null) { // cria o filtro de credito realizado hist�rico FiltroCreditoRealizadoHistorico filtroCreditoRealizadoHistorico = new FiltroCreditoRealizadoHistorico(); // carrega o tipo de cr�dito filtroCreditoRealizadoHistorico .adicionarCaminhoParaCarregamentoEntidade("creditoTipo"); // seta o c�digo da conta hist�rico no filtro filtroCreditoRealizadoHistorico .adicionarParametro(new ParametroSimples( FiltroCreditoRealizadoHistorico.CONTA_HISTORICO_ID, contaHistorico.getId())); // pesquisa a cole��o de cr�ditos realizados hist�rico colecaoContaCreditosRealizadosHistorico = fachada.pesquisar( filtroCreditoRealizadoHistorico, CreditoRealizadoHistorico.class.getName()); // seta a cole��o de cr�ditos realizados hist�rico na sess�o sessao.setAttribute("colecaoContaCreditosRealizadosHistorico", colecaoContaCreditosRealizadosHistorico); } // ==================================================================== } // envia uma flag que ser� verificado no cliente_resultado_pesquisa.jsp // para saber se ir� usar o enviar dados ou o enviar dados parametros if (httpServletRequest .getParameter("caminhoRetornoTelaConsultaCreditoRealizado") != null) { sessao .setAttribute( "caminhoRetornoTelaConsultaCreditoRealizado", httpServletRequest .getParameter("caminhoRetornoTelaConsultaCreditoRealizado")); } // retorna o mapeamento contido na vari�vel retorno return retorno; } }