From fc636a7a48242b3e220aca8d678a2676045ea73b Mon Sep 17 00:00:00 2001 From: Ricardoalso Date: Fri, 20 Feb 2026 14:49:19 +0100 Subject: [PATCH] [FIX] edi_core_oca: notify action completion based on exchange state --- edi_core_oca/models/edi_backend.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/edi_core_oca/models/edi_backend.py b/edi_core_oca/models/edi_backend.py index 47d9c3db7..be35010e2 100644 --- a/edi_core_oca/models/edi_backend.py +++ b/edi_core_oca/models/edi_backend.py @@ -142,7 +142,8 @@ def exchange_generate(self, exchange_record, store=True, force=False, **kw): "exchange_error_traceback": traceback, } ) - exchange_record.notify_action_complete("generate", message=message) + if exchange_record.edi_exchange_state == "output_pending": + exchange_record.notify_action_complete("generate", message=message) return message # TODO: unify to all other checkes that return something @@ -258,7 +259,11 @@ def exchange_send(self, exchange_record): "exchanged_on": fields.Datetime.now(), } ) - exchange_record.notify_action_complete("send", message=message) + if exchange_record.edi_exchange_state in [ + "output_sent", + "output_sent_and_processed", + ]: + exchange_record.notify_action_complete("send", message=message) return res def _swallable_exceptions(self): @@ -466,7 +471,8 @@ def exchange_process(self, exchange_record): exchange_record._notify_error("process_ko") elif state == "input_processed": exchange_record._notify_done() - exchange_record.notify_action_complete("process", message=message) + if exchange_record.edi_exchange_state == "input_processed": + exchange_record.notify_action_complete("process", message=message) return res def _exchange_process(self, exchange_record): @@ -522,7 +528,8 @@ def exchange_receive(self, exchange_record): "exchanged_on": fields.Datetime.now(), } ) - exchange_record.notify_action_complete("receive", message=message) + if exchange_record.edi_exchange_state == "input_processed": + exchange_record.notify_action_complete("receive", message=message) return res def _exchange_receive_check(self, exchange_record):