From c8e8e4f866b54e082654f02a294292d96f15668c Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Mon, 8 Jun 2026 23:12:17 +0200 Subject: [PATCH] Stop workflow to Confirmed --- modules/purchase/purchase.py | 7 +++++-- modules/sale/sale.py | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index 9d3899d..f083210 100755 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -958,14 +958,17 @@ class Purchase( def confirm(cls, purchases): pool = Pool() Line = pool.get('purchase.line') - transaction = Transaction() - context = transaction.context cls.set_purchase_date(purchases) cls.write(purchases, {'state': 'confirmed'}) lines = list(sum((p.lines for p in purchases), ())) Line._validate(lines, ['unit_price']) + # Stop the workflow at Confirmed. + # The user must explicitly click Process to create/update invoices and + # shipments. + # transaction = Transaction() + # context = transaction.context # cls.store_cache(purchases) # for process_after, sub_purchases in groupby( # purchases, lambda p: p.process_after): diff --git a/modules/sale/sale.py b/modules/sale/sale.py index 947b633..de5ce71 100755 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -1077,16 +1077,19 @@ class Sale( @Workflow.transition('confirmed') @set_employee('confirmed_by') def confirm(cls, sales): - transaction = Transaction() - context = transaction.context cls.set_sale_date(sales) cls.store_cache(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) + # Stop the workflow at Confirmed. + # The user must explicitly click Process to create/update invoices and + # shipments. + # transaction = Transaction() + # context = transaction.context + # 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')