<!-- @@Formula:
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.link.IssueLinkTypeManager;
import com.atlassian.jira.issue.customfields.manager.OptionsManager;
import com.atlassian.jira.issue.customfields.option.Option;
//import com.atlassian.jira.issue.status.
double sumCustomFieldValues( Issue issue, customFieldId, linkTypeId ) {
double sum = 0;
int statusCondition = 0;
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
CustomField customField = customFieldManager.getCustomFieldObject(customFieldId);
CustomField customFieldDeliveryMaterial = customFieldManager.getCustomFieldObject(10315);
IssueLinkManager issueLinkManager = ComponentAccessor.getIssueLinkManager();
for (IssueLink issueLink : issueLinkManager.getOutwardLinks(issue.getId())) {
//log.warn("in here 1, linkTypeId:" + issueLink.getIssueLinkType().getId());
statusCondition = 0;
if( issueLink.getIssueLinkType().getId() == linkTypeId ){
Issue subTask = (Issue) issueLink.getDestinationObject();
if (subTask != null ) {
String status = subTask.getStatus().getName();
//log.warn("Issue status:" + status);
if (status != null) {
if (status.toUpperCase().equals("DONE")) {
statusCondition = 1;
}
}
Option deliveryMaterialValue = (Option) subTask.getCustomFieldValue(customFieldDeliveryMaterial);
if ((deliveryMaterialValue != null) && (statusCondition == 1)) {
String deliveryMaterialString = (String) deliveryMaterialValue.getValue();
if (deliveryMaterialString != null) {
if( !deliveryMaterialString.isEmpty() && deliveryMaterialString.equals("YES") ) {
Double customFieldValue = issueLink.getDestinationObject().getCustomFieldValue(customField);
sum += (customFieldValue == null) ? 0 : customFieldValue;
}
}
}
}
}
}
return sum;
}
sumCustomFieldValues(issueObject, 10314, 10100);
--> |