maia/.svn/pristine/23/23bb69f7a8ea9e1e9ec08bda3bd...

78 lines
2.4 KiB
Plaintext
Executable File

package com.fp.viaticos.rules.save.acumulados;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.Calendar;
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.commondb.PersistenceHelper;
import com.fp.persistence.pviaticos.param.ViaDiasAcumulados;
import com.fp.persistence.pviaticos.param.ViaDiasAcumuladosKey;
import com.fp.persistence.pviaticos.solicitud.ViaSolicitud;
import com.fp.persistence.pviaticos.solicitud.ViaSolicitudKey;
import com.fp.viaticos.rules.enums.EnumCodigos;
/**
* Clase que se encarga de completar información para acumulacion de dias en la solicitud de viaticos.
*
* @author WPA.
* @version 2.1
*/
public class DiasAcumulados extends TransactionRule {
private static final long serialVersionUID = 1L;
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
if (Constant.ifYes((String) pSaveRequest.get("isnew")) || pSaveRequest.get("csolicitud") == null) {
return pSaveRequest;
}
String solicitud = (String)pSaveRequest.get("csolicitud");
ViaSolicitud informe = ViaSolicitud.find(PersistenceHelper.getEntityManager(), new ViaSolicitudKey(solicitud, EnumCodigos.INFORME.getCodigo()));
if(informe == null){
return pSaveRequest;
}
ViaDiasAcumuladosKey key = new ViaDiasAcumuladosKey();
key.setCod_destino(informe.getCod_destino());
key.setCod_ejercicio(this.getYear(informe.getFec_creacion()));
key.setCod_empleado(informe.getCod_empleado());
ViaDiasAcumulados acumulado = ViaDiasAcumulados.find(PersistenceHelper.getEntityManager(), key);
if(acumulado!=null){
BigDecimal dias = acumulado.getNum_dias().add(informe.getNum_dias());
acumulado.setNum_dias(dias);
}else{
acumulado = new ViaDiasAcumulados();
acumulado.setPk(key);
acumulado.setNum_dias(informe.getNum_dias());
PersistenceHelper.saveOrUpdate(acumulado);
}
return pSaveRequest;
}
@Override
public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
return pSaveRequest;
}
/**
* Entrega el anio
* @param date Fecha
* @return year
*/
private Integer getYear(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
}