revbank/plugins/revspace_saldo
2025-04-16 23:54:52 +02:00

45 lines
1.3 KiB
Perl

#!perl
use POSIX qw(strftime);
sub _box(@lines) {
print(
"#" x 79, "\n",
(map { sprintf("## %-73s ##\n", $_) } @lines),
"#" x 79, "\n"
);
}
sub hook_checkout_done($class, $cart, $account, $transaction_id, @) {
defined $account or return; # hacks like 'undo' don't have an acting user
RevBank::Accounts::is_hidden($account) and return;
my $balance = RevBank::Accounts::balance($account) or return;
my $since = RevBank::Accounts::since($account);
if ($balance < -13.37) {
_box(
"Hoi $account,",
"",
"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 $account,",
"",
"Je staat al sinds $1 negatief, dus meer dan 2 weken. Deelnemers",
"mogen rood staan, maar niet langdurig. Wil je je saldo even aanvullen?",
"",
"Bedankt!",
"-- Het bestuur",
);
}
}