Commit graph

21 commits

Author SHA1 Message Date
Juerd Waalboer
99435cef17 Highlight change; apply operators to last scanned instead of last added 2023-01-30 04:40:42 +01:00
Juerd Waalboer
f479060576 Fix bug: ->changed is getter only, not a setter 2023-01-19 05:24:50 +01:00
Juerd Waalboer
6180bf6ea5 Add new hook_checkout_prepare, rollback earlier change of hook_checkout
In hindsight, it was a bad idea to allow manipulating the cart (entries)
in hook_checkout, because that hook is used by the `log` plugin. You now
get unused entries in the log.

Although that plugin should maybe have used hook_checkout_done, existing
log file readers (including scripts) and custom plugins may depend on
the CHECKOUT items in the log being before the BALANCE items.
2023-01-16 03:52:00 +01:00
Juerd Waalboer
11ca0a86b2 Allow cart manipulation during hook_checkout 2023-01-16 03:05:03 +01:00
Juerd Waalboer
922f8dc8f6 Ensure unique transaction IDs
Long overdue :)
2022-10-31 19:00:20 +01:00
Juerd Waalboer
44d17e6ae0 Remove redundant checks
Signatures already do arity-checking.
2022-10-31 16:37:19 +01:00
Juerd Waalboer
22ca2ec61e Implement global advisory lock 2022-08-29 17:50:12 +02:00
Juerd Waalboer
65566349f6 Prepare for future removal of support for unbalanced transactions
Don't worry, that won't happen for at least months. First we'll just log
warnings for a while.
2022-06-12 21:49:22 +02:00
Juerd Waalboer
064841c25e Add cash box tracking with new plugin "cash" 2022-06-11 21:16:47 +02:00
Juerd Waalboer
441bf05fde Bump to v3.4; make all transactions balanced using hidden accounts
See UPGRADING.md for details.
2022-06-11 18:51:26 +02:00
Juerd Waalboer
ccae71021a Get 'cash' working again
Now implemented via a hidden user called '-cash'.

This also introduces the concept of hidden accounts, that begin with '+' or
'-', for result accounts and balance accounts. Future versions can further
use this for more detailed bookkeeping. The idea behind the sign is that
'-' accounts should be inverted to get the intuitive value. So if the account
'-cash' has -13.37, that means there should be +13.37 in the cash box (or,
well, once the rest of this is implemented and the initial values are then set
correctly.)
2022-06-11 16:58:20 +02:00
Juerd Waalboer
eed0db7897 Cleanup: use subroutine signatures, remove deprecated methods.
The signatures feature has been "experimental" since Perl 5.20 (May 2014), but
expected to stay. After 8 years I'm ready to take the risk :)

Have added Perl v5.28 (June 2018) as the minimum requirement, even though the
current revbank should work with 5.20, to see if this bothers any users. Perl
v5.28 is in Debian "buster", which is now oldstable.
2021-12-03 18:00:34 +01:00
Juerd Waalboer
38a0229899 Ditch floating point numbers, use cents instead; bump version to 3.2 2021-12-02 22:18:06 +01:00
Juerd Waalboer
f7a7a19d8d Fix #7 2020-03-01 06:16:08 +01:00
Juerd Waalboer
f9554ec463 Move old stuff to bottom of source file 2019-11-05 01:35:22 +01:00
Juerd Waalboer
1cbc906f1e Further update to new ledger-like internals 2019-11-05 00:57:39 +01:00
Juerd Waalboer
5a7a7184dd Refactor cart to use "entries" instead of "items" 2019-11-04 21:53:07 +01:00
Juerd Waalboer
b31b95ca37 Bugfix: 'stock' counted 1 after using 'repeat'
The 'stock' plugin uses the 'product_id' field in the cart item, but
this was not copied by the 'repeat' plugin. The confusion is caused by a
mismatch between the API for RevBank::Cart->add and the internal
representation.
2018-06-09 23:47:21 +02:00
Juerd Waalboer
4ad7129805 New hook: checkout_done 2017-05-10 22:08:33 +02:00
Juerd Waalboer
add3100401 New plugin: repeat (undocumented), new hook: "added" 2017-02-19 00:41:20 +01:00
Juerd Waalboer
b0ee7e88bf cwd is no longer in @INC in new perl versions 2017-02-18 22:31:19 +01:00
Renamed from RevBank/Cart.pm (Browse further)