use strict;
use App::HomeBank2Ledger::Util qw(commify rtrim);
+use Scalar::Util qw(looks_like_number);
use parent 'App::HomeBank2Ledger::Formatter';
$out[-1] .= ' '.join(' ', @tags);
}
+ my $metadata = $transaction->{metadata} || {};
+ for my $key (sort keys %$metadata) {
+ my $value = looks_like_number($metadata->{$key}) ? $metadata->{$key}
+ : $self->_format_string($metadata->{$key});
+ push @out, " ; ${key}: ${value}";
+ }
+
for my $posting (@postings) {
my @line;
}
push @out, join('', @line);
+
+ my $metadata = $posting->{metadata} || {};
+ for my $key (sort keys %$metadata) {
+ my $value = looks_like_number($metadata->{$key}) ? $metadata->{$key}
+ : $self->_format_string($metadata->{$key});
+ push @out, " ; ${key}: ${value}";
+ }
}
push @out, '';
my $format = "\% .$commodity->{frac}f";
my ($whole, $fraction) = split(/\./, sprintf($format, $amount));
+ $fraction ||= 0;
# beancount doesn't support different notations
- my $num = join('.', commify($whole), $fraction);
+ my $num = commify($whole);
+ if ($commodity->{frac}) {
+ $num .= ".$fraction";
+ }
$num = "$num $commodity->{iso}";