padding acc

This commit is contained in:
2026-04-26 14:56:51 +02:00
parent fbfa73110f
commit 4db0395a11
5 changed files with 59 additions and 58 deletions

View File

@@ -191,10 +191,12 @@ def register():
weight_report.WeightReport, weight_report.WeightReport,
module='purchase', type_='model') module='purchase', type_='model')
Pool.register( Pool.register(
account.Configuration,
account.ConfigurationDefaultAccount,
account.PhysicalTradeIFRS, account.PhysicalTradeIFRS,
module='purchase_trade', type_='model') module='purchase_trade', type_='model')
Pool.register(
configuration.AccountConfiguration,
configuration.AccountConfigurationDefaultAccount,
module='purchase_trade', type_='model')
Pool.register( Pool.register(
invoice.Invoice, invoice.Invoice,
invoice.InvoiceLine, invoice.InvoiceLine,

View File

@@ -1,63 +1,12 @@
from trytond.model import ModelSQL, ModelView, fields from trytond.model import ModelSQL, ModelView, fields
from trytond.pool import Pool, PoolMeta from trytond.pool import PoolMeta
from trytond.pyson import Eval
__all__ = [ __all__ = [
'Configuration',
'ConfigurationDefaultAccount',
'PhysicalTradeIFRS', 'PhysicalTradeIFRS',
] ]
__metaclass__ = PoolMeta __metaclass__ = PoolMeta
class Configuration(metaclass=PoolMeta):
__name__ = 'account.configuration'
default_sale_padding_account = fields.MultiValue(fields.Many2One(
'account.account', "Default Sale Padding",
domain=[
('closed', '!=', True),
('type.revenue', '=', True),
('company', '=', Eval('context', {}).get('company', -1)),
]))
default_accrual_padding_account = fields.MultiValue(fields.Many2One(
'account.account', "Default Accrual Padding",
domain=[
('closed', '!=', True),
('type.statement', '=', 'balance'),
('company', '=', Eval('context', {}).get('company', -1)),
]))
@classmethod
def multivalue_model(cls, field):
pool = Pool()
if field in {
'default_sale_padding_account',
'default_accrual_padding_account',
}:
return pool.get('account.configuration.default_account')
return super().multivalue_model(field)
class ConfigurationDefaultAccount(metaclass=PoolMeta):
__name__ = 'account.configuration.default_account'
default_sale_padding_account = fields.Many2One(
'account.account', "Default Sale Padding",
domain=[
('closed', '!=', True),
('type.revenue', '=', True),
('company', '=', Eval('company', -1)),
])
default_accrual_padding_account = fields.Many2One(
'account.account', "Default Accrual Padding",
domain=[
('closed', '!=', True),
('type.statement', '=', 'balance'),
('company', '=', Eval('company', -1)),
])
class PhysicalTradeIFRS(ModelSQL, ModelView): class PhysicalTradeIFRS(ModelSQL, ModelView):
'Physical Trade - IFRS Adjustment' 'Physical Trade - IFRS Adjustment'
__name__ = 'account.physical_trade_ifrs' __name__ = 'account.physical_trade_ifrs'

View File

@@ -3,7 +3,7 @@
<data> <data>
<record model="ir.ui.view" id="account_configuration_view_form"> <record model="ir.ui.view" id="account_configuration_view_form">
<field name="model">account.configuration</field> <field name="model">account.configuration</field>
<field name="inherit" ref="account_product.configuration_view_form"/> <field name="inherit" ref="account.configuration_view_form"/>
<field name="name">account_configuration_form</field> <field name="name">account_configuration_form</field>
</record> </record>

View File

@@ -1,8 +1,57 @@
from trytond.model import ModelSingleton, ModelSQL, ModelView, fields from trytond.model import ModelSingleton, ModelSQL, ModelView, fields
from trytond.pool import Pool from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
from trytond.transaction import Transaction from trytond.transaction import Transaction
class AccountConfiguration(metaclass=PoolMeta):
__name__ = 'account.configuration'
default_sale_padding_account = fields.MultiValue(fields.Many2One(
'account.account', "Default Sale Padding",
domain=[
('closed', '!=', True),
('type.revenue', '=', True),
('company', '=', Eval('context', {}).get('company', -1)),
]))
default_accrual_padding_account = fields.MultiValue(fields.Many2One(
'account.account', "Default Accrual Padding",
domain=[
('closed', '!=', True),
('type.statement', '=', 'balance'),
('company', '=', Eval('context', {}).get('company', -1)),
]))
@classmethod
def multivalue_model(cls, field):
pool = Pool()
if field in {
'default_sale_padding_account',
'default_accrual_padding_account',
}:
return pool.get('account.configuration.default_account')
return super().multivalue_model(field)
class AccountConfigurationDefaultAccount(metaclass=PoolMeta):
__name__ = 'account.configuration.default_account'
default_sale_padding_account = fields.Many2One(
'account.account', "Default Sale Padding",
domain=[
('closed', '!=', True),
('type.revenue', '=', True),
('company', '=', Eval('company', -1)),
])
default_accrual_padding_account = fields.Many2One(
'account.account', "Default Accrual Padding",
domain=[
('closed', '!=', True),
('type.statement', '=', 'balance'),
('company', '=', Eval('company', -1)),
])
class Configuration(ModelSingleton, ModelSQL, ModelView): class Configuration(ModelSingleton, ModelSQL, ModelView):
"Purchase Trade Configuration" "Purchase Trade Configuration"
__name__ = 'purchase_trade.configuration' __name__ = 'purchase_trade.configuration'

View File

@@ -1,7 +1,8 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<data> <data>
<xpath expr="/form/field[@name='default_category_account_revenue']" <xpath expr="/form/label[@name='default_account_prepayment_receivable']"
position="after"> position="before">
<separator id="padding" string="Padding" colspan="4"/>
<label name="default_sale_padding_account"/> <label name="default_sale_padding_account"/>
<field name="default_sale_padding_account"/> <field name="default_sale_padding_account"/>
<label name="default_accrual_padding_account"/> <label name="default_accrual_padding_account"/>