package gcom.gui.cadastro.funcionario; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.FiltroFuncionarioCargo; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.funcionario.FuncionarioCargo; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * @author R�mulo Aur�lio * */ public class ExibirAtualizarFuncionarioAction extends GcomAction{ /** * * [UC0844] Manter Funcion�rio * * * @author R�mulo Aur�lio * @date 16/04/2007 * * * @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("atualizarFuncionario"); AtualizarFuncionarioActionForm form = (AtualizarFuncionarioActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); // Verifica se veio do filtrar ou do manter if (httpServletRequest.getParameter("manter") != null) { sessao.setAttribute("manter", true); } else if (httpServletRequest.getParameter("filtrar") != null) { sessao.removeAttribute("manter"); } FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO); // Verifica se os dados foram informados da tabela existem e joga numa // colecao Collection<Empresa> colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Empresa"); } httpServletRequest.setAttribute("colecaoEmpresa", colecaoEmpresa); FiltroFuncionarioCargo filtroFuncionarioCargo = new FiltroFuncionarioCargo(); filtroFuncionarioCargo.setCampoOrderBy(FiltroFuncionarioCargo.DESCRICAO); filtroFuncionarioCargo.adicionarParametro(new ParametroSimples(FiltroFuncionarioCargo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection<FuncionarioCargo> colecaoFuncionarioCargo = fachada.pesquisar(filtroFuncionarioCargo, FuncionarioCargo.class.getName()); httpServletRequest.setAttribute("colecaoFuncionarioCargo", colecaoFuncionarioCargo); //-------Parte que trata do c�digo quando o usu�rio tecla enter String idDigitadoEnterUnidadeEmpresa = form.getIdUnidade(); //Verifica se o c�digo da Unidade Empresa foi digitado if (idDigitadoEnterUnidadeEmpresa != null && !idDigitadoEnterUnidadeEmpresa.trim().equals("") && Integer.parseInt(idDigitadoEnterUnidadeEmpresa) > 0) { FiltroUnidadeOrganizacional filtroUnidadeEmpresa = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresa.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idDigitadoEnterUnidadeEmpresa)); Collection<UnidadeOrganizacional> unidadeEmpresaEncontrada = fachada.pesquisar(filtroUnidadeEmpresa, UnidadeOrganizacional.class.getName()); if (unidadeEmpresaEncontrada != null && !unidadeEmpresaEncontrada.isEmpty()) { //a unidade de Unidade Empresa foi encontrado form.setIdUnidade("" + ((UnidadeOrganizacional) ((List) unidadeEmpresaEncontrada).get(0)) .getId()); form .setNomeUnidade(((UnidadeOrganizacional) ((List) unidadeEmpresaEncontrada) .get(0)).getDescricao()); httpServletRequest.setAttribute("idUnidadeEmpresaNaoEncontrada", "true"); httpServletRequest.setAttribute("nomeCampo", "descricaoUnidadeEmpresa"); } else { form.setIdUnidade(""); httpServletRequest.setAttribute("idUnidadeEmpresaNaoEncontrada", "exception"); form .setNomeUnidade("UNIDADE EMPRESA INEXISTENTE"); httpServletRequest.setAttribute("nomeCampo", "idUnidadeEmpresa"); } } //-------Fim de parte que trata do c�digo quando o usu�rio tecla enter //Verifica se o usuario informou a unidade organizacional e teclou enter if(httpServletRequest.getParameter("enter") == null){ // Verifica se o funcionario j� est� na sess�o, em caso afirmativo // significa que o usu�rio j� entrou na tela e apenas selecionou algum // item que deu um reload na tela e em caso negativo significa que ele // est� entrando pela primeira vez if (sessao.getAttribute("objetoFuncionario") != null) { Funcionario funcionario = (Funcionario) sessao .getAttribute("objetoFuncionario"); sessao.setAttribute("idFuncionario", funcionario.getId() .toString()); form.setMatricula(funcionario.getId().toString()); form.setIdFuncionario(funcionario.getId().toString()); form.setFuncionarioCargo(funcionario.getFuncionarioCargo().getId().toString()); form.setNome(funcionario.getNome()); form.setEmpresa(funcionario.getEmpresa().getId().toString()); form.setIdUnidade(funcionario.getUnidadeOrganizacional().getId().toString()); form.setNomeUnidade(funcionario.getUnidadeOrganizacional().getDescricao()); form.setNumeroCpf(funcionario.getNumeroCpf()); form.setDataNascimento(Util.formatarData(funcionario.getDataNascimento())); sessao.setAttribute("funcionarioAtualizar", funcionario); sessao.removeAttribute("objetoFuncionario"); } else { String idFuncionario = null; if (httpServletRequest.getParameter("idFuncionario") == null || httpServletRequest.getParameter("idFuncionario") .equals("")) { idFuncionario = (String) sessao .getAttribute("idFuncionario"); } else { idFuncionario = (String) httpServletRequest .getParameter("idFuncionario"); sessao.setAttribute("idFuncionario", idFuncionario); } httpServletRequest.setAttribute("idFuncionario", idFuncionario); sessao.setAttribute("idFuncionario",idFuncionario); FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade("empresa"); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional"); filtroFuncionario.adicionarParametro(new ParametroSimples(FiltroFuncionario.ID, idFuncionario)); Collection<Funcionario> colecaoFuncionario = fachada .pesquisar(filtroFuncionario, Funcionario.class .getName()); if (colecaoFuncionario == null || colecaoFuncionario.isEmpty()) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } httpServletRequest.setAttribute("colecaoFuncionario", colecaoFuncionario); Funcionario funcionario = (Funcionario) colecaoFuncionario .iterator().next(); form.setMatricula(funcionario.getId().toString()); form.setIdFuncionario(funcionario.getId().toString()); form.setNome(funcionario.getNome()); form.setFuncionarioCargo(funcionario.getFuncionarioCargo().getId().toString()); form.setEmpresa(funcionario.getEmpresa().getId().toString()); form.setIdUnidade(funcionario.getUnidadeOrganizacional().getId().toString()); form.setNomeUnidade(funcionario.getUnidadeOrganizacional().getDescricao()); form.setNumeroCpf(funcionario.getNumeroCpf()); form.setDataNascimento(Util.formatarData(funcionario.getDataNascimento())); sessao.setAttribute("funcionarioAtualizar", funcionario); } } // -------------- bt DESFAZER --------------- if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer") .equalsIgnoreCase("S")) { String idFuncionario = null; if (httpServletRequest.getParameter("idFuncionario") == null || httpServletRequest.getParameter("idFuncionario") .equals("")) { idFuncionario = (String) sessao .getAttribute("idFuncionario"); } else { idFuncionario = (String) httpServletRequest .getParameter("idFuncionario"); sessao.setAttribute("idFuncionario", idFuncionario); } if (idFuncionario.equalsIgnoreCase("")) { idFuncionario = null; } if (idFuncionario == null) { Funcionario funcionario = (Funcionario) sessao .getAttribute("objetoFuncionario"); form.setMatricula(funcionario.getId().toString()); form.setFuncionarioCargo(funcionario.getFuncionarioCargo().getId().toString()); form.setNome(funcionario.getNome()); form.setEmpresa(funcionario.getEmpresa().getId().toString()); form.setIdUnidade(funcionario.getUnidadeOrganizacional().getId().toString()); form.setNomeUnidade(funcionario.getUnidadeOrganizacional().getDescricao()); form.setNumeroCpf(funcionario.getNumeroCpf()); form.setDataNascimento(Util.formatarData(funcionario.getDataNascimento())); sessao.setAttribute("funcionarioAtualizar", funcionario); sessao.removeAttribute("funcionario"); } if (idFuncionario != null) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade("empresa"); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional"); filtroFuncionario.adicionarParametro(new ParametroSimples(FiltroFuncionario.ID, idFuncionario)); Collection<Funcionario> colecaoFuncionario = fachada.pesquisar(filtroFuncionario, Funcionario.class .getName()); if (colecaoFuncionario == null || colecaoFuncionario.isEmpty()) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } httpServletRequest.setAttribute("colecaoFuncionario", colecaoFuncionario); Funcionario funcionario = (Funcionario) colecaoFuncionario .iterator().next(); form.setMatricula(funcionario.getId().toString()); form.setFuncionarioCargo(funcionario.getFuncionarioCargo().getId().toString()); form.setNome(funcionario.getNome()); form.setEmpresa(funcionario.getEmpresa().getId().toString()); form.setIdUnidade(funcionario.getUnidadeOrganizacional().getId().toString()); form.setNomeUnidade(funcionario.getUnidadeOrganizacional().getDescricao()); form.setNumeroCpf(funcionario.getNumeroCpf()); form.setDataNascimento(Util.formatarData(funcionario.getDataNascimento())); } } // -------------- bt DESFAZER --------------- //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); return retorno; } }