package com.fp.viaticos.rules.save.solicitud; import java.sql.Date; import java.text.SimpleDateFormat; import com.fp.dto.rules.TransactionRule; import com.fp.dto.save.SaveRequest; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.commondb.helper.FormatDates; import com.fp.persistence.pviaticos.solicitud.ViaSolicitud; import com.fp.persistence.pviaticos.solicitud.ViaSolicitudComentarios; import com.fp.persistence.pviaticos.solicitud.ViaSolicitudComentariosKey; import com.fp.persistence.pviaticos.solicitud.ViaSolicitudKey; import com.fp.viaticos.rules.enums.EnumCodigos; /** * Clase que se encarga de almacenar comentarios de la tarea y el estatus actual de la solicitud. * * @author Jorge Vaca. * @version 2.1 */ public class Comentarios extends TransactionRule { /** * Version de la clase. */ private static final long serialVersionUID = 1L; /* * (non-Javadoc) * * @see com.fp.dto.rules.TransactionRule#normalProcess(com.fp.dto.save.SaveRequest) */ @Override public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception { if (pSaveRequest.get("csolicitud") == null || pSaveRequest.get("BPMStatus") == null || pSaveRequest.get("tipo") == null) { return pSaveRequest; } String csolicitud = pSaveRequest.getString("csolicitud"); // El estado y los comentarios solo van a la solicitud. ViaSolicitud vsol = ViaSolicitud.find(PersistenceHelper.getEntityManager(), new ViaSolicitudKey(csolicitud, EnumCodigos.SOLICITUD.getCodigo())); this.crearComentario(pSaveRequest, vsol); return pSaveRequest; } /* * (non-Javadoc) * * @see com.fp.dto.rules.TransactionRule#reverseProcess(com.fp.dto.save.SaveRequest) */ @Override public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception { return pSaveRequest; } private void crearComentario(SaveRequest pSaveRequest, ViaSolicitud vsol) throws Exception { ViaSolicitudComentariosKey key = new ViaSolicitudComentariosKey(); key.setCod_solicitud(vsol.getPk().getCod_solicitud()); key.setCod_tipo(vsol.getPk().getCod_tipo()); ViaSolicitudComentarios comen = new ViaSolicitudComentarios(key); comen.setCod_estado(vsol.getCod_estado()); comen.setCod_usuario(pSaveRequest.getUser()); Date f = FormatDates.getInstance().getDataBaseDate(); SimpleDateFormat sdf = FormatDates.getInstance().getHourSecondsFormat(); comen.setFec_comentario(f); comen.setFec_hora(sdf.format(FormatDates.getInstance().getDataBaseTimestamp())); comen.setTxt_actividad(pSaveRequest.getString("taskname")); comen.setTxt_comentario(pSaveRequest.getString("BPMObs")); // Almacena en la base de datos el comentario. PersistenceHelper.getEntityManager().persist(comen); } }