--- /dev/null
+package com.pentila.workflow.vaepp.hooks;
+
+import java.util.Date;
+import java.util.HashMap;
+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.Event;
+import com.pentila.evalcomp.domain.User;
+import com.pentila.evalcomp.domain.instance.ScenarioInstance;
+import com.pentila.evalcomp.domain.transit.TListEObject;
+import com.pentila.evalcomp.manager.Beans;
+import com.pentila.evalcomp.utilities.MessagesI18n;
+
+
+public class Affectation implements TxHook {
+
+ public void execute(APIAccessor arg0, ActivityInstance arg1)
+ throws Exception {
+
+ Map<String, Object> map = arg0.getQueryRuntimeAPI().getProcessInstanceVariables(arg1.getProcessInstanceUUID());
+
+ String SIID = (String) map.get("SIID");
+
+ String isFirstTime = (String) map.get("VARIABLE_isFirstTime");
+ String isAutoAffected = (String) map.get("VARIABLE_isAutoAffected");
+ boolean send_notification = false;
+ if (isFirstTime.equals("yes")){
+ TListEObject T = Beans.getDefinitionManagerBean().getUsersOfProcessRoleDefinition(new Long(SIID), "Evaluateurs", 0, 100000, null);
+ if (T.getTotal() == 1){
+
+ Beans.getInstanceManagerBean().autoAffectEvaluateur(SIID);
+
+ Map<String, Object> mapWrite = new HashMap<String, Object>();
+ mapWrite.put("VARIABLE_isAutoAffected", "yes");
+ mapWrite.put("VARIABLE_isFirstTime", "no");
+ arg0.getRuntimeAPI().setProcessInstanceVariables(arg1.getProcessInstanceUUID(), mapWrite);
+ send_notification = true;
+ }else if (isAutoAffected.equals("yes")){
+
+
+
+
+ Map<String, Object> mapWrite = new HashMap<String, Object>();
+ mapWrite.put("VARIABLE_isAutoAffected", "no");
+ arg0.getRuntimeAPI().setProcessInstanceVariables(arg1.getProcessInstanceUUID(), mapWrite);
+ }
+
+
+ }else{
+ send_notification = true;
+ }
+ if(send_notification){
+ try{
+ String evalSubName = "";
+ ScenarioInstance si = Beans.getInstanceManagerBean().getScenarioInstance(new Long(SIID));
+ try {
+ evalSubName = si
+ .getEvaluationSubjectInstance().getName();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+
+
+
+ Set<String> evaluateursUids = Beans.getInstanceManagerBean().getUsersForRole(SIID, "Evaluateurs");
+
+ User candidat = Beans.getEntityManagerBean().getCurrentUser();
+
+ Set<User> evaluateurs = Beans.getEntityManagerBean().getUsersByUids(evaluateursUids);
+
+ String namesEval = "";
+ for (User evalUser : evaluateurs){
+ namesEval += evalUser.getLastname() + " " + evalUser.getFirstname() + " ";
+ }
+
+ String message = MessagesI18n.getString("sended_folder");
+
+
+ message = message.replace("{0}", evalSubName);
+
+ message = message.replace("{1}", namesEval);
+
+ Event event = new Event();
+
+
+ event.setCreationDate(new Date());
+ event.setIssuer(candidat);
+ event.setRecipient(candidat);
+ event.setType(Event.TYPE_INFO);
+ event.setStartDate(new Date());
+ event.setScenarioInstanceAbstract(si);
+ event.setDescription(message);
+
+ Beans.getMessageManager().addEvent(event);
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+
+ }
+ }
+
+}
\ No newline at end of file