package gcom.gui.cadastro.unidade;
import gcom.atendimentopublico.registroatendimento.FiltroMeioSolicitacao;
import gcom.atendimentopublico.registroatendimento.MeioSolicitacao;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.unidade.FiltroUnidadeTipo;
import gcom.cadastro.unidade.UnidadeTipo;
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.util.Collection;
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 define o pr�-processamento da p�gina de pesquisa unidade organizacional
*
* @author Rafael Pinto
* @created 25/07/2006
*/
public class ExibirPesquisarUnidadeSuperiorAction 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) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirPesquisarUnidadeSuperior");
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
PesquisarUnidadeSuperiorActionForm pesquisarUnidadeSuperiorActionForm =
(PesquisarUnidadeSuperiorActionForm) actionForm;
if (httpServletRequest.getParameter("caminhoRetornoTelaPesquisa") != null &&
httpServletRequest.getParameter("caminhoRetornoTelaPesquisa").equals("exibirPesquisarUnidadeOrganizacionalAction") ) {
sessao.setAttribute("caminhoRetornoTelaPesquisa",
httpServletRequest.getParameter("caminhoRetornoTelaPesquisa"));
}else {
// Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter
String objetoConsulta = httpServletRequest.getParameter("objetoConsulta");
if (objetoConsulta != null && !objetoConsulta.trim().equals("") &&
objetoConsulta.trim().equals("1")) {
// Faz a consulta de Localidade
pesquisarLocalidade(httpServletRequest, retorno,pesquisarUnidadeSuperiorActionForm);
}
// Parte que passa as cole��es necess�rias no jsp
Collection colecaoUnidadeTipo = (Collection) sessao.getAttribute("colecaoUnidadeTipo");
if(colecaoUnidadeTipo == null){
FiltroUnidadeTipo filtroUnidadeTipo = new FiltroUnidadeTipo();
filtroUnidadeTipo.adicionarParametro(new ParametroSimples(
FiltroUnidadeTipo.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroUnidadeTipo.setCampoOrderBy(FiltroUnidadeTipo.DESCRICAO);
colecaoUnidadeTipo =
fachada.pesquisar(filtroUnidadeTipo, UnidadeTipo.class.getName());
if (colecaoUnidadeTipo != null && !colecaoUnidadeTipo.isEmpty()) {
sessao.setAttribute("colecaoUnidadeTipo", colecaoUnidadeTipo);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Unidade Tipo");
}
}
Collection colecaoGerenciaRegional = (Collection) sessao.getAttribute("colecaoGerenciaRegional");
if(colecaoGerenciaRegional == null){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME);
colecaoGerenciaRegional =
fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
if (colecaoGerenciaRegional != null && !colecaoGerenciaRegional.isEmpty()) {
sessao.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Ger�ncial Regional");
}
}
Collection colecaoMeioSolicitacao = (Collection) sessao.getAttribute("colecaoMeioSolicitacao");
if(colecaoMeioSolicitacao == null){
FiltroMeioSolicitacao filtroMeioSolicitacao = new FiltroMeioSolicitacao();
filtroMeioSolicitacao.adicionarParametro(new ParametroSimples(
FiltroMeioSolicitacao.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroMeioSolicitacao.setCampoOrderBy(FiltroMeioSolicitacao.DESCRICAO);
colecaoMeioSolicitacao =
fachada.pesquisar(filtroMeioSolicitacao, MeioSolicitacao.class.getName());
if (colecaoMeioSolicitacao != null && !colecaoMeioSolicitacao.isEmpty()) {
sessao.setAttribute("colecaoMeioSolicitacao", colecaoMeioSolicitacao);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Meio Solicita��o");
}
}
Collection colecaoEmpresa =
(Collection) sessao.getAttribute("colecaoEmpresa");
if(colecaoEmpresa == null){
// Filtro para obter empresa ativo de id informado
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimples(
FiltroEmpresa.INDICADORUSO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO);
colecaoEmpresa =
fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) {
sessao.setAttribute("colecaoEmpresa", colecaoEmpresa);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Empresa");
}
}
}
this.setaRequest(httpServletRequest,pesquisarUnidadeSuperiorActionForm);
return retorno;
}
private void pesquisarLocalidade(
HttpServletRequest httpServletRequest, ActionForward retorno,
PesquisarUnidadeSuperiorActionForm pesquisarUnidadeSuperiorActionForm) {
// Filtro para obter o localidade ativo de id informado
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(
new ParametroSimples(FiltroLocalidade.ID,
new Integer(pesquisarUnidadeSuperiorActionForm.getIdLocalidadeFilho() )));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoLocalidade = Fachada.getInstancia()
.pesquisar(filtroLocalidade,Localidade.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("idLocalidadeEncontradaFilho","true");
pesquisarUnidadeSuperiorActionForm.setIdLocalidadeFilho(localidade.getId().toString());
pesquisarUnidadeSuperiorActionForm.setDescricaoLocalidadeFilho(localidade.getDescricao());
} else {
pesquisarUnidadeSuperiorActionForm.setDescricaoLocalidadeFilho("Localidade inexistente");
pesquisarUnidadeSuperiorActionForm.setIdLocalidadeFilho("");
}
}
/**
* Seta os request com os id encontrados
*
* @author Rafael Pinto
* @date 16/08/2006
*/
private void setaRequest(HttpServletRequest httpServletRequest,
PesquisarUnidadeSuperiorActionForm pesquisarUnidadeSuperiorActionForm){
// Localidade
if(pesquisarUnidadeSuperiorActionForm.getIdLocalidadeFilho() != null &&
!pesquisarUnidadeSuperiorActionForm.getIdLocalidadeFilho().equals("") &&
pesquisarUnidadeSuperiorActionForm.getDescricaoLocalidadeFilho() != null &&
!pesquisarUnidadeSuperiorActionForm.getDescricaoLocalidadeFilho().equals("")){
httpServletRequest.setAttribute("idLocalidadeEncontradaFilho","true");
}
}
}