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.param.TarmCentroControl;
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante;
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitanteDetall;
import com.fp.persistence.parmas.soli.TarmSolicitudDocumento;

/**
 * Clase que se encarga de actualizar el campo de Reimpresion para la tabla TarmDocumentoHabilitante.
 * 
 * @author C.P.
 * @version 2.1
 */
public class ActualizaReimpresion extends TransactionRule{

	/**
	 * 
	 */
	private static final long serialVersionUID = 2006952557483529297L;

	@Override
	public SaveRequest normalProcess(SaveRequest sRequest) throws Exception {
		List<Object> listSolDocumento = (List<Object>)sRequest.getSaveBeanModifiedRecords("VERIFICARDOCUMENTOS");
		if(listSolDocumento!=null && !listSolDocumento.isEmpty()){
			for(Object obj:listSolDocumento){
				TarmSolicitudDocumento sol = (TarmSolicitudDocumento)obj;
				if(sol.getChkimpresion().equals("Y")){
					TarmDocumentoHabilitante dh = new TarmDocumentoHabilitante();
					dh.setPk(sol.getPk().getCdocumento());
					TarmDocumentoHabilitante doc = TarmDocumentoHabilitante.find(PersistenceHelper.getEntityManager(), dh.getPk());
					if(doc.getCuentareimpresion()!=null){
						doc.setCuentareimpresion(doc.getCuentareimpresion()+1);
					}else {
						doc.setCuentareimpresion(1);
					}
					sRequest.putSaveBean("TARMDOCUMENTOHABILITANTE", doc);
				}
				
				
			}
			
		}
		return sRequest;
	}

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

}
