package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.ordemservico.FiltroServicoTipo;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
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;
/**
* Action respons�vel pela pre-exibi��o
*
* @author S�vio Luiz
* @created 28 de Julho de 2006
*/
public class ExibirAdicionarSolicitacaoEspecificacaoTipoServicoAction extends
GcomAction {
/**
* Description of the Method
*
* @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) {
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Set no mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("adicionarSolicitacaoEspecificacaoTipoServico");
AdicionarSolicitacaoEspecificacaoActionForm adicionarSolicitacaoEspecificacaoActionForm = (AdicionarSolicitacaoEspecificacaoActionForm) actionForm;
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
// caso exista o parametro ent�o limpa a sess�o e o form
if (httpServletRequest.getParameter("limpaSessao") != null
&& !httpServletRequest.getParameter("limpaSessao").equals("")) {
adicionarSolicitacaoEspecificacaoActionForm
.setDescricaoTipoServico("");
adicionarSolicitacaoEspecificacaoActionForm.setIdTipoServico("");
adicionarSolicitacaoEspecificacaoActionForm.setOrdemExecucao("");
}
// recupera o caminho de retorno passado como parametro no jsp que chama
// essa funcionalidade
if (httpServletRequest.getParameter("retornarTelaPopup") != null) {
sessao.setAttribute("retornarTelaPopup", httpServletRequest
.getParameter("retornarTelaPopup"));
}
// Verifica se o tipoConsulta � diferente de nulo ou vazio.Nesse caso �
// quando um o retorno da consulta vem para o action ao inves de ir
// direto para o jsp
if (httpServletRequest.getParameter("tipoConsulta") != null
&& !httpServletRequest.getParameter("tipoConsulta").equals("")) {
// verifica se retornou da pesquisa de tipo de servi�o
if (httpServletRequest.getParameter("tipoConsulta").equals(
"tipoServico")) {
adicionarSolicitacaoEspecificacaoActionForm
.setIdTipoServico(httpServletRequest
.getParameter("idCampoEnviarDados"));
adicionarSolicitacaoEspecificacaoActionForm
.setDescricaoTipoServico(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
}
}
// -------Parte que trata do c�digo quando o usu�rio tecla enter
String idTipoServico = (String) adicionarSolicitacaoEspecificacaoActionForm
.getIdTipoServico();
String descricaoServico = adicionarSolicitacaoEspecificacaoActionForm
.getDescricaoTipoServico();
// Verifica se o c�digo foi digitado pela primeira vez ou se foi
// modificado
if (idTipoServico != null
&& !idTipoServico.trim().equals("")
&& (descricaoServico == null || descricaoServico.trim().equals(
""))) {
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.ID, idTipoServico));
Collection servicoTipoEncontrado = fachada.pesquisar(
filtroServicoTipo, ServicoTipo.class.getName());
if (servicoTipoEncontrado != null
&& !servicoTipoEncontrado.isEmpty()) {
adicionarSolicitacaoEspecificacaoActionForm.setIdTipoServico(""
+ ((ServicoTipo) ((List) servicoTipoEncontrado).get(0))
.getId());
adicionarSolicitacaoEspecificacaoActionForm
.setDescricaoTipoServico(((ServicoTipo) ((List) servicoTipoEncontrado)
.get(0)).getDescricao());
httpServletRequest.setAttribute("idTipoServicoNaoEncontrado",
"true");
httpServletRequest.setAttribute("nomeCampo", "ordemExecucao");
} else {
adicionarSolicitacaoEspecificacaoActionForm
.setIdTipoServico("");
httpServletRequest.setAttribute("nomeCampo", "idServicoOS");
httpServletRequest.setAttribute("idTipoServicoNaoEncontrado",
"exception");
adicionarSolicitacaoEspecificacaoActionForm
.setDescricaoTipoServico("Tipo Servi�o Inexistente");
}
}
sessao.removeAttribute("caminhoRetornoTelaPesquisaServicoTipo");
// -------Fim da Parte que trata do c�digo quando o usu�rio tecla enter
return retorno;
}
}