package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimento;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimento;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoSolicitante;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao;
import gcom.atendimentopublico.registroatendimento.bean.ObterDescricaoSituacaoRAHelper;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 consulta de solicitantes do ra.
*
* @author Rafael Pinto
* @created 14/08/2006
*/
public class ExibirConsultarRegistroAtendimentoSolicitanteAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("consultarRegistroAtendimentoSolicitante");
Fachada fachada = Fachada.getInstancia();
ConsultarRegistroAtendimentoSolicitanteActionForm consultarRegistroAtendimentoSolicitante =
(ConsultarRegistroAtendimentoSolicitanteActionForm) actionForm;
RegistroAtendimento registroAtendimento =
pesquisarRegistroAtendimento(new Integer(consultarRegistroAtendimentoSolicitante.getNumeroRA()));
consultarRegistroAtendimentoSolicitante.setNumeroRA(""+registroAtendimento.getId());
ObterDescricaoSituacaoRAHelper situacaoRA =
fachada.obterDescricaoSituacaoRA(registroAtendimento.getId());
consultarRegistroAtendimentoSolicitante.setSituacaoRA(situacaoRA.getDescricaoSituacao());
SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao =
registroAtendimento.getSolicitacaoTipoEspecificacao();
if(solicitacaoTipoEspecificacao != null){
if(solicitacaoTipoEspecificacao.getSolicitacaoTipo() != null){
consultarRegistroAtendimentoSolicitante.setIdTipoSolicitacao(""+solicitacaoTipoEspecificacao.getSolicitacaoTipo().getId());
consultarRegistroAtendimentoSolicitante.setTipoSolicitacao(solicitacaoTipoEspecificacao.getSolicitacaoTipo().getDescricao());
}
consultarRegistroAtendimentoSolicitante.setIdEspecificacao(""+solicitacaoTipoEspecificacao.getId());
consultarRegistroAtendimentoSolicitante.setEspecificacao(solicitacaoTipoEspecificacao.getDescricao());
}
UnidadeOrganizacional unidadeAtual = fachada.obterUnidadeAtualRA(registroAtendimento.getId());
if(unidadeAtual != null){
consultarRegistroAtendimentoSolicitante.setIdUnidadeAtual(""+unidadeAtual.getId());
consultarRegistroAtendimentoSolicitante.setUnidadeAtual(unidadeAtual.getDescricao());
}
//Solicitantes do RA
Collection<RegistroAtendimentoSolicitante> colecaoSolicitantes =
fachada.obterRASolicitante(registroAtendimento.getId());
if(colecaoSolicitantes != null && !colecaoSolicitantes.isEmpty()) {
consultarRegistroAtendimentoSolicitante.setColecaoRegistroAtendimentoSolicitante(colecaoSolicitantes);
} else {
throw new ActionServletException("atencao.consultar_solicitantes_consulta_vazia");
}
return retorno;
}
/**
* Consulta o registro atendimento pelo id informado
*
* @author Rafael Pinto
* @created 14/08/2006
*/
private RegistroAtendimento pesquisarRegistroAtendimento(Integer id){
RegistroAtendimento retorno = null;
Fachada fachada = Fachada.getInstancia();
Collection colecaoRegistroAtendimento = null;
FiltroRegistroAtendimento filtroRegistroAtendimento = new FiltroRegistroAtendimento();
filtroRegistroAtendimento.adicionarParametro(new ParametroSimples(
FiltroRegistroAtendimento.ID,id));
filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("solicitacaoTipoEspecificacao");
filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("solicitacaoTipoEspecificacao.solicitacaoTipo");
colecaoRegistroAtendimento = fachada.pesquisar(filtroRegistroAtendimento,
RegistroAtendimento.class.getName());
if (colecaoRegistroAtendimento != null && !colecaoRegistroAtendimento.isEmpty()) {
retorno = (RegistroAtendimento) Util.retonarObjetoDeColecao(colecaoRegistroAtendimento);
} else {
throw new ActionServletException("atencao.naocadastrado",null, "Registro Atendimento");
}
return retorno;
}
}