creece
11/26/2019, 8:13 PM<#function groupCombinedSortedItems combinedSortedItems>
<#assign groupedItems = []>
<#if combinedSortedItems?has_content>
<#assign primaryGroupingTotal = 0>
<#assign groupingLines = []>
<#list 0..combinedSortedItems?size-1 as i>
<#assign currentItem = combinedSortedItems[i]>
<#assign isLastItem = ((i+1) == combinedSortedItems?size)>
<#if i == 0>
<#assign primaryGroupingTotal = primaryGroupingTotal + currentItem.amount>
<#assign groupingLines = groupingLines + [currentItem]>
<#else>
<#assign previousItem = combinedSortedItems[i-1]>
<#if currentItem.primaryGroupingValue == previousItem.primaryGroupingValue && currentItem.secondaryGroupingValue == previousItem.secondaryGroupingValue>
<#assign primaryGroupingTotal = primaryGroupingTotal + currentItem.amount>
<#assign groupingLines = groupingLines + [currentItem]>
<#else>
<#assign groupedItems = groupedItems + [{
"primaryGrouping": previousItem.primaryGroupingValue,
"primaryGroupingText": previousItem.primaryGroupingText,
"secondaryGrouping": previousItem.secondaryGroupingValue,
"secondaryGroupingText": previousItem.secondaryGroupingText,
"groupingTotal": primaryGroupingTotal,
"lines": groupingLines
}]>
<#assign primaryGroupingTotal = 0>
<#assign groupingLines = []>
<#assign primaryGroupingTotal = primaryGroupingTotal + currentItem.amount>
<#assign groupingLines = groupingLines + [currentItem]>
</#if>
</#if>
<#if isLastItem>
<#assign groupedItems = groupedItems + [{
"primaryGrouping": currentItem.primaryGroupingValue,
"primaryGroupingText": currentItem.primaryGroupingText,
"secondaryGrouping": currentItem.secondaryGroupingValue,
"secondaryGroupingText": currentItem.secondaryGroupingText,
"groupingTotal": primaryGroupingTotal,
"lines": groupingLines
}]>
</#if>
</#list>
</#if>
<#return groupedItems>
</#function>