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

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.List;

import com.fp.bpm.query.QueryJsf;
import com.fp.dto.Response;
import com.fp.dto.query.QueryRequest;
import com.fp.dto.rules.QueryRule;
import com.fp.persistence.pviaticos.hra.Empleado;
import com.fp.persistence.pviaticos.hra.EmpleadoJpql;
import com.fp.persistence.pviaticos.solicitud.ViaSolicitud;
import com.fp.viaticos.rules.query.destino.DestinoQuery;

public class ConsultaLovSolicitud extends QueryRule{

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

	@Override
	public QueryRequest process(QueryRequest pQrequest) throws Exception {
		Response response = pQrequest.getResponse();
		QueryJsf query = new QueryJsf();
        query.execute(pQrequest);
        List<Object> solicitudes = (List<Object>)response.get("SOLICITUDLOV"); 
        this.completeInfoSolicitud(solicitudes);
		return null;
	}

	/**
	 * Completa los datos de la solicitud
	 * @param List Objetos ViaSolicitud
	 * @throws Exception
	 */
	public void completeInfoSolicitud(List<Object> objects) throws Exception{
		if(objects==null){
			return;
		}
		for(Object object: objects){
			ViaSolicitud solicitud = (ViaSolicitud)object;
			DestinoQuery qry = new DestinoQuery();
			//Destino
			Object obj = qry.find(solicitud.getCod_destino());
			if(obj!=null){
				Object[] destino = (Object[])obj;
				solicitud.modifiedData.put("destinoname", destino[1]);
			}
		}
	}
}
