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):