package gcom.gui.faturamento.conta; import gcom.arrecadacao.ContratoDemanda; import gcom.arrecadacao.debitoautomatico.DebitoAutomaticoMovimento; import gcom.arrecadacao.debitoautomatico.FiltroDebitoAutomaticoMovimento; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.FiltroContratoDemanda; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaCategoria; import gcom.faturamento.conta.ContaCategoriaHistorico; import gcom.faturamento.conta.ContaHistorico; import gcom.faturamento.conta.ContaImpostosDeduzidos; import gcom.faturamento.conta.ContaMotivoRevisao; import gcom.faturamento.conta.FiltroContaCategoria; import gcom.faturamento.conta.FiltroContaCategoriaHistorico; import gcom.faturamento.conta.FiltroContaHistorico; import gcom.faturamento.conta.FiltroContaImpostosDeduzidos; import gcom.faturamento.debito.DebitoCreditoSituacao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.Operacao; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; 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 tela de consultar conta * * @author pedro alexandre * @created 04 de Janeiro de 2006 */ public class ExibirConsultarContaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirConsultarConta"); HttpSession sessao = this.getSessao(httpServletRequest); Fachada fachada = Fachada.getInstancia(); String limparForm = httpServletRequest.getParameter("limparForm"); // Removendo cole��es da sess�o if (limparForm != null && !limparForm.equalsIgnoreCase("")) { sessao.removeAttribute("colecaoContaImovel"); } String tipoConsulta = httpServletRequest.getParameter("tipoConsulta"); sessao.removeAttribute("idContaHistorico"); sessao.removeAttribute("idConta"); Integer idImovel = null; String referenciaConta = null; Integer situacaoAtualConta = null; if (tipoConsulta.equalsIgnoreCase("conta")) { String idConta = httpServletRequest.getParameter("contaID"); // vai ser recuperado na gera��o do relat�rio 2� Via da Conta sessao.setAttribute("idConta", idConta); Conta conta = null; if (idConta != null && !idConta.equalsIgnoreCase("")) { // faz a consulta da conta por hql. Fernanda Paiva Collection colecaoConta = this.getFachada().consultarConta(new Integer(idConta)); if (colecaoConta == null || colecaoConta.isEmpty()) { throw new ActionServletException("atencao.pesquisa.conta.inexistente"); } conta = (Conta) Util.retonarObjetoDeColecao(colecaoConta); idImovel = conta.getImovel().getId(); referenciaConta = conta.getReferenciaFormatada(); situacaoAtualConta = conta.getDebitoCreditoSituacaoAtual().getId(); // Colocando o objeto conta selecionado na sess�o sessao.setAttribute("conta", conta); sessao.removeAttribute("contaHistorico"); sessao.removeAttribute("colecaoContaCategoriaHistorico"); verificarEmissao2Via(conta.getDebitoCreditoSituacaoAtual().getId(), conta.getDataRevisao(), conta.getContaMotivoRevisao(), conta.getImovel().getId(), httpServletRequest); } else if (sessao.getAttribute("conta") != null) { conta = (Conta) sessao.getAttribute("conta"); } else { throw new ActionServletException("atencao.pesquisa.conta.inexistente"); } Collection colecaoContaCategoria, colecaoContaImpostosDeduzidos; // Removendo cole��es da sess�o if (idConta != null && !idConta.equalsIgnoreCase("")) { sessao.removeAttribute("colecaoContaCategoria"); sessao.removeAttribute("colecaoContaCategoriaHistorico"); sessao.removeAttribute("colecaoContaImpostosDeduzidos"); sessao.removeAttribute("contaImpostosDeduzidos"); } /* * Categorias (Carregar cole��o) */ if (sessao.getAttribute("colecaoContaCategoria") == null) { FiltroContaCategoria filtroContaCategoria = new FiltroContaCategoria(); filtroContaCategoria.adicionarCaminhoParaCarregamentoEntidade("comp_id.conta"); filtroContaCategoria.adicionarCaminhoParaCarregamentoEntidade("comp_id.categoria"); filtroContaCategoria.adicionarParametro( new ParametroSimples(FiltroContaCategoria.CONTA_ID, conta.getId())); colecaoContaCategoria = this.getFachada().pesquisar(filtroContaCategoria, ContaCategoria.class.getName()); sessao.setAttribute("colecaoContaCategoria",colecaoContaCategoria); } /* * Impostos Deduzidos (Pesquisar o registrode impostos deduzidos) */ if (sessao.getAttribute("contaImpostosDeduzidos") == null) { FiltroContaImpostosDeduzidos filtroContaImpostosDeduzidos = new FiltroContaImpostosDeduzidos(); filtroContaImpostosDeduzidos.adicionarCaminhoParaCarregamentoEntidade("conta"); filtroContaImpostosDeduzidos.adicionarCaminhoParaCarregamentoEntidade("impostoTipo"); filtroContaImpostosDeduzidos.adicionarParametro(new ParametroSimples(FiltroContaImpostosDeduzidos.CONTA_ID, conta.getId())); colecaoContaImpostosDeduzidos = this.getFachada().pesquisar(filtroContaImpostosDeduzidos, ContaImpostosDeduzidos.class.getName()); ContaImpostosDeduzidos contaImpostosDeduzidos = (ContaImpostosDeduzidos) Util.retonarObjetoDeColecao(colecaoContaImpostosDeduzidos); sessao.setAttribute("contaImpostosDeduzidos",contaImpostosDeduzidos); sessao.setAttribute("colecaoContaImpostosDeduzidos",colecaoContaImpostosDeduzidos); } //Pesquisa O Debito Automatico Movimento if(conta != null && conta.getIndicadorDebitoConta() != null && conta.getIndicadorDebitoConta().equals(ConstantesSistema.SIM)){ this.pesquisarDebitoAutomaticoMovimento(conta.getId(),httpServletRequest); } } else if (tipoConsulta.equalsIgnoreCase("contaHistorico")) { String idContaHistorico = httpServletRequest.getParameter("contaID"); //vai ser recuperado na gera��o do relat�rio 2� Via da Conta sessao.setAttribute("idContaHistorico",idContaHistorico); /* * Pesquisando a conta a partir do id recebido */ ContaHistorico contaHistorico = null; if (idContaHistorico != null && !idContaHistorico.equalsIgnoreCase("")) { // faz a consulta da conta por hql. Collection colecaoContaHistorico = this.getFachada().consultarContaHistorico(new Integer(idContaHistorico)); if (colecaoContaHistorico == null || colecaoContaHistorico.isEmpty()) { throw new ActionServletException("atencao.pesquisa.conta.inexistente"); } contaHistorico = (ContaHistorico) Util .retonarObjetoDeColecao(colecaoContaHistorico); idImovel = contaHistorico.getImovel().getId(); referenciaConta = contaHistorico.getFormatarAnoMesParaMesAno(); situacaoAtualConta = contaHistorico.getDebitoCreditoSituacaoAtual().getId(); // Colocando o objeto conta selecionado na sess�o sessao.setAttribute("contaHistorico", contaHistorico); sessao.removeAttribute("conta"); sessao.removeAttribute("colecaoContaCategoria"); sessao.removeAttribute("colecaoContaImpostosDeduzidos"); sessao.removeAttribute("contaImpostosDeduzidos"); sessao.removeAttribute("colecaoContaCategoriaHistorico"); verificarEmissao2Via(contaHistorico.getDebitoCreditoSituacaoAtual().getId(), contaHistorico.getDataRevisao(), contaHistorico.getContaMotivoRevisao(), contaHistorico.getImovel().getId(), httpServletRequest); } else if (sessao.getAttribute("contaHistorico") != null) { contaHistorico = (ContaHistorico) sessao .getAttribute("contaHistorico"); } else { throw new ActionServletException( "atencao.pesquisa.conta.inexistente"); } /* * Categorias (Carregar cole��o) */ if (sessao.getAttribute("colecaoContaCategoriaHistorico") == null) { FiltroContaCategoriaHistorico filtroContaHistoricoCategoria = new FiltroContaCategoriaHistorico(); filtroContaHistoricoCategoria.adicionarCaminhoParaCarregamentoEntidade("comp_id.contaHistorico"); filtroContaHistoricoCategoria.adicionarCaminhoParaCarregamentoEntidade("comp_id.categoria"); filtroContaHistoricoCategoria.adicionarParametro(new ParametroSimples(FiltroContaCategoriaHistorico.CONTA_ID, contaHistorico.getId())); Collection colecaoContaCategoriaHistorico = this.getFachada().pesquisar(filtroContaHistoricoCategoria, ContaCategoriaHistorico.class.getName()); sessao.setAttribute("colecaoContaCategoriaHistorico",colecaoContaCategoriaHistorico); } //Pesquisa O Debito Automatico Movimento if(contaHistorico != null && contaHistorico.getIndicadorDebitoConta() != null && contaHistorico.getIndicadorDebitoConta().equals(ConstantesSistema.SIM)){ this.pesquisarDebitoAutomaticoMovimento(contaHistorico.getId(),httpServletRequest); } } // utilizado para saber se no emitir 2 via de conta, mostrar� o c�digo // de barras ou naum if (httpServletRequest.getParameter("contaSemCodigoBarras") != null) { httpServletRequest.setAttribute("contaSemCodigoBarras", 1); } sessao.removeAttribute("contaSemCodigoBarras"); // Verifica se deve ser cobrada taxa por emiss�o de 2 via SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); if (sistemaParametro.getValorSegundaVia().equals(new BigDecimal("0.00"))) { httpServletRequest.setAttribute("naoCobrarTaxa", true); } // 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("caminhoRetornoTelaConsulta") != null) { sessao.setAttribute("caminhoRetornoTelaConsultaConta", httpServletRequest.getParameter("caminhoRetornoTelaConsulta")); } sessao.removeAttribute("colecaoUsuariosContaRetificada"); sessao.removeAttribute("colecaoUsuariosContaEmRevisao"); sessao.removeAttribute("colecaoUsuariosContaCancelada"); //adicionado por Vivianne Sousa 18/11/2010 - analista:Adriana Ribeiro if(!situacaoAtualConta.equals(DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)){ //pesquisar usu�rios que retificaram a conta Collection colecaoUsuariosContaRetificada = fachada.pesquisarUsuario( Operacao.OPERACAO_CONTA_RETIFICAR,idImovel,referenciaConta); if(colecaoUsuariosContaRetificada != null && !colecaoUsuariosContaRetificada.isEmpty()){ sessao.setAttribute("colecaoUsuariosContaRetificada",colecaoUsuariosContaRetificada); } //pesquisar usu�rios que colocaram a conta em revis�o Collection colecaoUsuariosContaEmRevisao = fachada.pesquisarUsuario( Operacao.OPERACAO_COLOCAR_CONTA_REVISAO,idImovel,referenciaConta); if(colecaoUsuariosContaEmRevisao != null && !colecaoUsuariosContaEmRevisao.isEmpty()){ sessao.setAttribute("colecaoUsuariosContaEmRevisao",colecaoUsuariosContaEmRevisao); } //pesquisar usu�rios que cancelaram a conta Collection colecaoUsuariosContaCancelada = fachada.pesquisarUsuario( Operacao.OPERACAO_CANCELAR_CONTA,idImovel,referenciaConta); if(colecaoUsuariosContaCancelada != null && !colecaoUsuariosContaCancelada.isEmpty()){ sessao.setAttribute("colecaoUsuariosContaCancelada",colecaoUsuariosContaCancelada); } } // Adicionado por Mariana Victor 06/01/2011 FiltroContratoDemanda filtroContratoDemanda = new FiltroContratoDemanda(); filtroContratoDemanda.adicionarParametro( new ParametroSimples(FiltroContratoDemanda.IMOVEL, idImovel)); filtroContratoDemanda.adicionarParametro( new ParametroNulo(FiltroContratoDemanda.DATACONTRATOENCERRAMENTO)); Collection colecaoContratoDemanda = fachada.pesquisar( filtroContratoDemanda, ContratoDemanda.class.getName()); if (colecaoContratoDemanda != null && !colecaoContratoDemanda.isEmpty()) { Object[] consumoContratado = fachada.consultarConsumoCadastrado(idImovel); if (consumoContratado != null) { sessao.setAttribute("consumoContratado", consumoContratado[0]); } else { sessao.removeAttribute("consumoContratado"); } } return retorno; } /** * Verifica se emite 2� via * * @author Vivianne Sousa * @date 06/07/2007 * * @param situacaoAtualConta * @param dtRevisaoConta */ private void verificarEmissao2Via(Integer situacaoAtualConta, Date dtRevisaoConta, ContaMotivoRevisao contaMotivoRevisao, Integer idImovel, HttpServletRequest httpServletRequest) { // Caso o im�vel n�o tenha sido exclu�do o usuario tem a op��o de emitir a 2 via String inscricao = Fachada.getInstancia().pesquisarInscricaoImovel(idImovel); if (inscricao != null) { //Caso a situa��o atual da conta corresponda a normal, incluirda ou retificada // e a data de revisao esteja nula // o usu�rio tem a op��o de emitir a 2 via if (situacaoAtualConta.equals(DebitoCreditoSituacao.NORMAL) || situacaoAtualConta.equals(DebitoCreditoSituacao.RETIFICADA) || situacaoAtualConta.equals(DebitoCreditoSituacao.INCLUIDA)){ if(dtRevisaoConta == null || (contaMotivoRevisao != null && contaMotivoRevisao.getId().equals(ContaMotivoRevisao.REVISAO_ENTRADA_DE_PARCELAMENTO))){ httpServletRequest.setAttribute("emitirSegundaVia", 2); } } } } /** * Pesquisa O Debito Automatico Movimento * * @author Rafael Pinto * @date 09/07/2008 * * @param idConta * @param httpServletRequest */ private void pesquisarDebitoAutomaticoMovimento(Integer idConta,HttpServletRequest httpServletRequest){ FiltroDebitoAutomaticoMovimento filtroDebitoAutomaticoMovimento = new FiltroDebitoAutomaticoMovimento(); filtroDebitoAutomaticoMovimento.adicionarCaminhoParaCarregamentoEntidade("debitoAutomaticoRetornoCodigo"); filtroDebitoAutomaticoMovimento.adicionarParametro( new ParametroSimples(FiltroDebitoAutomaticoMovimento.CONTA_GERAL_ID, idConta)); Collection colecaoDebitoAutomaticoMovimento = this.getFachada().pesquisar(filtroDebitoAutomaticoMovimento, DebitoAutomaticoMovimento.class.getName()); DebitoAutomaticoMovimento debitoAutomaticoMovimento = (DebitoAutomaticoMovimento) Util.retonarObjetoDeColecao(colecaoDebitoAutomaticoMovimento); httpServletRequest.setAttribute("debitoAutomaticoMovimento",debitoAutomaticoMovimento); } }