package gcom.gui.portal;
import gcom.atendimentopublico.portal.QuestionarioSatisfacaoCliente;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimento;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import java.util.Date;
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;
/**
*
* [UC1181] Registrar Informa��es de Pesquisa de Satisfa��o
*
* @author Paulo Diniz
* @date 19/06/2011
*
*/
public class QuestionarioSatisfacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("exibirQuestionarioSatisfacao");
HttpSession sessao = httpServletRequest.getSession(false);
String operacao = (String) sessao.getAttribute("operacao");
if(operacao == null || !operacao.equals("sucesso")){
QuestionarioSatisfacaoActionForm form = (QuestionarioSatisfacaoActionForm) actionForm;
String indicadorBemAtendido = form.getIndicadorBemAtendido();
String comentarioBemAtendido = form.getComentarioBemAtendido();
String indicadorSolicitacaoResolvida = form.getIndicadorSolicitacaoResolvida();
String comentarioSolicitacaoResolvida = form.getComentarioSolicitacaoResolvida();
String indicadorContatoEquipeCampo = form.getIndicadorContatoEquipeCampo();
String comentarioContatoEquipeCampo = form.getComentarioContatoEquipeCampo();
String nota = form.getNota();
String comentarioGeral = form.getComentarioGeral();
String idRegistroAtendimentoEncerrado = form.getIdRegistroAtendimentoEncerrado();
validarCampoObrigatorios(indicadorBemAtendido,
indicadorSolicitacaoResolvida, indicadorContatoEquipeCampo,
nota);
QuestionarioSatisfacaoCliente questionario = carregarCamposFormulario(
indicadorBemAtendido, comentarioBemAtendido,
indicadorSolicitacaoResolvida, comentarioSolicitacaoResolvida,
indicadorContatoEquipeCampo, comentarioContatoEquipeCampo,
nota, comentarioGeral, idRegistroAtendimentoEncerrado);
Fachada.getInstancia().registrarQuestionarioSatisfacaoCliente(questionario);
sessao.setAttribute("operacao", "sucesso");
}
return retorno;
}
private QuestionarioSatisfacaoCliente carregarCamposFormulario(
String indicadorBemAtendido, String comentarioBemAtendido,
String indicadorSolicitacaoResolvida,
String comentarioSolicitacaoResolvida,
String indicadorContatoEquipeCampo,
String comentarioContatoEquipeCampo, String nota,
String comentarioGeral, String idRegistroAtendimentoEncerrado) {
QuestionarioSatisfacaoCliente questionario = new QuestionarioSatisfacaoCliente();
if(indicadorBemAtendido != null && !indicadorBemAtendido.equals("")){
questionario.setIndicadorBemAtendido(new Short(indicadorBemAtendido));
}
if(indicadorSolicitacaoResolvida != null && !indicadorSolicitacaoResolvida.equals("")){
questionario.setIndicadorSolicitacaoResolvida(new Short(indicadorSolicitacaoResolvida));
}
if(indicadorContatoEquipeCampo != null && !indicadorContatoEquipeCampo.equals("")){
questionario.setIndicadorContatoEquipeCampo(new Short(indicadorContatoEquipeCampo));
}
if(nota != null && !nota.equals("")){
questionario.setNota(new Short(nota));
}
if(comentarioBemAtendido != null && !comentarioBemAtendido.equals("")){
questionario.setComentarioBemAtendido(comentarioBemAtendido);
}
if(comentarioBemAtendido != null && !comentarioSolicitacaoResolvida.equals("")){
questionario.setComentarioSolicitacaoResolvida(comentarioSolicitacaoResolvida);
}
if(comentarioContatoEquipeCampo != null && !comentarioContatoEquipeCampo.equals("")){
questionario.setComentarioContatoEquipeCampo(comentarioContatoEquipeCampo);
}
if(comentarioGeral != null && !comentarioGeral.equals("")){
questionario.setComentarioGeral(comentarioGeral);
}
questionario.setUltimaAlteracao(new Date());
RegistroAtendimento registroAtendimento = new RegistroAtendimento();
registroAtendimento.setId(Integer.parseInt(idRegistroAtendimentoEncerrado));
questionario.setRegistroAtendimento(registroAtendimento);
return questionario;
}
private void validarCampoObrigatorios(String indicadorBemAtendido,
String indicadorSolicitacaoResolvida,
String indicadorContatoEquipeCampo, String nota) {
if(indicadorBemAtendido == null || indicadorBemAtendido.equals("")){
ActionServletException ex = new ActionServletException(
"atencao.campo.informada", null, "Pergunta voc� foi bem atendido");
throw ex;
}
if(indicadorSolicitacaoResolvida == null || indicadorSolicitacaoResolvida.equals("")){
ActionServletException ex = new ActionServletException(
"atencao.campo.informada", null, "Pergunta sua solicita��o foi resolvida");
throw ex;
}
if(indicadorContatoEquipeCampo == null || indicadorContatoEquipeCampo.equals("")){
ActionServletException ex = new ActionServletException(
"atencao.campo.informada", null, "Pergunta sobre contato com a equipe de campo");
throw ex;
}
if(nota == null || nota.equals("")){
ActionServletException ex = new ActionServletException(
"atencao.campo.informada", null, "Nota sobre atendimento");
throw ex;
}
}
}