From 5e61338bda4fe5849c00d69c65678aa662ddfec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 25 Aug 2024 11:01:36 +0200 Subject: [PATCH] Generate all gift card numbers at once --- modules/sale_gift_card/sale.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/sale_gift_card/sale.py b/modules/sale_gift_card/sale.py index 8916122c56..dbcf837719 100644 --- a/modules/sale_gift_card/sale.py +++ b/modules/sale_gift_card/sale.py @@ -448,14 +448,17 @@ class _LineMixin: unit_price = UoM.compute_price( self.unit, self.unit_price, self.product.default_uom) unit_price = self.sale.currency.round(unit_price) - for _ in range(int(quantity)): + sequence = config.get_multivalue( + 'gift_card_sequence', company=self.sale.company.id) + if sequence: + numbers = sequence.get_many(int(quantity)) + else: + numbers = range(int(quantity)) + for number in numbers: card = GiftCard() card.company = self.sale.company - sequence = config.get_multivalue( - 'gift_card_sequence', company=card.company.id) if sequence: - with Transaction().set_context(company=card.company.id): - card.number = sequence.get() + card.number = number card.product = self.product card.value = unit_price card.currency = self.sale.currency