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

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.fun.TarmSolicitudImportacion;
import com.fp.persistence.parmas.soli.TarmOrdenTrabajo;
import com.fp.persistence.parmas.soli.TarmOrdenTrabajoCustodios;
import com.fp.sessionbeans.helper.Sequence;

public class OrdenTrabajoSave extends TransactionRule {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
		
		TarmOrdenTrabajo ordenTrabajo=(TarmOrdenTrabajo) pSaveRequest.getSaveBeanModifiedObject("ORDENTRABAJOCONTROLLER");
		if(ordenTrabajo==null){
			return pSaveRequest;
		}
		
		TarmOrdenTrabajoCustodios custodio=(TarmOrdenTrabajoCustodios)pSaveRequest.getSaveBeanModifiedObject("CUSTODIOSCONTROLLER");;
		List<Object> lcustodios = (List<Object>)pSaveRequest.getSaveBeanModifiedRecords("CUSTODIOSCONTROLLER");
		
		if(lcustodios.isEmpty()){
			lcustodios.add(custodio);
		}	
		
		//PersistenceHelper.getEntityManager().merge(ordenTrabajo);
		PersistenceHelper.getEntityManager().persist(ordenTrabajo);
		for (Object object : lcustodios) {
			TarmOrdenTrabajoCustodios c=(TarmOrdenTrabajoCustodios)object;
			
	        //Sequence sequence = new Sequence();
	        //String codigoCustodio = sequence.getNextValue("CORDENTRABAJOCUSTODIOS").toString();
	        
	        //c.setPk(Long.parseLong(codigoCustodio));
			c.setCordentrabajo(ordenTrabajo.getPk());			
			PersistenceHelper.getEntityManager().persist(c);
		}
		PersistenceHelper.getEntityManager().flush();
 
		return pSaveRequest;
	}

	@Override
	public SaveRequest reverseProcess(SaveRequest arg0) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

}
