+my $borrower = GetMember( 'borrowernumber' => $loggedinuser );
+my @budget_loop;
+my $periods = GetBudgetPeriods( );
+foreach my $period (@$periods) {
+ if ($period->{'budget_period_id'} == $budget->{'budget_period_id'}) {
+ $template->{'VARS'}->{'budget_period_description'} = $period->{'budget_period_description'};
+ }
+ next if $period->{'budget_period_locked'} || !$period->{'budget_period_description'};
+ my $budget_hierarchy = GetBudgetHierarchy( $period->{'budget_period_id'} );
+ my @funds;
+ foreach my $r ( @{$budget_hierarchy} ) {
+ next unless ( CanUserUseBudget( $borrower, $r, $userflags ) );
+ if ( !defined $r->{budget_amount} || $r->{budget_amount} == 0 ) {
+ next;
+ }
+ push @funds,
+ {
+ b_id => $r->{budget_id},
+ b_txt => $r->{budget_name},
+ b_sel => ( $r->{budget_id} == $order->{budget_id} ) ? 1 : 0,
+ };
+ }
+
+ @funds = sort { uc( $a->{b_txt} ) cmp uc( $b->{b_txt} ) } @funds;
+
+ push @budget_loop,
+ {
+ 'id' => $period->{'budget_period_id'},
+ 'description' => $period->{'budget_period_description'},
+ 'funds' => \@funds
+ };
+}
+
+$template->{'VARS'}->{'budget_loop'} = \@budget_loop;
+