On creation, can we update due date field based on priority?

Jonathan Smith
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 11, 2020

Is it possible to set the Due Date based on the priority assigned?

Example:

If priority = High, default Due Date to 3 days
If priority = Medium, default Due Date to 3 weeks

Business days also need to be considered... If a high priority ticket is created on a Friday, the Due Date should be Wednesday rather than Monday.

Note: We have script runner that we could potentially utilize / workflow post functions etc.

 

1 answer

0 votes
Martin Bayer _MoroSystems_ s_r_o__
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
December 11, 2020

Hi @Jonathan Smith sure, you can add script postfunction to "Create" transition:

Selection_095.png

and you can use similar code (it adds 3 woring days to High priority issue and 21 working days to Low priority issue):

import java.sql.Timestamp
import java.time.LocalDate
import java.text.SimpleDateFormat
import java.time.DayOfWeek
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.properties.APKeys

def applicationProperties = ComponentAccessor.getApplicationProperties()
def javaDateFormat = applicationProperties.getDefaultBackedString(APKeys.JIRA_DATE_PICKER_JAVA_FORMAT)
def javaDateFormatter = new SimpleDateFormat(javaDateFormat)

def currentDate = LocalDate.now()
def currentDatePlus3WoringDays = addDaysSkippingWeekends(currentDate, 3)
def currentDatePlus3WoringWeeks = addDaysSkippingWeekends(currentDate, 21)

switch(issue?.priority?.name){
case "High":
issue.setDueDate(Timestamp.valueOf(currentDatePlus3WoringDays.atStartOfDay()))
break;
case "Low":
issue.setDueDate(Timestamp.valueOf(currentDatePlus3WoringWeeks.atStartOfDay()))
break;
}

public static LocalDate addDaysSkippingWeekends(LocalDate date, int days) {
LocalDate result = date;
int addedDays = 0;
while (addedDays < days) {
result = result.plusDays(1);
if (!(result.getDayOfWeek() == DayOfWeek.SATURDAY || result.getDayOfWeek() == DayOfWeek.SUNDAY)) {
++addedDays;
}
}
return result;
}
Jonathan Smith
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 14, 2020

@Martin Bayer _MoroSystems_ s_r_o__ 

  When adding your code to the custom post function, I am getting some errors. Could you take a look?

Thanks,

Jonathan

Martin Bayer _MoroSystems_ s_r_o__
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
December 14, 2020

@Jonathan Smith these are only static code check errors but it should be working...or eventually can you post the errors?

Suggest an answer

Log in or Sign up to answer