Get 'cash' working again

Now implemented via a hidden user called '-cash'.

This also introduces the concept of hidden accounts, that begin with '+' or
'-', for result accounts and balance accounts. Future versions can further
use this for more detailed bookkeeping. The idea behind the sign is that
'-' accounts should be inverted to get the intuitive value. So if the account
'-cash' has -13.37, that means there should be +13.37 in the cash box (or,
well, once the rest of this is implemented and the initial values are then set
correctly.)
This commit is contained in:
Juerd Waalboer 2022-06-11 16:58:20 +02:00
parent f262bce57c
commit ccae71021a
6 changed files with 27 additions and 4 deletions

View file

@ -8,6 +8,7 @@ no warnings qw(experimental::signatures);
use Carp ();
use List::Util ();
use RevBank::Global;
use RevBank::Users;
use RevBank::Cart::Entry;
sub new($class) {
@ -65,6 +66,12 @@ sub checkout($self, $user) {
return;
}
if ($user =~ /^[-+]/) {
# Hidden internal accounts
my $canonical = RevBank::Users::parse_user($user);
$user = $canonical // RevBank::Users::create($user);
}
my $entries = $self->{entries};
my %deltas;