diff --git a/addons/stock_account/__init__.py b/addons/stock_account/__init__.py index 853953aa51098ebd169156c103da806fda262c48..74f33e2e2b7b01f2431c834be7588f39588ddd99 100644 --- a/addons/stock_account/__init__.py +++ b/addons/stock_account/__init__.py @@ -27,13 +27,13 @@ def _configure_journals(cr, registry): ('company_id', '=', company_id.id), ('type', '=', 'general')], limit=1).id if not journal_id: - journal_id = env['account.journal'].create({ - 'name': _('Inventory Valuation'), - 'type': 'general', - 'code': 'STJ', - 'company_id': company_id.id, - 'show_on_dashboard': False - }).id + journal_id = env['account.journal'].create({ + 'name': _('Inventory Valuation'), + 'type': 'general', + 'code': 'STJ', + 'company_id': company_id.id, + 'show_on_dashboard': False + }).id vals = { 'name': 'property_stock_journal', 'fields_id': env['ir.model.fields'].search([ diff --git a/addons/stock_landed_costs/__init__.py b/addons/stock_landed_costs/__init__.py index e9917144f69feaac6d6f32ff8f58cd9208f31134..15f7e319e9154600ac64f68e835ffcb05c561b76 100644 --- a/addons/stock_landed_costs/__init__.py +++ b/addons/stock_landed_costs/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import models \ No newline at end of file +from . import models + diff --git a/addons/stock_landed_costs/models/__init__.py b/addons/stock_landed_costs/models/__init__.py index 8b81c0379951fc40efaf2df46ef996b8251e2998..a3a586e5c1f8f5d668a431baf2b1048402e07bd4 100644 --- a/addons/stock_landed_costs/models/__init__.py +++ b/addons/stock_landed_costs/models/__init__.py @@ -2,6 +2,8 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import product +from . import res_company +from . import res_config_settings from . import stock_landed_cost from . import stock_valuation_layer diff --git a/addons/stock_landed_costs/models/res_company.py b/addons/stock_landed_costs/models/res_company.py new file mode 100644 index 0000000000000000000000000000000000000000..fe2a178a2e9ef721da4782c5ce91163555af6360 --- /dev/null +++ b/addons/stock_landed_costs/models/res_company.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = 'res.company' + + lc_journal_id = fields.Many2one('account.journal') + diff --git a/addons/stock_landed_costs/models/res_config_settings.py b/addons/stock_landed_costs/models/res_config_settings.py new file mode 100644 index 0000000000000000000000000000000000000000..e40f429428608c3f08216ce29c1fdfc5420bdcfc --- /dev/null +++ b/addons/stock_landed_costs/models/res_config_settings.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + lc_journal_id = fields.Many2one('account.journal', string='Default Journal', related='company_id.lc_journal_id', readonly=False) + diff --git a/addons/stock_landed_costs/models/stock_landed_cost.py b/addons/stock_landed_costs/models/stock_landed_cost.py index d96018c4a81d3802b6132c34353b0d31f7725c56..1aa6451d0de002ab247ed3fac8fae9e20f5ace3a 100644 --- a/addons/stock_landed_costs/models/stock_landed_cost.py +++ b/addons/stock_landed_costs/models/stock_landed_cost.py @@ -14,6 +14,20 @@ class LandedCost(models.Model): _description = 'Stock Landed Cost' _inherit = ['mail.thread', 'mail.activity.mixin'] + def _default_account_journal_id(self): + """Take the journal configured in the company, else fallback on the stock journal.""" + lc_journal = self.env['account.journal'] + if self.env.company.lc_journal_id: + lc_journal = self.env.company.lc_journal_id + else: + ir_property = self.env['ir.property'].search([ + ('name', '=', 'property_stock_journal'), + ('company_id', '=', self.env.company.id) + ], limit=1) + if ir_property: + lc_journal = ir_property.get_by_record() + return lc_journal + name = fields.Char( 'Name', default=lambda self: _('New'), copy=False, readonly=True, tracking=True) @@ -44,7 +58,7 @@ class LandedCost(models.Model): copy=False, readonly=True) account_journal_id = fields.Many2one( 'account.journal', 'Account Journal', - required=True, states={'done': [('readonly', True)]}) + required=True, states={'done': [('readonly', True)]}, default=lambda self: self._default_account_journal_id()) company_id = fields.Many2one('res.company', string="Company", related='account_journal_id.company_id', readonly=False) stock_valuation_layer_ids = fields.One2many('stock.valuation.layer', 'stock_landed_cost_id') diff --git a/addons/stock_landed_costs/views/res_config_settings_views.xml b/addons/stock_landed_costs/views/res_config_settings_views.xml index 4117f94c4d75772334905a301532b73e7221f36d..c72c0249461e9baae9f77e1ccf9f5f9eb347140f 100644 --- a/addons/stock_landed_costs/views/res_config_settings_views.xml +++ b/addons/stock_landed_costs/views/res_config_settings_views.xml @@ -7,8 +7,12 @@ <field name="inherit_id" ref="stock.res_config_settings_view_form"/> <field name="arch" type="xml"> <div name="landed_cost_info" position="replace"> - <div class="mt16" attrs="{'invisible': [('module_stock_landed_costs','=',False)]}"> - <button name="%(stock_landed_costs.stock_landed_cost_type_action)d" icon="fa-arrow-right" type="action" string="Landed Cost Types" class="btn-link"/> + <div class="content-group" attrs="{'invisible': [('module_stock_landed_costs', '=', False)]}"> + <div class="mt16"> + <label for="lc_journal_id" string="Default Journal"/> + <field name="lc_journal_id"/> + <button name="%(stock_landed_costs.stock_landed_cost_type_action)d" icon="fa-arrow-right" type="action" string="Landed Cost Types" class="btn-link"/> + </div> </div> </div> </field>