package com.fp.frontend.controller.armas.eval; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import org.primefaces.context.RequestContext; import com.fp.dto.AbstractDataTransport; import com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.armas.parametros.PreguntasParaEvaluacionesController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; import com.fp.frontend.controller.pgeneral.gene.ParametersController; import com.fp.frontend.enums.EnumLovOption; import com.fp.frontend.helper.MessageHelper; import com.fp.frontend.utility.MsgControlArmas; import com.fp.persistence.parmas.eval.TarmPreguntas; import com.fp.persistence.parmas.eval.TarmRespuestas; import com.fp.persistence.pcustomer.gene.TcustPersonDetail; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; import com.fp.persistence.pgeneral.gene.TgeneParameters; /** * Clase controladora del lov asociado con la evaluacion. * * @author Andres Cevallos. * @version 2.1 */ @ManagedBean @ViewScoped public class ConocimientoLovController extends AbstractController { private static final long serialVersionUID = 1L; /** * Instancia de la clase TarmPreguntas */ private TarmPreguntas pregunta; /** * Boleano que comprueba si la pregunta fue respondida correctamente */ private Boolean isCorrecta; /** * Lista de Preguntas */ private List lpreguntas; /** * Lista de Respuestas */ private List lrespuestas; /** * Instancia de TcustpersonDetail, corresponde a la persona a ser * evaluada */ private static TcustPersonDetail personevaluada; /** * Instancia de una Evaluacion, maneja una pregunta y sus respectivasrespuestas * que son mostradas en pantalla */ private Evaluacion currentEvaluacion; /** * Lista del objetos Evaluacion */ private List leva; /** * Tipo de Evaluacion */ private static String tipoeval; /** * Contador que Lleva el numero de pregunta en el que se encuentra */ private int numeropregunta; /** * Maneja la ultima pregunta */ private boolean finalizar; /** * Fecha Actual del Sistema */ private Date fecha; /** * Objeto que sera retornado conteniendo todas las preguntas. */ EvaluacionCompleta evaluacionCompleta; /** * Tipo de persona referenciada en el catalogo */ private TgeneCatalogDetail tipopersona; /** * Tipo de evaluacion referenciado en el catalogo */ private TgeneCatalogDetail tipoevaluacion; /** * Numero de preguntas que tendra la evaluacion */ int npreguntas=4; private Boolean errorrend=false; private String error; public ConocimientoLovController() throws Exception { super(AbstractDataTransport.class); } @PostConstruct private void postconstruct() { this.init(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { this.recperpage = 15; // Cambiar al # reg a mirar. this.lrecord = new ArrayList<>(); lpreguntas = new ArrayList(); this.beanalias = "EVALUACIONLOV"; tipoevaluacion = new TgeneCatalogDetail(); TgeneParameters parametro= ParametersController.find("NUMEROPREGUNTAS", "1"); try{ npreguntas=parametro.getNumbervalue().intValue(); tipoevaluacion=CatalogDetailController.findxCodigoCodcatalogo(tipoeval, "TIPOEVALUACION"); setTipopersona(CatalogDetailController.findxCodigoCodcatalogo(personevaluada.getPersontypecatalog(), personevaluada.getPersontypecatalogcode())); lpreguntas.addAll( PreguntasParaEvaluacionesController.findxPregunta(tipopersona.getPk().getCatalog(),"CONOCIMIENTO")); } catch(Exception e){ MessageHelper.setMessageError("PROBLEMAS DE PARAMETRIZACION. CONSULTE AL EVALUADOR"); error="PROBLEMAS DE PARAMETRIZACION. CONSULTE AL EVALUADOR"; errorrend=true; System.out.println("Error"); return; } numeropregunta=0; finalizar=false; fecha=Calendar.getInstance().getTime(); evaluacionCompleta=new EvaluacionCompleta(); evaluacionCompleta.inicializa(); construirEvaluacion(); currentEvaluacion=leva.get(numeropregunta); comprobarpreguntafinal(); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Construye la evaluacion en base a las preguntas que se tengan catalogadas */ public void construirEvaluacion(){ leva = new ArrayList(); int i=0; while(i> params, TcustPersonDetail persona,String catalogo) { personevaluada=persona; tipoeval=catalogo; Map options = new HashMap(); options.put(EnumLovOption.MODAL.getLabel(), true); options.put(EnumLovOption.HEIGHT.getLabel(), 350); options.put(EnumLovOption.WIDTH.getLabel(), 900); options.put(EnumLovOption.RESIZABLE.getLabel(), false); options.put("closable", false); RequestContext.getCurrentInstance().openDialog("/pages/armas/lov/conocimientoLov.xhtml", options, params); } /** * Crea una instancia y marca el registro como nuevo. * * @throws Exception */ @Override public void create() throws Exception { super.create(); isCorrecta = false; // record.setCpregunta(pregunta.getPk()); } /** * Actualiza la lista de registros a grabar * * @throws Exception */ public void update() throws Exception { //if(record.getEscorrecta()==null){ // record.setEscorrecta("N"); // } //super.update(); } /* (non-Javadoc) * @see com.fp.frontend.controller.AbstractController#save() */ @Override public void save() { try { DtoSave dtosave = super.getDtoSave(); dtosave.setReturnpk(true); // Para que el core devuelva el pk de los // registros nuevos. HashMap msave = new HashMap(); Request request = callerhelper.getRequest(); msave.put(beanalias, dtosave); // adicionar metadata de // mantenimiento para cada tabla. request.setSaveTables(msave); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } public TarmPreguntas getPregunta() { return pregunta; } public void setPregunta(TarmPreguntas pregunta) { this.pregunta = pregunta; } public Boolean getIsCorrecta() { return isCorrecta; } public void setIsCorrecta(Boolean isCorrecta) { this.isCorrecta = isCorrecta; } public void onChangeEsCorrecta() { /* if (isCorrecta) { record.setEscorrecta("Y"); } else { record.setEscorrecta("N"); }*/ } public List getLpreguntas() { return lpreguntas; } public void setLpreguntas(List lpreguntas) { this.lpreguntas = lpreguntas; } public List getLrespuestas() { return lrespuestas; } public void setLrespuestas(List lrespuestas) { this.lrespuestas = lrespuestas; } public List getLeva() { return leva; } public void setLeva(List leva) { this.leva = leva; } public TcustPersonDetail getPersonevaluada() { return personevaluada; } public void setPersonevaluada(TcustPersonDetail personevaluada) { this.personevaluada = personevaluada; } public TgeneCatalogDetail getTipopersona() { return tipopersona; } public void setTipopersona(TgeneCatalogDetail tipopersona) { this.tipopersona = tipopersona; } public TgeneCatalogDetail getTipoevaluacion() { return tipoevaluacion; } public void setTipoevaluacion(TgeneCatalogDetail tipoevaluacion) { this.tipoevaluacion = tipoevaluacion; } public Evaluacion getCurrentEvaluacion() { return currentEvaluacion; } public void setCurrentEvaluacion(Evaluacion currentEvaluacion) { this.currentEvaluacion = currentEvaluacion; } public boolean isFinalizar() { return finalizar; } public void setFinalizar(boolean finalizar) { this.finalizar = finalizar; } public int getNumeropregunta() { return numeropregunta; } public void setNumeropregunta(int numeropregunta) { this.numeropregunta = numeropregunta; } public Date getFecha() { return fecha; } public void setFecha(Date fecha) { this.fecha = fecha; } public String getError() { return error; } public void setError(String error) { this.error = error; } public Boolean getErrorrend() { return errorrend; } public void setErrorrend(Boolean errorrend) { this.errorrend = errorrend; } }