package gcom.gui.micromedicao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoGrupo; import gcom.faturamento.FiltroFaturamentoGrupo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.ArquivoTextoRoteiroEmpresa; import gcom.micromedicao.FiltroLeiturista; import gcom.micromedicao.FiltroServicoTipoCelular; import gcom.micromedicao.FiltroSituacaoTransmissaoLeitura; import gcom.micromedicao.Leiturista; import gcom.micromedicao.ServicoTipoCelular; import gcom.micromedicao.SituacaoTransmissaoLeitura; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; 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 que define o pr�-processamento da p�gina de pesquisa de cliente * * @author Thiago Ten�rio * @created 25 de Abril de 2005 */ public class ExibirConsultarArquivoTextoLeituraAction extends GcomAction { /** * * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); SistemaParametro sistemaParametro = this.getSistemaParametro(); HttpSession sessao = httpServletRequest.getSession(false); ConsultarArquivoTextoLeituraActionForm consultarArquivoTextoLeituraActionForm = (ConsultarArquivoTextoLeituraActionForm) actionForm; ArquivoTextoRoteiroEmpresa arquivoTextoRoteiroEmpresa = new ArquivoTextoRoteiroEmpresa(); Collection colecaoLeiturista = new ArrayList(); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); if (httpServletRequest.getParameter("menu") != null) { consultarArquivoTextoLeituraActionForm.setEmpresaID("" + usuarioLogado.getEmpresa().getId()); consultarArquivoTextoLeituraActionForm.setGrupoFaturamentoID(""); consultarArquivoTextoLeituraActionForm.setMesAno(""); consultarArquivoTextoLeituraActionForm.setSituaTransmLeitura(""); } else { if (httpServletRequest.getParameter("paginacao") == null && sessao.getAttribute("filtrar") == null) { String atualizar = httpServletRequest.getParameter("atualizar"); if (atualizar != null && !atualizar.equals("")) { sessao.setAttribute("atualizar", atualizar); } else { sessao.removeAttribute("atualizar"); } } } sessao.removeAttribute("permissao"); if (usuarioLogado.getEmpresa().getIndicadorEmpresaPrincipal().equals( new Short("1"))) { sessao.setAttribute("permissao", "1"); } else { sessao.setAttribute("permissao", "2"); } sessao.removeAttribute("equipeAtualizar"); // Parte que passa as cole��es da Empresa necess�rias no jsp FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro( new ParametroSimples(FiltroEmpresa.INDICADOR_LEITURA, ConstantesSistema.SIM)); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.ID); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) { sessao.setAttribute("colecaoEmpresa", colecaoEmpresa); } else { throw new ActionServletException("atencao.naocadastrado", null, "Empresa"); } // Parte que passa as cole��es da Grupo de Faturamento necess�rias no // jsp FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo(); filtroFaturamentoGrupo.setCampoOrderBy(FiltroFaturamentoGrupo.ID); Collection colecaoFaturamentoGrupo = fachada.pesquisar( filtroFaturamentoGrupo, FaturamentoGrupo.class.getName()); if (colecaoFaturamentoGrupo != null && !colecaoFaturamentoGrupo.isEmpty()) { sessao.setAttribute("colecaoFaturamentoGrupo", colecaoFaturamentoGrupo); } else { throw new ActionServletException("atencao.naocadastrado", null, "Grupo de Faturamento"); } //Parte que realiza a pesquisa pelos SERVICO_TIPO_CELULAR cujo indicadores de uso sejam 1 e colocar no JSP FiltroServicoTipoCelular filtroServicoTipoCelular = new FiltroServicoTipoCelular(); filtroServicoTipoCelular.adicionarParametro(new ParametroSimples(FiltroServicoTipoCelular.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoServicoTipoCelular = fachada.pesquisar(filtroServicoTipoCelular,ServicoTipoCelular.class.getName()); if(colecaoServicoTipoCelular != null && !colecaoServicoTipoCelular.isEmpty()){ sessao.setAttribute("colecaoServicoTipoCelular",colecaoServicoTipoCelular); if(consultarArquivoTextoLeituraActionForm.getServicoTipoCelular() == null || consultarArquivoTextoLeituraActionForm.getServicoTipoCelular().equals("") || consultarArquivoTextoLeituraActionForm.getServicoTipoCelular().equals("-1")){ if(sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("COMPESA")){ consultarArquivoTextoLeituraActionForm.setServicoTipoCelular("2"); }else{ consultarArquivoTextoLeituraActionForm.setServicoTipoCelular("1"); } /*sessao.setAttribute("servicoTipoCelular","1");*/ } } if(sessao.getAttribute("colecaoSituacaoTransmissaoLeitur")==null){ FiltroSituacaoTransmissaoLeitura filtroSituacaoTransmissaoLeitura = new FiltroSituacaoTransmissaoLeitura(); filtroSituacaoTransmissaoLeitura.setCampoOrderBy(FiltroSituacaoTransmissaoLeitura.ID); filtroSituacaoTransmissaoLeitura.adicionarParametro( new ParametroSimples(FiltroSituacaoTransmissaoLeitura.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoSituacaoTransmissaoLeitura = fachada.pesquisar( filtroSituacaoTransmissaoLeitura, SituacaoTransmissaoLeitura.class.getName()); if(!Util.isVazioOrNulo(colecaoSituacaoTransmissaoLeitura)){ sessao.setAttribute("colecaoSituacaoTransmissaoLeitura", colecaoSituacaoTransmissaoLeitura); }else{ sessao.removeAttribute("colecaoSituacaoTransmissaoLeitura"); } } // Leiturista da Empresa if (consultarArquivoTextoLeituraActionForm.getEmpresaID() != null && !consultarArquivoTextoLeituraActionForm.getEmpresaID() .equals("-1") && !consultarArquivoTextoLeituraActionForm.getEmpresaID() .equals("")) { FiltroLeiturista filtroLeiturista = new FiltroLeiturista( FiltroLeiturista.ID); filtroLeiturista.adicionarParametro(new ParametroSimples( FiltroLeiturista.EMPRESA_ID, consultarArquivoTextoLeituraActionForm.getEmpresaID())); filtroLeiturista.adicionarParametro(new ParametroSimples( FiltroLeiturista.INDICADOR_USO, ConstantesSistema.SIM)); filtroLeiturista .adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.CLIENTE); filtroLeiturista .adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.FUNCIONARIO); filtroLeiturista.setCampoOrderBy(FiltroLeiturista.CLIENTE_NOME); Collection colecao = fachada.pesquisar(filtroLeiturista, Leiturista.class.getName()); if (colecao != null && !colecao.isEmpty()) { Iterator it = colecao.iterator(); while (it.hasNext()) { Leiturista leitu = (Leiturista) it.next(); DadosLeiturista dadosLeiu = null; if (leitu.getFuncionario() != null) { dadosLeiu = new DadosLeiturista(leitu.getId(), leitu .getFuncionario().getNome()); } else { dadosLeiu = new DadosLeiturista(leitu.getId(), leitu .getCliente().getNome()); } colecaoLeiturista.add(dadosLeiu); } } Collections.sort((List) colecaoLeiturista, new Comparator() { public int compare(Object a, Object b) { String valor1 = ((DadosLeiturista)a).getDescricao(); String valor2 = ((DadosLeiturista)b).getDescricao(); return valor1.compareTo(valor2); } }); } // Pega os codigos que o usuario digitou para a pesquisa direta de localidade. if (consultarArquivoTextoLeituraActionForm.getIdLocalidade() != null && !consultarArquivoTextoLeituraActionForm.getIdLocalidade().trim().equals("")) { pesquisarLocalidade( httpServletRequest, consultarArquivoTextoLeituraActionForm); } sessao.setAttribute("colecaoLeiturista", colecaoLeiturista); // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("consultarArquivoTextoLeitura"); sessao.setAttribute("arquivoTextoRoteiroEmpresaLiberar", arquivoTextoRoteiroEmpresa); sessao.setAttribute("achou","2"); sessao.removeAttribute("idArquivoTextoRoteiroEmpresaDivisao"); if ( fachada.verificarPermissaoEspecial( PermissaoEspecial.GERAR_ARQUIVO_TEXTO_IMOVEIS_NAO_ENVIADOS, usuarioLogado ) ){ httpServletRequest.setAttribute( "permissaoRegerarArquivoImoveisNaoEnviados", "SIM" ); } else { httpServletRequest.setAttribute( "permissaoRegerarArquivoImoveisNaoEnviados", "NAO" ); } return retorno; } private void pesquisarLocalidade(HttpServletRequest httpServletRequest, ConsultarArquivoTextoLeituraActionForm form) { Fachada fachada = Fachada.getInstancia(); // Pesquisa a localidade na base FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, form.getIdLocalidade())); Collection<Localidade> localidadePesquisada = fachada.pesquisar( filtroLocalidade, Localidade.class.getName()); // Se nenhuma localidade for encontrada a mensagem � enviada para a // p�gina if (localidadePesquisada != null && !localidadePesquisada.isEmpty()) { Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(localidadePesquisada); form.setIdLocalidade(""+localidade.getId()); form.setNomeLocalidade(localidade.getDescricao()); } else { form.setIdLocalidade(""); form.setNomeLocalidade("LOCALIDADE INEXISTENTE"); httpServletRequest.setAttribute("localidadeInexistente",true); httpServletRequest.setAttribute("nomeCampo", "idLocalidade"); } } }