From 0e8c21e0989377bd41814664439a3611046ac64d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Fri, 14 Jun 2024 12:29:31 +0200 Subject: [PATCH] [IMP] edi_oca: don't consider exchange records if jobs have been created --- edi_oca/models/edi_backend.py | 4 ++++ edi_oca/models/edi_exchange_record.py | 1 + 2 files changed, 5 insertions(+) diff --git a/edi_oca/models/edi_backend.py b/edi_oca/models/edi_backend.py index 3276c8528c..e446773ecb 100644 --- a/edi_oca/models/edi_backend.py +++ b/edi_oca/models/edi_backend.py @@ -404,6 +404,7 @@ def _check_output_exchange_sync( len(new_records), ) for rec in new_records: + rec.with_job = True job1 = rec.delayable().action_exchange_generate() if not skip_send: # Chain send job. @@ -437,6 +438,7 @@ def _output_new_records_domain(self, record_ids=None): ("type_id.direction", "=", "output"), ("edi_exchange_state", "=", "new"), ("exchange_file", "=", False), + ("with_job", "=", False), ] if record_ids: domain.append(("id", "in", record_ids)) @@ -613,6 +615,7 @@ def _check_input_exchange_sync(self, record_ids=None, **kw): len(pending_records), ) for rec in pending_records: + rec.with_job = True rec.with_delay().action_exchange_receive() pending_process_records = self.exchange_record_model.search( @@ -631,6 +634,7 @@ def _input_pending_records_domain(self, record_ids=None): ("type_id.direction", "=", "input"), ("edi_exchange_state", "=", "input_pending"), ("exchange_file", "=", False), + ("with_job", "=", False), ] if record_ids: domain.append(("id", "in", record_ids)) diff --git a/edi_oca/models/edi_exchange_record.py b/edi_oca/models/edi_exchange_record.py index a0dc8a5b38..09e0b6b1fc 100644 --- a/edi_oca/models/edi_exchange_record.py +++ b/edi_oca/models/edi_exchange_record.py @@ -112,6 +112,7 @@ class EDIExchangeRecord(models.Model): compute="_compute_retryable", help="The record state can be rolled back manually in case of failure.", ) + with_job = fields.Boolean(help="Technical field to know if jobs have been created already.") _sql_constraints = [ ("identifier_uniq", "unique(identifier)", "The identifier must be unique."),