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.unidade.FiltroUnidadeOrganizacional;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.Grupo;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.FiltroUsuarioGrupo;
import gcom.seguranca.acesso.usuario.FiltroUsuarioTipo;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioGrupo;
import gcom.seguranca.acesso.usuario.UsuarioTipo;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import gcom.util.filtro.ParametroSimplesDiferenteDe;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
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 exibe o menu
*
* @author Administrador
* @date 02/05/2006
*/
public class AtualizarUsuarioDadosGeraisAction 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) {
AtualizarUsuarioDadosGeraisActionForm form = (AtualizarUsuarioDadosGeraisActionForm) actionForm;
ActionForward retorno = actionMapping
.findForward("gerenciadorProcesso");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
// 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 (!"".equals(form.getDataInicial())) {
Date data = Util.converteStringParaDate(form.getDataInicial());
if (data == null) {
throw new ActionServletException("atencao.data.inicio.invalida");
}
if (data.getTime() > new Date(System.currentTimeMillis()).getTime()) {
throw new ActionServletException(
"atencao.data_inicial.posterior.hoje", null, Util
.formatarData(new Date()));
}
}
if (!"".equals(form.getDataFinal())) {
Date data = Util.converteStringParaDate(form.getDataFinal());
if (data == null) {
throw new ActionServletException("atencao.data.final.invalida");
}
Calendar dataFim = new GregorianCalendar();
dataFim.setTime(data);
dataFim.set(Calendar.HOUR, 23);
dataFim.set(Calendar.MINUTE, 59);
dataFim.set(Calendar.SECOND, 59);
data = dataFim.getTime();
if (data.getTime() < new Date(System.currentTimeMillis()).getTime()) {
throw new ActionServletException(
"atencao.data_final.posterior.hoje", null, Util
.formatarData(new Date()));
}
}
if (!"".equals(form.getDataInicial())
&& !"".equals(form.getDataFinal())) {
Date dataInicial = Util.converteStringParaDate(form
.getDataInicial());
Date dataFinal = Util.converteStringParaDate(form.getDataFinal());
if (dataFinal.getTime() < dataInicial.getTime()) {
throw new ActionServletException(
"atencao.data.intervalo.invalido", null, Util
.formatarData(new Date()));
}
usuarioParaAtualizar.setDataCadastroInicio(dataInicial);
usuarioParaAtualizar.setDataCadastroFim(dataFinal);
}
if (!"".equals(form.getLogin())
&& !form.getLogin().equalsIgnoreCase(
usuarioParaAtualizar.getLogin())) {
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.LOGIN, form.getLogin()));
if (usuarioParaAtualizar.getId() != null) {
filtroUsuario
.adicionarParametro(new ParametroSimplesDiferenteDe(
FiltroUsuario.ID, usuarioParaAtualizar.getId()));
}
Collection coll = Fachada.getInstancia().pesquisar(filtroUsuario,
Usuario.class.getSimpleName());
if (coll != null && !coll.isEmpty()) {
throw new ActionServletException(
"atencao.usuario.login.ja.existe",null,
((Usuario)Util.retonarObjetoDeColecao(coll)).getLogin());
}
}
if (!"".equals(form.getEmail())
&& !form.getEmail().equalsIgnoreCase(
usuarioParaAtualizar.getDescricaoEmail())) {
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.EMAIL, form.getEmail()));
if (usuarioParaAtualizar.getId() != null) {
filtroUsuario
.adicionarParametro(new ParametroSimplesDiferenteDe(
FiltroUsuario.ID, usuarioParaAtualizar.getId()));
}
Collection coll = Fachada.getInstancia().pesquisar(filtroUsuario,
Usuario.class.getSimpleName());
if (coll != null && !coll.isEmpty()) {
throw new ActionServletException(
"atencao.usuario.email.ja.existe");
}
}
// SimpleDateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy");
//
// String dataNascimento = form.getDataNascimento();
//
// Date dataNascimentoFormatada = null;
//
// try {
// dataNascimentoFormatada = dataFormatada.parse(dataNascimento);
// } catch (ParseException ex) {
// throw new ActionServletException("erro.sistema");
// }
// Campo data de nascimento n�o � obrigat�rio para usu�rios indicados como rotina batch e/ou internet
if(form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1){
Date dataNascimentoFormatada = Util.converteStringParaDate(form.getDataNascimento());
usuario.setDataNascimento(dataNascimentoFormatada);
if (!"".equals(form.getDataNascimento())) {
Date data = Util.converteStringParaDate(form.getDataNascimento());
if (data == null) {
throw new ActionServletException("atencao.data.inicio.invalida");
}
if (data.getTime() > new Date(System.currentTimeMillis()).getTime()) {
throw new ActionServletException(
"atencao.data_nascimento_superior_atual",form.getDataNascimento() , Util
.formatarData(new Date()));
}
}
}
//Campo CPF n�o � obrigat�rio para usu�rios indicados como rotina batch e/ou internet
if(form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1){
String cpf = form.getCpf();
//O usu�rio � pessoa f�sica
if (cpf != null && !cpf.trim().equalsIgnoreCase("")) {
boolean igual = true;
Integer i = 0;
// Integer tam = cpf.length();
//
// while (i < tam - 1) {
// if ((cpf.charAt(i)) == (cpf.charAt(i + 1))) {
// i = i + 1;
// } else {
// igual = false;
// }
// i = i + 1;
// }
Integer tam = cpf.length() - 1;
while ( i < tam ) {
if ( (cpf.charAt(i)) != (cpf.charAt(i + 1)) ){
igual = false;
break;
} else {
i++;
}
}
if (igual) {
throw new ActionServletException("atencao.cpf_invalido");
}
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.CPF, cpf));
filtroUsuario.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroUsuario.ID,usuarioParaAtualizar.getId()));
Collection colecaoUsuarioComCpf = fachada.pesquisar(filtroUsuario,
Usuario.class.getName());
if (!colecaoUsuarioComCpf.isEmpty()) {
Usuario usuarioComCpf = (Usuario) colecaoUsuarioComCpf
.iterator().next();
throw new ActionServletException(
"atencao.cpf.usuario.ja_cadastrado", null, ""
+ usuarioComCpf.getId());
}
}
}
//Verifica a exist�ncia de usuario BATCH caso necessite
if(form.getIndicadorUsuarioBatch() == 1){
Usuario usuarioBatch = Fachada.getInstancia().pesquisarUsuarioRotinaBatch();
if(usuarioBatch != null && usuarioBatch.getId().intValue() != usuarioParaAtualizar.getId().intValue() ){
throw new ActionServletException("atencao.usuario.rotina.batch.ja.existe", null, usuarioBatch.getNomeUsuario());
}
}
//Verifica a exist�ncia de usuario INTERNET caso necessite
if(form.getIndicadorUsuarioInternet() == 1){
Usuario usuarioInternet = Fachada.getInstancia().pesquisarUsuarioInternet();
if(usuarioInternet != null && usuarioInternet.getId().intValue() != usuarioParaAtualizar.getId().intValue()){
throw new ActionServletException("atencao.usuario.internet.ja.existe", null, usuarioInternet.getNomeUsuario());
}
}
// valida os campos obrigat�rios do usuario tipo
if (!"".equals(form.getUsuarioTipo())) {
FiltroUsuarioTipo filtroUsuarioTipo = new FiltroUsuarioTipo();
filtroUsuarioTipo.adicionarParametro(new ParametroSimples(
FiltroUsuarioTipo.ID, form.getUsuarioTipo()));
Collection coll = Fachada.getInstancia().pesquisar(
filtroUsuarioTipo, UsuarioTipo.class.getSimpleName());
if (coll != null && !coll.isEmpty()) {
UsuarioTipo usuarioTipo = (UsuarioTipo) Util
.retonarObjetoDeColecao(coll);
// caso n�o seja usuario tipo adiministrador ent�o valida os
// campos
if (!usuarioTipo.getId().equals(
UsuarioTipo.USUARIO_TIPO_ADMINISTRADOR)) {
// valida os campos obrigatorios
if (usuarioTipo.getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO) {
// matricula do funcion�rio � obrigat�rio
if (form.getIdFuncionario() == null
|| form.getIdFuncionario().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Matr�cula Funcion�rio");
}
FiltroFuncionario filtroFuncionario = new FiltroFuncionario();
filtroFuncionario
.adicionarParametro(new ParametroSimples(
FiltroFuncionario.ID, form
.getIdFuncionario()));
filtroFuncionario
.adicionarCaminhoParaCarregamentoEntidade(FiltroFuncionario.UNIDADE_ORGANIZACIONAL);
// filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade(FiltroFuncionario.UNIDADE_EMPRESA_ID);
Collection colecaoFuncionario = Fachada
.getInstancia().pesquisar(
filtroFuncionario,
Funcionario.class.getSimpleName());
if (colecaoFuncionario != null
&& !colecaoFuncionario.isEmpty()) {
Funcionario f = (Funcionario) colecaoFuncionario.iterator()
.next();
usuarioParaAtualizar.setFuncionario(f);
form.setIdFuncionario(f.getId().toString());
form.setNomeFuncionario(f.getNome());
usuarioParaAtualizar
.setNomeUsuario(f.getNome());
} else {
throw new ActionServletException(
"atencao.required", null,
"Matr�cula Funcion�rio");
}
// nome do funcionario � obrigatorio
if (form.getNome() == null || form.getNome().equals("")) {
throw new ActionServletException(
"atencao.required", null, "Nome Usu�rio");
}
//CPF do funcionario � obrigatorio para usu�rio diferentes de rotina batch e/ou internet
if(form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1){
if (form.getCpf() == null || form.getCpf().equals("")) {
throw new ActionServletException(
"atencao.required", null, "N�mero do CPF");
}
}
//Data de nascimento � obrigatorio para usu�rio diferentes de rotina batch e/ou internet
if(form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1){
if (form.getDataNascimento() == null
|| form.getDataNascimento().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Data de Nascimento");
}
}
//Indicador indicadorUsuarioBatch � obrigatorio
if (form.getIndicadorUsuarioBatch() == null
|| form.getIndicadorUsuarioBatch().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Indicador para rotina batch");
}
//Indicador indicadorUsuarioInternet � obrigatorio
if (form.getIndicadorUsuarioInternet() == null
|| form.getIndicadorUsuarioInternet().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Indicador para internet");
}
} else {
if (usuarioTipo.getIndicadorFuncionario() != UsuarioTipo.INDICADOR_FUNCIONARIO) {
// data inicio e data fim � obrigatorio
if (form.getEmpresa() == null
|| form.getEmpresa().equals("")) {
throw new ActionServletException(
"atencao.required", null, "Empresa");
}
// data inicio e data fim � obrigatorio
if (form.getNome() == null
|| form.getNome().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Nome Usu�rio");
}
//CPF do funcionario � obrigatorio para usu�rio diferentes de rotina batch e/ou internet
if(form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1){
if (form.getCpf() == null || form.getCpf().equals("")) {
throw new ActionServletException(
"atencao.required", null, "N�mero do CPF");
}
}
//Data de nascimento � obrigatorio para usu�rio diferentes de rotina batch e/ou internet
if(form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1){
if (form.getDataNascimento() == null
|| form.getDataNascimento().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Data de Nascimento");
}
}
// data inicio e data fim � obrigatorio
if (form.getIdLotacao() == null
|| form.getIdLotacao().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Unidade Lota��o");
}
// data inicio e data fim � obrigatorio
if (form.getDataInicial() == null
|| form.getDataInicial().equals("")
|| form.getDataFinal() == null
|| form.getDataFinal().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Per�odo de Cadastramento");
}
//Indicador indicadorUsuarioBatch � obrigatorio
if (form.getIndicadorUsuarioBatch() == null
|| form.getIndicadorUsuarioBatch().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Indicador para rotina batch");
}
//Indicador indicadorUsuarioInternet � obrigatorio
if (form.getIndicadorUsuarioInternet() == null
|| form.getIndicadorUsuarioInternet().equals("")) {
throw new ActionServletException(
"atencao.required", null,
"Indicador para internet");
}
}
}
}
usuarioParaAtualizar.setUsuarioTipo(usuarioTipo);
} else {
usuarioParaAtualizar.setUsuarioTipo(null);
}
} else {
usuarioParaAtualizar.setUsuarioTipo(null);
}
if (!"".equals(form.getEmpresa())) {
if (!(usuarioParaAtualizar.getEmpresa() != null
&& usuarioParaAtualizar.getEmpresa().getId() != null && usuarioParaAtualizar
.getEmpresa().getId().toString().equals(form.getEmpresa()))) {
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimples(
FiltroEmpresa.ID, form.getEmpresa()));
Collection coll = Fachada.getInstancia().pesquisar(
filtroEmpresa, Empresa.class.getSimpleName());
if (coll != null && !coll.isEmpty()) {
usuarioParaAtualizar.setEmpresa((Empresa) coll.iterator()
.next());
} else {
usuarioParaAtualizar.setEmpresa(null);
}
}
} else {
usuarioParaAtualizar.setEmpresa(null);
}
if (!"".equals(form.getIdFuncionario())) {
if (!(usuarioParaAtualizar.getFuncionario() != null
&& usuarioParaAtualizar.getFuncionario().getId() != null && usuarioParaAtualizar
.getFuncionario().getId().toString().equals(
form.getIdFuncionario()))) {
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()) {
usuarioParaAtualizar.setFuncionario((Funcionario) coll
.iterator().next());
} else {
usuarioParaAtualizar.setFuncionario(null);
}
}
} else {
usuarioParaAtualizar.setFuncionario(null);
}
// valida a unidade de lota��o
if (!"".equals(form.getIdLotacao())) {
// if (!(usuarioParaAtualizar.getUnidadeOrganizacional() != null
// && usuarioParaAtualizar.getUnidadeOrganizacional().getId() != null
// && usuarioParaAtualizar.getUnidadeOrganizacional().getId()
// .toString().equals(form.getIdLotacao()) && usuarioParaAtualizar
// .getUnidadeOrganizacional().getDescricao().equals(
// form.getNomeLotacao()))) {
if (usuarioParaAtualizar.getUnidadeOrganizacional() == null
|| (usuarioParaAtualizar.getUnidadeOrganizacional() != null
&& usuarioParaAtualizar.getUnidadeOrganizacional().getId() != null
&& !form.getIdLotacao().equals(
usuarioParaAtualizar.getUnidadeOrganizacional().getId().toString()))
|| (usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO &&
usuarioParaAtualizar.getUnidadeOrganizacional() != null
&& usuarioParaAtualizar.getUnidadeOrganizacional().getId() != null
&& !form.getIdLotacao().equals(
usuarioParaAtualizar.getFuncionario().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());
}
}
}
}
}
//Alterado por Vivianne Sousa 13/02/2007
//solicitado por Leonardo Vieira
if (usuarioParaAtualizar.getUsuarioTipo().getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO){
Funcionario funcionario = usuarioParaAtualizar.getFuncionario();
funcionario.setUnidadeOrganizacional(unidadeEmpresa);
usuarioParaAtualizar.setFuncionario(funcionario);
}
}
}
short indicadorFuncionario = new Short(form
.getIndicadorFuncionario());
if (form.getUsuarioTipo() != null
&& indicadorFuncionario != UsuarioTipo.INDICADOR_FUNCIONARIO) {
usuarioParaAtualizar
.setUnidadeOrganizacional(unidadeEmpresa);
} else {
usuarioParaAtualizar.setUnidadeOrganizacional(null);
}
} else {
usuarioParaAtualizar.setUnidadeOrganizacional(null);
}
}
} else {
usuarioParaAtualizar.setUnidadeOrganizacional(null);
}
if (!"".equals(form.getNome())) {
usuarioParaAtualizar.setNomeUsuario(form.getNome());
}
//Adiciona CPF apenas para usu�rios diferentes de batch e/ou internet
if (form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1 && !"".equals(form.getCpf())) {
usuarioParaAtualizar.setCpf(form.getCpf().toUpperCase());
}
//Adiciona data de nascimento apenas para usu�rios diferentes de batch e/ou internet
if (form.getIndicadorUsuarioBatch() != 1 && form.getIndicadorUsuarioInternet() != 1 && !"".equals(form.getDataNascimento()))
usuarioParaAtualizar.setDataNascimento(Util
.converteStringParaDate(form.getDataNascimento()));
if (!"".equals(form.getDataInicial()))
usuarioParaAtualizar.setDataCadastroInicio(Util
.converteStringParaDate(form.getDataInicial()));
if (!"".equals(form.getDataFinal()))
usuarioParaAtualizar.setDataCadastroFim(Util
.converteStringParaDate(form.getDataFinal()));
if (!"".equals(form.getLogin()))
usuarioParaAtualizar.setLogin(form.getLogin());
if (!"".equals(form.getEmail()))
usuarioParaAtualizar.setDescricaoEmail(form.getEmail());
if (!"".equals(form.getIndicadorUsuarioBatch()))
usuarioParaAtualizar.setIndicadorUsuarioBatch(form.getIndicadorUsuarioBatch());
if (!"".equals(form.getIndicadorUsuarioInternet()))
usuarioParaAtualizar.setIndicadorUsuarioInternet(form.getIndicadorUsuarioInternet());
sessao.setAttribute("usuarioParaAtualizar", usuarioParaAtualizar);
sessao.setAttribute("usuario", usuario);
return retorno;
}
}