package gcom.gui.cadastro.unidade; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; 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; /** * * * @author Rafael Pinto * @created 26/07/2006 */ public class PesquisarUnidadeSuperiorAction extends GcomAction { /** * Description of the Method * * @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) { ActionForward retorno = actionMapping.findForward("listaUnidadeSuperiorResultado"); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); PesquisarUnidadeSuperiorActionForm pesquisarUnidadeSuperiorActionForm = (PesquisarUnidadeSuperiorActionForm) actionForm; // Recupera os par�metros do form String unidadeTipo = pesquisarUnidadeSuperiorActionForm.getUnidadeTipoFilho(); String nivel = pesquisarUnidadeSuperiorActionForm.getNivelHierarquicoFilho(); String localidade = pesquisarUnidadeSuperiorActionForm.getIdLocalidadeFilho(); String gerenciaRegional = pesquisarUnidadeSuperiorActionForm.getGerenciaRegionalFilho(); String descricao = pesquisarUnidadeSuperiorActionForm.getDescricaoFilho(); String sigla = pesquisarUnidadeSuperiorActionForm.getSiglaFilho(); String empresa = pesquisarUnidadeSuperiorActionForm.getIdEmpresaFilho(); String meioSolicitacao = pesquisarUnidadeSuperiorActionForm.getMeioSolicitacaoFilho(); String unidadeEsgoto = pesquisarUnidadeSuperiorActionForm.getUnidadeEsgotoFilho(); String unidadeAbreRegistro = pesquisarUnidadeSuperiorActionForm.getUnidadeAbreRegistroFilho(); String unidadeAceita = pesquisarUnidadeSuperiorActionForm.getUnidadeAceitaFilho(); // filtro para a pesquisa da unidade organizacional FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.setCampoOrderBy(FiltroUnidadeOrganizacional.DESCRICAO); boolean peloMenosUmParametroInformado = false; // Insere os par�metros informados no filtro if (unidadeTipo != null && !unidadeTipo.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID, unidadeTipo)); } if (nivel != null && !nivel.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.UNIDADE_TIPO_NIVEL, nivel)); } if (localidade != null && !localidade.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID_LOCALIDADE, localidade)); } if (gerenciaRegional != null && !gerenciaRegional.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.GERENCIAL_REGIONAL, gerenciaRegional)); } if (descricao != null && !descricao.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ComparacaoTexto(FiltroUnidadeOrganizacional.DESCRICAO, descricao)); } if (sigla != null && !sigla.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.SIGLA, sigla)); } if (empresa != null && !empresa.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.EMPRESA, empresa)); } if (unidadeEsgoto != null && !unidadeEsgoto.trim().equals("")) { peloMenosUmParametroInformado = true; if(!unidadeEsgoto.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_ESGOTO,unidadeEsgoto)); } } if (unidadeAbreRegistro != null && !unidadeAbreRegistro.trim().equals("")) { peloMenosUmParametroInformado = true; if(!unidadeAbreRegistro.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_ABERTURA_RA,unidadeAbreRegistro)); } } if (unidadeAceita != null && !unidadeAceita.trim().equals("")) { peloMenosUmParametroInformado = true; if(!unidadeAceita.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_TRAMITE,unidadeAceita)); } } if (meioSolicitacao != null && !meioSolicitacao.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.MEIO_SOLICITACAO, meioSolicitacao)); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // adiciona as depend�ncias para serem mostradas na p�gina filtroUnidadeOrganizacional.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo"); Collection colecaoUnidadeOrganizacionalSuperior = null; // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); colecaoUnidadeOrganizacionalSuperior = fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeOrganizacionalSuperior == null || colecaoUnidadeOrganizacionalSuperior.isEmpty()) { // Nenhuma cliente cadastrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "unidade organizacional"); } else if (colecaoUnidadeOrganizacionalSuperior.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { // Muitos registros encontrados throw new ActionServletException("atencao.pesquisa.muitosregistros"); } else { // Coloca a cole��o na sess�o sessao.setAttribute("colecaoUnidadeOrganizacionalSuperior",colecaoUnidadeOrganizacionalSuperior); } return retorno; } }