Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.atlassian.jira.component.ComponentAccessor
- import com.atlassian.jira.issue.MutableIssue
- def is = ComponentAccessor.issueService
- def cfm = ComponentAccessor.customFieldManager
- def ilm = ComponentAccessor.issueLinkManager
- def im = ComponentAccessor.issueManager
- def issueFactory = ComponentAccessor.issueFactory
- def constantManager = ComponentAccessor.constantsManager
- def subTaskManager = ComponentAccessor.subTaskManager
- def ISSUE_LINK_TYPE_ID = 10003
- def user = ComponentAccessor.jiraAuthenticationContext.user
- def issue = binding.variables.get("issue") as MutableIssue ?: is.getIssue(user, "DTP-1").issue
- def cfSubsidiaries = cfm.getCustomFieldObjectByName("Define Subsidiaries")
- //subsidiary fields
- def cfHeadOf = cfm.getCustomFieldObjectByName("Head of Subsidiary")
- def cfs = cfm.getCustomFieldObjects(issue)
- def subsidiaries = issue.getCustomFieldValue(cfSubsidiaries)
- subsidiaries?.each { key ->
- def subsidiary = im.getIssueByCurrentKey(key)
- if (subsidiary) {
- def headOf = subsidiary.getCustomFieldValue(cfHeadOf)
- def COPY_CFS = ['Head of Subsidiary', 'Deputy of Subsidiary']
- def WP_COPY_CFS = ['Estimated End Date']
- def requestSubtask = issueFactory.getIssue()
- requestSubtask.setSummary(issue.summary + " for " + subsidiary.summary)
- requestSubtask.setAssignee(headOf)
- requestSubtask.setReporter(issue.reporter)
- requestSubtask.setParentObject(issue)
- requestSubtask.setProjectObject(issue.getProjectObject())
- requestSubtask.setIssueTypeId(constantManager.getAllIssueTypeObjects().find {
- it.getName() == "Sub-task"
- }.id)
- requestSubtask.setDueDate(issue.dueDate)
- requestSubtask.setPriority(issue.priority)
- requestSubtask.setDescription(issue.description)
- COPY_CFS.each { customfieldName ->
- def cf = cfs.find { it.name == customfieldName }
- if (cf) {
- requestSubtask.setCustomFieldValue(cf, subsidiary.getCustomFieldValue(cf))
- }
- }
- WP_COPY_CFS.each { customfieldName ->
- def cf = cfs.find { it.name == customfieldName }
- if (cf) {
- requestSubtask.setCustomFieldValue(cf, issue.getCustomFieldValue(cf))
- }
- }
- // Add any other fields you want for the newly created sub task
- def newIssueParams = ["issue": requestSubtask] as Map<String, Object>
- def newSubtask = im.createIssueObject(user, newIssueParams)
- subTaskManager.createSubTaskIssueLink(issue, requestSubtask, user)
- ilm.createIssueLink(newSubtask.id, subsidiary.id, ISSUE_LINK_TYPE_ID, 0, user)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement