package gcom.gui.relatorio.cadastro.imovel; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.RelatorioVazioException; import gcom.relatorio.cadastro.imovel.FiltrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper; import gcom.relatorio.cadastro.imovel.RelatorioImoveisAlteracaoInscricaoViaBatch; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.SistemaException; 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; /** * [UC1121] Gerar Relat�rio de Im�veis com Altera��o de Inscri��o Via Batch * * @author Hugo Leonardo * * @date 19/01/2011 */ public class GerarRelatorioImoveisAlteracaoInscricaoViaBatchAction extends ExibidorProcessamentoTarefaRelatorio { private Collection colecaoPesquisa = null; private String localidadeID = null; private String setorComercialCD = null; private String setorComercialID = null; private String quadraNM = null; public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = null; httpServletRequest.setAttribute("telaSucessoRelatorio",true); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); // Form GerarRelatorioImoveisAlteracaoInscricaoViaBatchForm form = (GerarRelatorioImoveisAlteracaoInscricaoViaBatchForm) actionForm; FiltrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper helper = new FiltrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper(); String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); Fachada fachada = Fachada.getInstancia(); boolean peloMenosUmParametroInformado = false; // Escolha Relat�rio if ( form.getEscolhaRelatorio() != null && !form.getEscolhaRelatorio().equals("-1")) { helper.setEscolhaRelatorio(new Integer(form.getEscolhaRelatorio())); peloMenosUmParametroInformado = true; }else{ throw new ActionServletException( "atencao.tipo_relatorio_nao_informado"); } // Per�odo de Altera��o String periodo = ""; if (form.getDataInicio() != null && !form.getDataInicio().equals("")){ if (!Util.validarDiaMesAno(form.getDataInicio())) { periodo = form.getDataInicio() + " a "; helper.setDataInicio(Util.formatarDataInicial( Util.converteStringParaDate(form.getDataInicio()))); if (!Util.validarDiaMesAno(form.getDataFim())) { periodo += form.getDataFim(); helper.setDataFim(Util.formatarDataFinal( Util.converteStringParaDate(form.getDataFim()))); if(Util.compararData(helper.getDataInicio(), helper.getDataFim()) == 1){ throw new ActionServletException("atencao.periodo_alteracao_final_menor"); } peloMenosUmParametroInformado = true; }else{ throw new ActionServletException("atencao.periodo_alteracao_final_invalida"); } }else{ throw new ActionServletException("atencao.periodo_alteracao_inicial_invalida"); } } // Localidade String localidadeInicial = " -- "; if(form.getLocalidadeOrigemID() != null && !form.getLocalidadeOrigemID().equals("")){ localidadeInicial = form.getLocalidadeOrigemID(); helper.setLocalidadeInicial(new Integer(form.getLocalidadeOrigemID())); peloMenosUmParametroInformado = true; } String localidadeFinal = " -- "; if(form.getLocalidadeDestinoID() != null && !form.getLocalidadeDestinoID().equals("")){ localidadeFinal = form.getLocalidadeDestinoID(); helper.setLocalidadeFinal(new Integer(form.getLocalidadeDestinoID())); peloMenosUmParametroInformado = true; } // Setor Comercial String setorComercialInicial = " -- "; if((form.getSetorComercialOrigemID() != null && !form.getSetorComercialOrigemID().equals("")) || form.getSetorComercialOrigemCD() != null && !form.getSetorComercialOrigemCD().equals("")){ if(form.getSetorComercialOrigemID() != null && !form.getSetorComercialOrigemID().equals("")){ setorComercialInicial = form.getSetorComercialOrigemCD(); helper.setSetorComercialInicial(new Integer(form.getSetorComercialOrigemID())); peloMenosUmParametroInformado = true; }else{ localidadeID = (String) form.getLocalidadeOrigemID(); if(localidadeID == null || localidadeID.equals("")){ throw new ActionServletException("atencao.localidade_nao_informada"); } setorComercialCD = (String) form.getSetorComercialOrigemCD(); FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidadeID)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD)); // Retorna setorComercial colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { throw new ActionServletException("atencao.processo.setorComercialNaoCadastrada"); } SetorComercial objetoSetorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoPesquisa); setorComercialInicial = form.getSetorComercialOrigemCD(); helper.setSetorComercialInicial(objetoSetorComercial.getId()); peloMenosUmParametroInformado = true; } } String setorComercialFinal = " -- "; if((form.getSetorComercialDestinoID() != null && !form.getSetorComercialDestinoID().equals("")) || form.getSetorComercialDestinoCD() != null && !form.getSetorComercialDestinoCD().equals("")){ if(form.getSetorComercialDestinoID() != null && !form.getSetorComercialDestinoID().equals("")){ setorComercialFinal = form.getSetorComercialDestinoCD(); helper.setSetorComercialFinal(new Integer(form.getSetorComercialDestinoID())); peloMenosUmParametroInformado = true; }else{ localidadeID = (String) form.getLocalidadeDestinoID(); if(localidadeID == null || localidadeID.equals("")){ throw new ActionServletException("atencao.localidade_nao_informada"); } setorComercialCD = (String) form.getSetorComercialDestinoCD(); FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidadeID)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD)); // Retorna setorComercial colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { throw new ActionServletException("atencao.processo.setorComercialNaoCadastrada"); } SetorComercial objetoSetorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoPesquisa); setorComercialFinal = form.getSetorComercialDestinoCD(); helper.setSetorComercialFinal(objetoSetorComercial.getId()); peloMenosUmParametroInformado = true; } } // Quadra String quadraIncial = " -- "; if((form.getQuadraOrigemNM() != null && !form.getQuadraOrigemNM().equals("")) || form.getQuadraOrigemID() != null && !form.getQuadraOrigemID().equals("") ){ if(form.getQuadraOrigemID() != null && !form.getQuadraOrigemID().equals("")){ quadraIncial = form.getQuadraOrigemNM(); helper.setQuadraInicial(new Integer(form.getQuadraOrigemID())); peloMenosUmParametroInformado = true; }else{ localidadeID = (String) form.getLocalidadeOrigemID(); if(localidadeID == null || localidadeID.equals("")){ throw new ActionServletException("atencao.localidade_nao_informada"); } if(form.getSetorComercialOrigemID() != null && !form.getSetorComercialOrigemID().equals("")){ setorComercialID = (String) form.getSetorComercialOrigemID(); if(setorComercialID == null || setorComercialID.equals("")){ throw new ActionServletException("atencao.setor_comercial_nao_informado"); } }else{ setorComercialCD = (String) form.getSetorComercialOrigemCD(); if(setorComercialID == null || setorComercialID.equals("")){ throw new ActionServletException("atencao.setor_comercial_nao_informado"); } FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidadeID)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD)); // Retorna setorComercial colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); SetorComercial objetoSetorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoPesquisa); setorComercialID = objetoSetorComercial.getId().toString(); } quadraNM = (String) form.getQuadraOrigemNM(); FiltroQuadra filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_LOCALIDADE, new Integer( localidadeID))); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, setorComercialID)); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.NUMERO_QUADRA, quadraNM)); // Retorna quadra colecaoPesquisa = fachada.pesquisar(filtroQuadra, Quadra.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { throw new ActionServletException("atencao.quadra.inexistente"); } Quadra objetoQuadra = (Quadra) Util.retonarObjetoDeColecao(colecaoPesquisa); quadraIncial = form.getQuadraOrigemNM(); helper.setQuadraInicial(objetoQuadra.getId()); peloMenosUmParametroInformado = true; } } String quadraFinal = " -- "; if((form.getQuadraDestinoNM() != null && !form.getQuadraDestinoNM().equals("")) || form.getQuadraDestinoID() != null && !form.getQuadraDestinoID().equals("") && form.getLocalidadeDestinoID() != null && !form.getLocalidadeDestinoID().equals("") && (form.getSetorComercialDestinoCD() != null && !form.getSetorComercialDestinoCD().equals("") || form.getSetorComercialDestinoID() != null && !form.getSetorComercialDestinoID().equals("") )){ if(form.getQuadraDestinoID() != null && !form.getQuadraDestinoID().equals("")){ quadraFinal = form.getQuadraDestinoNM(); helper.setQuadraFinal(new Integer(form.getQuadraDestinoID())); peloMenosUmParametroInformado = true; }else{ localidadeID = (String) form.getLocalidadeDestinoID(); if(localidadeID == null || localidadeID.equals("")){ throw new ActionServletException("atencao.localidade_nao_informada"); } if(form.getSetorComercialDestinoID() != null && !form.getSetorComercialDestinoID().equals("")){ setorComercialID = (String) form.getSetorComercialDestinoID(); if(setorComercialID == null || setorComercialID.equals("")){ throw new ActionServletException("atencao.setor_comercial_nao_informado"); } }else{ setorComercialCD = (String) form.getSetorComercialDestinoCD(); if(setorComercialID == null || setorComercialID.equals("")){ throw new ActionServletException("atencao.setor_comercial_nao_informado"); } FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidadeID)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD)); // Retorna setorComercial colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); SetorComercial objetoSetorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoPesquisa); setorComercialID = objetoSetorComercial.getId().toString(); } quadraNM = (String) form.getQuadraDestinoNM(); FiltroQuadra filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_LOCALIDADE, new Integer( localidadeID))); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, setorComercialID)); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.NUMERO_QUADRA, quadraNM)); // Retorna quadra colecaoPesquisa = fachada.pesquisar(filtroQuadra, Quadra.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { throw new ActionServletException("atencao.quadra.inexistente"); } Quadra objetoQuadra = (Quadra) Util.retonarObjetoDeColecao(colecaoPesquisa); quadraFinal = form.getQuadraDestinoNM(); helper.setQuadraFinal(objetoQuadra.getId()); peloMenosUmParametroInformado = true; } } // Lote String loteInicial = " -- "; if(form.getLoteOrigem() != null && !form.getLoteOrigem().equals("")){ loteInicial = form.getLoteOrigem(); helper.setLoteInicial(new Integer(form.getLoteOrigem())); peloMenosUmParametroInformado = true; } String loteFinal = " -- "; if(form.getLoteDestino() != null && !form.getLoteDestino().equals("")){ loteFinal = form.getLoteDestino(); helper.setLoteFinal(new Integer(form.getLoteDestino())); peloMenosUmParametroInformado = true; } // Sub-Lote String subLoteInicial = " -- "; if(form.getSubLoteOrigem() != null && !form.getSubLoteOrigem().equals("")){ subLoteInicial = form.getSubLoteOrigem(); helper.setSubLoteInicial(new Integer(form.getSubLoteOrigem())); peloMenosUmParametroInformado = true; } String subLoteFinal = " -- "; if(form.getSubLoteDestino() != null && !form.getSubLoteDestino().equals("")){ subLoteFinal = form.getSubLoteDestino(); helper.setSubLoteFinal(new Integer(form.getSubLoteDestino())); peloMenosUmParametroInformado = true; } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } TarefaRelatorio relatorio = new RelatorioImoveisAlteracaoInscricaoViaBatch((Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado")); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoFormatoRelatorio",Integer.parseInt(tipoRelatorio)); relatorio.addParametro("filtrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper", helper); relatorio.addParametro("usuario", usuario); relatorio.addParametro("periodo", periodo); relatorio.addParametro("localidadeInicial", localidadeInicial); relatorio.addParametro("localidadeFinal", localidadeFinal); relatorio.addParametro("setorComercialInicial", setorComercialInicial); relatorio.addParametro("setorComercialFinal", setorComercialFinal); relatorio.addParametro("quadraIncial", quadraIncial); relatorio.addParametro("quadraFinal", quadraFinal); relatorio.addParametro("loteInicial", loteInicial); relatorio.addParametro("loteFinal", loteFinal); relatorio.addParametro("subLoteInicial", subLoteInicial); relatorio.addParametro("subLoteFinal", subLoteFinal); try { retorno = processarExibicaoRelatorio(relatorio, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); } catch (SistemaException ex) { // manda o erro para a p�gina no request atual reportarErros(httpServletRequest, "erro.sistema"); // seta o mapeamento de retorno para a tela de erro de popup retorno = actionMapping.findForward("telaErroPopup"); } catch (RelatorioVazioException ex1) { throw new ActionServletException("atencao.pesquisa.nenhumresultado", null, ""); } return retorno; } }