maia_modificado/.svn/pristine/ed/ed56ec726e45226b3035c362401...

114 lines
3.9 KiB
Plaintext
Executable File

package com.fp.general.application;
import java.util.List;
import com.fp.bpmlib.task.client.TaskUtil;
import com.fp.common.helper.BeanManager;
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.pgeneral.auth.TgeneSolicitudeClientdata;
import com.fp.simple.dto.Responses;
/**
* Calse que valida que este revisado los datos de clientes.
*
* @author Jorge Vaca.
* @version 2.1
*/
public class ClientApproval extends TransactionRule {
/*
* (non-Javadoc)
*
* @see com.fp.dto.rules.TransactionRule#normalProcess(com.fp.dto.save.SaveRequest)
*/
@Override
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
List<Object> ldata = pSaveRequest.getSaveBeanModifiedRecords("TGENESOLICITUDECLIENTDATA");
if ((ldata == null) || ldata.isEmpty()) {
return pSaveRequest;
}
TgeneSolicitudeClientdata client = (TgeneSolicitudeClientdata) ldata.get(0);
List<TgeneSolicitudeClientdata> ldatabasedata = TgeneSolicitudeClientdata.find(PersistenceHelper.getEntityManager(), client.getPk()
.getSolicitudnumber(), client.getPk().getSolicitudsequence());
if ((pSaveRequest.get(TaskUtil.BPM_TID) != null) && this.validate(ldata, ldatabasedata)) {
pSaveRequest.put(TaskUtil.BPM_STATUS, Responses.OK.getCode());
} else {
pSaveRequest.put(TaskUtil.BPM_STATUS, null);
pSaveRequest.put(TaskUtil.BPM_TID, null);
}
return pSaveRequest;
}
/**
* Verifica que los datos de de cleintes esten aprobados.
*
* @param ldata Datos de aprobacion que llegan en el request.
* @param ldatabasedata Datos de aprobacion que almacenados en la base de datos.
* @return boolean
* @throws Exception
*/
private boolean validate(List<Object> ldata, List<TgeneSolicitudeClientdata> ldatabasedata) throws Exception {
if (!this.validateData(ldata)) {
return false;
}
for (TgeneSolicitudeClientdata obj : ldatabasedata) {
if (!this.validateByRecord(obj, ldata)) {
return false;
}
}
return true;
}
/**
* Valida que la informacion que llega en el request este aprobada, si no esta aprobada retorna false.
*
* @param ldata Datos de aprobacion que llegan en el request.
* @return boolean
* @throws Exception
*/
private boolean validateData(List<Object> ldata) throws Exception {
for (Object object : ldata) {
if (!Constant.ifYes(((TgeneSolicitudeClientdata) object).getChecked())) {
return false;
}
}
return true;
}
/**
* Valida que el registro de verificacion de datos de clientes este aprobado, sea en los datos que llegan en el
* request o este haya sido aprobado con anterioridad.
*
* @param client Datos de la base a verificar que el registro este aprobado.
* @param ldata Lista de datos de aprobacion que llegan en el request.
* @return boolean.
* @throws Exception
*/
private boolean validateByRecord(TgeneSolicitudeClientdata client, List<Object> ldata) throws Exception {
for (Object object : ldata) {
TgeneSolicitudeClientdata obj = (TgeneSolicitudeClientdata) object;
if (BeanManager.compareObject(client.getPk(), obj.getPk())) {
return true;
}
}
if (Constant.ifYes(client.getChecked())) {
return true;
}
return false;
}
/*
* (non-Javadoc)
*
* @see com.fp.dto.rules.TransactionRule#reverseProcess(com.fp.dto.save.SaveRequest)
*/
@Override
public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
return pSaveRequest;
}
}