Fill default accounts when creating chart

issue10602
review359871002
This commit is contained in:
Cédric Krier
2021-10-03 00:42:46 +02:00
parent 1d47121f91
commit 3ec80fad5d
4 changed files with 66 additions and 9 deletions
+2
View File
@@ -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')
+46
View File
@@ -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'
+8 -8
View File
@@ -4688,7 +4688,7 @@
<field name="reconcile" eval="True"/>
<field name="parent" ref="400"/>
</record>
<record model="account.account.template" id="fr_pcg_pay">
<record model="account.account.template" id="4011">
<field name="name">Fournisseurs - Achats de biens et prestations de services</field>
<field name="code">4011</field>
<field name="type" ref="dettes_fournisseurs_comptes_rattaches"/>
@@ -4852,7 +4852,7 @@
<field name="reconcile" eval="True"/>
<field name="parent" ref="410"/>
</record>
<record model="account.account.template" id="fr_pcg_recv">
<record model="account.account.template" id="4111">
<field name="name">Clients - Ventes de biens ou de prestations de services</field>
<field name="code">4111</field>
<field name="type" ref="creances_clients"/>
@@ -5881,7 +5881,7 @@
<field name="type" ref="disponibilites"/>
<field name="parent" ref="511"/>
</record>
<record model="account.account.template" id="fr_pcg_cash">
<record model="account.account.template" id="512">
<field name="name">Banques</field>
<field name="code">512</field>
<field name="type" ref="emprunts_dettes_etablissements_credit"/>
@@ -5894,14 +5894,14 @@
<field name="code">5121</field>
<field name="type" ref="emprunts_dettes_etablissements_credit"/>
<field name="debit_type" ref="disponibilites"/>
<field name="parent" ref="fr_pcg_cash"/>
<field name="parent" ref="512"/>
</record>
<record model="account.account.template" id="5124">
<field name="name">Comptes en devises</field>
<field name="code">5124</field>
<field name="type" ref="emprunts_dettes_etablissements_credit"/>
<field name="debit_type" ref="disponibilites"/>
<field name="parent" ref="fr_pcg_cash"/>
<field name="parent" ref="512"/>
</record>
<record model="account.account.template" id="514">
<field name="name">Chèques postaux</field>
@@ -6257,7 +6257,7 @@
<field name="type" ref="autres_achats"/>
<field name="parent" ref="606"/>
</record>
<record model="account.account.template" id="fr_pcg_expense">
<record model="account.account.template" id="607">
<field name="name">Achats de marchandises</field>
<field name="code">607</field>
<field name="type" ref="achat_marchandises"/>
@@ -6268,13 +6268,13 @@
<field name="name">Marchandise (ou groupe) A</field>
<field name="code">6071</field>
<field name="type" ref="achat_marchandises"/>
<field name="parent" ref="fr_pcg_expense"/>
<field name="parent" ref="607"/>
</record>
<record model="account.account.template" id="6072">
<field name="name">Marchandise (ou groupe) B</field>
<field name="code">6072</field>
<field name="type" ref="achat_marchandises"/>
<field name="parent" ref="fr_pcg_expense"/>
<field name="parent" ref="607"/>
</record>
<record model="account.account.template" id="608">
<field name="name">Frais accessoires incorporés aux achats</field>
+10 -1
View File
@@ -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()