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

import java.util.List;

import com.fp.common.helper.Constant;
import com.fp.dto.rules.TransactionRule;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.pviaticos.solicitud.ViaSolicitudTransporte;

/**
 * Clase que se encarga de completar información de medios de transporte utilizados en la solicitud de viaticos.
 * 
 * @author Jorge Vaca.
 * @version 2.1
 */
public class SolicitudTransporte extends TransactionRule {

    private static final long serialVersionUID = 1L;

    /*
     * (non-Javadoc)
     * 
     * @see com.fp.dto.rules.TransactionRule#normalProcess(com.fp.dto.save.SaveRequest)
     */
    @Override
    public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
        if (Constant.ifYes((String) pSaveRequest.get("isnew")) || pSaveRequest.get("csolicitud") == null) {
            return pSaveRequest;
        }
        String codSolicitud = (String) pSaveRequest.get("csolicitud");
        List<Object> ltransporte = pSaveRequest.getSaveBeanModifiedRecords("SOLICITUDTRANSPORTE");
        if(ltransporte==null || ltransporte.isEmpty()){
        	return null;
        }
        for (Object object : ltransporte) {
            ViaSolicitudTransporte obj = (ViaSolicitudTransporte) object;
            if (obj.getPk().getCod_solicitud() == null) {
                obj.getPk().setCod_solicitud(codSolicitud);
            }
        }
        return pSaveRequest;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.fp.dto.rules.TransactionRule#reverseProcess(com.fp.dto.save.SaveRequest)
     */
    @Override
    public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
        return pSaveRequest;
    }

}
