package gcom.gui.cadastro.unidade; import gcom.atendimentopublico.registroatendimento.FiltroMeioSolicitacao; import gcom.atendimentopublico.registroatendimento.MeioSolicitacao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.FiltroUnidadeOrganizacionalMunicipio; import gcom.cadastro.unidade.FiltroUnidadeTipo; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacionalMunicipio; import gcom.cadastro.unidade.UnidadeTipo; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; 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 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 inser��o unidade organizacional * * @author Rafael Pinto * @created 25/07/2006 */ public class ExibirInserirUnidadeOrganizacionalAction 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) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("exibirInserirUnidadeOrganizacional"); // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); InserirUnidadeOrganizacionalActionForm inserirUnidadeOrganizacionalActionForm = (InserirUnidadeOrganizacionalActionForm) actionForm; //pega as colecoes Collection colecaoUnidadeTipo = this.consultarUnidadeTipo(fachada,sessao); Collection colecaoEmpresa = this.consultarEmpresa(fachada,sessao); Collection colecaoGerenciaRegional = this.consultarGerenciaRegional(fachada,sessao); Collection colecaoUnidadeNegocio = this.consultarUnidadeNegocio(fachada, sessao); //validar exibi��o da unidade tipo caso seja informada String idUnidadeTipo = httpServletRequest.getParameter("unidadeTipo"); if(idUnidadeTipo != null && !idUnidadeTipo.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ UnidadeTipo unidadeTipo = this.retornaUnidadeTipoPorId(colecaoUnidadeTipo,new Integer(idUnidadeTipo)); String cod = unidadeTipo.getCodigoTipo(); if(cod != null){ inserirUnidadeOrganizacionalActionForm.setCodigoUnidadeTipo(cod); if(cod.equals(UnidadeTipo.UNIDADE_TIPO_LOCALIDADE) || cod.equals(UnidadeTipo.UNIDADE_TIPO_GERENCIA_REGIONAL) || cod.equals(UnidadeTipo.UNIDADE_TIPO_CENTRALIZADORA) || cod.equals(UnidadeTipo.UNIDADE_TIPO_UNIDADE_NEGOCIO)){ Empresa empresaPrincipal = retornaEmpresaPrincipal(colecaoEmpresa); inserirUnidadeOrganizacionalActionForm.setIdEmpresa(""+empresaPrincipal.getId()); if(cod.equals(UnidadeTipo.UNIDADE_TIPO_GERENCIA_REGIONAL)){ String idGerencia = inserirUnidadeOrganizacionalActionForm.getGerenciaRegional(); if(idGerencia != null && !idGerencia.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ GerenciaRegional gerenciaRegional = retornaGerenciaRegionalPorId(colecaoGerenciaRegional,new Integer(idGerencia)); inserirUnidadeOrganizacionalActionForm.setSigla(gerenciaRegional.getNomeAbreviado()); inserirUnidadeOrganizacionalActionForm.setDescricao(gerenciaRegional.getNome()); } } if(cod.equals(UnidadeTipo.UNIDADE_TIPO_UNIDADE_NEGOCIO)){ String idUnidade = inserirUnidadeOrganizacionalActionForm.getUnidadeNegocio(); if(idUnidade != null && !idUnidade.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ UnidadeNegocio unidadeNegocio = retornaUnidadeNegocioPorId(colecaoUnidadeNegocio,new Integer(idUnidade)); inserirUnidadeOrganizacionalActionForm.setSigla(unidadeNegocio.getNomeAbreviado()); inserirUnidadeOrganizacionalActionForm.setDescricao(unidadeNegocio.getNome()); } } } } } // verifica se o usu�rio solicitou uma consulta de localidade String idLocalidade = httpServletRequest.getParameter("idLocalidade"); String descricaoLocalidade = httpServletRequest.getParameter("descricaoLocalidade"); //Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter String objetoConsulta = httpServletRequest.getParameter("objetoConsulta"); // Seta no form os valores da pesquisa feita pela localidade if (idLocalidade != null && !idLocalidade.trim().equals("") && descricaoLocalidade != null && !descricaoLocalidade.trim().equals("")) { // Indica que localidade foi encontrado httpServletRequest.setAttribute("idLocalidadeEncontrada","true"); inserirUnidadeOrganizacionalActionForm.setIdLocalidade(idLocalidade.trim()); inserirUnidadeOrganizacionalActionForm.setDescricaoLocalidade(descricaoLocalidade.trim()); } if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("1")) { // Faz a consulta de Localidade pesquisarLocalidade(httpServletRequest, retorno,inserirUnidadeOrganizacionalActionForm); } // verifica se o usu�rio solicitou uma consulta de unidade superior String idUnidadeSuperior = httpServletRequest.getParameter("idUnidadeSuperior"); String descricaoUnidadeSuperior = httpServletRequest.getParameter("descricaoUnidadeSuperior"); // Seta no form os valores da pesquisa feita if (idUnidadeSuperior != null && !idUnidadeSuperior.trim().equals("") && descricaoUnidadeSuperior != null && !descricaoUnidadeSuperior.trim().equals("")) { // Indica que o local de armazenagem foi encontrado httpServletRequest.setAttribute("idUnidadeEncontrada","true"); inserirUnidadeOrganizacionalActionForm.setIdUnidadeSuperior(idUnidadeSuperior.trim()); inserirUnidadeOrganizacionalActionForm.setDescricaoUnidadeSuperior(descricaoUnidadeSuperior.trim()); } if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("2")) { // Faz a consulta de Unidade pesquisarUnidadeOrganizacional(httpServletRequest, retorno,inserirUnidadeOrganizacionalActionForm); } Collection colecaoMeioSolicitacao = (Collection) sessao.getAttribute("colecaoMeioSolicitacao"); //faz a consulta da colecao de meio solicata��o para exibir no jsp if(colecaoMeioSolicitacao == null){ FiltroMeioSolicitacao filtroMeioSolicitacao = new FiltroMeioSolicitacao(); filtroMeioSolicitacao.adicionarParametro(new ParametroSimples( FiltroMeioSolicitacao.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroMeioSolicitacao.setCampoOrderBy(FiltroMeioSolicitacao.DESCRICAO); colecaoMeioSolicitacao = fachada.pesquisar(filtroMeioSolicitacao, MeioSolicitacao.class.getName()); if (colecaoMeioSolicitacao != null && !colecaoMeioSolicitacao.isEmpty()) { sessao.setAttribute("colecaoMeioSolicitacao", colecaoMeioSolicitacao); } else { throw new ActionServletException("atencao.naocadastrado", null, "Meio Solicita��o"); } } Collection colecaoUnidadeCentralizadora = (Collection) sessao.getAttribute("colecaoUnidadeCentralizadora"); //faz a consulta da colecao unidade centralizador para exibir no jsp if(colecaoUnidadeCentralizadora == null){ FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.UNIDADE_TIPO_CODIGO, UnidadeTipo.UNIDADE_TIPO_CENTRALIZADORA)); filtroUnidadeOrganizacional.setCampoOrderBy(FiltroMeioSolicitacao.DESCRICAO); colecaoUnidadeCentralizadora = fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeCentralizadora != null && !colecaoUnidadeCentralizadora.isEmpty()) { sessao.setAttribute("colecaoUnidadeCentralizadora", colecaoUnidadeCentralizadora); } else { //throw new ActionServletException("atencao.naocadastrado", null,"Unidade Centralizadora"); sessao.setAttribute("colecaoUnidadeCentralizadora", new ArrayList()); } } //........................................................................................... // 06/03/2008 - Altera��o solicitada por Fab�ola Ara�jo. // Yara Taciane de Souza. //8.0 - Inclus�o de op��o de tratamento pra Unidade Repavimentadora. Collection colecaoUnidadeRepavimentadora = (Collection) sessao.getAttribute("colecaoUnidadeRepavimentadora"); //faz a consulta da colecao unidade repavimentadora para exibir no jsp if(colecaoUnidadeRepavimentadora == null){ FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.UNIDADE_TIPO_CODIGO, UnidadeTipo.UNIDADE_TIPO_REPAVIMENTADORA)); filtroUnidadeOrganizacional.setCampoOrderBy(FiltroMeioSolicitacao.DESCRICAO); colecaoUnidadeRepavimentadora = fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeRepavimentadora != null && !colecaoUnidadeRepavimentadora.isEmpty()) { sessao.setAttribute("colecaoUnidadeRepavimentadora", colecaoUnidadeRepavimentadora); } else { //throw new ActionServletException("atencao.naocadastrado", null,"Unidade Centralizadora"); sessao.setAttribute("colecaoUnidadeRepavimentadora", new ArrayList()); } } //.................................................................................................. //Seta no form os valores da pesquisa feita pela localidade String idMunicipio = (String)httpServletRequest.getParameter("idMunicipio"); String descricaoMunicipio = (String)httpServletRequest.getParameter("descricaoMunicipio"); if (idMunicipio != null && !idMunicipio.trim().equals("") && descricaoMunicipio != null && !descricaoMunicipio.trim().equals("")) { // Indica que localidade foi encontrado httpServletRequest.setAttribute("idMunicipioEncontrado","true"); inserirUnidadeOrganizacionalActionForm.setIdMunicipio(idMunicipio); inserirUnidadeOrganizacionalActionForm.setDescricaoMunicipio(descricaoMunicipio.trim()); } Collection colecaoMunicipioSelecionado = null; colecaoMunicipioSelecionado = controlaColecaoMunicipio(inserirUnidadeOrganizacionalActionForm, fachada, sessao, httpServletRequest); if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("3")) { // Faz a consulta de Localidade pesquisarMunicipio(idMunicipio,inserirUnidadeOrganizacionalActionForm, fachada, httpServletRequest); } sessao.setAttribute("colecaoMunicipioSelecionado", colecaoMunicipioSelecionado ); return retorno; } //Consulta a colecao de unidade tipo private Collection consultarUnidadeTipo(Fachada fachada,HttpSession sessao){ Collection colecaoUnidadeTipo = (Collection) sessao.getAttribute("colecaoUnidadeTipo"); if(colecaoUnidadeTipo == null){ FiltroUnidadeTipo filtroUnidadeTipo = new FiltroUnidadeTipo(); filtroUnidadeTipo.adicionarParametro(new ParametroSimples( FiltroUnidadeTipo.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroUnidadeTipo.setCampoOrderBy(FiltroUnidadeTipo.DESCRICAO); colecaoUnidadeTipo = fachada.pesquisar(filtroUnidadeTipo, UnidadeTipo.class.getName()); if (colecaoUnidadeTipo != null && !colecaoUnidadeTipo.isEmpty()) { sessao.setAttribute("colecaoUnidadeTipo", colecaoUnidadeTipo); } else { throw new ActionServletException("atencao.naocadastrado", null,"Unidade Tipo"); } } return colecaoUnidadeTipo; } //consulta a colecao de empresa private Collection consultarEmpresa(Fachada fachada,HttpSession sessao){ Collection colecaoEmpresa = (Collection) sessao.getAttribute("colecaoEmpresa"); if(colecaoEmpresa == null){ // Filtro para obter empresa ativo de id informado FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.INDICADORUSO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO); colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) { sessao.setAttribute("colecaoEmpresa", colecaoEmpresa); } else { throw new ActionServletException("atencao.naocadastrado", null,"Empresa"); } } return colecaoEmpresa; } //consulta a colecao de gerencia regional private Collection consultarGerenciaRegional(Fachada fachada,HttpSession sessao){ Collection colecaoGerenciaRegional = (Collection) sessao.getAttribute("colecaoGerenciaRegional"); if(colecaoGerenciaRegional == null){ FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME); colecaoGerenciaRegional = fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName()); if (colecaoGerenciaRegional != null && !colecaoGerenciaRegional.isEmpty()) { sessao.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional); } else { throw new ActionServletException("atencao.naocadastrado", null, "Ger�ncial Regional"); } } return colecaoGerenciaRegional; } //consulta a colecao de gerencia regional private Collection consultarUnidadeNegocio(Fachada fachada,HttpSession sessao){ Collection colecaoUnidadeNegocio = (Collection) sessao.getAttribute("colecaoUnidadeNegocio"); if(colecaoUnidadeNegocio == null){ FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME); colecaoUnidadeNegocio = fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); if (colecaoUnidadeNegocio != null && !colecaoUnidadeNegocio.isEmpty()) { sessao.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio); } else { throw new ActionServletException("atencao.naocadastrado", null, "Unidade Negocio"); } } return colecaoUnidadeNegocio; } //retorna unidadeTipo pelo id na colecao de unidade private UnidadeTipo retornaUnidadeTipoPorId(Collection colecaoUnidade,Integer id){ UnidadeTipo retorno = null; if(colecaoUnidade != null && !colecaoUnidade.isEmpty()){ Iterator itera = colecaoUnidade.iterator(); while (itera.hasNext()) { UnidadeTipo unidadeTipo = (UnidadeTipo) itera.next(); if(unidadeTipo.getId().intValue() == id.intValue()){ retorno = unidadeTipo; break; } } } return retorno; } //retorna gerenciaRegional pelo id na colecao de gerencia private GerenciaRegional retornaGerenciaRegionalPorId(Collection colecao,Integer id){ GerenciaRegional retorno = null; if(colecao != null && !colecao.isEmpty()){ Iterator itera = colecao.iterator(); while (itera.hasNext()) { GerenciaRegional gerenciaRegional = (GerenciaRegional) itera.next(); if(gerenciaRegional.getId().intValue() == id.intValue()){ retorno = gerenciaRegional; break; } } } return retorno; } //retorna gerenciaRegional pelo id na colecao de gerencia private UnidadeNegocio retornaUnidadeNegocioPorId(Collection colecao,Integer id){ UnidadeNegocio retorno = null; if(colecao != null && !colecao.isEmpty()){ Iterator itera = colecao.iterator(); while (itera.hasNext()) { UnidadeNegocio unidadeNegocio = (UnidadeNegocio) itera.next(); if(unidadeNegocio.getId().intValue() == id.intValue()){ retorno = unidadeNegocio; break; } } } return retorno; } //retorna a empresa principal private Empresa retornaEmpresaPrincipal(Collection colecaoEmpresa){ Empresa retorno = null; if(colecaoEmpresa != null && !colecaoEmpresa.isEmpty()){ Iterator itera = colecaoEmpresa.iterator(); while (itera.hasNext()) { Empresa empresa = (Empresa) itera.next(); if(empresa.getIndicadorEmpresaPrincipal().equals(ConstantesSistema.SIM)){ retorno = empresa; break; } } } return retorno; } //pesquisa a localidade pelo id private void pesquisarLocalidade( HttpServletRequest httpServletRequest, ActionForward retorno, InserirUnidadeOrganizacionalActionForm inserirUnidadeOrganizacionalActionForm) { // Filtro para obter o localidade ativo de id informado FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID, new Integer(inserirUnidadeOrganizacionalActionForm.getIdLocalidade() ))); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoLocalidade = Fachada.getInstancia() .pesquisar(filtroLocalidade,Localidade.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) { // Obt�m o objeto da cole��o pesquisada Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade); // Exibe o c�digo e a descri��o pesquisa na p�gina httpServletRequest.setAttribute("idLocalidadeEncontrada","true"); inserirUnidadeOrganizacionalActionForm.setIdLocalidade(localidade.getId().toString()); inserirUnidadeOrganizacionalActionForm.setDescricaoLocalidade(localidade.getDescricao()); String codigo = inserirUnidadeOrganizacionalActionForm.getCodigoUnidadeTipo(); if(codigo.equals(UnidadeTipo.UNIDADE_TIPO_LOCALIDADE) || codigo.equals(UnidadeTipo.UNIDADE_TIPO_GERENCIA_REGIONAL)){ inserirUnidadeOrganizacionalActionForm.setDescricao(localidade.getDescricao()); } httpServletRequest.setAttribute("corLocalidade", "valor"); } else { httpServletRequest.setAttribute("corLocalidade","exception"); inserirUnidadeOrganizacionalActionForm.setDescricaoLocalidade("Localidade inexistente"); inserirUnidadeOrganizacionalActionForm.setIdLocalidade(""); } } //pesquisa a unidadeOrganizacional pelo id private void pesquisarUnidadeOrganizacional( HttpServletRequest httpServletRequest, ActionForward retorno, InserirUnidadeOrganizacionalActionForm inserirUnidadeOrganizacionalActionForm) { // Filtro para obter unidade organizacional ativo de id informado FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); String idUnidade = inserirUnidadeOrganizacionalActionForm.getIdUnidadeSuperior(); filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID, idUnidade)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoUnidade = Fachada.getInstancia() .pesquisar(filtroUnidadeOrganizacional,UnidadeOrganizacional.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoUnidade != null && !colecaoUnidade.isEmpty()) { // Obt�m o objeto da cole��o pesquisada UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidade); // Exibe o c�digo e a descri��o pesquisa na p�gina httpServletRequest.setAttribute("idUnidadeEncontrada","true"); inserirUnidadeOrganizacionalActionForm.setIdUnidadeSuperior(unidadeOrganizacional.getId().toString()); inserirUnidadeOrganizacionalActionForm.setDescricaoUnidadeSuperior(unidadeOrganizacional.getDescricao()); httpServletRequest.setAttribute("corUnidadeSuperior", "valor"); } else { httpServletRequest.setAttribute("corUnidadeSuperior","exception"); inserirUnidadeOrganizacionalActionForm.setDescricaoUnidadeSuperior("Unidade Organizacional inexistente"); inserirUnidadeOrganizacionalActionForm.setIdUnidadeSuperior(""); } } /** * Pesquisa Municipio * @author Arthur Carvalho * @date 07-04-2010 * @param idMunicipioFiltro */ private void pesquisarMunicipio(String idMunicipio, InserirUnidadeOrganizacionalActionForm inserirUnidadeOrganizacionalActionForm, Fachada fachada, HttpServletRequest httpServletRequest) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples(FiltroMunicipio.ID, idMunicipio)); filtroMunicipio.adicionarParametro(new ParametroSimples(FiltroMunicipio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoMunicipio = fachada.pesquisar(filtroMunicipio, Municipio.class .getName()); Municipio municipio = (Municipio) Util.retonarObjetoDeColecao(colecaoMunicipio); if ( municipio != null && !municipio.equals("") ) { // O municipio foi encontrado inserirUnidadeOrganizacionalActionForm.setIdMunicipio(municipio.getId().toString()); inserirUnidadeOrganizacionalActionForm.setDescricaoMunicipio(municipio.getNome()); httpServletRequest.setAttribute("idMunicipio", "true"); //httpServletRequest.setAttribute("nomeCampo","idBairroFiltro"); } else { inserirUnidadeOrganizacionalActionForm.setIdMunicipio(""); httpServletRequest.setAttribute("idMunicipio", "exception"); inserirUnidadeOrganizacionalActionForm.setDescricaoMunicipio("Munic�pio inexistente"); httpServletRequest.setAttribute("nomeCampo","idMunicipio"); } } /** * Controla as manipula��es da cole��o de Municipio da Unidade Organizacional * @author Arthur Carvalho * @date 07/04/2010 * */ private ArrayList controlaColecaoMunicipio(InserirUnidadeOrganizacionalActionForm inserirUnidadeOrganizacionalActionForm, Fachada fachada, HttpSession sessao, HttpServletRequest httpServletRequest){ ArrayList colecaoMunicipioSelecionado = null; Municipio municipio = new Municipio(); UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional(); //Caso a colecao ja possua municipios if (sessao.getAttribute("colecaoMunicipioSelecionado") != null && !sessao.getAttribute("colecaoMunicipioSelecionado").equals("")){ colecaoMunicipioSelecionado = (ArrayList) sessao.getAttribute("colecaoMunicipioSelecionado"); }else{ colecaoMunicipioSelecionado = new ArrayList(); } //Verifica se o usuario clicou no botao adicionar if ( httpServletRequest.getParameter("acao") != null && httpServletRequest.getParameter("acao").equals("adicionar") ) { // [FS0014] � Verificar vincula��o do munic�pio a outra unidade repavimentadora FiltroUnidadeOrganizacionalMunicipio filtro = new FiltroUnidadeOrganizacionalMunicipio(); filtro.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacionalMunicipio.ID_MUNICIPIO, inserirUnidadeOrganizacionalActionForm.getIdMunicipio() ) ); filtro.adicionarParametro(new ParametroNulo( FiltroUnidadeOrganizacionalMunicipio.DATA_DESVINCULACAO)); filtro.adicionarCaminhoParaCarregamentoEntidade( FiltroUnidadeOrganizacionalMunicipio.ID_MUNICIPIO); filtro.adicionarCaminhoParaCarregamentoEntidade( FiltroUnidadeOrganizacionalMunicipio.ID_UNIDADE_REPAVIMENTADORA); Collection<UnidadeOrganizacionalMunicipio> colecaoUnidOrgMunicipio = fachada.pesquisar( filtro, UnidadeOrganizacionalMunicipio.class.getName()); if ( colecaoUnidOrgMunicipio != null && !colecaoUnidOrgMunicipio.isEmpty() ) { UnidadeOrganizacionalMunicipio unidadeMunicipio = (UnidadeOrganizacionalMunicipio) Util.retonarObjetoDeColecao(colecaoUnidOrgMunicipio); municipio = pesquisarMunicipio(unidadeMunicipio.getIdMunicipio().getId().toString(), municipio, fachada); unidadeOrganizacional = pesquisarUnidadeOrganizacional(unidadeMunicipio.getIdUnidadeRepavimentadora(), fachada, unidadeOrganizacional ); throw new ActionServletException("atencao.monicipio_reposabilidade_da_unidade", municipio.getNome(), unidadeOrganizacional.getDescricao() ); } //Pesquisa o Municipio a ser adicionado municipio = pesquisarMunicipio(inserirUnidadeOrganizacionalActionForm.getIdMunicipio(), municipio, fachada); //[FS0013] � Verificar exist�ncia do munic�pio na lista Iterator iteratorMunicipio = colecaoMunicipioSelecionado.iterator(); while (iteratorMunicipio.hasNext()) { Municipio municipioJaCadastrado = (Municipio) iteratorMunicipio.next(); if ( municipioJaCadastrado.getId().intValue() == municipio.getId().intValue() ) { throw new ActionServletException("atencao.municipio_cadastrado", null, municipioJaCadastrado.getNome()); } } colecaoMunicipioSelecionado.add(municipio); inserirUnidadeOrganizacionalActionForm.setIdMunicipio(""); inserirUnidadeOrganizacionalActionForm.setDescricaoMunicipio(""); } //Remover o Contrato Tarifa da Colecao if ( httpServletRequest.getParameter("acao") != null && httpServletRequest.getParameter("acao").equals("remover") ) { int obj = new Integer(httpServletRequest.getParameter("id")).intValue(); if (colecaoMunicipioSelecionado.size() >= obj) { colecaoMunicipioSelecionado.remove(obj-1); } } //Limpar Form if ( httpServletRequest.getParameter("acao") != null && httpServletRequest.getParameter("acao").equals("limparForm") ) { colecaoMunicipioSelecionado.removeAll(colecaoMunicipioSelecionado); } return colecaoMunicipioSelecionado; } private Municipio pesquisarMunicipio( String idMunicipio, Municipio municipio, Fachada fachada ){ FiltroMunicipio filtroMun = new FiltroMunicipio(); filtroMun.adicionarParametro(new ParametroSimples(FiltroMunicipio.ID, idMunicipio)); Collection<Municipio> colecaoMunicipio = fachada.pesquisar(filtroMun, Municipio.class.getName()); if ( colecaoMunicipio != null && !colecaoMunicipio.isEmpty() ) { municipio = (Municipio) Util.retonarObjetoDeColecao(colecaoMunicipio); } else { //[FS0012] � Verificar exist�ncia do munic�pio throw new ActionServletException("atencao.municipio.inexistente"); } return municipio; } private UnidadeOrganizacional pesquisarUnidadeOrganizacional( UnidadeOrganizacional unidadeRepavimentadora, Fachada fachada, UnidadeOrganizacional unidadeOrganizacional){ FiltroUnidadeOrganizacional filtro = new FiltroUnidadeOrganizacional(); filtro.adicionarParametro(new ParametroSimples(FiltroUnidadeOrganizacional.ID, unidadeRepavimentadora.getId())); Collection<UnidadeOrganizacional> colecaoUnidadeOrganizacional = fachada.pesquisar( filtro, UnidadeOrganizacional.class.getName()); unidadeOrganizacional = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidadeOrganizacional); return unidadeOrganizacional; } }