maia/.svn/pristine/50/502646303f433a7dada71517fcb...

74 lines
2.9 KiB
Plaintext
Executable File

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);
}
}