package gcom.gui.relatorio.faturamento; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.faturamento.RelatorioContasEmRevisao; import gcom.relatorio.faturamento.RelatorioContasEmRevisaoResumido; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * action respons�vel pela exibi��o do relat�rio de contas em revis�o * * @author Rafael Corr�a * @created 20/09/2007 */ public class GerarRelatorioContasEmRevisaoAction extends ExibidorProcessamentoTarefaRelatorio { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // cria a vari�vel de retorno ActionForward retorno = null; GerarRelatorioContasEmRevisaoActionForm gerarRelatorioContasEmRevisaoActionForm = (GerarRelatorioContasEmRevisaoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Valida os par�metro passados como consulta boolean peloMenosUmParametroInformado = false; // Ger�ncia Regional Integer idGerenciaRegional = null; if (gerarRelatorioContasEmRevisaoActionForm.getIdGerenciaRegional() != null && !gerarRelatorioContasEmRevisaoActionForm .getIdGerenciaRegional().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; idGerenciaRegional = new Integer( gerarRelatorioContasEmRevisaoActionForm .getIdGerenciaRegional()); } // Unidade Negocio Integer idUnidadeNegocio = null; if (gerarRelatorioContasEmRevisaoActionForm.getIdUnidadeNegocio() != null && !gerarRelatorioContasEmRevisaoActionForm .getIdUnidadeNegocio().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; idUnidadeNegocio = new Integer( gerarRelatorioContasEmRevisaoActionForm .getIdUnidadeNegocio()); } // Elo // Localidade elo = null; // // String idElo = gerarRelatorioContasEmRevisaoActionForm.getIdElo(); // // if (idElo != null && !idElo.equals("")) { // peloMenosUmParametroInformado = true; // // FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); // // filtroLocalidade.adicionarParametro(new ParametroSimples( // FiltroLocalidade.ID, idElo)); // filtroLocalidade.adicionarParametro(new ParametroSimples( // FiltroLocalidade.ID_ELO, idElo)); // // Collection colecaoLocalidades = fachada.pesquisar(filtroLocalidade, // Localidade.class.getName()); // // if (colecaoLocalidades != null && !colecaoLocalidades.isEmpty()) { // elo = (Localidade) Util // .retonarObjetoDeColecao(colecaoLocalidades); // } else { // throw new ActionServletException( // "atencao.pesquisa_inexistente", null, "Elo"); // } // } // Localidade Inicial Localidade localidadeInicial = null; SetorComercial setorComercialInicial = null; String idLocalidadeInicial = gerarRelatorioContasEmRevisaoActionForm .getIdLocalidadeInicial(); String codigoSetorComercialInicial = gerarRelatorioContasEmRevisaoActionForm .getCodigoSetorComercialInicial(); if (idLocalidadeInicial != null && !idLocalidadeInicial.equals("")) { peloMenosUmParametroInformado = true; FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, idLocalidadeInicial)); Collection colecaoLocalidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoLocalidades != null && !colecaoLocalidades.isEmpty()) { localidadeInicial = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidades); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Localidade Inicial"); } // Setor Comercial Inicial if (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.trim().equals("")) { FiltroSetorComercial filtro = new FiltroSetorComercial(); filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercialInicial)); filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, localidadeInicial.getId())); Collection pesquisa = (Collection) fachada.pesquisar(filtro, SetorComercial.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { setorComercialInicial = (SetorComercial) Util.retonarObjetoDeColecao(pesquisa); } else { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Setor Comercial"); } } } // Localidade Final Localidade localidadeFinal = null; SetorComercial setorComercialFinal = null; String idLocalidadeFinal = gerarRelatorioContasEmRevisaoActionForm .getIdLocalidadeFinal(); String codigoSetorComercialFinal = gerarRelatorioContasEmRevisaoActionForm .getCodigoSetorComercialFinal(); if (idLocalidadeFinal != null && !idLocalidadeFinal.equals("")) { peloMenosUmParametroInformado = true; FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, idLocalidadeFinal)); Collection colecaoLocalidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoLocalidades != null && !colecaoLocalidades.isEmpty()) { localidadeFinal = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidades); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Localidade Final"); } // Setor Comercial Final if (codigoSetorComercialFinal != null && !codigoSetorComercialFinal.trim().equals("")) { FiltroSetorComercial filtro = new FiltroSetorComercial(); filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercialFinal)); filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, localidadeFinal.getId())); Collection pesquisa = (Collection) fachada.pesquisar(filtro, SetorComercial.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { setorComercialFinal = (SetorComercial) Util.retonarObjetoDeColecao(pesquisa); } else { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Setor Comercial"); } } } // Motivo de Revis�o // Anormalidade de Consumo Collection<Integer> colecaoIdsMotivoRevisao = null; if (gerarRelatorioContasEmRevisaoActionForm.getColecaoIdsContaMotivoRevisao() != null) { colecaoIdsMotivoRevisao = new ArrayList<Integer>(); for (String id : gerarRelatorioContasEmRevisaoActionForm.getColecaoIdsContaMotivoRevisao()) { if (!id.equals("-1")) { colecaoIdsMotivoRevisao.add(new Integer(id)); } } if (colecaoIdsMotivoRevisao.size() > 0) { peloMenosUmParametroInformado = true; } } /* Integer idMotivoRevisao = null; if (gerarRelatorioContasEmRevisaoActionForm.getIdMotivoRevisao() != null && !gerarRelatorioContasEmRevisaoActionForm .getIdMotivoRevisao().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; idMotivoRevisao = new Integer( gerarRelatorioContasEmRevisaoActionForm .getIdMotivoRevisao()); }*/ // Perfil do Im�vel Integer idImovelPerfil = null; if (gerarRelatorioContasEmRevisaoActionForm.getIdImovelPerfil() != null && !gerarRelatorioContasEmRevisaoActionForm.getIdImovelPerfil() .equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; idImovelPerfil = new Integer( gerarRelatorioContasEmRevisaoActionForm.getIdImovelPerfil()); } // Refer�ncia Inicial Integer referenciaInicial = null; if (gerarRelatorioContasEmRevisaoActionForm.getReferenciaInicial() != null && !gerarRelatorioContasEmRevisaoActionForm .getReferenciaInicial().equals("")) { peloMenosUmParametroInformado = true; referenciaInicial = Util .formatarMesAnoComBarraParaAnoMes(gerarRelatorioContasEmRevisaoActionForm .getReferenciaInicial()); } // Refer�ncia Final Integer referenciaFinal = null; if (gerarRelatorioContasEmRevisaoActionForm.getReferenciaFinal() != null && !gerarRelatorioContasEmRevisaoActionForm .getReferenciaFinal().equals("")) { peloMenosUmParametroInformado = true; referenciaFinal = Util .formatarMesAnoComBarraParaAnoMes(gerarRelatorioContasEmRevisaoActionForm .getReferenciaFinal()); } // Categoria Integer idCategoria = null; if (gerarRelatorioContasEmRevisaoActionForm.getIdCategoria() != null && !gerarRelatorioContasEmRevisaoActionForm.getIdCategoria() .equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; idCategoria = new Integer( gerarRelatorioContasEmRevisaoActionForm.getIdCategoria()); } // Esfera Poder Integer idEsferaPoder = null; if (gerarRelatorioContasEmRevisaoActionForm.getIdEsferaPoder() != null && !gerarRelatorioContasEmRevisaoActionForm.getIdEsferaPoder() .equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; idEsferaPoder = new Integer( gerarRelatorioContasEmRevisaoActionForm.getIdEsferaPoder()); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // seta os parametros que ser�o mostrados no relat�rio // Fim da parte que vai mandar os parametros para o relat�rio String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } // Relat�rio Anal�tico RelatorioContasEmRevisao relatorioContasEmRevisao = new RelatorioContasEmRevisao( (Usuario) (httpServletRequest.getSession(false)) .getAttribute("usuarioLogado")); relatorioContasEmRevisao.addParametro("idGerenciaRegional", idGerenciaRegional); relatorioContasEmRevisao.addParametro("idUnidadeNegocio", idUnidadeNegocio); if (localidadeInicial != null) { relatorioContasEmRevisao.addParametro("idLocalidadeInicial", localidadeInicial.getId()); } if (localidadeFinal != null) { relatorioContasEmRevisao.addParametro("idLocalidadeFinal", localidadeFinal.getId()); } if (setorComercialInicial != null) { relatorioContasEmRevisao.addParametro("codigoSetorComercialInicial", setorComercialInicial.getCodigo()); } if (setorComercialFinal != null) { relatorioContasEmRevisao.addParametro("codigoSetorComercialFinal", setorComercialFinal.getCodigo()); } relatorioContasEmRevisao.addParametro("colecaoIdsMotivoRevisao", colecaoIdsMotivoRevisao); relatorioContasEmRevisao.addParametro("idImovelPerfil", idImovelPerfil); relatorioContasEmRevisao.addParametro("referenciaInicial", referenciaInicial); relatorioContasEmRevisao.addParametro("referenciaFinal", referenciaFinal); relatorioContasEmRevisao.addParametro("idCategoria", idCategoria); relatorioContasEmRevisao.addParametro("idEsferaPoder", idEsferaPoder); relatorioContasEmRevisao.addParametro("tipoFormatoRelatorio", Integer .parseInt(tipoRelatorio)); // Relat�rio Resumido RelatorioContasEmRevisaoResumido relatorioContasEmRevisaoResumido = new RelatorioContasEmRevisaoResumido( (Usuario) (httpServletRequest.getSession(false)) .getAttribute("usuarioLogado")); relatorioContasEmRevisaoResumido.addParametro("idGerenciaRegional", idGerenciaRegional); relatorioContasEmRevisaoResumido.addParametro("idUnidadeNegocio", idUnidadeNegocio); if (localidadeInicial != null) { relatorioContasEmRevisaoResumido.addParametro("idLocalidadeInicial", localidadeInicial.getId()); } if (localidadeFinal != null) { relatorioContasEmRevisaoResumido.addParametro("idLocalidadeFinal", localidadeFinal.getId()); } if (setorComercialInicial != null) { relatorioContasEmRevisaoResumido.addParametro("codigoSetorComercialInicial", setorComercialInicial.getCodigo()); } if (setorComercialFinal != null) { relatorioContasEmRevisaoResumido.addParametro("codigoSetorComercialFinal", setorComercialFinal.getCodigo()); } relatorioContasEmRevisaoResumido.addParametro("colecaoIdsMotivoRevisao", colecaoIdsMotivoRevisao); relatorioContasEmRevisaoResumido.addParametro("idImovelPerfil", idImovelPerfil); relatorioContasEmRevisaoResumido.addParametro("referenciaInicial", referenciaInicial); relatorioContasEmRevisaoResumido.addParametro("referenciaFinal", referenciaFinal); relatorioContasEmRevisaoResumido.addParametro("tipoFormatoRelatorio", Integer .parseInt(tipoRelatorio)); retorno = processarExibicaoRelatorio(relatorioContasEmRevisao, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); processarExibicaoRelatorio(relatorioContasEmRevisaoResumido, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); // devolve o mapeamento contido na vari�vel retorno return retorno; } }