package com.fp.armas.rules.save.calificacion;




import java.util.List;

import com.fp.dto.rules.TransactionRule;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.eval.TarmDetallePreguntas;
import com.fp.persistence.parmas.eval.TarmEvaluacion;
import com.fp.persistence.parmas.soli.TarmGuardias;
import com.fp.sessionbeans.helper.Sequence;


/**
 * @author Andres Cevallos
 * Clase que ingresa un registro de evaluación psicológica y la registra
 */

public class EvaluacionPsicologica extends TransactionRule {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/* (non-Javadoc)
	 * @see com.fp.dto.rules.TransactionRule#normalProcess(com.fp.dto.save.SaveRequest)
	 */
	@Override
	public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
	//	TarmEvaluacion registroArma = (TarmEvaluacion) pSaveRequest.getSaveBeanModifiedObject("EVALUACION");
		List<Object> levaluacion = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("EVALUACION");
	    TarmGuardias guardia = (TarmGuardias) pSaveRequest.getSaveBeanModifiedObject("GUARDIAS");
		if(levaluacion==null || levaluacion.isEmpty()){
			TarmEvaluacion evaluacion = (TarmEvaluacion) pSaveRequest.getSaveBeanModifiedObject("EVALUACION");
				if (evaluacion == null) {
	        	
	            return pSaveRequest;
	        }
        	levaluacion.add(evaluacion);
		}
		
		
		
		 
		 for(Object deta : levaluacion){
			 TarmEvaluacion detalle = (TarmEvaluacion) deta;
			 if(detalle.getResultado().equalsIgnoreCase("REPROBADO")){
				 detalle.setFechaexpiracion(null);
				 detalle.setFechapreox(null);
			 }
			if(detalle.getPk()==null)
			 detalle.setPk(getCodigoPreguntas());
		
			
		
		 }
		/* if(guardia!=null)
		 PersistenceHelper.getEntityManager().persist(guardia);
		 
	*/

		 
		return pSaveRequest;
		    
	     
	}

	/* (non-Javadoc)
	 * @see com.fp.dto.rules.TransactionRule#reverseProcess(com.fp.dto.save.SaveRequest)
	 */
	@Override
	public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
		
		

		return pSaveRequest;
	}
	
	


    
    /**
     * Obtiene el codigo de la evaluacion
     * @return
     * @throws Exception
     */
    private String getCodigoPreguntas() throws Exception {
        Sequence sequence = new Sequence();
        String codigo = sequence.getNextValue("CEVALUACION").toString();
        
        return codigo;
    	
    }
    
    


}