diff --git a/import_chart_of_accounts/README.rst b/import_chart_of_accounts/README.rst index e0c7e27..d23cb99 100644 --- a/import_chart_of_accounts/README.rst +++ b/import_chart_of_accounts/README.rst @@ -14,12 +14,13 @@ Description ============= Pendant l'import, chaque ligne est comparée aux comptes comptables présents dans Odoo -- Si le compte comptable à importer existe déjà dans la base de données, le nom (et éventuellement le code) du compte déjà dans Odoo est mis à jour avec les nouvelles données. Il n'y a pas de création de nouveau compte. +- Si le compte comptable à importer existe déjà dans la base de données, le nom (et éventuellemnet le code) du compte déjà dans Odoo est mis à jour avec les nouvelles données. Il n'y a pas de création de nouveau compte. - Un compte comptable de la base de données est considéré comme identique à celui qu'on souhaite importer, si les 2 comptes ont le même code une fois les zéros finaux supprimés. - Par ex: les comptes 120000 et 12000000 sont considérés identiques (12 = 12), mais les comptes 120000 et 12000001 ne sont pas considérés identiques (12 != 12000001) - Si le compte comptable à importer n'existe pas dans la bdd, il est créé. - Un compte similaire au compte nouvellement créé est recherché dans la bdd pour y ajouter les mêmes paramêtres. - Pour ce faire, on recherche dans la bdd tous les comptes qui ont les 3 premiers chiffres de leur code en commun avec celui du compte nouvellement créé. +- S'il n'en existe pas, on recherche dans la bdd tous les comptes qui ont les 1 premier chiffre de leur code en commun avec celui du compte nouvellement créé. - Parmi ces comptes, le compte qui sera concidéré comme 'similaire' et dont on va copié les paramètre sur le nouveau compte est celui au numéro de code le plus bas. - On enregistre la valeur des variables 'type' et 'reconcilition' du compte 'similaire' dans le compte comptable nouvellement créé. - S'il n'existe 'compte similaire' pour le nouveau compte, aucun paramétrage n'est ajouté lors de l'import @@ -28,7 +29,7 @@ Exemple : J'importe le compte comptable '607730 Epicerie divers' Ce compte comptable n'existe pas déjà dans Odoo, il est créé. -Pour le configurer automatiquement, on se fonde sur un compte similaire dans Odoo et avec le code le plus bas parmi les comptes similaires +Pour le configurer automatiquement, on se fonde sur un compte similaire dans Odoo et avec le code le plus bas parmis les comptes similaires Ici il s'agit de '607000 Achats de marchandise': Il a pour Type Charges car c'est une compte de charges et Autoriser le lettrage est à False. Le compte '607730 Epicerie divers' sera donc enregistré dans Odoo avec le même paramétrage. @@ -37,6 +38,10 @@ J'importe le compte comptable '70600000 Prestation de service' Le compte '706000 Ventes de produits issus de prestation' existe en bdd Le compte '706000 Ventes de produits issus de prestation' existant est mise à jour pour devenir '70600000 Prestation de service' +J'importe le compte comptable '70000000 Vente de produits fabriqués' +Il n'existe pas déjà en bdd, il n'existe pas non plus de compte qui commence par '700' +Le compte '770000000 Vente de produits fabriqués' est créé avec pour type et l'autorisation de lettrage du plus petit compte 7 déjà existant en bdd + Usage ===== diff --git a/import_chart_of_accounts/__manifest__.py b/import_chart_of_accounts/__manifest__.py index 15a61e8..8eb06f0 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': '16.0.1.2.0', + 'version': '16.0.1.3.0', 'summary': 'while importing the accounts chart, only update account name of existing accounts and automatise settings for new accounts', 'description': '', 'author': '', diff --git a/import_chart_of_accounts/wizard/import_coa_wizard.py b/import_chart_of_accounts/wizard/import_coa_wizard.py index 695d745..f65b16e 100644 --- a/import_chart_of_accounts/wizard/import_coa_wizard.py +++ b/import_chart_of_accounts/wizard/import_coa_wizard.py @@ -41,11 +41,17 @@ class ImportCoaWizard(models.TransientModel): else: # find the closest account already existing in Odoo, it has the same first tree digits # Example : 706100 is the closest account of 706600 - closest_account = self.find_account_with_same_firsts_digits(record_data['code'][:3]) - if closest_account : + if self.find_account_with_same_firsts_digits(record_data['code'][:3]) : + closest_account = self.find_account_with_same_firsts_digits(record_data['code'][:3]) record_data['account_type'] = closest_account.account_type record_data['reconcile'] = closest_account.reconcile - new_account = self.env['account.account'].create(record_data) + # find the closest account already existing in Odoo, it has the same first digit + # Example : the smallest account beginning with 7 will be taken as the account closest to 700000 if no other account begins with 700 + elif self.find_account_with_same_firsts_digits(record_data['code'][:1]): + closest_account = self.find_account_with_same_firsts_digits(record_data['code'][:1]) + record_data['account_type'] = closest_account.account_type + record_data['reconcile'] = closest_account.reconcile + self.env['account.account'].create(record_data) return { "type": "ir.actions.act_window",