package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento;
import gcom.atendimentopublico.registroatendimento.FiltroAtendimentoMotivoEncerramento;
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 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;
/**
* [UC1055] Filtrar Acompanhamento dos Registros de Atendimento
*
* Classe que ir� auxiliar no formato de entrada da pesquisa
* do relatorio de Acompanhamento dos Registros de Atendimento.
*
* @author Hugo Leonardo
* @date 28/09/2010
*/
public class ExibirFiltrarAcompanhamentoRegistroAtendimentoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.
findForward("filtrarAcompanhamentoRegistroAtendimento");
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
//Form
FiltrarAcompanhamentoRegistroAtendimentoActionForm form =
(FiltrarAcompanhamentoRegistroAtendimentoActionForm) actionForm;
// Primeira vez que carrega a pagina
if ( httpServletRequest.getParameter("menu") != null &&
httpServletRequest.getParameter("menu").equals("sim")) {
form.setSituacaoRAAbertos("2");
form.setOpcaoRelatorio("0");
Usuario usuarioLogado = this.getUsuarioLogado(httpServletRequest);
if(Util.verificarNaoVazio(usuarioLogado.getUnidadeOrganizacional().toString()) ){
UnidadeOrganizacional unidadeOrganizacional = usuarioLogado.getUnidadeOrganizacional();
form.setUnidadeAtendimentoId("" + unidadeOrganizacional.getId());
form.setUnidadeAtendimentoDescricao( unidadeOrganizacional.getDescricao());
}
}
if (form.getUnidadeAtendimentoId() != null
&& !form.getUnidadeAtendimentoId().trim().equals("")) {
this.pesquisarUnidadeAtendimento( httpServletRequest, form);
}
if(sessao.getAttribute("colecaoAtendimentoMotivoEncerramento") == null ){
this.pesquisarMotivoEncerramento(sessao);
}
/*
* Felipe Santos
*
* N�o h� nenhuma localidade associada a um municipio (muni_idprincipal != null)
*/
//this.pesquisarMunicipioAssociado(httpServletRequest);
return retorno;
}
private void pesquisarMotivoEncerramento(HttpSession sessao){
FiltroAtendimentoMotivoEncerramento filtroAtendimentoMotivoEncerramento =
new FiltroAtendimentoMotivoEncerramento();
filtroAtendimentoMotivoEncerramento.adicionarParametro(
new ParametroSimples(
FiltroAtendimentoMotivoEncerramento.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroAtendimentoMotivoEncerramento.setCampoOrderBy(
FiltroAtendimentoMotivoEncerramento.DESCRICAO);
Collection<AtendimentoMotivoEncerramento> colecaoAtendimentoMotivoEncerramento =
Fachada.getInstancia().pesquisar( filtroAtendimentoMotivoEncerramento,
AtendimentoMotivoEncerramento.class.getName());
if (colecaoAtendimentoMotivoEncerramento == null || colecaoAtendimentoMotivoEncerramento.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null, "Motivo Encerramento");
}else{
sessao.setAttribute("colecaoAtendimentoMotivoEncerramento", colecaoAtendimentoMotivoEncerramento);
}
}
/**
* Pesquisa Munic�pios associados � localidade
*
* @author Diogo Peixoto
* @date 26/04/2011
*/
private void pesquisarMunicipioAssociado(HttpServletRequest httpServletRequest){
Collection colecaoMunicipioAssociado = this.getFachada().pesquisarMunicipiosAssociadoLocalidade();
if (colecaoMunicipioAssociado == null || colecaoMunicipioAssociado.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,"Munic�pios associados a localidade");
} else {
httpServletRequest.setAttribute("colecaoMunicipioAssociado",colecaoMunicipioAssociado);
}
}
private void pesquisarUnidadeAtendimento(HttpServletRequest httpServletRequest,
FiltrarAcompanhamentoRegistroAtendimentoActionForm form) {
// Pesquisa a unidade organizacional na base
FiltroUnidadeOrganizacional filtro = new FiltroUnidadeOrganizacional();
filtro.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.ID, form.getUnidadeAtendimentoId()));
Collection<UnidadeOrganizacional> collUnidadeOrganizacional = Fachada.getInstancia().pesquisar(
filtro, UnidadeOrganizacional.class.getName());
// Se nenhum usu�rio for encontrado a mensagem � enviada para a p�gina
if (collUnidadeOrganizacional != null && !collUnidadeOrganizacional.isEmpty()) {
UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional)
Util.retonarObjetoDeColecao(collUnidadeOrganizacional);
form.setUnidadeAtendimentoId("" + unidadeOrganizacional.getId());
form.setUnidadeAtendimentoDescricao( unidadeOrganizacional.getDescricao());
} else {
form.setUnidadeAtendimentoId("");
form.setUnidadeAtendimentoDescricao("UNIDADE INEXISTENTE");
httpServletRequest.setAttribute("unidadeInexistente",true);
}
}
}