maia/.svn/pristine/3a/3a4c8730edbc95604817bbe2174...

71 lines
3.1 KiB
Plaintext
Executable File

package com.fp.general.helper;
import com.fp.dto.Response;
import com.fp.dto.query.QueryRequest;
import com.fp.dto.rules.QueryRule;
import com.fp.persistence.commondb.HqlStatement;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.pgeneral.gene.TgeneUserSolicitudeNumber;
import com.fp.persistence.pgeneral.safe.TsafeUser;
/**
* Clase que entrega la secuencia de solicitud a utilizar por usuario.
*
* @author Jorge Vaca
* @version 2.1
*/
public class SolicitudeNumber extends QueryRule {
/**
* Metodo que entrega el numero de solicitud, para el usuario.
*
* @param pQueryRequest Datos del request.
* @throws Exception
*/
@Override
public QueryRequest process(QueryRequest pQueryRequest) throws Exception {
Response response = pQueryRequest.getResponse();
try {
TgeneUserSolicitudeNumber solicitudnumber = this.getTgeneUserSolicitudeNumber(pQueryRequest.getUser());
if (pQueryRequest.getInternalUserCode() == null) {
TsafeUser user = com.fp.base.persistence.util.db.DataHelper.getInstance().getTsafeUser(pQueryRequest.getUser());
pQueryRequest.setInternalUserCode(user.getInternalcode());
}
String sol = pQueryRequest.getInternalUserCode() + solicitudnumber.getSolicitudnumber();
response.put("solicitudenumber", sol);
solicitudnumber = PersistenceHelper.getEntityManager().merge(solicitudnumber);
return pQueryRequest;
} catch (Exception e) {
throw e;
}
}
/**
* Metodo que entrega la secuencia de solicitud a utilizar, esta se define por usuario.<br>
* Si no existe un registro en la tabla crea uno, si existe suma 1 a la secuencia de la solicitud.
*
* @param pUserCode Codigo de usuario a obtener el numero de solicitud.
* @return TgeneUserSolicitudeNumber
* @throws Exception
*/
protected TgeneUserSolicitudeNumber getTgeneUserSolicitudeNumber(String pUserCode) throws Exception {
TgeneUserSolicitudeNumber tgeneUserSolicitudeNumber = null;
HqlStatement hql = new HqlStatement(SolicitudeNumber.HQL);
hql.setString("usercode", pUserCode);
tgeneUserSolicitudeNumber = (TgeneUserSolicitudeNumber) hql.getObject();
if (tgeneUserSolicitudeNumber == null) {
tgeneUserSolicitudeNumber = new TgeneUserSolicitudeNumber();
tgeneUserSolicitudeNumber.setPk(pUserCode);
tgeneUserSolicitudeNumber.setSolicitudnumber("0");
}
Integer sec = Integer.valueOf(tgeneUserSolicitudeNumber.getSolicitudnumber());
sec++;
tgeneUserSolicitudeNumber.setSolicitudnumber(sec.toString());
return tgeneUserSolicitudeNumber;
}
/** Sentencia que obtiene un registro de TgeneUserSolicitudeNumber con la secuencia de solicitud por usuario. */
private static final String HQL = "from com.fp.persistence.pgeneral.gene.TgeneUserSolicitudeNumber t " + " where t.pk = :usercode ";
}