@Override public List<SubAward> getLinkedSubAwards(Award award) { Map<String, Object> values = new HashMap<String, Object>(); values.put("awardId", award.getAwardId()); Collection<SubAwardFundingSource> subAwardFundingSources = businessObjectService.findMatching(SubAwardFundingSource.class, values); Set<String> subAwardSet = new TreeSet<String>(); for (SubAwardFundingSource subAwardFundingSource : subAwardFundingSources) { subAwardSet.add(subAwardFundingSource.getSubAward().getSubAwardCode()); } List<SubAward> subAwards = new ArrayList<SubAward>(); for (String subAwardCode : subAwardSet) { VersionHistory activeVersion = getVersionHistoryService().findActiveVersion(SubAward.class, subAwardCode); if (activeVersion == null) { VersionHistory pendingVersion = getVersionHistoryService().findPendingVersion(SubAward.class, subAwardCode); if (pendingVersion != null) { subAwards.add((SubAward) pendingVersion.getSequenceOwner()); } } else { subAwards.add((SubAward) activeVersion.getSequenceOwner()); } } return subAwards; }
@Override public List<KeyValue> getKeyValues() { final SubAwardDocument doc = (SubAwardDocument) getDocument(); final StringBuilder fundingValues = new StringBuilder(); final Long subawardID = doc.getSubAward().getSubAwardId(); final List<KeyValue> keyValues = new ArrayList<>(); final Collection<SubAwardFundingSource> fundingSource = getBusinessObjectService() .findMatching( SubAwardFundingSource.class, Collections.singletonMap("subAwardId", subawardID)); for (SubAwardFundingSource subAwardFunding : fundingSource) { fundingValues.append(subAwardFunding.getAward().getAwardNumber()); keyValues.add( new ConcreteKeyValue( subAwardFunding.getSubAwardFundingSourceId().toString(), "Award:" + subAwardFunding.getAward().getAwardNumber())); } if (fundingValues.length() == 0) { keyValues.add( 0, new ConcreteKeyValue("", "No Funding Source has been added to this Subaward")); } return keyValues; }