Commit graph

124 commits

Author SHA1 Message Date
Christopher Neugebauer
3517bdd281 Makes sure that discounts always apply to the most expensive product in the cart first. Adds test to that effect.
Fixes #88.
2016-09-15 16:01:49 +10:00
Christopher Neugebauer
52fa696a01 Fixes GroupMemberCondition test 2016-09-15 15:33:52 +10:00
Christopher Neugebauer
d4f4312178 Adds cancellation fee implementation and tests 2016-09-15 12:15:40 +10:00
Christopher Neugebauer
fd9980efc5 Makes sure we only apply unclaimed credit notes when auto-applying credit notes. 2016-09-15 11:41:50 +10:00
Christopher Neugebauer
04b7a7998c Tests correct behaviour when there are multiple credit notes to be applied 2016-09-15 11:28:14 +10:00
Christopher Neugebauer
82254a7bf5 Credit note is automatically applied if you have a single invoice 2016-09-15 10:22:12 +10:00
Christopher Neugebauer
6469bcd8e7 Adds test for manual invoicing 2016-09-15 09:08:57 +10:00
Christopher Neugebauer
2e5a8e3668 First pass at allowing manual invoices. 2016-09-15 09:08:57 +10:00
Christopher Neugebauer
a9bc647570 Replaces _generate with _generate_from_cart and _generate 2016-09-15 08:38:33 +10:00
Christopher Neugebauer
613667aa30 Re-arranges invoice generation code.
- Reduces number of db queries
- Localises the code that interrogates the cart and the code that generates the invoice itself.
2016-09-15 08:31:35 +10:00
Christopher Neugebauer
3f53d6f4ff Removes spurious print statement. 2016-09-14 15:09:02 +10:00
Christopher Neugebauer
faa25c9b3a Adds missing_categories tag 2016-09-14 13:28:15 +10:00
Christopher Neugebauer
2658c2ccde Improves the error message when per_user_limit on category is breached.
Fixes #80
2016-09-13 13:33:20 +10:00
Christopher Neugebauer
1c239c361f Propagates the per_user_limit category error to the products, rather than the category.
Fixes #79.
2016-09-13 13:20:02 +10:00
Christopher Neugebauer
a27264ac92 Filters items_purchased by category.
Fixes #74
2016-09-13 12:28:48 +10:00
Christopher Neugebauer
0f488e7a12 Makes TeamMemberCondition work 2016-09-05 10:45:10 +10:00
Christopher Neugebauer
136c68aa0a Adds GroupMemberCondition, derivatives, and controllers. 2016-09-05 10:01:36 +10:00
Christopher Neugebauer
af30063a92 Adds final test, all three now pass. 2016-09-04 14:00:56 +10:00
Christopher Neugebauer
04eefa4e0e Passes first two tests 2016-09-04 13:54:05 +10:00
Christopher Neugebauer
0b306fd59e Adds test for user being a primary presenter of a proposal 2016-09-04 13:41:49 +10:00
Christopher Neugebauer
b3d86e2148 Adds stub for SpeakerConditionController 2016-09-04 12:39:52 +10:00
Christopher Neugebauer
43649002cb Makes ProductCondition work if you have both valid and cancelled instances of a product. Fixes #68 2016-09-03 16:18:27 +10:00
Christopher Neugebauer
84c40a1e1f Refactors ItemController, add items_released 2016-09-03 15:08:25 +10:00
Christopher Neugebauer
1e6c90163d Fixes #64 2016-09-03 11:46:24 +10:00
Christopher Neugebauer
68aa9b067b Factors items_pending and items_purchased into ItemController 2016-09-02 15:57:20 +10:00
Christopher Neugebauer
64ca477cb8 Fixes flake8 snafus 2016-09-02 11:43:27 +10:00
Christopher Neugebauer
0b7396c40f Discount line items now describe the product that the discount applies to. 2016-08-24 11:46:15 +10:00
Christopher Neugebauer
4f16e4b9d0 Oops. 2016-08-21 18:28:16 +10:00
Christopher Neugebauer
7bf372f92a Invoices now send e-mails when created, paid, or refunded. 2016-08-21 17:14:19 +10:00
Christopher Neugebauer
e946af0f04 Adds functions for mailing invoices when certain events occur. 2016-08-21 16:56:05 +10:00
Christopher Neugebauer
de83015776 Fixes ordering error in error display 2016-05-02 10:55:29 +10:00
Christopher Neugebauer
abe8c12b05 Simplifies flag and discount filter functions 2016-05-01 19:12:40 +10:00
Christopher Neugebauer
b9b50c6846 Bug fixes and query optimisations in flag.py and discount.py 2016-05-01 14:56:51 +10:00
Christopher Neugebauer
9ca25e5986 Makes sure that the cache is not disturbed by calling end_batch 2016-05-01 14:56:51 +10:00
Christopher Neugebauer
efb73e7a68 Memoises everything else that needs to be memoised. 2016-05-01 14:56:51 +10:00
Christopher Neugebauer
3d635521eb CartController now uses BatchController memoisation 2016-05-01 14:56:51 +10:00
Christopher Neugebauer
5929c0af3c Adds end_batch functionality 2016-05-01 14:56:45 +10:00
Christopher Neugebauer
a267b60eb9 Makes memoise work properly 2016-05-01 14:56:45 +10:00
Christopher Neugebauer
ddedf54c42 Adds batch context manager behaviour 2016-05-01 10:47:06 +10:00
Christopher Neugebauer
78a41970ea Adds design for BatchController 2016-05-01 10:47:06 +10:00
Christopher Neugebauer
162a1f23dd _filtered_discounts is now called _filtered_clauses, and it no longer cares about specific products or categories 2016-05-01 09:43:32 +10:00
Christopher Neugebauer
b3491cab8e _filtered_flags now no longer cares about products for filtering. It just does everything. 2016-04-30 20:42:41 +10:00
Christopher Neugebauer
c6fdfa496e Replaces CategoryController.attach_user_remainders with user_remainders 2016-04-30 20:30:44 +10:00
Christopher Neugebauer
941caa30d9 Replaces ProductController.attach_user_remainders with ProductController.user_remainders 2016-04-30 20:30:21 +10:00
Christopher Neugebauer
b40505117f Fixes flake8 errors arising from rebase 2016-04-29 11:22:56 +10:00
Christopher Neugebauer
135f2fb47b Refactors discounts validation in terms of available_discounts 2016-04-29 11:16:40 +10:00
Christopher Neugebauer
4eff8194f9 Reduces CartController re-loading when batching operations 2016-04-29 11:16:40 +10:00
Christopher Neugebauer
02fe88a4e4 Tests and fixes for a bug where discount quantities did not respect per-line item quantities. 2016-04-29 11:11:59 +10:00
Christopher Neugebauer
6d52a4c18f More low-hanging query optimisations 2016-04-29 11:11:26 +10:00
Christopher Neugebauer
4fb569d935 Does more select_related and bulk_create calls 2016-04-29 11:10:20 +10:00