package com.fp.armas.task;

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

import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDetRepDestruirArmas;
import com.fp.sessionbeans.helper.Sequence;
import com.fp.simple.action.TaskAction;

/**
 * Clase que se encarga de fijar el codigo de empleado asociado a la solicitud en el request campo userId, para asignar
 * una tarea.
 * 
 * @version 2.1
 */
public class EmitirComprobanteCaja 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("**** Emitir Comprobante De Caja ****");
//        HashMap<String, Object> m = (HashMap<String, Object>) pParam;
//        Map<String, Object> mrequest = (Map<String, Object>) m.get("request");
//        if (mrequest.get("creporte") == null) {
//            return;
//        }
//        Integer creporte=Integer.parseInt(mrequest.get("creporte").toString());
//
//        //lista de las armas decomisadas que se encuentran en el reporte
//        List<TarmDetRepDestruirArmas> tarmDetRepDestruirArmasList=   PersistenceHelper.getEntityManager().
//        														createQuery("select t from TarmDetRepDestruirArmas t where t.creporte=:creporte")
//        														.setParameter("creporte", creporte)
//        														.getResultList();
//        //Se recorre la lista de las armas del reporte de destruccion
//        for(TarmDetRepDestruirArmas detArmaObj:tarmDetRepDestruirArmasList){
//        	//Actualizo el estado del registro tarmDecomisoArma
//        	
//        	TarmDecomisoArma decomisoArmaObj = (TarmDecomisoArma) PersistenceHelper.getEntityManager().createQuery("select t from TarmDecomisoArma t where t.pk=:pk")
//					.setParameter("pk", detArmaObj.getCdecomisoarma())
//					.getResultList().get(0);        	
//        	decomisoArmaObj.setEstado("DEST");
//        	PersistenceHelper.getEntityManager().merge(decomisoArmaObj);
//        	//Actualizo el estado del registro tarmArma
//        	TarmArmas armaObjAnterior = (TarmArmas) PersistenceHelper.getEntityManager().createQuery("select t from TarmArmas t where t.pk=:pk")
//					.setParameter("pk", decomisoArmaObj.getCarma())
//					.getResultList().get(0);  
//        	TarmArmas armaObj = new TarmArmas();
//        	armaObj.setCantidad(armaObjAnterior.getCantidad());
//        	armaObj.setCantoncode(armaObjAnterior.getCantoncode());
//        	armaObj.setCitycode(armaObjAnterior.getCitycode());
//        	armaObj.setCodigoarma(armaObjAnterior.getCodigoarma());
//        	armaObj.setColor(armaObjAnterior.getColor());
//        	armaObj.setColorcodigo(armaObjAnterior.getColorcodigo());
//        	armaObj.setCountrycode(armaObjAnterior.getCountrycode());
//        	armaObj.setCpaisorigen(armaObjAnterior.getCpaisorigen());
//        	armaObj.setCregistro(armaObjAnterior.getCregistro());
//        	armaObj.setCtipoarmaexplosivo(armaObjAnterior.getCtipoarmaexplosivo());
//        	armaObj.setDireccion(armaObjAnterior.getDireccion());        	
//        	armaObj.setEstado("DEST");
//        	armaObj.setEstadocodigo("ESTADOARMA");
////        	Timestamp timeStamp = new Timestamp(System.currentTimeMillis());
////        	armaObj.setFecharegistro(timeStamp);
//        	armaObj.setFemisionpermiso(armaObjAnterior.getFemisionpermiso());
//        	armaObj.setLote(armaObjAnterior.getLote());
//        	armaObj.setMarca(armaObjAnterior.getMarca());
//        	armaObj.setMarcacodigo(armaObjAnterior.getMarcacodigo());
//        	armaObj.setModelo(armaObjAnterior.getModelo());
//        	armaObj.setNemonicoarma(armaObjAnterior.getNemonicoarma());
//        	armaObj.setParroquiacode(armaObjAnterior.getParroquiacode());
//        	armaObj.setPeso(armaObjAnterior.getPeso());
//        	armaObj.setPesoAux(armaObjAnterior.getPesoAux());
//        	armaObj.setProvincecode(armaObjAnterior.getProvincecode());
//        	armaObj.setSeriecanon(armaObjAnterior.getSeriecanon());
//        	armaObj.setTipofabricacion(armaObjAnterior.getTipofabricacion());
//        	armaObj.setTipofabricacioncodigo(armaObjAnterior.getTipofabricacioncodigo());
//        	armaObj.setUnidadmedidacantidad(armaObjAnterior.getUnidadmedidacantidad());
//        	armaObj.setUnidadmedidacantidadcodigo(armaObjAnterior.getUnidadmedidacantidadcodigo());
//        	armaObj.setValorAux(armaObjAnterior.getValorAux());
//        	armaObj.setPk(getCodigoArma().toString());
//        	PersistenceHelper.getEntityManager().persist(armaObj);       	
//        }
//        PersistenceHelper.getEntityManager().flush();
    }
    
//    private Integer getCodigoArma() throws Exception{
//		Sequence sequence = new Sequence();
//		Integer carma = sequence.getNextValue("CARMA").intValue();
//		return carma;
//	}
    

}
