Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Don’t Allow Multiple Approval/Rejection for the Same Project and Period

Code Block
languagegroovy
import com.deniz.jira.worklog.approval.*;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.project.*;
import com.atlassian.jira.*;
import com.atlassian.jira.user.util.*;

TimesheetApprovalService approvalService = ComponentAccessor.getOSGiComponentInstanceOfType(TimesheetApprovalService.class);
UserManager userManager = ComponentAccessor.getUserManager();
ProjectManager projectManager = ComponentAccessor.getProjectManager();

def user = userManager.getUserByKey(timesheetApprovalAction.userKey);
def project = projectManager.getProjectByCurrentKey(timesheetApprovalAction.projectKey);

def approvalStatus = approvalService.getTimesheetApprovalStatus(user.getKeygetUsername(), timesheetApprovalAction.period.id, [project.id] as Set);

def projectApprovalStatus = approvalStatus.projectApproval.get(project.key);
if (projectApprovalStatus.approvalStatus != TimesheetApprovalStatus.SUBMITTED) {
  return "This timesheet is already approved/rejected or not submitted yet!"  
}

...