NAME
Finance::Bookkeeping::Account - debit/credit account balances correctly
SYNOPSIS
package MyCreditAccount;
use Moose;
with 'Finance::Bookkeeping::Account' => { nb => 'credit'}; # consuming class declars it's normal balance (nb) is credit or debit
package MyDebitAccount;
use Moose;
with 'Finance::Bookkeeping::Account' => { nb => 'debit'}; # consuming class declars it's normal balance (nb) is credit or debit
package MyCheckbook;
use Moose;
with ('Finance::Bookkeeping::Account' => {
nb => 'debit',
-alias => {
debit => 'deposit',
credit => 'withdraw'
},
-excludes => ['debit', 'credit'],
}
);
package main;
my $cr = MyCreditAccount->new;
$cr->credit(50);
$cr->debit(20);
say $cr->balance; # 30
my $dr = MyDebitAccount->new;
$dr->debit(10);
$dr->credit(5);
$dr->credit(50);
say $dr->balance; # -45
my $bankaccount = MyCheckbook->new;
$bankaccount->deposit(10);
$bankaccount->withdraw(5);
say $bankaccount->balance; # 5
DESCRIPTION
Finance::Bookkeeping::Account is a parameterized role to create accounts that debit and credit correctly depending on account type. Input can only be positive numbers or you will get an error message stating the input either does not look like a number or is not a positive number.
API
- debit
-
nb = debit, this increases the balance. nb = credit, this decreases the balance.
- credit
-
nb = credit, this increases the balance. nb = debit, this decreases the balance.
AUTHOR
Jesse Shy <jshy@cpan.org>
COPYRIGHT
Copyright 2013- Jesse Shy
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.