package gcom.gui.cadastro.localidade; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroLocalidadeClasse; import gcom.cadastro.localidade.FiltroLocalidadePorte; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.LocalidadeClasse; import gcom.cadastro.localidade.LocalidadePorte; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.hidrometro.FiltroHidrometroLocalArmazenagem; import gcom.micromedicao.hidrometro.HidrometroLocalArmazenagem; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoCampos; import gcom.util.filtro.ParametroSimples; 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; public class ExibirInserirLocalidadeAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o retorno ActionForward retorno = actionMapping .findForward("exibirInserirLocalidade"); //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); InserirLocalidadeActionForm inserirLocalidadeActionForm = (InserirLocalidadeActionForm) actionForm; String objetoConsulta = (String) httpServletRequest.getParameter("objetoConsulta"); String limparForm = (String) httpServletRequest.getParameter("limparCampos"); String removerEndereco = (String) httpServletRequest.getParameter("removerEndereco"); Collection colecaoPesquisa = null; //Valida��o do codigo da localidade que ficar� como Elo. if (objetoConsulta != null && !objetoConsulta.trim().equalsIgnoreCase("")) { switch (Integer.parseInt(objetoConsulta)) { //Elo - Localidade case 1: //Recebe o valor do campo id Unidade de Negocio do formul�rio. String idUnidadeNegocio = inserirLocalidadeActionForm.getIdUnidadeNegocio(); // O elo informado deve pertencer � mesma unidade // de negocio da localidade que est� sendo inserida FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.setCampoOrderBy(FiltroLocalidade.DESCRICAO); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID_UNIDADE_NEGOCIO, idUnidadeNegocio)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLocalidade.adicionarParametro(new ComparacaoCampos( FiltroLocalidade.ID, "localidade")); //Retorna localidade - Elo colecaoPesquisa = this.getFachada().pesquisar(filtroLocalidade,Localidade.class.getName()); sessao.setAttribute("colecaoElo",colecaoPesquisa); break; //Gerente da Localidade case 2: this.pesquisarCliente(inserirLocalidadeActionForm); break; case 3: this.pesquisarMunicipioPrincipal(inserirLocalidadeActionForm); break; default: break; } } else { if (sessao.getAttribute("colecaoUnidadeNegocio") == null || sessao.getAttribute("colecaoClasse") == null || sessao.getAttribute("colecaoPorte") == null) { // Carregamento inicial do formul�rio. FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME_ABREVIADO,FiltroUnidadeNegocio.NOME); filtroUnidadeNegocio.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); //Retorna Localidade_Classe Collection colecaoUnidadeNegocio = this.getFachada().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); if (colecaoUnidadeNegocio == null || colecaoUnidadeNegocio.isEmpty()) { //Nenhum registro na tabela gerencia_regional foi // encontrada throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "Unidade de Neg�cio"); } else { UnidadeNegocio unidadeNegocio = null; Iterator iterator = colecaoUnidadeNegocio.iterator(); while (iterator.hasNext()) { unidadeNegocio = (UnidadeNegocio) iterator.next(); String descUnidadeNegocio = unidadeNegocio.getNomeAbreviado() + "-" + unidadeNegocio.getNome(); unidadeNegocio.setNome(descUnidadeNegocio); } sessao.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio); } FiltroLocalidadeClasse filtroLocalidadeClasse = new FiltroLocalidadeClasse(); filtroLocalidadeClasse.setCampoOrderBy(FiltroLocalidadeClasse.DESCRICAO); filtroLocalidadeClasse.adicionarParametro(new ParametroSimples( FiltroLocalidadeClasse.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); //Retorna Localidade_Classe colecaoPesquisa = this.getFachada().pesquisar(filtroLocalidadeClasse, LocalidadeClasse.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { //Nenhum registro na tabela localidade_classe foi // encontrado throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "Localidade_Classe"); } else { sessao.setAttribute("colecaoClasse", colecaoPesquisa); } FiltroLocalidadePorte filtroLocalidadePorte = new FiltroLocalidadePorte(); filtroLocalidadePorte.setCampoOrderBy(FiltroLocalidadePorte.DESCRICAO); filtroLocalidadePorte.adicionarParametro(new ParametroSimples( FiltroLocalidadePorte.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); //Retorna Localidade_Porte colecaoPesquisa = this.getFachada().pesquisar(filtroLocalidadePorte, LocalidadePorte.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { //Nenhum registro na tabela localidade_porte foi encontrado throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "Localidade_Porte"); } else { sessao.setAttribute("colecaoPorte", colecaoPesquisa); } //hidrometro local armazenagem FiltroHidrometroLocalArmazenagem filtroHidrometroLocalArmazenagem = new FiltroHidrometroLocalArmazenagem(); filtroHidrometroLocalArmazenagem.setCampoOrderBy(FiltroHidrometroLocalArmazenagem.DESCRICAO); filtroHidrometroLocalArmazenagem.adicionarParametro(new ParametroSimples( FiltroHidrometroLocalArmazenagem.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); //Retorna local de armazenagem do hidrometro colecaoPesquisa = this.getFachada().pesquisar(filtroHidrometroLocalArmazenagem, HidrometroLocalArmazenagem.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { //Nenhum registro na tabela hidrometro_local_armazenagem foi encontrado throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "Local de Armazenagem do Hidr�metro"); } else { sessao.setAttribute("colecaoHidrometroLocalArmazenagem", colecaoPesquisa); } } } //Codigo Cliente if(inserirLocalidadeActionForm.getGerenteLocalidade() != null && !inserirLocalidadeActionForm.getGerenteLocalidade().equals("") && inserirLocalidadeActionForm.getNomeGerente() != null && !inserirLocalidadeActionForm.getNomeGerente().equals("")){ httpServletRequest.setAttribute("gerenteLocalidadeEncontrado","true"); limparForm = "1"; } //Munic�pio if(inserirLocalidadeActionForm.getMunicipio() != null && !inserirLocalidadeActionForm.getMunicipio().equals("") && inserirLocalidadeActionForm.getDescricaoMunicipio() != null && !inserirLocalidadeActionForm.getDescricaoMunicipio().equals("")){ httpServletRequest.setAttribute("corMunicipio","true"); limparForm = "1"; } if ((limparForm == null || limparForm.trim().equalsIgnoreCase("")) || (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer").equalsIgnoreCase("S"))) { //-------------- bt DESFAZER --------------- //Estado Inicial do formulario //Retorna o maior id de Localidade existente int id = this.getFachada().pesquisarMaximoIdLocalidade(); // Acrescenta 1 no valor do id para setar o primeiro id vazio para o usu�rio id = (id + 1); inserirLocalidadeActionForm.setLocalidadeID("" + id); httpServletRequest.setAttribute("nomeCampo", "localidadeID"); //Limpando o formulario inserirLocalidadeActionForm.setEmail(""); inserirLocalidadeActionForm.setFax(""); //inserirLocalidadeActionForm.setLocalidadeID(""); inserirLocalidadeActionForm.setLocalidadeNome(""); inserirLocalidadeActionForm.setMenorConsumo(""); inserirLocalidadeActionForm.setRamal(""); inserirLocalidadeActionForm.setTelefone(""); // Campos do tipo lista no formul�rio inserirLocalidadeActionForm.setEloID("" + ConstantesSistema.NUMERO_NAO_INFORMADO); inserirLocalidadeActionForm.setClasseID("" + ConstantesSistema.NUMERO_NAO_INFORMADO); inserirLocalidadeActionForm.setPorteID("" + ConstantesSistema.NUMERO_NAO_INFORMADO); inserirLocalidadeActionForm.setHidrometroLocalArmazenagem("" + ConstantesSistema.NUMERO_NAO_INFORMADO); inserirLocalidadeActionForm.setIdUnidadeNegocio("" + ConstantesSistema.NUMERO_NAO_INFORMADO); inserirLocalidadeActionForm.setGerenteLocalidade(null); inserirLocalidadeActionForm.setNomeGerente(null); inserirLocalidadeActionForm.setIcms(""); inserirLocalidadeActionForm.setCentroCusto(""); inserirLocalidadeActionForm.setDescricaoMunicipio(null); inserirLocalidadeActionForm.setMunicipio(null); inserirLocalidadeActionForm.setSede("2"); inserirLocalidadeActionForm.setInformatizada("2"); //Limpa o endere�o da sess�o if (sessao.getAttribute("colecaoEnderecos") != null) { sessao.removeAttribute("colecaoEnderecos"); } sessao.removeAttribute("tipoPesquisaRetorno"); } //Remove o endereco informado. if (removerEndereco != null && !removerEndereco.trim().equalsIgnoreCase("")) { if (sessao.getAttribute("colecaoEnderecos") != null) { Collection enderecos = (Collection) sessao .getAttribute("colecaoEnderecos"); if (!enderecos.isEmpty()) { enderecos.remove(enderecos.iterator().next()); } } } if ( httpServletRequest.getParameter("verificarLocalidadeSede")!= null && httpServletRequest.getParameter("verificarLocalidadeSede").equals("sim")){ if ( inserirLocalidadeActionForm.getSede() != null && inserirLocalidadeActionForm.getSede().equals("1")){ FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); Collection colecaoLocalidade = this.getFachada().pesquisar(filtroLocalidade,Localidade.class.getName()); if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()){ Iterator colecaoLocalidadeIterator = colecaoLocalidade.iterator(); Localidade localidade = null; while ( colecaoLocalidadeIterator.hasNext() ){ localidade = (Localidade) colecaoLocalidadeIterator.next(); if ( localidade.getIndicadorLocalidadeSede() == 1){ String localidadeSede = ""+localidade.getId(); throw new ActionServletException( "atencao.ja_existe_localidade_sede", null, localidadeSede); } } } } } //devolve o mapeamento de retorno return retorno; } /** * Pesquisa Cliente * * @author Rafael Pinto * @date 15/08/2006 */ private void pesquisarCliente(InserirLocalidadeActionForm form) { FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro( new ParametroSimples(FiltroCliente.ID, new Integer(form.getGerenteLocalidade()))); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoCliente = this.getFachada().pesquisar(filtroCliente,Cliente.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoCliente != null && !colecaoCliente.isEmpty()) { // Obt�m o objeto da cole��o pesquisada Cliente cliente = (Cliente) Util.retonarObjetoDeColecao(colecaoCliente); form.setGerenteLocalidade(cliente.getId().toString()); form.setNomeGerente(cliente.getNome()); } else { form.setGerenteLocalidade(""); form.setNomeGerente("Cliente inexistente"); } } /** * Pesquisa Munic�pio Principal * * @author Diogo Peixoto * @date 29/03/2011 */ private void pesquisarMunicipioPrincipal(InserirLocalidadeActionForm form) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro( new ParametroSimples(FiltroMunicipio.ID, new Integer(form.getMunicipio()))); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoMunicipio = this.getFachada().pesquisar(filtroMunicipio,Municipio.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoMunicipio != null && !colecaoMunicipio.isEmpty()) { // Obt�m o objeto da cole��o pesquisada Municipio municipio = (Municipio) Util.retonarObjetoDeColecao(colecaoMunicipio); form.setMunicipio(municipio.getId().toString()); form.setDescricaoMunicipio(municipio.getNome()); } else { form.setMunicipio(""); form.setDescricaoMunicipio("Munic�pio inexistente"); } } }