revbank/plugins/revspace_saldo
2019-10-01 02:40:00 +02:00

48 lines
1.2 KiB
Perl

#!perl
use POSIX qw(strftime);
sub command { NEXT }
sub _box {
print(
"#" x 79, "\n",
(map { sprintf("## %-73s ##\n", $_) } @_),
"#" x 79, "\n"
);
}
sub hook_checkout_done {
my ($class, $cart, $user, $transaction_id) = @_;
defined $user or return; # hacks like 'undo' don't have an acting user
my $balance = RevBank::Users::balance($user) or return;
my $since = RevBank::Users::since($user);
if ($balance < -13.37) {
_box(
"Hoi $user,",
"",
"Je saldo is $balance en dus lager dan toegestaan. Graag meteen aanvullen!",
"Zodra je een positief saldo hebt, mag je weer producten kopen.",
"",
"Bedankt!",
"-- Het bestuur",
);
} elsif (
defined $since
and $since =~ /^-\@(.*)/
and $1 lt strftime('%Y-%m-%d_%H:%M:%S', localtime(time() - 14 * 86400))
) {
_box(
"Hoi $user,",
"",
"Je staat al sinds $1 negatief, dus meer dan 2 weken.",
"Je mag rood staan, maar niet langdurig. Wil je je saldo even aanvullen?",
"",
"Bedankt!",
"-- Het bestuur",
);
}
}