package gcom.gui.portal;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimento;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimento;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
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;
/**
* Classe Respons�vel por exibir o Questionario de Satisfacao do Cliente
*
* @author Paulo Diniz
* @date 23/06/2011
*/
public class ExibirQuestionarioSatisfacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("exibirQuestionarioSatisfacao");
HttpSession sessao = httpServletRequest.getSession(false);
String idRegistroAtendimentoEncerrado = httpServletRequest.getParameter("idRegistroAtendimentoEncerrado");
if(idRegistroAtendimentoEncerrado == null || idRegistroAtendimentoEncerrado.equals("")){
sessao.setAttribute("operacao", "RAnaoEncontrada");
}else{
Fachada fachada = Fachada.getInstancia();
//3.1.1HttpSession sessao = httpServletRequest.getSession(false);
String nomeSolicitante = fachada.obterNomeSolicitanteRA(Integer.parseInt(idRegistroAtendimentoEncerrado));
//3.1.2
String localServico = fachada.obterEnderecoOcorrenciaRA(Integer.parseInt(idRegistroAtendimentoEncerrado));
//3.1.3 e 3.1.4
FiltroRegistroAtendimento filtro = new FiltroRegistroAtendimento();
filtro.adicionarCaminhoParaCarregamentoEntidade("solicitacaoTipoEspecificacao");
filtro.adicionarCaminhoParaCarregamentoEntidade("solicitacaoTipoEspecificacao.servicoTipo");
filtro.adicionarParametro(new ParametroSimples(FiltroRegistroAtendimento.ID, idRegistroAtendimentoEncerrado));
List<RegistroAtendimento> listaRA = new ArrayList<RegistroAtendimento>(fachada.pesquisar(filtro, RegistroAtendimento.class.getName()));
if(listaRA == null || listaRA.isEmpty()
|| listaRA.get(0).getDataEncerramento() == null){
sessao.setAttribute("operacao", "RAnaoEncontrada");
}else{
boolean questionarioRespondido = fachada.verificaExistenciaQuestionarioSatisfacaoRespondido(Integer.parseInt(idRegistroAtendimentoEncerrado));
if(questionarioRespondido){
sessao.removeAttribute("operacao");
}else{
sessao.setAttribute("nomeSolicitante", nomeSolicitante);
sessao.setAttribute("localServico", localServico);
sessao.setAttribute("tipoServico", listaRA.get(0).getSolicitacaoTipoEspecificacao().getServicoTipo().getDescricao());
sessao.setAttribute("dataConclusao", Util.formatarData(listaRA.get(0).getDataEncerramento()));
sessao.setAttribute("operacao", "exibirQuestionario");
sessao.setAttribute("idRegistroAtendimentoEncerrado", idRegistroAtendimentoEncerrado);
}
}
}
return retorno;
}
}