Hi everyone,
My code can be seen below and it is trying to take data from two different projects and two different issuetypes and changing a field accordingly. The jqlInfo and issuesInfo should give me a list of just one ticket. This is a scritped field and I am calling from that current issue ticket and another ticket. I get an error saying <
Cannot cast object 'null' with class 'null' to class 'float'. Try 'java.lang.Float' instead
at Script621.run(Script621.groovy:49)
>
I believe that my error lies in this line but I can be mistaken:
float accrual = issuesInfo.get(s).getCustomFieldValue(cfaccrual) as float?:0
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.crowd.embedded.api.User;
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.bc.issue.search.SearchService;
import com.atlassian.jira.web.bean.PagerFilter;
import java.lang.Object
boolean check =true;
String jqlVaca = 'project = "CENGN Leave" AND issuetype = "Vacation Request" AND reporter = currentUser() AND ((status != Dismiss) OR (status != Rejected))'
String jqlInfo = 'project = "HR" AND issuetype = "Employee Information" AND "Employee Name" = currentUser()'
// Get a search-Object for JIRA
SearchService searchService = ComponentAccessor.getComponent(SearchService.class)
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def issuesVaca;
def issuesInfo;
SearchService.ParseResult parseResultVaca = searchService.parseQuery(user, jqlVaca)
SearchService.ParseResult parseResultInfo = searchService.parseQuery(user, jqlInfo)
if (parseResultVaca.isValid()) {
issuesVaca = (searchService.search(user, parseResultVaca.getQuery(), PagerFilter.getUnlimitedFilter()).getIssues())
}
else
check =1;
if(parseResultInfo.isValid()){
issuesInfo = (searchService.search(user, parseResultInfo.getQuery(), PagerFilter.getUnlimitedFilter()).getIssues())
}
else
check =1;
// Get Information about Accrual Rate and Past Vacation Days used
def requestedDays = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Requested Days")
float daySum =0;
if((issuesVaca.size()>=0)&&(check!=1)){
for(int i =0; i <= issuesVaca.size()-1 ; i++){
float dayCounter = issuesVaca.get(i).getCustomFieldValue(requestedDays) as float?:0
daySum = dayCounter + daySum
}
}
def cfaccrual = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Accrual Rate")
int s = issuesInfo.size()-1
//the line below is likely the one giving me errors
float accrual = issuesInfo.get(s).getCustomFieldValue(cfaccrual) as float?:0
Date today = new Date()
float month = today.getMonth()
if(accrual == 0)
return 0
else if (((today.getMonth() * accrual) - daySum) <= 0)
return 0
else{
return ((today.getMonth() * accrual) - daySum)
}