[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
|
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.
|
- 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)
|
- 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éé.
|
- 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.
|
- 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éé.
|
- 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.
|
- 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éé.
|
- 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
|
- 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'
|
J'importe le compte comptable '607730 Epicerie divers'
|
||||||
Ce compte comptable n'existe pas déjà dans Odoo, il est créé.
|
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':
|
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.
|
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.
|
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' existe en bdd
|
||||||
Le compte '706000 Ventes de produits issus de prestation' existant est mise à jour pour devenir '70600000 Prestation de service'
|
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
|
Usage
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Import chart of accounts',
|
'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',
|
'summary': 'while importing the accounts chart, only update account name of existing accounts and automatise settings for new accounts',
|
||||||
'description': '',
|
'description': '',
|
||||||
'author': '',
|
'author': '',
|
||||||
|
@@ -41,11 +41,17 @@ class ImportCoaWizard(models.TransientModel):
|
|||||||
else:
|
else:
|
||||||
# find the closest account already existing in Odoo, it has the same first tree digits
|
# find the closest account already existing in Odoo, it has the same first tree digits
|
||||||
# Example : 706100 is the closest account of 706600
|
# Example : 706100 is the closest account of 706600
|
||||||
|
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])
|
closest_account = self.find_account_with_same_firsts_digits(record_data['code'][:3])
|
||||||
if closest_account :
|
|
||||||
record_data['account_type'] = closest_account.account_type
|
record_data['account_type'] = closest_account.account_type
|
||||||
record_data['reconcile'] = closest_account.reconcile
|
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 {
|
return {
|
||||||
"type": "ir.actions.act_window",
|
"type": "ir.actions.act_window",
|
||||||
|
Reference in New Issue
Block a user