package com.fp.armas.task;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.EntityManager;

import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetailKey;
import com.fp.simple.action.TaskAction;

/**
 * Clase que se encarga de fijar el valor de deposito para la solicitud
 * @author Christian Pazmino
 * @version 2.1
 */
public class ValidarUnidadInstitucion extends TaskAction {

    /*
     * (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 que determina si es un CENTRO DE CONTROL DE ARMAS");
    	HashMap<String, Object> m = (HashMap<String, Object>) pParam;
	    Map<String, Object> mrequest = (Map<String, Object>) m.get("request");
	    if (mrequest.get("numerotransaccion") == null) {
	        return;
	    }	
	    // DETERMINA SI ES CENTRO DE CONTROL SE DEBE CONTINUAR EL FLUJO O TERMINAR SI ES OTRA INSTITUCION
	    Boolean esCentroControlArmas = Boolean.FALSE;	   
	    EntityManager em = PersistenceHelper.getEntityManager();
	    TarmDecomisoArmaTransaccion decomisoArmaTransaccionObj = TarmDecomisoArmaTransaccion.find(PersistenceHelper.getEntityManager(), Long.parseLong(mrequest.get("numerotransaccion").toString()));
	    if(decomisoArmaTransaccionObj!=null){
	    	TarmCentroControl centroControlObj = TarmCentroControl.find(em, decomisoArmaTransaccionObj.getCcentrocontrol());
	    	// SI ES UN DEPARTAMENTO DE CONTROL DE ARMAS
	    	if(centroControlObj!=null && centroControlObj.getInstitucion()!=null && centroControlObj.getInstitucion().equals("1")){	    			    		
	    		esCentroControlArmas = Boolean.TRUE;
	    	}
	    }        
    	if(esCentroControlArmas){    		
    		m.put("BPMStatus","A");    					
    	}    
        else{
        	m.put("BPMStatus","D");
        }
    	
    }

}
