diff --git a/__init__.py b/__init__.py
index 68d3d77315..57d109183a 100644
--- a/__init__.py
+++ b/__init__.py
@@ -7,11 +7,13 @@ from . import account
def register():
Pool.register(
+ account.AccountTemplate,
account.TaxTemplate,
account.TaxRuleTemplate,
account.FrFECStart,
account.FrFECResult,
module='account_fr', type_='model')
Pool.register(
+ account.CreateChart,
account.FrFEC,
module='account_fr', type_='wizard')
diff --git a/account.py b/account.py
index 2120d75c11..932db06985 100644
--- a/account.py
+++ b/account.py
@@ -20,6 +20,36 @@ OPENING_NAME = config.get(
OPENING_NUMBER = config.get('account_fr', 'fec_opening_number', default="0")
+class AccountTemplate(metaclass=PoolMeta):
+ __name__ = 'account.account.template'
+
+ @classmethod
+ def __register__(cls, module_name):
+ cursor = Transaction().connection.cursor()
+ model_data = Table('ir_model_data')
+
+ # Migration from 6.0: rename ids
+ if module_name == 'account_fr':
+ for old_id, new_id in (
+ ('fr_pcg_pay', '4011'),
+ ('fr_pcg_recv', '4111'),
+ ('fr_pcg_cash', '512'),
+ ('fr_pcg_expense', '607'),
+ ):
+ cursor.execute(*model_data.select(model_data.id,
+ where=(model_data.fs_id == new_id)
+ & (model_data.module == module_name)))
+ if cursor.fetchone():
+ continue
+ cursor.execute(*model_data.update(
+ columns=[model_data.fs_id],
+ values=[new_id],
+ where=(model_data.fs_id == old_id)
+ & (model_data.module == module_name)))
+
+ super().__register__(module_name)
+
+
class TaxTemplate(metaclass=PoolMeta):
__name__ = 'account.tax.template'
@@ -56,6 +86,22 @@ class TaxTemplate(metaclass=PoolMeta):
super(TaxTemplate, cls).__register__(module_name)
+class CreateChart(metaclass=PoolMeta):
+ __name__ = 'account.create_chart'
+
+ def default_properties(self, fields):
+ pool = Pool()
+ ModelData = pool.get('ir.model.data')
+ defaults = super().default_properties(fields)
+ template_id = ModelData.get_id('account_fr.root')
+ if self.account.account_template.id == template_id:
+ defaults['account_receivable'] = self.get_account(
+ 'account_fr.4111')
+ defaults['account_payable'] = self.get_account(
+ 'account_fr.4011')
+ return defaults
+
+
class TaxRuleTemplate(metaclass=PoolMeta):
__name__ = 'account.tax.rule.template'
diff --git a/account_fr.xml b/account_fr.xml
index 9f063bf11a..d31580aa98 100644
--- a/account_fr.xml
+++ b/account_fr.xml
@@ -4688,7 +4688,7 @@
-
+
Fournisseurs - Achats de biens et prestations de services
4011
@@ -4852,7 +4852,7 @@
-
+
Clients - Ventes de biens ou de prestations de services
4111
@@ -5881,7 +5881,7 @@
-
+
Banques
512
@@ -5894,14 +5894,14 @@
5121
-
+
Comptes en devises
5124
-
+
Chèques postaux
@@ -6257,7 +6257,7 @@
-
+
Achats de marchandises
607
@@ -6268,13 +6268,13 @@
Marchandise (ou groupe) A
6071
-
+
Marchandise (ou groupe) B
6072
-
+
Frais accessoires incorporés aux achats
diff --git a/tests/test_account_fr.py b/tests/test_account_fr.py
index bb99b70551..cf287f8c61 100644
--- a/tests/test_account_fr.py
+++ b/tests/test_account_fr.py
@@ -4,13 +4,22 @@ import doctest
import unittest
import trytond.tests.test_tryton
from trytond.tests.test_tryton import (
- ModuleTestCase, doctest_teardown, doctest_checker)
+ ModuleTestCase, doctest_teardown, doctest_checker, with_transaction)
+
+from trytond.modules.company.tests import create_company, set_company
+from trytond.modules.account.tests import create_chart
class AccountFRTestCase(ModuleTestCase):
'Test Account FR module'
module = 'account_fr'
+ @with_transaction()
+ def test_create_chart(self):
+ company = create_company()
+ with set_company(company):
+ create_chart(company, chart=self.module + '.root')
+
def suite():
suite = trytond.tests.test_tryton.suite()