From 997917ae82a7829b7bd0086126d1ffd39bbf7c68 Mon Sep 17 00:00:00 2001 From: Juerd Waalboer Date: Fri, 3 Aug 2018 00:58:19 +0200 Subject: [PATCH] New plugin: "unlisted" Lets the user provide a description for deducting arbitrary amounts. --- plugins/unlisted | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 plugins/unlisted diff --git a/plugins/unlisted b/plugins/unlisted new file mode 100755 index 0000000..cb100a1 --- /dev/null +++ b/plugins/unlisted @@ -0,0 +1,22 @@ +#!perl + +HELP "unlisted" => "Buy unlisted product (manual entry)"; + +sub command :Tab(unlisted) { + my ($self, $cart, $command) = @_; + $command eq 'unlisted' or return NEXT; + return "Amount to deduct from your account", \&amount; +} + +sub amount { + my ($self, $cart, $arg) = @_; + $self->{amount} = parse_amount($arg) or return REJECT, "Invalid amount."; + return "Please provide a short description", \&description; +} + +sub description { + my ($self, $cart, $desc) = @_; + $cart->add(undef, -$self->{amount}, $desc); + return ACCEPT; +} +