Cédric Krier pushed to branch branch/default at Tryton / Tryton
Commits: 7e2b83f7 by Cédric Krier at 2023-04-12T13:42:18+02:00 Define process delay per sale and purchase Closes #12209 - - - - - 2 changed files: - modules/purchase/purchase.py - modules/sale/sale.py Changes: ===================================== modules/purchase/purchase.py ===================================== @@ -860,8 +860,15 @@ purchase.check_for_quotation() cls.set_number(purchases) + @property + def process_after(self): + pool = Pool() + Configuration = pool.get('purchase.configuration') + config = Configuration(1) + return config.purchase_process_after + @classmethod @ModelView.button @Workflow.transition('confirmed') @set_employee('confirmed_by') def confirm(cls, purchases): @@ -863,11 +870,9 @@ @classmethod @ModelView.button @Workflow.transition('confirmed') @set_employee('confirmed_by') def confirm(cls, purchases): - pool = Pool() - Configuration = pool.get('purchase.configuration') transaction = Transaction() context = transaction.context cls.set_purchase_date(purchases) cls.store_cache(purchases) @@ -870,12 +875,13 @@ transaction = Transaction() context = transaction.context cls.set_purchase_date(purchases) cls.store_cache(purchases) - config = Configuration(1) - with transaction.set_context( - queue_scheduled_at=config.purchase_process_after, - queue_batch=context.get('queue_batch', True)): - cls.__queue__.process(purchases) + for process_after, sub_purchases in groupby( + purchases, lambda p: p.process_after): + with transaction.set_context( + queue_scheduled_at=process_after, + queue_batch=context.get('queue_batch', True)): + cls.__queue__.process(sub_purchases) @classmethod @Workflow.transition('processing') ===================================== modules/sale/sale.py ===================================== @@ -982,8 +982,15 @@ sale.check_for_quotation() cls.set_number(sales) + @property + def process_after(self): + pool = Pool() + Configuration = pool.get('sale.configuration') + config = Configuration(1) + return config.sale_process_after + @classmethod @ModelView.button @Workflow.transition('confirmed') @set_employee('confirmed_by') def confirm(cls, sales): @@ -985,11 +992,9 @@ @classmethod @ModelView.button @Workflow.transition('confirmed') @set_employee('confirmed_by') def confirm(cls, sales): - pool = Pool() - Configuration = pool.get('sale.configuration') transaction = Transaction() context = transaction.context cls.set_sale_date(sales) cls.store_cache(sales) @@ -992,12 +997,13 @@ transaction = Transaction() context = transaction.context cls.set_sale_date(sales) cls.store_cache(sales) - config = Configuration(1) - with transaction.set_context( - queue_scheduled_at=config.sale_process_after, - queue_batch=context.get('queue_batch', True)): - cls.__queue__.process(sales) + for process_after, sub_sales in groupby( + sales, lambda s: s.process_after): + with transaction.set_context( + queue_scheduled_at=process_after, + queue_batch=context.get('queue_batch', True)): + cls.__queue__.process(sub_sales) @classmethod @ModelView.button_action('sale.wizard_invoice_handle_exception') View it on Heptapod: https://foss.heptapod.net/tryton/tryton/-/commit/7e2b83f77861c118de0c4270d19593b2a938dabd -- View it on Heptapod: https://foss.heptapod.net/tryton/tryton/-/commit/7e2b83f77861c118de0c4270d19593b2a938dabd You're receiving this email because of your account on foss.heptapod.net.