From 16257eb860e557434adf1304f04620503c8df76d Mon Sep 17 00:00:00 2001 From: thien Date: Thu, 6 Feb 2025 16:16:59 +0700 Subject: [PATCH] [IMP] edi_storage_oca: Allow files with duplicate names to create Edi Exchange Record --- edi_storage_oca/models/edi_backend.py | 16 ++++++++++------ edi_storage_oca/views/edi_backend_views.xml | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/edi_storage_oca/models/edi_backend.py b/edi_storage_oca/models/edi_backend.py index 5ccfbfadd0..2306834f59 100644 --- a/edi_storage_oca/models/edi_backend.py +++ b/edi_storage_oca/models/edi_backend.py @@ -58,6 +58,8 @@ class EDIBackend(models.Model): output_dir_error = fields.Char( "Output error directory", help="Path to folder for error operations" ) + input_allow_duplicate_filename = fields.Boolean( + help="For this backend, filenames are not unique, e.g. output.edi") _storage_actions = ("check", "send", "receive") @@ -133,12 +135,14 @@ def _storage_exchange_type_pending_input_domain(self): def _storage_create_record_if_missing(self, exchange_type, remote_file_name): """Create a new exchange record for given type and file name if missing.""" file_name = os.path.basename(remote_file_name) - extra_domain = [("exchange_filename", "=", file_name)] - existing = self._find_existing_exchange_records( - exchange_type, extra_domain=extra_domain, count_only=True - ) - if existing: - return + if not self.input_allow_duplicate_filename: + extra_domain = [] + extra_domain.append(["exchange_filename", "=", file_name]) + existing = self._find_existing_exchange_records( + exchange_type, extra_domain=extra_domain, count_only=True + ) + if existing: + return record = self.create_record( exchange_type.code, { diff --git a/edi_storage_oca/views/edi_backend_views.xml b/edi_storage_oca/views/edi_backend_views.xml index 59ed64b0c7..cb7aa5f7d6 100644 --- a/edi_storage_oca/views/edi_backend_views.xml +++ b/edi_storage_oca/views/edi_backend_views.xml @@ -10,6 +10,7 @@ +