package com.fp.armas.task;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import javax.persistence.EntityManager;

import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.soli.TarmSolicitud;
import com.fp.persistence.parmas.soli.TarmSolicitudTramite;
import com.fp.persistence.parmas.soli.TarmSolicitudTramiteKey;
import com.fp.simple.action.TaskAction;

/**
 * Clase que se encarga de validar numero de custodios
 * @author Christian Pazmino
 * @version 2.1
 */
public class ValidarCustodios extends TaskAction {
	private EntityManager em;
    /*
     * (non-Javadoc) 
     * @see com.fp.simple.action.TaskAction#assignOwner(com.fp.dto.Request)
     */
    @SuppressWarnings("unchecked")
    @Override
    public void assignOwner(Object pParam) throws Exception {
    	System.out.println("Rutina para validar custodios...");
    	em=PersistenceHelper.getEntityManager();
    	HashMap<String, Object> m = (HashMap<String, Object>) pParam;
	    Map<String, Object> mrequest = (Map<String, Object>) m.get("request");
	    String csolicitud = "";
	    if (mrequest.get("csolicitud") == null) {
	        return;
	    }
	    else{
	    	csolicitud=mrequest.get("csolicitud").toString();
	    	TarmSolicitud solicitud = TarmSolicitud.find(em, csolicitud);
	    	solicitud.setEstado("FIN");
	    	em.merge(solicitud);
	    	Long ctramite = solicitud.getCtramite();
	    	TarmSolicitudTramiteKey codigoSolicitudKey = new TarmSolicitudTramiteKey(csolicitud, ctramite);
	    	TarmSolicitudTramite solicitudTramite=TarmSolicitudTramite.find(em, codigoSolicitudKey);
	    	solicitudTramite.setEstadotramite("FIN");
	    	em.merge(solicitudTramite);
	    	BigDecimal numeroCustodios = new BigDecimal("0"); 
		    if(solicitud.getNumerocustodios()!=null){
				numeroCustodios = new BigDecimal(solicitud.getNumerocustodios());   
			}    	
	    	if(numeroCustodios.compareTo(new BigDecimal("0"))!=0){    		
	    		m.put("BPMStatus","A");    					
	    	}    
	        else{
	        	m.put("BPMStatus","D");
	        }
	    	        
	        
	    }	    
    	
    }

}
