| 
								
								
									 Christopher Neugebauer | 3f192c2626 | Zeroed & paid invoices that are voided now release the cart. Fixes #95. | 2016-10-13 11:23:41 -07:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | c9c9d2a2b2 | Cancelled presentations no longer enable SpeakerCondition. Fixes #94 | 2016-10-13 10:50:48 -07:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 232dc9e452 | Invoices are tested for cart validity before display. Fixes #99. | 2016-10-13 09:19:18 -07:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | d31d812001 | Adds functionality to increase the reservation duration | 2016-10-06 12:33:53 -07:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | b323c0eb25 | Cart reservation durations now take the residual from the last reservation duration into account. | 2016-10-06 12:12:50 -07:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | a16cb71463 | Fixes issue in for_id_or_404 | 2016-09-21 15:58:58 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 4a50d69936 | Moves total_payments() to Invoice model; adds balance_due() | 2016-09-16 09:35:12 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | fc81f107ed | When setting quantities on products, only raise errors if they’re due to changes made during the current call to set_quantities. Fixes #54 | 2016-09-15 16:33:19 +10:00 |  | 
				
					
						| 
								
								
									 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 |  |