sub open_drawer { warn "The cash_drawer plugin should be changed to actually implement the opening of a cash drawer; stub code executed"; } sub hook_add_entry($class, $cart, $entry, @) { $entry->attribute('is_deposit') and $entry->attribute('method') =~ /reimburse|cash/ or $entry->attribute('is_withdrawal') or return; open_drawer(); } sub hook_cash { open_drawer(); } sub hook_checkout($class, $cart, $user, $transaction_id, @) { $user eq '-cash' or return; open_drawer(); }