package gcom.gui.faturamento; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.FiltroClienteImovel; import gcom.cadastro.imovel.Imovel; 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.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; 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 hist�rico de faturamento * * @author pedro alexandre * @created 04 de Janeiro de 2006 */ public class ExibirConsultarHistoricoFaturamentoAction 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 hist�rico do faturamento ActionForward retorno = actionMapping.findForward("exibirConsultarHistoricoFaturamento"); //cria uma inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //cria uma inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); //recupera o form de consultar hist�rico do faturamento ConsultarHistoricoFaturamentoActionForm consultarHistoricoFaturamentoActionForm = (ConsultarHistoricoFaturamentoActionForm) actionForm; //recupera a flag de limpar o form String limparForm = httpServletRequest.getParameter("limparForm"); //se a flag n�o estiver vazia if (limparForm != null && !limparForm.equalsIgnoreCase("")){ //remove a cole��o de conta e im�vel da sess�o sessao.removeAttribute("colecaoContaImovel"); } Collection colecaoContaHistoricoImovel = new ArrayList(); Collection colecaoContaImovel = new ArrayList(); Collection colecaoDebitoACobrarHistoricoImovel = new ArrayList(); Collection colecaoDebitoACobrarImovel = new ArrayList(); Collection colecaoCreditoARealizarHistoricoImovel = new ArrayList(); Collection colecaoCreditoARealizarImovel = new ArrayList(); Collection colecaoGuiaPagamentoHistoricoImovel = new ArrayList(); Collection colecaoGuiaPagamentoImovel = new ArrayList(); /*Pesquisar o im�vel a partir da matr�cula do im�vel informada na p�gina ====================================================================== */ //recupera o c�digo do im�vel String idImovel = consultarHistoricoFaturamentoActionForm.getIdImovel(); //recupera a flag de recarregar a p�gina String reloadPage = httpServletRequest.getParameter("reloadPage"); //verifica se o c�digo im�vel n�o � nulo if (idImovel != null && !idImovel.equalsIgnoreCase("") && (reloadPage == null || reloadPage.equalsIgnoreCase(""))){ //recupera o objeto im�vel da cole��o Imovel objetoImovel = fachada.pesquisarImovelDigitado(new Integer(idImovel)); //Caso o im�vel informado pelo usu�rio esteja cadastrado no sistema //Seta os dados o im�vel no form //Caso contr�rio seta as informa��es o im�vel para vazio //e indica ao usu�rio que o im�vel informado n�o existe if (objetoImovel != null ) { consultarHistoricoFaturamentoActionForm.setIdImovel("" + objetoImovel.getId()); consultarHistoricoFaturamentoActionForm.setDescricaoImovel("" + objetoImovel.getInscricaoFormatada()); httpServletRequest.setAttribute("idImovelNaoEncontrado", "true"); /*Pesquisar o cliente usu�rio do im�vel selecionado ====================================================================== */ //cria o filtro de cliente im�vel FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel(); //Objetos que ser�o retornados pelo hibernate. //carrega o cliente do im�vel no filtro filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("cliente"); //seta o c�digo do im�vel no filtro filtroClienteImovel.adicionarParametro(new ParametroSimples(FiltroClienteImovel.IMOVEL_ID, idImovel)); //seta o tipo de rela��o do cliente com o im�vel no filtro filtroClienteImovel.adicionarParametro(new ParametroSimples(FiltroClienteImovel.CLIENTE_RELACAO_TIPO, ClienteRelacaoTipo.USUARIO)); //seta o fim da motivo da rela��o no filtro filtroClienteImovel.adicionarParametro(new ParametroNulo(FiltroClienteImovel.FIM_RELACAO_MOTIVO)); //pesquisa a rela��o do cliente im�vel Collection colecaoClienteImovel = fachada.pesquisar(filtroClienteImovel, ClienteImovel.class.getName()); // Verifica exist�ncia do cliente usu�rio if (colecaoClienteImovel == null || colecaoClienteImovel.isEmpty()){ throw new ActionServletException( "atencao.naocadastrado", null, "cliente do tipo usu�rio foi"); } //recupera o objeto ClienteImovel da cole��o ClienteImovel objetoClienteImovel = (ClienteImovel) Util.retonarObjetoDeColecao(colecaoClienteImovel); /*Pesquisar as contas do im�vel a partir da matr�cula do im�vel informada na p�gina ====================================================================== */ //cria o filtro de conta FiltroConta filtroConta = new FiltroConta(); //seta a ordena��o da pesquisa no filtro filtroConta.setCampoOrderBy(FiltroConta.REFERENCIA + " desc"); //Elimina o limite de 50 registro para a pesquisa filtroConta.setConsultaSemLimites(true); //Objetos que ser�o retornados pelo hibernate filtroConta.adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAtual"); //seta o c�digo do im�vel no filtro filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.IMOVEL_ID, objetoImovel.getId())); //pesquisa a cole��o de contas do im�vel colecaoContaImovel = fachada.pesquisar(filtroConta, Conta.class.getName()); /*Fim da Pesquisa de contas do im�vel ===================================================================== */ /*Pesquisar os hist�ricos das contas hist�rico do im�vel a partir da matr�cula do im�vel informada na p�gina ====================================================================== */ //cria o filtro de hist�rico da conta FiltroContaHistorico filtroContaHistorico = new FiltroContaHistorico(); //seta a ordena��o da pesquisa no filtro filtroContaHistorico.setCampoOrderBy(FiltroContaHistorico.ANO_MES_REFERENCIA + " desc"); //Elimina o limite de 50 registro para a pesquisa filtroContaHistorico.setConsultaSemLimites(true); //Objetos que ser�o retornados pelo hibernate filtroContaHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAtual"); //seta o c�digo do im�vel no filtro filtroContaHistorico.adicionarParametro(new ParametroSimples(FiltroContaHistorico.IMOVEL_ID, objetoImovel.getId())); //pesquisa a cole��o de hist�rico das contas do im�vel colecaoContaHistoricoImovel = fachada.pesquisar(filtroContaHistorico, ContaHistorico.class.getName()); /*Fim da Pesquisa de hist�rico das contas do im�vel ===================================================================== */ //Carregando as informa��es do im�vel no formul�rio de exibi��o. //seta a inscri��o do im�vel no form consultarHistoricoFaturamentoActionForm.setInscricaoImovel(objetoImovel.getInscricaoFormatada()); //seta o nome do cliente no form consultarHistoricoFaturamentoActionForm.setNomeClienteUsuario(objetoClienteImovel.getCliente().getNome()); //seta a descri��o da situa��o de �gua no form consultarHistoricoFaturamentoActionForm.setSituacaoAguaImovel(objetoImovel.getLigacaoAguaSituacao().getDescricao()); //seta a descri��o da situa��o de �gua no form consultarHistoricoFaturamentoActionForm.setSituacaoEsgotoImovel(objetoImovel.getLigacaoEsgotoSituacao().getDescricao()); //coloca na sess�o a cole��o com as contas do im�vel selecionado sessao.setAttribute("colecaoContaImovel", colecaoContaImovel); sessao.setAttribute("colecaoContaHistoricoImovel", colecaoContaHistoricoImovel); /* Pesquisar os debitos a cobrar e os debitos a cobrar historico do im�vel * a partir da matr�cula do im�vel informada na p�gina ====================================================================== */ colecaoDebitoACobrarImovel = fachada.obterDebitoACobrarImovel(objetoImovel.getId()); colecaoDebitoACobrarHistoricoImovel = fachada.obterDebitoACobrarHistoricoImovel(objetoImovel.getId()); //coloca na sess�o a cole��o com os debitos do im�vel selecionado // sessao.setAttribute("colecaoDebitoACobrarImovel", colecaoDebitoACobrarImovel); // sessao.setAttribute("colecaoDebitoACobrarHistoricoImovel", colecaoDebitoACobrarHistoricoImovel); /*Fim da Pesquisa de debitos a cobrar e os debitos a cobrar historico do im�vel ===================================================================== */ /* Pesquisar os creditos a realizar e os creditos a realizar historico do im�vel * a partir da matr�cula do im�vel informada na p�gina ====================================================================== */ colecaoCreditoARealizarImovel = fachada.obterCreditoARealizarImovel(objetoImovel.getId()); colecaoCreditoARealizarHistoricoImovel = fachada.obterCreditoARealizarHistoricoImovel(objetoImovel.getId()); //coloca na sess�o a cole��o com os creditos do im�vel selecionado // sessao.setAttribute("colecaoCreditoARealizarImovel", colecaoCreditoARealizarImovel); // sessao.setAttribute("colecaoCreditoARealizarHistoricoImovel", colecaoCreditoARealizarHistoricoImovel); /*Fim da Pesquisa de creditos a realizar e os creditos a realizar historico do im�vel ===================================================================== */ /* Pesquisar os creditos a realizar e os creditos a realizar historico do im�vel * a partir da matr�cula do im�vel informada na p�gina ====================================================================== */ colecaoGuiaPagamentoImovel = fachada.obterGuiaPagamentoImovel(objetoImovel.getId()); colecaoGuiaPagamentoHistoricoImovel = fachada.obterGuiaPagamentoHistoricoImovel(objetoImovel.getId()); //coloca na sess�o a cole��o com os creditos do im�vel selecionado // sessao.setAttribute("colecaoGuiaPagamentoImovel", colecaoGuiaPagamentoImovel); // sessao.setAttribute("colecaoGuiaPagamentoHistoricoImovel", colecaoGuiaPagamentoHistoricoImovel); /*Fim da Pesquisa de creditos a realizar e os creditos a realizar historico do im�vel ===================================================================== */ } else { consultarHistoricoFaturamentoActionForm.setIdImovel(""); httpServletRequest.setAttribute("idImovelNaoEncontrado", "exception"); consultarHistoricoFaturamentoActionForm.setDescricaoImovel("Matr�cula Inexistente"); } }else{ //remove da sess�o a cole��o das contas do im�vel sessao.removeAttribute("colecaoContaImovel"); sessao.removeAttribute("colecaoContaHistoricoImovel"); // sessao.removeAttribute("colecaoDebitoACobrarImovel"); // sessao.removeAttribute("colecaoDebitoACobrarHistoricoImovel"); // sessao.removeAttribute("colecaoCreditoARealizarImovel"); // sessao.removeAttribute("colecaoCreditoARealizarHistoricoImovel"); // sessao.removeAttribute("colecaoGuiaPagamentoImovel"); // sessao.removeAttribute("colecaoGuiaPagamentoHistoricoImovel"); } httpServletRequest.setAttribute("colecaoContaImovel", colecaoContaImovel); httpServletRequest.setAttribute("colecaoContaHistoricoImovel", colecaoContaHistoricoImovel); httpServletRequest.setAttribute("colecaoDebitoACobrarImovel", colecaoDebitoACobrarImovel); httpServletRequest.setAttribute("colecaoDebitoACobrarHistoricoImovel", colecaoDebitoACobrarHistoricoImovel); httpServletRequest.setAttribute("colecaoCreditoARealizarImovel", colecaoCreditoARealizarImovel); httpServletRequest.setAttribute("colecaoCreditoARealizarHistoricoImovel", colecaoCreditoARealizarHistoricoImovel); httpServletRequest.setAttribute("colecaoGuiaPagamentoImovel", colecaoGuiaPagamentoImovel); httpServletRequest.setAttribute("colecaoGuiaPagamentoHistoricoImovel", colecaoGuiaPagamentoHistoricoImovel); setarTamanhoColacoesRequest(colecaoContaHistoricoImovel, colecaoContaImovel, colecaoDebitoACobrarHistoricoImovel, colecaoDebitoACobrarImovel, colecaoCreditoARealizarHistoricoImovel, colecaoCreditoARealizarImovel, colecaoGuiaPagamentoHistoricoImovel, colecaoGuiaPagamentoImovel, httpServletRequest); //retorna o mapeamento contido na vari�vel retorno return retorno; } private void setarTamanhoColacoesRequest( Collection colecaoContaHistoricoImovel, Collection colecaoContaImovel, Collection colecaoDebitoACobrarHistoricoImovel, Collection colecaoDebitoACobrarImovel, Collection colecaoCreditoARealizarHistoricoImovel, Collection colecaoCreditoARealizarImovel, Collection colecaoGuiaPagamentoHistoricoImovel, Collection colecaoGuiaPagamentoImovel, HttpServletRequest httpServletRequest) { Integer tamanhoColecaoContas = 0; Integer tamanhoColecaoDebitos = 0; Integer tamanhoColecaoCreditos = 0; Integer tamanhoColecaoGuias = 0; if(colecaoContaImovel != null){ tamanhoColecaoContas = colecaoContaImovel.size(); } if(colecaoContaHistoricoImovel != null){ tamanhoColecaoContas = tamanhoColecaoContas + colecaoContaHistoricoImovel.size(); } if(colecaoDebitoACobrarImovel != null){ tamanhoColecaoDebitos = colecaoDebitoACobrarImovel.size(); } if(colecaoDebitoACobrarHistoricoImovel != null){ tamanhoColecaoDebitos = tamanhoColecaoDebitos + colecaoDebitoACobrarHistoricoImovel.size(); } if(colecaoCreditoARealizarImovel != null){ tamanhoColecaoCreditos = colecaoCreditoARealizarImovel.size(); } if(colecaoCreditoARealizarHistoricoImovel != null){ tamanhoColecaoCreditos = tamanhoColecaoCreditos + colecaoCreditoARealizarHistoricoImovel.size(); } if(colecaoGuiaPagamentoImovel != null){ tamanhoColecaoGuias = colecaoGuiaPagamentoImovel.size(); } if(colecaoGuiaPagamentoHistoricoImovel != null){ tamanhoColecaoGuias = tamanhoColecaoGuias + colecaoGuiaPagamentoHistoricoImovel.size(); } httpServletRequest.setAttribute("tamanhoColecaoContas", tamanhoColecaoContas); httpServletRequest.setAttribute("tamanhoColecaoDebitos", tamanhoColecaoDebitos); httpServletRequest.setAttribute("tamanhoColecaoCreditos", tamanhoColecaoCreditos); httpServletRequest.setAttribute("tamanhoColecaoGuias", tamanhoColecaoGuias); } }