package gcom.gui.cadastro.funcionario;
import gcom.cadastro.unidade.FiltroUnidadeOrganizacional;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* Realiza a pesquisa de funcionario de acordo com os par�metros informados
*
* @author Vivianne Sousa
* @created 02/03/2006
*/
public class ExibirPesquisarFuncionarioAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Inicializando Variaveis
ActionForward retorno = actionMapping.findForward("funcionarioPesquisar");
//PesquisarFuncionarioActionForm pesquisarFuncionarioActionForm = (PesquisarFuncionarioActionForm) actionForm;
PesquisarFuncionarioActionForm pesquisarFuncionarioActionForm = (PesquisarFuncionarioActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
if ((httpServletRequest.getParameter("desfazer") != null &&
httpServletRequest.getParameter("desfazer").equalsIgnoreCase("S"))){
pesquisarFuncionarioActionForm.setId("");
pesquisarFuncionarioActionForm.setNome("");
pesquisarFuncionarioActionForm.setIdUnidadeEmpresa("");
pesquisarFuncionarioActionForm.setDescricaoUnidadeEmpresa("");
}
//-------Parte que trata do c�digo quando o usu�rio tecla enter
String idDigitadoEnterUnidadeEmpresa = pesquisarFuncionarioActionForm.getIdUnidadeEmpresa();
//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 =
this.getFachada().pesquisar(filtroUnidadeEmpresa,
UnidadeOrganizacional.class.getName());
if (unidadeEmpresaEncontrada != null && !unidadeEmpresaEncontrada.isEmpty()) {
//a unidade de Unidade Empresa foi encontrado
pesquisarFuncionarioActionForm.setIdUnidadeEmpresa("" +
((UnidadeOrganizacional) ((List) unidadeEmpresaEncontrada).get(0)).getId());
pesquisarFuncionarioActionForm.setDescricaoUnidadeEmpresa(
((UnidadeOrganizacional) ((List) unidadeEmpresaEncontrada).get(0)).getDescricao());
httpServletRequest.setAttribute("idUnidadeEmpresaNaoEncontrada","true");
httpServletRequest.setAttribute("nomeCampo", "descricaoUnidadeEmpresa");
} else {
pesquisarFuncionarioActionForm.setIdUnidadeEmpresa("");
httpServletRequest.setAttribute("idUnidadeEmpresaNaoEncontrada","exception");
pesquisarFuncionarioActionForm.setDescricaoUnidadeEmpresa("UNIDADE DE LOTA��O INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo", "idUnidadeEmpresa");
}
}
//-------Fim de parte que trata do c�digo quando o usu�rio tecla enter
if (httpServletRequest.getParameter("tipoConsulta") != null
&& !httpServletRequest.getParameter("tipoConsulta").equals("")) {
//se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina usuario_pesquisar.jsp
pesquisarFuncionarioActionForm.setIdUnidadeEmpresa(
httpServletRequest.getParameter("idCampoEnviarDados"));
pesquisarFuncionarioActionForm.setDescricaoUnidadeEmpresa(
httpServletRequest.getParameter("descricaoCampoEnviarDados"));
}
//envia uma flag que ser� verificado no funcionario_resultado_pesquisa.jsp
//para saber se ir� usar o enviar dados ou o enviar dados parametros
if (httpServletRequest.getParameter("caminhoRetornoTelaPesquisaFuncionario") != null) {
sessao.setAttribute("caminhoRetornoTelaPesquisaFuncionario",
httpServletRequest
.getParameter("caminhoRetornoTelaPesquisaFuncionario"));
}
sessao.removeAttribute("caminhoRetornoTelaPesquisaUnidadeEmpresa");
if (httpServletRequest.getAttribute("nomeCampo") == null){
httpServletRequest.setAttribute("nomeCampo", "id");
}
if (httpServletRequest.getParameter("limpaForm") != null){
pesquisarFuncionarioActionForm.setDescricaoUnidadeEmpresa("");
pesquisarFuncionarioActionForm.setId("");
pesquisarFuncionarioActionForm.setIdUnidadeEmpresa("");
pesquisarFuncionarioActionForm.setNome("");
}
pesquisarFuncionarioActionForm.setTipoPesquisa(ConstantesSistema.TIPO_PESQUISA_INICIAL.toString());
if(httpServletRequest.getParameter("tipo") != null){
sessao.setAttribute("tipo", httpServletRequest.getParameter("tipo"));
}
return retorno;
}
}