package gcom.gui.cadastro.funcionario; import gcom.cadastro.empresa.Empresa; 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.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Date; 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 Aurelio * @date 04/04/2007 */ public class InserirFuncionarioAction extends GcomAction{ /** * Este caso de uso permite a inclus�o de um novo Funcion�rio * * [UC0842] Inserir Funcion�rio * * * @author R�mulo Aur�lio * @date 04/04/2007 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); InserirFuncionarioActionForm form = (InserirFuncionarioActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); //CARREGANDO O OBJETO FUNCION�RIO Funcionario funcionario = this.getFuncionario(form, fachada); //INSERINDO FUNCION�RIO fachada.inserirFuncionario(funcionario, usuarioLogado); montarPaginaSucesso(httpServletRequest, "Funcionario de matricula " + funcionario.getId() + " inserida com sucesso.", "Inserir outro Funcionario", "exibirInserirFuncionarioAction.do?menu=sim", "exibirAtualizarFuncionarioAction.do?idFuncionario=" + funcionario.getId() , "Atualizar Funcionario inserido"); return retorno; } /** * [UC0842] Inserir Funcion�rio * * Carregando os dados do funcion�rio a partir do que foi informado no formul�rio * * @author Raphael Rossiter * @date 17/06/2009 * * @param form * @param fachada * @return Funcionario */ private Funcionario getFuncionario(InserirFuncionarioActionForm form, Fachada fachada){ Funcionario funcionario= new Funcionario(); //MATR�CULA funcionario.setId(new Integer(form.getMatricula())); //NOME funcionario.setNome(form.getNome()); //CPF if(form.getNumeroCpf() != null && !form.getNumeroCpf().equals("")){ funcionario.setNumeroCpf(form.getNumeroCpf()); } //DATA DE NASCIMENTO if(form.getDataNascimento() != null && !form.getDataNascimento().equals("")){ funcionario.setDataNascimento(Util.converteStringParaDate(form.getDataNascimento())); } //CARGO String idFuncionarioCargo = form.getFuncionarioCargo(); if (idFuncionarioCargo != null && !idFuncionarioCargo.trim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { FuncionarioCargo funcionarioCargo = new FuncionarioCargo(); funcionarioCargo.setId(new Integer(idFuncionarioCargo)); funcionario.setFuncionarioCargo(funcionarioCargo); } //EMPRESA String idEmpresa = form.getEmpresa(); if (idEmpresa != null && !idEmpresa.trim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { Empresa empresa = new Empresa(); empresa.setId(new Integer(idEmpresa)); funcionario.setEmpresa(empresa); } //UNIDADE ORGANIZACIONAL String idUnidade = form.getIdUnidade(); FiltroUnidadeOrganizacional filtroUnidadeEmpresa = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresa.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idUnidade)); Collection<UnidadeOrganizacional> colecaoUnidadeEmpresa = fachada.pesquisar(filtroUnidadeEmpresa, UnidadeOrganizacional.class.getName()); if(colecaoUnidadeEmpresa== null || colecaoUnidadeEmpresa.isEmpty()){ throw new ActionServletException("atencao.unidade.organizacional.inexistente"); } UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional(); unidadeOrganizacional.setId(new Integer(idUnidade)); funcionario.setUnidadeOrganizacional(unidadeOrganizacional); //�LTIMA ALTERA��O funcionario.setUltimaAlteracao(new Date()); return funcionario; } }