```<#function groupCombinedSortedItems combined...
# advancedpdf
c
Copy code
<#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>