changeset c8ca9b7062b9 in modules/account_asset:default
details: 
https://hg.tryton.org/modules/account_asset?cmd=changeset;node=c8ca9b7062b9
description:
        Add configuration values for frequency

        issue8987
        review260821002
diffstat:

 CHANGELOG                   |   1 +
 __init__.py                 |   1 +
 account.py                  |  31 +++++++++++++++++++++++++++++++
 asset.py                    |   8 +++++---
 view/configuration_form.xml |   2 ++
 5 files changed, 40 insertions(+), 3 deletions(-)

diffs (111 lines):

diff -r 6aefa4fe2033 -r c8ca9b7062b9 CHANGELOG
--- a/CHANGELOG Fri Dec 06 17:33:46 2019 +0100
+++ b/CHANGELOG Wed Jan 29 22:24:40 2020 +0100
@@ -1,3 +1,4 @@
+* Add configuration value for frequency
 * Use fixed year of 365 days
 
 Version 5.4.0 - 2019-11-04
diff -r 6aefa4fe2033 -r c8ca9b7062b9 __init__.py
--- a/__init__.py       Fri Dec 06 17:33:46 2019 +0100
+++ b/__init__.py       Wed Jan 29 22:24:40 2020 +0100
@@ -25,6 +25,7 @@
         account.Configuration,
         account.ConfigurationAssetSequence,
         account.ConfigurationAssetDate,
+        account.ConfigurationAssetFrequency,
         account.AccountTypeTemplate,
         account.AccountType,
         account.Move,
diff -r 6aefa4fe2033 -r c8ca9b7062b9 account.py
--- a/account.py        Fri Dec 06 17:33:46 2019 +0100
+++ b/account.py        Wed Jan 29 22:24:40 2020 +0100
@@ -29,6 +29,18 @@
         ('12', "December"),
         ], "Month", sort=False,
     help="The month to create the depreciation moves.")
+asset_frequency = fields.Selection('get_asset_frequencies',
+    "Asset Depreciation Frequency",
+    required=True, help="The default depreciation frequency for new assets.")
+
+
+def get_asset_selection(field_name):
+    @classmethod
+    def get_selection(cls):
+        pool = Pool()
+        Asset = pool.get('account.asset')
+        return Asset.fields_get([field_name])[field_name]['selection']
+    return get_selection
 
 
 class Configuration(metaclass=PoolMeta):
@@ -42,6 +54,9 @@
                 ]))
     asset_bymonthday = fields.MultiValue(asset_bymonthday)
     asset_bymonth = fields.MultiValue(asset_bymonth)
+    asset_frequency = fields.MultiValue(asset_frequency)
+
+    get_asset_frequencies = get_asset_selection('frequency')
 
     @classmethod
     def multivalue_model(cls, field):
@@ -63,6 +78,11 @@
     def default_asset_bymonth(cls, **pattern):
         return cls.multivalue_model('asset_bymonth').default_asset_bymonth()
 
+    @classmethod
+    def default_asset_frequency(cls, **pattern):
+        return cls.multivalue_model(
+            'asset_frequency').default_asset_frequency()
+
 
 class ConfigurationAssetSequence(ModelSQL, CompanyValueMixin):
     "Account Configuration Asset Sequence"
@@ -118,6 +138,17 @@
         return "12"
 
 
+class ConfigurationAssetFrequency(ModelSQL, CompanyValueMixin):
+    "Account Configuration Asset Frequency"
+    __name__ = 'account.configuration.asset_frequency'
+    asset_frequency = asset_frequency
+    get_asset_frequencies = get_asset_selection('frequency')
+
+    @classmethod
+    def default_asset_frequency(cls):
+        return 'monthly'
+
+
 def AccountTypeMixin(template=False):
 
     class Mixin:
diff -r 6aefa4fe2033 -r c8ca9b7062b9 asset.py
--- a/asset.py  Fri Dec 06 17:33:46 2019 +0100
+++ b/asset.py  Wed Jan 29 22:24:40 2020 +0100
@@ -260,9 +260,11 @@
     def default_state():
         return 'draft'
 
-    @staticmethod
-    def default_frequency():
-        return 'monthly'
+    @classmethod
+    def default_frequency(cls, **pattern):
+        pool = Pool()
+        Configuration = pool.get('account.configuration')
+        return Configuration(1).get_multivalue('asset_frequency', **pattern)
 
     @staticmethod
     def default_depreciation_method():
diff -r 6aefa4fe2033 -r c8ca9b7062b9 view/configuration_form.xml
--- a/view/configuration_form.xml       Fri Dec 06 17:33:46 2019 +0100
+++ b/view/configuration_form.xml       Wed Jan 29 22:24:40 2020 +0100
@@ -6,6 +6,8 @@
         <separator id="asset" string="Asset" colspan="4"/>
         <label name="asset_sequence" string="Sequence"/>
         <field name="asset_sequence"/>
+        <label name="asset_frequency" string="Depreciation Frequency"/>
+        <field name="asset_frequency"/>
         <separator id="asset_move" string="Asset Move" colspan="4"/>
         <label name="asset_bymonthday"/>
         <field name="asset_bymonthday"/>

Reply via email to