package gcom.gui.micromedicao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.imovel.FiltroImovelPerfil; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoGrupo; import gcom.faturamento.FiltroFaturamentoGrupo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.FiltroLeiturista; import gcom.micromedicao.Leiturista; import gcom.micromedicao.leitura.FiltroLeituraAnormalidade; import gcom.micromedicao.leitura.LeituraAnormalidade; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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; /** * Pre- processamento para registrar leituras e anormalidades * * @author S�vio Luiz */ public class ExibirRegistrarLeiturasAnormalidadesRelatorioAction extends GcomAction { private Collection colecaoPesquisa = null; private String localidadeID = null; private String setorComercialCD = null; //private String setorComercialID = null; public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping .findForward("registrarLeiturasAnormalidadesRelatorio"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //HttpSession sessao = httpServletRequest.getSession(false); // Cria��o das cole��es Collection faturamentosGrupos = null; FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo(FiltroFaturamentoGrupo.ID); faturamentosGrupos = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName()); if (faturamentosGrupos == null || faturamentosGrupos.isEmpty()) { // Nenhuma faturamento grupo cadastrada new ActionServletException("atencao.pesquisa.nenhumresultado", null, "faturamento grupo"); } httpServletRequest.setAttribute("faturamentosGrupos", faturamentosGrupos); FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade(FiltroLeituraAnormalidade.DESCRICAO); filtroLeituraAnormalidade.adicionarParametro(new ParametroSimples(FiltroLeituraAnormalidade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoAnormalidadesLeituras = this.getFachada().pesquisar(filtroLeituraAnormalidade, LeituraAnormalidade.class.getName()); if(colecaoAnormalidadesLeituras == null || colecaoAnormalidadesLeituras.isEmpty()){ new ActionServletException("atencao.pesquisa.nenhumresultado", null, "Anormalidade de Leitura"); } else { httpServletRequest.setAttribute("colecaoAnormalidadesLeituras", colecaoAnormalidadesLeituras); } FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(FiltroImovelPerfil.DESCRICAO); filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoPerfisImovel = this.getFachada().pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName()); if(colecaoPerfisImovel == null || colecaoPerfisImovel.isEmpty()){ new ActionServletException("atencao.pesquisa.nenhumresultado", null, "Perfil do Im�vel"); } else { httpServletRequest.setAttribute("colecaoPerfisImovel", colecaoPerfisImovel); } FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro( new ParametroSimples( FiltroEmpresa.INDICADOR_LEITURA,ConstantesSistema.SIM ) ); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO); Collection colecaoEmpresas = Fachada.getInstancia().pesquisar(filtroEmpresa, Empresa.class.getName()); httpServletRequest.setAttribute("colecaoEmpresas", colecaoEmpresas); String objetoConsulta = (String) httpServletRequest .getParameter("objetoConsulta"); String inscricaoTipo = (String) httpServletRequest .getParameter("inscricaoTipo"); RegistrarLeiturasAnormalidadesRelatorioActionForm form = (RegistrarLeiturasAnormalidadesRelatorioActionForm) actionForm; this.pesquisarGerenciaRegional(httpServletRequest); this.pesquisarUnidadeNegocio(httpServletRequest,form); if (objetoConsulta != null && !objetoConsulta.trim().equalsIgnoreCase("") || ( inscricaoTipo != null && !inscricaoTipo.trim().equalsIgnoreCase("") ) ) { switch (Integer.parseInt(objetoConsulta)) { // Localidade case 1: pesquisarLocalidade(inscricaoTipo, form, fachada, httpServletRequest); break; // Setor Comercial case 2: pesquisarLocalidade(inscricaoTipo, form, fachada, httpServletRequest); pesquisarSetorComercial(inscricaoTipo, form, fachada, httpServletRequest); break; default: break; } } if ( form.getIdFirma() != null && !form.getIdFirma().equals( "" ) ){ pesquisarLeituristasPorEmpresa( httpServletRequest, form ); } return retorno; } /* private void pesquisarLeiturista(String leituristaId, RegistrarLeiturasAnormalidadesRelatorioActionForm form, Fachada fachada, HttpServletRequest httpServletRequest) { // Verifica se o c�digo do Leiturista foi digitado if (leituristaId != null && !leituristaId.trim().equals("") && Integer.parseInt(leituristaId) > 0) { //Recupera o leiturista informado pelo usu�rio FiltroLeiturista filtroLeiturista = new FiltroLeiturista(); filtroLeiturista.adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.FUNCIONARIO); filtroLeiturista.adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.CLIENTE); filtroLeiturista.adicionarParametro(new ParametroSimples( FiltroLeiturista.ID, leituristaId)); filtroLeiturista.adicionarParametro(new ParametroSimples( FiltroLeiturista.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection leituristaEncontrado = this.getFachada().pesquisar(filtroLeiturista, Leiturista.class.getName()); //Caso o leiturista informado pelo usu�rio esteja cadastrado no sistema //Seta os dados do leiturista no form //Caso contr�rio seta as informa��es de leiturista para vazio //e indica ao usu�rio que o leiturista n�o existe if (leituristaEncontrado != null && leituristaEncontrado.size() > 0) { //leiturista foi encontrado Leiturista leiturista = (Leiturista) ((List) leituristaEncontrado).get(0); form.setIdLeiturista("" + leiturista.getId()); if (leiturista.getFuncionario() != null){ form.setNomeLeiturista(leiturista.getFuncionario().getNome()); } else if (leiturista.getCliente() != null){ form.setNomeLeiturista(leiturista.getCliente().getNome()); } httpServletRequest.setAttribute("idLeituristaEncontrado","true"); httpServletRequest.setAttribute("nomeCampo","codigoSetorComercial"); httpServletRequest.setAttribute( "idLeituristaEncontrado", "" ); } else { //o leiturista n�o foi encontrado form.setIdLeiturista(""); form.setNomeLeiturista("LEITURISTA INEXISTENTE"); httpServletRequest.removeAttribute("idLeituristaEncontrado"); httpServletRequest.setAttribute("nomeCampo","idLeiturista"); } } }*/ private void pesquisarLocalidade(String inscricaoTipo, RegistrarLeiturasAnormalidadesRelatorioActionForm form, Fachada fachada, HttpServletRequest httpServletRequest) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); if (inscricaoTipo.equalsIgnoreCase("origem")) { form.setInscricaoTipo("origem"); // Recebe o valor do campo localidadeOrigemID do formul�rio. localidadeID = (String) form .getLocalidadeOrigemID(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidadeID)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Retorna localidade colecaoPesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { // Localidade nao encontrada // Limpa os campos localidadeOrigemID e nomeLocalidadeOrigem do // formul�rio form.setLocalidadeOrigemID(""); form .setNomeLocalidadeOrigem("Localidade inexistente."); form.setLocalidadeDestinoID(""); form.setNomeLocalidadeDestino(""); httpServletRequest.setAttribute("corLocalidadeOrigem", "exception"); httpServletRequest.setAttribute("nomeCampo","localidadeOrigemID"); } else { Localidade objetoLocalidade = (Localidade) Util .retonarObjetoDeColecao(colecaoPesquisa); form.setLocalidadeOrigemID(String .valueOf(objetoLocalidade.getId())); form .setNomeLocalidadeOrigem(objetoLocalidade .getDescricao()); httpServletRequest.setAttribute("corLocalidadeOrigem", "valor"); httpServletRequest.setAttribute("nomeCampo","setorComercialOrigemCD"); //destino form.setLocalidadeDestinoID(String .valueOf(objetoLocalidade.getId())); form .setNomeLocalidadeDestino(objetoLocalidade .getDescricao()); httpServletRequest.setAttribute("corLocalidadeDestino", "valor"); } } else { // Recebe o valor do campo localidadeDestinoID do formul�rio. localidadeID = (String) form .getLocalidadeDestinoID(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidadeID)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Retorna localidade colecaoPesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); form.setInscricaoTipo("destino"); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { // Localidade nao encontrada // Limpa os campos localidadeDestinoID e nomeLocalidadeDestino // do formul�rio form.setLocalidadeDestinoID(""); form .setNomeLocalidadeDestino("Localidade inexistente."); httpServletRequest.setAttribute("corLocalidadeDestino", "exception"); httpServletRequest.setAttribute("nomeCampo","localidadeDestinoID"); } else { Localidade objetoLocalidade = (Localidade) Util .retonarObjetoDeColecao(colecaoPesquisa); form.setLocalidadeDestinoID(String .valueOf(objetoLocalidade.getId())); form .setNomeLocalidadeDestino(objetoLocalidade .getDescricao()); httpServletRequest .setAttribute("corLocalidadeDestino", "valor"); httpServletRequest.setAttribute("nomeCampo","setorComercialDestinoCD"); } } } 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. 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."); httpServletRequest.setAttribute("corSetorComercialOrigem", "exception"); httpServletRequest.setAttribute("nomeCampo","setorComercialOrigemCD"); //destino form .setSetorComercialDestinoCD(""); form .setSetorComercialDestinoID(""); } else { SetorComercial objetoSetorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoPesquisa); //setorComercialOrigem form .setSetorComercialOrigemCD(String .valueOf(objetoSetorComercial.getCodigo())); form .setSetorComercialOrigemID(String .valueOf(objetoSetorComercial.getId())); form .setNomeSetorComercialOrigem(objetoSetorComercial .getDescricao()); httpServletRequest.setAttribute("nomeCampo","quadraOrigemNM"); //setorComercialOrigem //setorComercialDestino form .setSetorComercialDestinoCD(String .valueOf(objetoSetorComercial.getCodigo())); form .setSetorComercialDestinoID(String .valueOf(objetoSetorComercial.getId())); form .setNomeSetorComercialDestino(objetoSetorComercial .getDescricao()); //setorComercialDestino httpServletRequest.setAttribute("corSetorComercialDestino", "valor"); } } else { // Limpa o campo setorComercialOrigemCD do formul�rio form.setSetorComercialOrigemCD(""); form .setNomeSetorComercialOrigem("Informe a localidade da inscri��o de origem."); httpServletRequest.setAttribute("corSetorComercialOrigem", "exception"); } } else { form.setInscricaoTipo("destino"); // Recebe o valor do campo localidadeDestinoID do formul�rio. 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."); httpServletRequest.setAttribute("corSetorComercialDestino", "exception"); httpServletRequest.setAttribute("nomeCampo","setorComercialDestinoCD"); } else { SetorComercial objetoSetorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoPesquisa); form .setSetorComercialDestinoCD(String .valueOf(objetoSetorComercial.getCodigo())); form .setSetorComercialDestinoID(String .valueOf(objetoSetorComercial.getId())); form .setNomeSetorComercialDestino(objetoSetorComercial .getDescricao()); httpServletRequest.setAttribute("corSetorComercialDestino", "valor"); httpServletRequest.setAttribute("nomeCampo","quadraDestinoNM"); } } else { // Limpa o campo setorComercialDestinoCD do formul�rio form.setSetorComercialDestinoCD(""); form .setNomeSetorComercialDestino("Informe a localidade da inscri��o de destino."); httpServletRequest.setAttribute("corSetorComercialDestino", "exception"); } } } private void pesquisarGerenciaRegional(HttpServletRequest httpServletRequest){ FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.setConsultaSemLimites(true); filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME); filtroGerenciaRegional.adicionarParametro( new ParametroSimples(FiltroQuadra.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoGerenciaRegional = this.getFachada().pesquisar(filtroGerenciaRegional,GerenciaRegional.class.getName()); if (colecaoGerenciaRegional == null || colecaoGerenciaRegional.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Ger�ncia Regional"); } else { httpServletRequest.setAttribute("colecaoGerenciaRegional",colecaoGerenciaRegional); } } private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest, RegistrarLeiturasAnormalidadesRelatorioActionForm form){ FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.setConsultaSemLimites(true); filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME); if(form.getGerenciaRegional() != null && !form.getGerenciaRegional().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(FiltroUnidadeNegocio.ID_GERENCIA, form.getGerenciaRegional())); } filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(FiltroUnidadeNegocio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUnidadeNegocio = this.getFachada().pesquisar(filtroUnidadeNegocio,UnidadeNegocio.class.getName()); if (colecaoUnidadeNegocio == null || colecaoUnidadeNegocio.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Unidade de Neg�cio"); } else { httpServletRequest.setAttribute("colecaoUnidadeNegocio",colecaoUnidadeNegocio); } } private void pesquisarLeituristasPorEmpresa(HttpServletRequest httpServletRequest, RegistrarLeiturasAnormalidadesRelatorioActionForm form ){ Collection colecaoLeiturista = new ArrayList(); FiltroLeiturista filtroLeiturista = new FiltroLeiturista( FiltroLeiturista.ID ); filtroLeiturista.adicionarParametro( new ParametroSimples( FiltroLeiturista.EMPRESA_ID, form.getIdFirma() ) ); 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.getInstancia().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); } } httpServletRequest.setAttribute("colecaoLeiturista", colecaoLeiturista); } }