package gcom.gui.seguranca.acesso.usuario; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroGrupo; import gcom.seguranca.acesso.Grupo; import gcom.seguranca.acesso.usuario.FiltroUsuarioAbrangencia; import gcom.seguranca.acesso.usuario.FiltroUsuarioGrupo; import gcom.seguranca.acesso.usuario.FiltroUsuarioSituacao; import gcom.seguranca.acesso.usuario.FiltroUsuarioTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAbrangencia; import gcom.seguranca.acesso.usuario.UsuarioGrupo; import gcom.seguranca.acesso.usuario.UsuarioSituacao; import gcom.seguranca.acesso.usuario.UsuarioTipo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; 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 ExibirAtualizarUsuarioDadosGeraisAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // FachadaBatch.getInstancia().gerarResumoSituacaoEspecialFaturamento(); ActionForward retorno = actionMapping.findForward("atualizarDadosGerais"); AtualizarUsuarioDadosGeraisActionForm form = (AtualizarUsuarioDadosGeraisActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); // Usuario que vai ser cadastrado no sistema, usado s� nessa funcionalidade Usuario usuarioParaAtualizar = (Usuario) sessao.getAttribute("usuarioParaAtualizar"); if (usuarioParaAtualizar == null) { usuarioParaAtualizar = new Usuario(); } if (usuarioParaAtualizar != null) { if ("".equals(form.getUsuarioTipo())) { // se o form nao tiver o usuario tipo if (usuarioParaAtualizar.getUsuarioTipo() != null && usuarioParaAtualizar.getUsuarioTipo().getId() != null) { form.setUsuarioTipo(usuarioParaAtualizar.getUsuarioTipo().getId().toString()); form.setIndicadorFuncionario("" + usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario()); form.setParmsUsuarioTipo(form.getUsuarioTipo() + ";" + form.getIndicadorFuncionario()); } } else { UsuarioTipo usuarioTipo = new UsuarioTipo(); usuarioTipo.setId(new Integer(form.getUsuarioTipo())); usuarioTipo.setIndicadorFuncionario(new Short(form.getIndicadorFuncionario())); usuarioParaAtualizar.setUsuarioTipo(usuarioTipo); /* * // indica se o tipo de usuario eh funcionario if * (UsuarioTipo.USUARIO_TIPO_FUNCIONARIO.equals(usuarioParaAtualizar * .getUsuarioTipo().getId())) { * form.setUsuarioTipoFuncionario("true"); form.setNome(""); * form.setIdLotacao(""); form.setNomeLotacao(""); } else { * form.setUsuarioTipoFuncionario("false"); * form.setIdFuncionario(""); form.setNomeFuncionario(""); } */ } if (usuarioParaAtualizar.getEmpresa() != null && usuarioParaAtualizar.getEmpresa().getId() != null) { form.setEmpresa(usuarioParaAtualizar.getEmpresa().getId().toString()); } if ("".equals(form.getIdFuncionario())) { if (usuarioParaAtualizar.getFuncionario() != null) { if (usuarioParaAtualizar.getFuncionario().getId() != null) form.setIdFuncionario(usuarioParaAtualizar.getFuncionario().getId().toString()); if (usuarioParaAtualizar.getFuncionario().getNome() != null) form.setNomeFuncionario(usuarioParaAtualizar.getFuncionario().getNome()); if (usuarioParaAtualizar.getFuncionario().getNumeroCpf() != null){ form.setCpf(usuarioParaAtualizar.getFuncionario().getNumeroCpf()); }else{ form.setCpf(""); } if (usuarioParaAtualizar.getFuncionario().getDataNascimento() != null){ form.setDataNascimento(Util.formatarData(usuarioParaAtualizar.getFuncionario().getDataNascimento())); }else{ form.setDataNascimento(""); } } } else if (form.getIdFuncionario() != null && (usuarioParaAtualizar.getFuncionario() == null || (usuarioParaAtualizar.getFuncionario() != null && usuarioParaAtualizar.getFuncionario().getId() != null && !form.getIdFuncionario().equals(usuarioParaAtualizar.getFuncionario().getId().toString())))) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples(FiltroFuncionario.ID, form.getIdFuncionario())); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade(FiltroFuncionario.UNIDADE_ORGANIZACIONAL); Collection coll = Fachada.getInstancia().pesquisar(filtroFuncionario, Funcionario.class.getSimpleName()); if (coll != null && !coll.isEmpty()) { Funcionario f = (Funcionario) coll.iterator().next(); usuarioParaAtualizar.setFuncionario(f); form.setIdFuncionario(f.getId().toString()); form.setNomeFuncionario(f.getNome()); form.setLogin(f.getId().toString()); form.setFuncionarioNaoEncontrada("false"); if (f.getNumeroCpf() != null){ form.setCpf(f.getNumeroCpf()); }else{ form.setCpf(""); } if (f.getDataNascimento() != null){ form.setDataNascimento(Util.formatarData(f.getDataNascimento())); }else{ form.setDataNascimento(""); } } else { usuarioParaAtualizar.setFuncionario(null); form.setIdFuncionario(""); form.setNomeFuncionario("Funcionario inexistente."); form.setNome(""); form.setFuncionarioNaoEncontrada("true"); form.setLogin(""); if (usuarioParaAtualizar.getCpf() != null){ form.setCpf(usuarioParaAtualizar.getCpf()); }else{ form.setCpf(""); } if (usuarioParaAtualizar.getDataNascimento() != null){ form.setDataNascimento(Util.formatarData(usuarioParaAtualizar.getDataNascimento())); }else{ form.setDataNascimento(""); } } } // Alterado por Vivianne Sousa 13/02/2007 //solicitado por Leonardo Vieira // caso for funcionario pegar os dados a partir do funcionario // if (usuarioParaAtualizar != null && usuarioParaAtualizar.getUsuarioTipo() != null // && usuarioParaAtualizar.getUsuarioTipo().getId() != null // && usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO) { // if (usuarioParaAtualizar.getFuncionario() != null) { // // if (usuarioParaAtualizar.getFuncionario().getNome() != null) // form.setNome(usuarioParaAtualizar.getFuncionario().getNome()); // // if (usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional() != null // && (form.getIdLotacao() == null || form.getIdLotacao().equals(""))) { // if (usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getId() != null ) // form.setIdLotacao(usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getId().toString()); // if (usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getDescricao() != null) // form.setNomeLotacao(usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getDescricao()); // } // } // } else { if ("".equals(form.getIdLotacao())) { // caso for funcionario pegar os dados a partir do funcionario if (usuarioParaAtualizar != null && usuarioParaAtualizar.getUsuarioTipo() != null && usuarioParaAtualizar.getUsuarioTipo().getId() != null && usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO) { if (usuarioParaAtualizar.getFuncionario() != null) { if (usuarioParaAtualizar.getFuncionario().getNome() != null) form.setNome(usuarioParaAtualizar.getFuncionario().getNome()); if (usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional() != null && (form.getIdLotacao() == null || form.getIdLotacao().equals(""))) { if (usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getId() != null ) form.setIdLotacao(usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getId().toString()); if (usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getDescricao() != null) form.setNomeLotacao(usuarioParaAtualizar.getFuncionario().getUnidadeOrganizacional().getDescricao()); } } } else if (usuarioParaAtualizar.getUnidadeOrganizacional() != null) { if (usuarioParaAtualizar.getUnidadeOrganizacional().getId() != null) form.setIdLotacao(usuarioParaAtualizar.getUnidadeOrganizacional().getId().toString()); if (usuarioParaAtualizar.getUnidadeOrganizacional().getDescricao() != null) form.setNomeLotacao(usuarioParaAtualizar.getUnidadeOrganizacional().getDescricao()); } } else if (form.getIdLotacao() != null && !form.getIdLotacao().equals("") && ((usuarioParaAtualizar.getUnidadeOrganizacional() == null) || (usuarioParaAtualizar.getUnidadeOrganizacional() != null && usuarioParaAtualizar.getUnidadeOrganizacional().getId() != null /*&& !form.getIdLotacao().equals(usuarioParaAtualizar.getUnidadeOrganizacional().getId().toString())*/))) { FiltroUnidadeOrganizacional filtroUnidadeEmpresa = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresa.adicionarParametro(new ParametroSimples(FiltroUnidadeOrganizacional.ID, form.getIdLotacao())); filtroUnidadeEmpresa.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo"); Collection coll = Fachada.getInstancia().pesquisar(filtroUnidadeEmpresa,UnidadeOrganizacional.class.getSimpleName()); if (coll != null && !coll.isEmpty()) { UnidadeOrganizacional unidadeEmpresa = (UnidadeOrganizacional) coll.iterator().next(); // caso o usu�rio que esteja efetuando a inser��o n�o // seja do grupo de administradores FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo(); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples(FiltroUsuarioGrupo.USUARIO_ID, usuario.getId())); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples(FiltroUsuarioGrupo.GRUPO_ID,Grupo.ADMINISTRADOR)); Collection colecaoUsuarioGrupo = Fachada.getInstancia().pesquisar(filtroUsuarioGrupo,UsuarioGrupo.class.getName()); if (colecaoUsuarioGrupo == null || colecaoUsuarioGrupo.isEmpty()) { // se a unidade de lotacao do usuario que estiver // efetuando seja diferente da unidade de lota��o informada if (usuario.getUnidadeOrganizacional() != null && usuario.getUnidadeOrganizacional().getId() != null && !usuario.getUnidadeOrganizacional().getId().equals(new Integer(form.getIdLotacao()))) { // recupera a unidade do usu�rio FiltroUnidadeOrganizacional filtroUnidadeEmpresaUsuario = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresaUsuario.adicionarParametro(new ParametroSimples(FiltroUnidadeOrganizacional.ID, usuario.getUnidadeOrganizacional().getId())); filtroUnidadeEmpresaUsuario.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo"); Collection colecaoUnidadeEmpresa = Fachada.getInstancia().pesquisar(filtroUnidadeEmpresaUsuario, UnidadeOrganizacional.class.getName()); UnidadeOrganizacional unidadeEmpresaUsuario = null; if (colecaoUnidadeEmpresa != null && !colecaoUnidadeEmpresa.isEmpty()) { unidadeEmpresaUsuario = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidadeEmpresa); } // se o nivel da unidade de lota��o do usu�rio que // estiver efetuando a inser��o seja maior ou igual // ao nivel de unidade de lota��o informada if (unidadeEmpresaUsuario != null) { if (unidadeEmpresaUsuario.getUnidadeTipo().getNivel() != null && unidadeEmpresa.getUnidadeTipo().getNivel() != null) { if (unidadeEmpresaUsuario.getUnidadeTipo().getNivel().intValue() >= unidadeEmpresa.getUnidadeTipo().getNivel().intValue()) { throw new ActionServletException("atencao.usuario.sem.permissao", usuario.getLogin(),unidadeEmpresa.getDescricao()); } } else { throw new ActionServletException("atencao.usuario.sem.permissao", usuario.getLogin(),unidadeEmpresa.getDescricao()); } // ou a unidade superior da unidade de // lota��o // informada seja diferente da unidade de // lota��o do usu�rio // enquanto o nivel superior da unidade de // lota��o n�o esteja no mesmo nivel da // unidade // de lota��o do usu�rio boolean mesmoNivel = true; int idNivelUsuario = unidadeEmpresaUsuario.getUnidadeTipo().getNivel().intValue(); UnidadeOrganizacional unidadeEmpresaSuperior = null; while (mesmoNivel) { Integer idUnidadeEmpresaSuperior = null; if (unidadeEmpresaSuperior == null) { if (unidadeEmpresa.getUnidadeSuperior() != null && !unidadeEmpresa.getUnidadeSuperior().equals("")) { idUnidadeEmpresaSuperior = unidadeEmpresa.getUnidadeSuperior().getId(); } } else { if (unidadeEmpresaSuperior.getUnidadeSuperior() != null && !unidadeEmpresaSuperior.getUnidadeSuperior().equals("")) { idUnidadeEmpresaSuperior = unidadeEmpresaSuperior.getUnidadeSuperior().getId(); } } if (idUnidadeEmpresaSuperior == null) { throw new ActionServletException("atencao.usuario.sem.permissao", usuario.getLogin(),unidadeEmpresa.getDescricao()); } // recupera a unidade do usu�rio FiltroUnidadeOrganizacional filtroUnidadeEmpresaSuperior = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresaSuperior.adicionarParametro(new ParametroSimples(FiltroUnidadeOrganizacional.ID, idUnidadeEmpresaSuperior)); filtroUnidadeEmpresaSuperior.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo"); Collection colecaoUnidadeEmpresaSuperior = Fachada.getInstancia().pesquisar( filtroUnidadeEmpresaSuperior, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeEmpresaSuperior != null && !colecaoUnidadeEmpresaSuperior.isEmpty()) { unidadeEmpresaSuperior = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidadeEmpresaSuperior); } if (unidadeEmpresaSuperior != null) { if (unidadeEmpresaSuperior.getUnidadeTipo().getNivel() == null || unidadeEmpresaSuperior.getUnidadeTipo().getNivel().equals("")) { throw new ActionServletException("atencao.usuario.sem.permissao", usuario.getLogin(),unidadeEmpresa.getDescricao()); } // caso seja o mesmo nivel if (unidadeEmpresaSuperior.getUnidadeTipo().getNivel().intValue() == idNivelUsuario) { mesmoNivel = false; // caso o id da unidade empresa informado for diferente do id // da unidade empresa do usu�rio no mesmo nivel if (!unidadeEmpresaSuperior.getId().equals(unidadeEmpresaUsuario.getId())) { throw new ActionServletException("atencao.usuario.sem.permissao", usuario.getLogin(), unidadeEmpresa.getDescricao()); } } } } } } } usuarioParaAtualizar.setUnidadeOrganizacional(unidadeEmpresa); form.setIdLotacao(unidadeEmpresa.getId().toString()); form.setNomeLotacao(unidadeEmpresa.getDescricao()); form.setLotacaoNaoEncontrada("false"); if (usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO){ Funcionario funcionario = usuarioParaAtualizar.getFuncionario(); funcionario.setUnidadeOrganizacional(unidadeEmpresa); usuarioParaAtualizar.setFuncionario(funcionario); } } else { usuarioParaAtualizar.setUnidadeOrganizacional(null); form.setIdLotacao(""); form.setNomeLotacao("Lota��o inexistente."); form.setLotacaoNaoEncontrada("true"); } } else if (usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario() != UsuarioTipo.INDICADOR_FUNCIONARIO){ if (usuarioParaAtualizar.getUnidadeOrganizacional() != null && !usuarioParaAtualizar.getUnidadeOrganizacional().equals("")) { form.setNomeLotacao(usuarioParaAtualizar.getUnidadeOrganizacional().getDescricao()); } } if (usuarioParaAtualizar.getNomeUsuario() != null) form.setNome(usuarioParaAtualizar.getNomeUsuario()); if (form.getDataInicial() == null || form.getDataInicial().equals("")){ if (usuarioParaAtualizar.getDataCadastroInicio() != null) form.setDataInicial(Util.formatarData(usuarioParaAtualizar.getDataCadastroInicio())); } if (form.getDataFinal() == null || form.getDataFinal().equals("")){ if (usuarioParaAtualizar.getDataCadastroFim() != null) form.setDataFinal(Util.formatarData(usuarioParaAtualizar.getDataCadastroFim())); } } if(form.getIdFuncionario() == null || form.getIdFuncionario().equals("")){ if (usuarioParaAtualizar.getCpf() != null) form.setCpf(usuarioParaAtualizar.getCpf()); if (usuarioParaAtualizar.getDataNascimento() != null) form.setDataNascimento(Util.formatarData(usuarioParaAtualizar.getDataNascimento())); } if (usuarioParaAtualizar.getLogin() != null) form.setLogin(usuarioParaAtualizar.getLogin()); if (form.getEmail() == null || form.getEmail().equals("")){ if (usuarioParaAtualizar.getDescricaoEmail() != null) form.setEmail(usuarioParaAtualizar.getDescricaoEmail()); } form.setEmail(form.getEmail().toLowerCase()); if(usuarioParaAtualizar.getIndicadorUsuarioBatch() != null){ form.setIndicadorUsuarioBatch(usuarioParaAtualizar.getIndicadorUsuarioBatch()); } if(usuarioParaAtualizar.getIndicadorUsuarioInternet() != null){ form.setIndicadorUsuarioInternet(usuarioParaAtualizar.getIndicadorUsuarioInternet()); } // } if (sessao.getAttribute("collEmpresa") == null || !sessao.getAttribute("collEmpresa").equals("")) { FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection coll = Fachada.getInstancia().pesquisar(filtroEmpresa, Empresa.class.getSimpleName()); if (coll == null || coll.isEmpty()) { throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null," Empresa est� "); } sessao.setAttribute("collEmpresa", coll); } if (sessao.getAttribute("collUsuarioTipo") == null || !sessao.getAttribute("collUsuarioTipo").equals("")) { FiltroUsuarioTipo filtroUsuarioTipo = new FiltroUsuarioTipo(); // caso o usu�rio n�o seja administrador ent�o if (!usuario.getUsuarioTipo().getId().equals(UsuarioTipo.USUARIO_TIPO_ADMINISTRADOR)) { // n�o seta na cole��o de usu�rio tipo o tipo administrador filtroUsuarioTipo.adicionarParametro(new ParametroSimplesDiferenteDe( FiltroUsuarioTipo.ID, UsuarioTipo.USUARIO_TIPO_ADMINISTRADOR)); } filtroUsuarioTipo.adicionarParametro(new ParametroSimples( FiltroUsuarioTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection coll = Fachada.getInstancia().pesquisar(filtroUsuarioTipo, UsuarioTipo.class.getSimpleName()); if (coll == null || coll.isEmpty()) { throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null, " Tipo do Us�ario est� "); } sessao.setAttribute("collUsuarioTipo", coll); } // carregando 2� aba String[] grupo = (String[]) sessao.getAttribute("grupo"); if (usuarioParaAtualizar != null) { if (grupo != null) { form.setGrupo(grupo); } if (usuarioParaAtualizar.getUsuarioAbrangencia() != null && usuarioParaAtualizar.getUsuarioAbrangencia().getId() != null) form.setAbrangencia(usuarioParaAtualizar.getUsuarioAbrangencia().getId().toString()); if (usuarioParaAtualizar.getGerenciaRegional() != null && usuarioParaAtualizar.getGerenciaRegional().getId() != null) form.setGerenciaRegional(usuarioParaAtualizar.getGerenciaRegional().getId().toString()); if (usuarioParaAtualizar.getUnidadeNegocio() != null && usuarioParaAtualizar.getUnidadeNegocio().getId() != null) form.setUnidadeNegocio(usuarioParaAtualizar.getUnidadeNegocio().getId().toString()); if ("".equals(form.getIdElo())) { if (usuarioParaAtualizar.getLocalidadeElo() != null) { if (usuarioParaAtualizar.getLocalidadeElo().getId() != null) form.setIdElo(usuarioParaAtualizar.getLocalidadeElo().getId().toString()); if (usuarioParaAtualizar.getLocalidadeElo().getDescricao() != null) form.setNomeElo(usuarioParaAtualizar.getLocalidadeElo().getDescricao()); } } if ("".equals(form.getIdLocalidade())) { if (usuarioParaAtualizar.getLocalidade() != null) { if (usuarioParaAtualizar.getLocalidade().getId() != null) form.setIdLocalidade(usuarioParaAtualizar.getLocalidade().getId().toString()); if (usuarioParaAtualizar.getLocalidade().getDescricao() != null) form.setNomeLocalidade(usuarioParaAtualizar.getLocalidade().getDescricao()); } } if (usuarioParaAtualizar.getUsuarioSituacao() != null && usuarioParaAtualizar.getUsuarioSituacao().getId() != null) form.setSituacao(usuarioParaAtualizar.getUsuarioSituacao().getId().toString()); } Collection colecaoUsuarioAbrangencia = null; if (sessao.getAttribute("collUsuarioAbrangencia") == null || sessao.getAttribute("collUsuarioAbrangencia").equals("")) { // caso o usu�rio que esteja efetuando a inser��o n�o // seja do grupo de administradores FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo(); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples(FiltroUsuarioGrupo.USUARIO_ID, usuario.getId())); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples(FiltroUsuarioGrupo.GRUPO_ID, Grupo.ADMINISTRADOR)); Collection colecaoUsuarioGrupo = Fachada.getInstancia().pesquisar(filtroUsuarioGrupo, UsuarioGrupo.class.getName()); if (colecaoUsuarioGrupo != null && !colecaoUsuarioGrupo.isEmpty()) { colecaoUsuarioAbrangencia = Fachada.getInstancia().pesquisar( new FiltroUsuarioAbrangencia(), UsuarioAbrangencia.class.getSimpleName()); } else { Integer idUsuarioAbrangencia = usuario.getUsuarioAbrangencia().getId(); FiltroUsuarioAbrangencia filtroUsuarioAbrangencia = new FiltroUsuarioAbrangencia(); filtroUsuarioAbrangencia.adicionarParametro(new ParametroSimples(FiltroUsuarioAbrangencia.ID, idUsuarioAbrangencia)); colecaoUsuarioAbrangencia = Fachada.getInstancia().pesquisar(filtroUsuarioAbrangencia, UsuarioAbrangencia.class.getName()); // caso exista mais de uma abrang�ncia na pesquisa passando o id da abrang�ncia como superior boolean mesmoNivel = true; // cria um boolean para verificar se existe o usus�rio abrangencia // que est� sendo atualizado na cole��o de usuarios abrangencia // permitido para o usu�rio logado do usu�rio boolean achouUsuarioAbrangencia = false; Collection usuarioAbrangenciaParaPesquisa = new ArrayList(); Iterator iteratorUsuarioAbrangencia = colecaoUsuarioAbrangencia.iterator(); while (iteratorUsuarioAbrangencia.hasNext()) { UsuarioAbrangencia usuarioAbrangencia = (UsuarioAbrangencia) iteratorUsuarioAbrangencia.next(); if (usuarioParaAtualizar.getUsuarioAbrangencia() != null && usuarioAbrangencia.getId().equals(usuarioParaAtualizar.getUsuarioAbrangencia().getId())) { achouUsuarioAbrangencia = true; } } usuarioAbrangenciaParaPesquisa.addAll(colecaoUsuarioAbrangencia); // enquanto exista mais usu�rio abrang�ncia(s) while (mesmoNivel) { Collection colecaoUsuarioAbrangenciaPorSuperior = Fachada.getInstancia() .pesquisarUsuarioAbrangenciaPorSuperior(usuarioAbrangenciaParaPesquisa, idUsuarioAbrangencia); if (colecaoUsuarioAbrangenciaPorSuperior != null && !colecaoUsuarioAbrangenciaPorSuperior.isEmpty()) { Iterator iteratorUsuarioAbrangenciaSuperior = colecaoUsuarioAbrangenciaPorSuperior.iterator(); // verifica se existe na cole��o de usuarios // abrang�ncias o usuario abrang�ncia do usuario atualizar while (iteratorUsuarioAbrangenciaSuperior.hasNext()) { UsuarioAbrangencia usuarioAbrangencia = (UsuarioAbrangencia) iteratorUsuarioAbrangenciaSuperior.next(); if (usuarioParaAtualizar.getUsuarioAbrangencia() != null && usuarioAbrangencia.getId().equals(usuarioParaAtualizar.getUsuarioAbrangencia().getId())) { achouUsuarioAbrangencia = true; } } colecaoUsuarioAbrangencia.addAll(colecaoUsuarioAbrangenciaPorSuperior); usuarioAbrangenciaParaPesquisa = new ArrayList(); usuarioAbrangenciaParaPesquisa.addAll(colecaoUsuarioAbrangenciaPorSuperior); } else { mesmoNivel = false; } } // se n�o achou o usu�rio abrangencia do usu�rio que est� // atualizando na cole��o de usu�rios abrangencias ent�o inseri // essa abrangencia na cole��o e n�o permite altera��o if (!achouUsuarioAbrangencia) { filtroUsuarioAbrangencia = new FiltroUsuarioAbrangencia(); filtroUsuarioAbrangencia.adicionarParametro(new ParametroSimples(FiltroUsuarioAbrangencia.ID, usuarioParaAtualizar.getUsuarioAbrangencia().getId())); Collection colecaoUsuarioAbrangenciaAdicionar = Fachada.getInstancia().pesquisar(filtroUsuarioAbrangencia,UsuarioAbrangencia.class.getName()); colecaoUsuarioAbrangencia.addAll(colecaoUsuarioAbrangenciaAdicionar); sessao.setAttribute("desabilitaUsuarioAbrangencia", "1"); } } // caso exista mais de uma abrang�ncia na pesquisa passando o id da // abrang�ncia como superior sessao.setAttribute("collUsuarioAbrangencia", colecaoUsuarioAbrangencia); Collection colecaoGrupo = null; // caso o usu�rio que esteja efetuando a inser��o n�o // seja // do grupo de administradores if (colecaoUsuarioGrupo != null && !colecaoUsuarioGrupo.isEmpty()) { FiltroGrupo filtroGrupo = new FiltroGrupo(); filtroGrupo.setCampoOrderBy(FiltroGrupo.DESCRICAO); filtroGrupo.adicionarParametro(new ParametroSimples(FiltroGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); colecaoGrupo = Fachada.getInstancia().pesquisar(filtroGrupo, Grupo.class.getSimpleName()); } else { Collection colecaoGrupoUsuario = (Collection)sessao.getAttribute("colecaoGruposUsuario"); colecaoGrupo = new ArrayList(); Collection colecaoGrupoParaSelecao = Fachada.getInstancia().pesquisarGruposUsuarioAcesso(colecaoGrupoUsuario); colecaoGrupo.addAll(colecaoGrupoParaSelecao); boolean primeiraVez = true; String grupoNaoDesabilitado = ""; for (int i = 0; i < grupo.length; i++) { boolean achouGrupo = true; Iterator iteratorGrupo = colecaoGrupoParaSelecao.iterator(); while (iteratorGrupo.hasNext()) { Grupo grupoParaAtualizar = (Grupo) iteratorGrupo.next(); if (new Integer(grupo[i]).equals(grupoParaAtualizar.getId())) { achouGrupo = false; } } if (achouGrupo) { if (primeiraVez) { grupoNaoDesabilitado = grupoNaoDesabilitado + grupo[i]; primeiraVez = false; } else { grupoNaoDesabilitado = grupoNaoDesabilitado + "," + grupo[i]; } FiltroGrupo filtroGrupo = new FiltroGrupo(); filtroGrupo.setCampoOrderBy(FiltroGrupo.DESCRICAO); filtroGrupo.adicionarParametro(new ParametroSimples(FiltroGrupo.ID, grupo[i])); Collection colecaoGrupoSelecionado = Fachada.getInstancia().pesquisar(filtroGrupo, Grupo.class.getName()); Grupo grupoSelecionado = (Grupo) Util.retonarObjetoDeColecao(colecaoGrupoSelecionado); colecaoGrupo.add(grupoSelecionado); } } form.setGrupoNaoDesabilitados(grupoNaoDesabilitado); } sessao.setAttribute("collGrupo", colecaoGrupo); } if (sessao.getAttribute("collGerenciaRegional") == null || sessao.getAttribute("collGerenciaRegional").equals("")) { FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoGerenciaRegional = Fachada.getInstancia() .pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getSimpleName()); sessao.setAttribute("collGerenciaRegional", colecaoGerenciaRegional); } if (sessao.getAttribute("collUnidadeNegocio") == null || sessao.getAttribute("collUnidadeNegocio").equals("")) { FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUnidadeNegocio = Fachada.getInstancia() .pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getSimpleName()); sessao.setAttribute("collUnidadeNegocio", colecaoUnidadeNegocio); } if (sessao.getAttribute("collUsuarioSituacao") == null || sessao.getAttribute("collUsuarioSituacao").equals("")) { FiltroUsuarioSituacao filtroUsuarioSituacao = new FiltroUsuarioSituacao(FiltroUsuarioSituacao.DESCRICAO); filtroUsuarioSituacao.adicionarParametro(new ParametroSimples( FiltroUsuarioSituacao.INDICADOR_DE_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUsuarioSituacao = Fachada.getInstancia() .pesquisar(filtroUsuarioSituacao, UsuarioSituacao.class.getSimpleName()); sessao.setAttribute("collUsuarioSituacao", colecaoUsuarioSituacao); } sessao.setAttribute("usuarioParaAtualizar", usuarioParaAtualizar); sessao.setAttribute("usuario", usuario); //DATA CORRENTE SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Calendar dataCorrente = new GregorianCalendar(); httpServletRequest.setAttribute("dataAtual", formatoData .format(dataCorrente.getTime())); //IDADE M�NIMA httpServletRequest.setAttribute("idadeMinimaFuncionario", ConstantesSistema.IDADE_MINIMA_FUNCIONARIO); httpServletRequest.setAttribute("idadeMinimaUsuario", ConstantesSistema.IDADE_MINIMA_USUARIO); return retorno; } }