From 2d7a37f65a2a90b99c8871d57e30557f84c8e516 Mon Sep 17 00:00:00 2001 From: Laetitia Da Costa Date: Wed, 19 Jun 2024 16:20:09 +0200 Subject: [PATCH] [IMP]import_chart_of_accounts:manage final zero in account code --- import_chart_of_accounts/__manifest__.py | 3 ++- import_chart_of_accounts/wizard/import_coa_wizard.py | 11 ++++++----- .../wizard/import_coa_wizard_views.xml | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/import_chart_of_accounts/__manifest__.py b/import_chart_of_accounts/__manifest__.py index c46ab83..03c9839 100644 --- a/import_chart_of_accounts/__manifest__.py +++ b/import_chart_of_accounts/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Import chart of accounts', - 'version': '14.0.1.0.0', + 'version': '14.0.1.1.0', 'summary': 'while importing the accounts chart, only update account name of existing accounts and automatise settings for new accounts', 'description': """ @@ -14,6 +14,7 @@ Description Pendant l'import, chaque ligne est comparée aux comptes comptables présents dans Odoo - Si le compte comptable existe déjà dans bdd, seul le nom du compte comptable est mis à jour +- Un compte comptable est déjà existant si les 6 premiers chiffres du code comptable sont identique (par ex: le compte 120000 et 12000000 sont les mêmes comptes) - Si le compte comptable n'existe pas dans bdd, il est créé. - Un compte similaire est recherché dans la bdd à partir des 3 premier chiffres du code comptable. - On recherche tous les comptes qui ont les 3 premiers chiffres de son code en commun avec celui du compte nouvellement créé diff --git a/import_chart_of_accounts/wizard/import_coa_wizard.py b/import_chart_of_accounts/wizard/import_coa_wizard.py index 77b98bb..daba6a8 100644 --- a/import_chart_of_accounts/wizard/import_coa_wizard.py +++ b/import_chart_of_accounts/wizard/import_coa_wizard.py @@ -28,11 +28,13 @@ class ImportCoaWizard(models.TransientModel): data_to_import = [row for row in csv_reader] for record_data in data_to_import: - existing_line = self.env['account.account'].search([('code', '=', record_data['code'])], limit=1) + # the account is already existing in Odoo if the 6 first digits are identicales + existing_line = self.find_account_with_same_firsts_digits(record_data['code'][:6]) if existing_line: - existing_line.name = record_data['name'] + existing_line.write(record_data) else: - closest_account = self.find_closest_account(record_data['code'][:3]) + # the closest account already existing in Odoo has the first tree digits identicales + closest_account = self.find_account_with_same_firsts_digits(record_data['code'][:3]) if closest_account : record_data['user_type_id'] = closest_account.user_type_id.id record_data['reconcile'] = closest_account.reconcile @@ -44,6 +46,5 @@ class ImportCoaWizard(models.TransientModel): "view_mode": "list" } - def find_closest_account(self, code_prefix): - # return first code with first tree caracters identical + def find_account_with_same_firsts_digits(self, code_prefix): return self.env['account.account'].search([('code', '=like', f'{code_prefix}%')],limit=1) diff --git a/import_chart_of_accounts/wizard/import_coa_wizard_views.xml b/import_chart_of_accounts/wizard/import_coa_wizard_views.xml index d98faff..2622b45 100644 --- a/import_chart_of_accounts/wizard/import_coa_wizard_views.xml +++ b/import_chart_of_accounts/wizard/import_coa_wizard_views.xml @@ -19,6 +19,7 @@

Pendant l'import, chaque ligne est comparée aux comptes comptables présents dans Odoo