Hi I am trying to set the due date on an issue based on the date entered in the Received Date custom field when the issue is created. I have used the code below but it consistently seems to be setting a date int he passed rather than 30 working days from the received date. Any help would be appreciated.
import org.apache.log4j.Category
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.CustomFieldType
import com.atlassian.jira.issue.fields.CustomField
import java.sql.Timestamp;
import org.joda.time.DateTime;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.event.type.EventDispatchOption
//Issue issue = issue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def dateRecDate = customFieldManager.getCustomFieldObjectByName("Received Date")
def dateRecValue = issue.getCustomFieldValue(dateRecDate) as Date
int days = 30;
int dayOfWeek = 0;
Date today = new Date();
MutableIssue myIssue = issue
Calendar dueDate = Calendar.getInstance();
while ((dayOfWeek == 0) || (dayOfWeek == Calendar.SATURDAY) || (dayOfWeek == Calendar.SUNDAY))
{dueDate.setTimeInMillis(dateRecValue.getTime() + days*1000*24*60*60);
dayOfWeek = dueDate.get(Calendar.DAY_OF_WEEK);
days = days + 1;
}
System.out.println("Script setduedate is running...and mydueDate is:" + dueDate.getTime());
myIssue.setDueDate (new Timestamp (dueDate.getTime().getTime()));
ComponentAccessor.getIssueManager().updateIssue(
ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
, issue
, EventDispatchOption.ISSUE_UPDATED
, false
)