+ if ($opts->{budget}) {
+ my ($first_year) = $first_date =~ /^(\d{4})/;
+
+ for my $month_num (0 .. 12) {
+ next if !$budget[$month_num];
+
+ my $payee = 'Monthly';
+ if (0 < $month_num) {
+ my $year = $first_year;
+ $year += 1 if sprintf('%04d-%02d-99', $first_year, $month_num) lt $first_date;
+ my $date = sprintf('%04d-%02d', $year, $month_num);
+ $payee = "Every 12 months from ${date}";
+ }
+ # my @MONTHS = qw(ALL Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
+ # $payee = "Monthly this $MONTHS[$month_num]" if 0 < $month_num;
+
+ my @postings;
+
+ for my $account (sort keys %{$budget[$month_num]}) {
+ my $amount = $budget[$month_num]{$account};
+ push @postings, {
+ account => $account,
+ amount => -$amount,
+ commodity => $commodities{$homebank->base_currency},
+ }
+ }
+ push @postings, {
+ account => 'Assets',
+ };
+
+ $ledger->add_transactions({
+ date => '~',
+ payee => $payee,
+ postings => \@postings,
+ });
+ }
+ }
+