package com.fp.viaticos.task; import java.util.HashMap; import java.util.Map; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.pviaticos.hra.Empleado; import com.fp.persistence.pviaticos.hra.EmpleadoJpql; import com.fp.persistence.pviaticos.solicitud.ViaSolicitud; import com.fp.persistence.pviaticos.solicitud.ViaSolicitudKey; import com.fp.simple.action.TaskAction; /** * Clase que se encarga de fijar el codigo de jefe del empleado que realiza una solicitud de viaticos, en el request * campo userId, para asignar una tarea. * * @version 2.1 */ public class AsignarJefe extends TaskAction { /* * (non-Javadoc) * * @see com.fp.simple.action.TaskAction#assignOwner(com.fp.simple.flow.DataMap) */ @SuppressWarnings("unchecked") @Override public void assignOwner(Object pParam) throws Exception { HashMap m = (HashMap) pParam; Map mrequest = (Map) m.get("request"); if (mrequest.get("csolicitud") == null) { return; } String solicitud = (String) mrequest.get("csolicitud"); ViaSolicitud vsol = ViaSolicitud.find(PersistenceHelper.getEntityManager(), new ViaSolicitudKey(solicitud, "S")); String codigoJefe = vsol.getCod_jefe(); EmpleadoJpql ejpql = new EmpleadoJpql(); Empleado emp = ejpql.find(vsol.getCod_empleado()); if (codigoJefe == null) { codigoJefe = emp.getCodigoJefe(); } // El userID va en mayusculas asi esta definido en las tablas de jbpm y maia. m.put("userId", ejpql.find(codigoJefe).getUsuarioweb().toUpperCase()); if (emp.getCodigoJefe().equals(emp.getCodigoResponsableUnidad())) { m.put("action", "N"); // Va con N para que no le asigane la tarea al jefe inmediato solo asigana al // responsable de la unidad. } else { m.put("action", "A"); } } }