mirror of
https://github.com/pretix/pretix.git
synced 2026-05-10 16:04:02 +00:00
Deal with bundled products with no quotas
Fix PRETIXEU-1A8
This commit is contained in:
@@ -789,14 +789,19 @@ class CartManager:
|
|||||||
|
|
||||||
if isinstance(op, self.AddOperation):
|
if isinstance(op, self.AddOperation):
|
||||||
for b in op.bundled:
|
for b in op.bundled:
|
||||||
b_quota_available_count = min(available_count * b.count, min(quotas_ok[q] for q in b.quotas))
|
b_quotas = list(b.quotas)
|
||||||
|
if not b_quotas:
|
||||||
|
err = err or error_messages['unavailable']
|
||||||
|
available_count = 0
|
||||||
|
continue
|
||||||
|
b_quota_available_count = min(available_count * b.count, min(quotas_ok[q] for q in b_quotas))
|
||||||
if b_quota_available_count < b.count:
|
if b_quota_available_count < b.count:
|
||||||
err = err or error_messages['unavailable']
|
err = err or error_messages['unavailable']
|
||||||
available_count = 0
|
available_count = 0
|
||||||
elif b_quota_available_count < available_count * b.count:
|
elif b_quota_available_count < available_count * b.count:
|
||||||
err = err or error_messages['in_part']
|
err = err or error_messages['in_part']
|
||||||
available_count = b_quota_available_count // b.count
|
available_count = b_quota_available_count // b.count
|
||||||
for q in b.quotas:
|
for q in b_quotas:
|
||||||
quotas_ok[q] -= available_count * b.count
|
quotas_ok[q] -= available_count * b.count
|
||||||
# TODO: is this correct?
|
# TODO: is this correct?
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user