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.
* 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 "; }