=cut
-# TODO - add posting memo
-# TODO - transaction description ("narration" in beancount)
-# TODO - payees
-# TODO - budget/scheduled
-# TODO - consolidate tags on transaction
-# TODO - consolidate payees on transaction
-
use warnings FATAL => 'all'; # temp fatal all
use strict;
if ($opts->{manual}) {
pod2usage(-exitval => 0, -verbose => 2);
}
+ if (!$opts->{input}) {
+ print STDERR "Input file is required.\n";
+ exit(1);
+ }
my $homebank = File::HomeBank->new(file => $opts->{input});
}
if ($has_initial_balance) {
- # transactions are sorted, so the first transaction is the earliest
+ # transactions are sorted, so the first transaction is the oldest
my $first_date = $opts->{opening_date} || $transactions->[0]{date};
if ($first_date !~ /^\d{4}-\d{2}-\d{2}$/) {
die "Opening date must be in the form YYYY-MM-DD.\n";
commodity => $commodities{$account->{currency}},
amount => -$transaction->{amount},
payee => $payee->{name},
- memo => '', # TODO
+ memo => $memo,
status => $status,
tags => $tags,
};
$ledger->add_transactions({
date => $transaction->{date},
- payee => 'Payee TODO',
+ payee => $payee->{name},
+ memo => $memo,
postings => \@postings,
});
}
) or pod2usage(-exitval => 1, -verbose => 99, -sections => [qw(SYNOPSIS OPTIONS)]);
$opts{input} = shift @args if !$opts{input};
- if (!$opts{input}) {
- print STDERR "Input file is required.\n";
- exit(1);
- }
return \%opts;
}