114 lines
3.9 KiB
Plaintext
Executable File
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;
|
|
}
|
|
|
|
}
|