--- /dev/null
+package com.pentila.workflow.vaepp.hooks;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.ow2.bonita.definition.TxHook;
+import org.ow2.bonita.facade.APIAccessor;
+
+import org.ow2.bonita.facade.runtime.ActivityInstance;
+
+import com.pentila.evalcomp.domain.User;
+import com.pentila.evalcomp.manager.Beans;
+
+public class NotifierAffectation implements TxHook {
+
+ public void execute(APIAccessor arg0, ActivityInstance arg1)
+ throws Exception {
+
+
+ Map<String, Object> map = arg0.getQueryRuntimeAPI().getProcessInstanceVariables(arg1.getProcessInstanceUUID());
+
+ String isAutoAffected = (String) map.get("VARIABLE_isAutoAffected");
+ String SIID = (String) map.get("SIID");
+
+ if (isAutoAffected.equals("yes")) {
+ Set<String> rolesRecipients = new HashSet<String>();
+
+ rolesRecipients.add("Candidats");
+
+ Set<String> evaluateursUids = Beans.getInstanceManagerBean().getUsersForRole(SIID, "Evaluateurs");
+
+ Set<User> evaluateurs = Beans.getEntityManagerBean().getUsersByUids(evaluateursUids);
+
+ for (User user : evaluateurs) {
+ Beans.getInstanceManagerBean().registerEvent(user, SIID,
+ "INFO_accepter", rolesRecipients);
+
+ }
+
+ arg0.getRuntimeAPI().setProcessInstanceVariable(arg1.getProcessInstanceUUID(),
+ "VARIABLE_isAutoAffected", "no");
+ }
+ }
+
+}