Deal with bundled products with no quotas

Fix PRETIXEU-1A8
This commit is contained in:
Raphael Michel
2019-08-06 10:31:57 +02:00
parent 87fb5f06ff
commit 527a250435

View File

@@ -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?