45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, _
|
|
from odoo.addons.account.models.chart_template import template
|
|
|
|
|
|
class AccountChartTemplate(models.AbstractModel):
|
|
_inherit = "account.chart.template"
|
|
|
|
def _post_load_data(self, template_code, company, template_data):
|
|
super()._post_load_data(template_code, company, template_data)
|
|
company = company or self.env.company
|
|
fields_name = self.env['product.category']._get_stock_account_property_field_names()
|
|
account_fields = self.env['ir.model.fields'].search([('model', '=', 'product.category'), ('name', 'in', fields_name)])
|
|
existing_props = self.env['ir.property'].sudo().search([
|
|
('fields_id', 'in', account_fields.ids),
|
|
('company_id', '=', company.id),
|
|
('res_id', '!=', False),
|
|
])
|
|
for fname in fields_name:
|
|
if fname in existing_props.mapped('fields_id.name'):
|
|
continue
|
|
value = template_data.get(fname)
|
|
if value:
|
|
self.env['ir.property']._set_default(fname, 'product.category', self.ref(value).id, company=company)
|
|
|
|
@template(model='account.journal')
|
|
def _get_stock_account_journal(self, template_code):
|
|
return {
|
|
'inventory_valuation': {
|
|
'name': _('Inventory Valuation'),
|
|
'code': 'STJ',
|
|
'type': 'general',
|
|
'sequence': 8,
|
|
'show_on_dashboard': False,
|
|
},
|
|
}
|
|
|
|
@template()
|
|
def _get_stock_template_data(self, template_code):
|
|
return {
|
|
'property_stock_journal': 'inventory_valuation',
|
|
}
|