package example.AssignerFromDepartment

import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.CustomFieldType
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.ManagerFactory
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.mail.Email
import com.atlassian.mail.server.MailServerManager
import com.atlassian.mail.server.SMTPMailServer
import org.apache.log4j.Category
import org.ofbiz.core.entity.GenericValue
import com.atlassian.jira.project.ProjectManager
import com.atlassian.jira.project.Project
import com.atlassian.jira.issue.util.IssueChangeHolder;
import com.atlassian.jira.util.ErrorCollection;
import com.atlassian.jira.util.ImportUtils;
import com.atlassian.jira.util.JiraUtils;
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.workflow.WorkflowManager
import com.atlassian.jira.config.SubTaskManager
import com.atlassian.jira.workflow.WorkflowTransitionUtil
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.crowd.embedded.api.User;


class TaskVersionListener extends AbstractIssueEventListener {
    Category log = Category.getInstance(TaskVersionListener.class)

    @Override
    void workflowEvent(IssueEvent event) {
        log.setLevel(org.apache.log4j.Level.DEBUG)
        ComponentManager componentManager=ComponentManager.getInstance()
		CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
		UserUtil userUtil = ComponentAccessor.getUserUtil()
		MutableIssue myIssue = event.getIssue()
		
		Project project = myIssue.getProjectObject() 
		def projectleadName=project.getLeadUserName()
		def projectlead =project.getLeadUserKey()
		
		def assigned = myIssue.assigneeId
		
		if ( assigned == projectleadName) {
	    CustomField cf_department= customFieldManager.getCustomFieldObject("customfield_17502")
		def department= myIssue.getCustomFieldValue(cf_department)
		//log.debug "RAUL: Dept.: ${department}"
		if ( "${department}" == "Dept1" || "${department}" == "Dept2" || "${department}" == "Dept3" ) {
			myIssue.setAssignee(userUtil.getUserByKey("raul.pelaez").getDirectoryUser())
			//throw new RuntimeException("DEBUG: 1");
		}
		
		else {
			myIssue.setAssignee(userUtil.getUserByKey("raul.martinez").getDirectoryUser())
			//throw new RuntimeException("DEBUG: 4");
		}
		myIssue.store()
		ManagerFactory.getIndexManager().reIndex(myIssue.getGenericValue());
		//throw new RuntimeException("DEBUG: Dept.: ${department}");
		}

   }
}
      
Posted by:.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s