package gcom.gui.relatorio.micromedicao; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.SetorComercial; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.micromedicao.RegistrarLeiturasAnormalidadesRelatorioActionForm; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.micromedicao.RelatorioComparativoLeiturasEAnormalidades; 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 bairro manter * * @author S�vio Luiz * @created 11 de Julho de 2005 */ public class GerarRelatorioRegistrarLeiturasAnormalidadesAction extends ExibidorProcessamentoTarefaRelatorio { private Collection colecaoPesquisa = null; private String setorComercialCD = null; /** * < <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; // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); RegistrarLeiturasAnormalidadesRelatorioActionForm registrarLeiturasAnormalidadesRelatorioActionForm = (RegistrarLeiturasAnormalidadesRelatorioActionForm) actionForm; Integer idFaturamentoGrupo = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getIdFaturamentoGrupo() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getIdFaturamentoGrupo().equals("-1")){ idFaturamentoGrupo = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getIdFaturamentoGrupo()); } String anoMesReferenciaString = registrarLeiturasAnormalidadesRelatorioActionForm.getMesAno(); Integer idEmpresa = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getIdFirma()!= null && !registrarLeiturasAnormalidadesRelatorioActionForm.getIdFirma().equals("-1")){ idEmpresa = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getIdFirma()); } Integer idLocalidadeInicial = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getLocalidadeOrigemID() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getLocalidadeOrigemID().equals("")){ idLocalidadeInicial = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getLocalidadeOrigemID()); } Integer idLocalidadeFinal = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getLocalidadeDestinoID() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getLocalidadeDestinoID().equals("")){ idLocalidadeFinal = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getLocalidadeDestinoID()); } // Rota Inicial Integer idRotaInicial = null; if (registrarLeiturasAnormalidadesRelatorioActionForm.getRotaInicial() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getRotaInicial().equals("") ) { idRotaInicial = new Integer( registrarLeiturasAnormalidadesRelatorioActionForm.getRotaInicial()); } // Rota Final Integer idRotaFinal = null; if (registrarLeiturasAnormalidadesRelatorioActionForm.getRotaFinal() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getRotaFinal().equals("") ) { idRotaFinal = new Integer (registrarLeiturasAnormalidadesRelatorioActionForm.getRotaFinal()); } Integer idSetorInicial = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialOrigemCD() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialOrigemCD().equals("")){ if(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialOrigemID() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialOrigemID().equals("")){ idSetorInicial = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialOrigemID()); }else{ pesquisarSetorComercial("origem", registrarLeiturasAnormalidadesRelatorioActionForm, fachada, httpServletRequest); idSetorInicial = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialOrigemID()); } } Integer idSetorFinal = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialDestinoCD() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialDestinoCD().equals("")){ if(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialDestinoID() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialDestinoID().equals("")){ idSetorFinal = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialDestinoID()); }else{ pesquisarSetorComercial("destino", registrarLeiturasAnormalidadesRelatorioActionForm, fachada, httpServletRequest); idSetorFinal = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getSetorComercialDestinoID()); } } Integer idGerencia = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getGerenciaRegional() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getGerenciaRegional().equals("-1")){ idGerencia = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getGerenciaRegional()); } Integer idUnidadeNegocio = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getUnidadeNegocio() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getUnidadeNegocio().equals("-1")){ idUnidadeNegocio = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getUnidadeNegocio()); } Integer idLeiturista = null; if(registrarLeiturasAnormalidadesRelatorioActionForm.getIdLeiturista() != null && !registrarLeiturasAnormalidadesRelatorioActionForm.getIdLeiturista().equals("") ){ idLeiturista = new Integer(registrarLeiturasAnormalidadesRelatorioActionForm.getIdLeiturista()); } Integer anoMes = Util.formatarMesAnoComBarraParaAnoMes(anoMesReferenciaString); Integer idPerfilImovel = null; if(Util.verificarIdNaoVazio(registrarLeiturasAnormalidadesRelatorioActionForm.getPerfilImovel())){ idPerfilImovel = Integer.parseInt(registrarLeiturasAnormalidadesRelatorioActionForm.getPerfilImovel()); } Collection<String> colecaoAnormalidadesLeituras = new ArrayList<String>(); if(registrarLeiturasAnormalidadesRelatorioActionForm.getAnormalidadesLeituras() != null && registrarLeiturasAnormalidadesRelatorioActionForm.getAnormalidadesLeituras().length > 0){ for (String anormalidade : registrarLeiturasAnormalidadesRelatorioActionForm.getAnormalidadesLeituras()) { if(anormalidade != null && !anormalidade.equals("-1")){ colecaoAnormalidadesLeituras.add(anormalidade); } } } Integer numOcorrenciasConsecutivas = null; if(Util.verificarNaoVazio(registrarLeiturasAnormalidadesRelatorioActionForm.getNumOcorrenciasConsecutivas())){ numOcorrenciasConsecutivas = Integer.parseInt(registrarLeiturasAnormalidadesRelatorioActionForm.getNumOcorrenciasConsecutivas()); } // Fim da parte que vai mandar os parametros para o relat�rio String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); RelatorioComparativoLeiturasEAnormalidades relatorioComparativoLeiturasEAnormalidades = new RelatorioComparativoLeiturasEAnormalidades((Usuario)(httpServletRequest.getSession(false)).getAttribute("usuarioLogado")); relatorioComparativoLeiturasEAnormalidades.addParametro( "idGrupoFaturamento", idFaturamentoGrupo); relatorioComparativoLeiturasEAnormalidades.addParametro( "anoMes", anoMes); relatorioComparativoLeiturasEAnormalidades.addParametro( "idEmpresa", idEmpresa); relatorioComparativoLeiturasEAnormalidades.addParametro( "idLocalidadeInicial", idLocalidadeInicial); relatorioComparativoLeiturasEAnormalidades.addParametro( "idLocalidadeFinal", idLocalidadeFinal); relatorioComparativoLeiturasEAnormalidades.addParametro( "idRotaInicial", idRotaInicial); relatorioComparativoLeiturasEAnormalidades.addParametro( "idRotaFinal", idRotaFinal); relatorioComparativoLeiturasEAnormalidades.addParametro( "idSetorInicial", idSetorInicial); relatorioComparativoLeiturasEAnormalidades.addParametro( "idSetorFinal", idSetorFinal); relatorioComparativoLeiturasEAnormalidades.addParametro( "idGerencia", idGerencia); relatorioComparativoLeiturasEAnormalidades.addParametro( "idUnidadeNegocio", idUnidadeNegocio); relatorioComparativoLeiturasEAnormalidades.addParametro( "idPerfilImovel", idPerfilImovel); relatorioComparativoLeiturasEAnormalidades.addParametro( "numOcorrenciasConsecutivas", numOcorrenciasConsecutivas); relatorioComparativoLeiturasEAnormalidades.addParametro( "colecaoAnormalidadesLeituras", colecaoAnormalidadesLeituras); if(idLeiturista != null){ relatorioComparativoLeiturasEAnormalidades.addParametro("idLeiturista", idLeiturista); } // relatorioComparativoLeiturasEAnormalidades.addParametro( // "dataUltimaAlteracao", new Date()); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorioComparativoLeiturasEAnormalidades.addParametro("tipoFormatoRelatorio", Integer .parseInt(tipoRelatorio)); retorno = processarExibicaoRelatorio(relatorioComparativoLeiturasEAnormalidades, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); // devolve o mapeamento contido na vari�vel retorno return retorno; } private void pesquisarSetorComercial(String inscricaoTipo, RegistrarLeiturasAnormalidadesRelatorioActionForm form, Fachada fachada, HttpServletRequest httpServletRequest) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); if (inscricaoTipo.equalsIgnoreCase("origem")) { form.setInscricaoTipo("origem"); // Recebe o valor do campo localidadeOrigemID do formul�rio. String localidadeID = (String) form .getLocalidadeOrigemID(); // O campo localidadeOrigemID ser� obrigat�rio if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) { setorComercialCD = (String) form .getSetorComercialOrigemCD(); // Adiciona o id da localidade que est� no formul�rio para // compor a pesquisa. filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidadeID)); // Adiciona o c�digo do setor comercial que esta no formul�rio // para compor a pesquisa. filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Retorna setorComercial colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { // Setor Comercial nao encontrado // Limpa os campos setorComercialOrigemCD, // nomeSetorComercialOrigem e setorComercialOrigemID do // formul�rio form .setSetorComercialOrigemCD(""); form .setSetorComercialOrigemID(""); form .setNomeSetorComercialOrigem("Setor comercial inexistente."); throw new ActionServletException("atencao.setor_comercial.inexistente"); } else { SetorComercial objetoSetorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoPesquisa); //setorComercialOrigem form .setSetorComercialOrigemCD(String .valueOf(objetoSetorComercial.getCodigo())); form .setSetorComercialOrigemID(String .valueOf(objetoSetorComercial.getId())); form .setNomeSetorComercialOrigem(objetoSetorComercial .getDescricao()); } } else { // Limpa o campo setorComercialOrigemCD do formul�rio form.setSetorComercialOrigemCD(""); form .setNomeSetorComercialOrigem("Informe a localidade da inscri��o de origem."); } } else { form.setInscricaoTipo("destino"); // Recebe o valor do campo localidadeDestinoID do formul�rio. String localidadeID = (String) form .getLocalidadeDestinoID(); // O campo localidadeOrigem ser� obrigat�rio if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) { setorComercialCD = (String) form .getSetorComercialDestinoCD(); // Adiciona o id da localidade que est� no formul�rio para // compor a pesquisa. filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidadeID)); // Adiciona o c�digo do setor comercial que esta no formul�rio // para compor a pesquisa. filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Retorna setorComercial colecaoPesquisa = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { // Setor Comercial nao encontrado // Limpa os campos setorComercialDestinoCD, // nomeSetorComercialDestino e setorComercialDestinoID do // formul�rio form .setSetorComercialDestinoCD(""); form .setSetorComercialDestinoID(""); form .setNomeSetorComercialDestino("Setor comercial inexistente."); } else { SetorComercial objetoSetorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoPesquisa); form .setSetorComercialDestinoCD(String .valueOf(objetoSetorComercial.getCodigo())); form .setSetorComercialDestinoID(String .valueOf(objetoSetorComercial.getId())); form .setNomeSetorComercialDestino(objetoSetorComercial .getDescricao()); } } else { // Limpa o campo setorComercialDestinoCD do formul�rio form.setSetorComercialDestinoCD(""); form.setNomeSetorComercialDestino("Informe a localidade da inscri��o de destino."); } } } }