revbank/plugins/grandtotal
2025-04-10 23:18:41 +02:00

26 lines
689 B
Perl

#!perl
HELP "grandtotal" => "Summary of all accounts";
sub command :Tab(grandtotal) ($self, $cart, $command, @) {
return NEXT if $command ne 'grandtotal';
my $pos = 0;
my $neg = 0;
for my $line (slurp 'revbank.accounts') {
my ($account, $balance) = split " ", $line;
next if RevBank::Accounts::is_special($account);
my $credit = RevBank::Amount->parse_string($balance) or next;
$neg += $credit if $credit < 0;
$pos += $credit if $credit > 0;
}
printf "Total positive: %8s\n", $pos;
printf "Total negative: \e[31;1m%8s\e[0m\n", $neg;
printf "GRAND TOTAL: \e[1m%8s\e[0m\n", $pos + $neg;
return ACCEPT;
}