[IMP]import_chart_of_accounts:check for account starting with same digit
This commit is contained in:
@@ -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
|
||||
=====
|
||||
|
||||
|
@@ -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': '',
|
||||
|
@@ -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",
|
||||
|
Reference in New Issue
Block a user