diff --git a/addons/barcodes/__init__.py b/addons/barcodes/__init__.py index cde864bae21..dfbc1f52912 100644 --- a/addons/barcodes/__init__.py +++ b/addons/barcodes/__init__.py @@ -1,3 +1,18 @@ # -*- coding: utf-8 -*- from . import models + +from odoo import api, SUPERUSER_ID + + +def _assign_default_nomeclature_id(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + company_ids_without_default_nomenclature_id = env['res.company'].search([ + ('nomenclature_id', '=', False) + ]) + default_nomenclature_id = env.ref('barcodes.default_barcode_nomenclature', raise_if_not_found=False) + if default_nomenclature_id: + company_ids_without_default_nomenclature_id.write({ + 'nomenclature_id': default_nomenclature_id.id, + }) + diff --git a/addons/barcodes/__manifest__.py b/addons/barcodes/__manifest__.py index f65d24a4316..83419dcd933 100644 --- a/addons/barcodes/__manifest__.py +++ b/addons/barcodes/__manifest__.py @@ -9,7 +9,9 @@ 'views/barcodes_view.xml', 'security/ir.model.access.csv', 'views/barcodes_templates.xml', + 'views/res_company.xml', ], 'installable': True, 'auto_install': False, + 'post_init_hook': '_assign_default_nomeclature_id', } diff --git a/addons/barcodes/models/__init__.py b/addons/barcodes/models/__init__.py index e3f49cb14ed..15631161b43 100644 --- a/addons/barcodes/models/__init__.py +++ b/addons/barcodes/models/__init__.py @@ -2,3 +2,4 @@ from . import barcodes from . import barcode_events_mixin from . import ir_http +from . import res_company diff --git a/addons/barcodes/models/res_company.py b/addons/barcodes/models/res_company.py new file mode 100644 index 00000000000..b510c6e0c1d --- /dev/null +++ b/addons/barcodes/models/res_company.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields + + +class ResCompany(models.Model): + _inherit = 'res.company' + + def _get_default_nomenclature(self): + return self.env.ref('barcodes.default_barcode_nomenclature', raise_if_not_found=False) + + nomenclature_id = fields.Many2one( + 'barcode.nomenclature', + string="Nomenclature", + default=_get_default_nomenclature, + ) diff --git a/addons/barcodes/views/res_company.xml b/addons/barcodes/views/res_company.xml new file mode 100644 index 00000000000..fcf2b6c6eaa --- /dev/null +++ b/addons/barcodes/views/res_company.xml @@ -0,0 +1,13 @@ + + + + barcode.company.form + res.company + + + + + + + + diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py index ed8e4b24afa..2fdec9782e4 100644 --- a/addons/point_of_sale/models/pos_config.py +++ b/addons/point_of_sale/models/pos_config.py @@ -291,7 +291,7 @@ class PosConfig(models.Model): @api.onchange('barcode_scanner') def _onchange_barcode_scanner(self): if self.barcode_scanner: - self.barcode_nomenclature_id = self.env['barcode.nomenclature'].search([], limit=1) + self.barcode_nomenclature_id = self.env.user.company_id.nomenclature_id else: self.barcode_nomenclature_id = False diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index fdad76cc124..f1bca879dec 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -59,9 +59,6 @@ class PickingType(models.Model): rate_picking_late = fields.Integer(compute='_compute_picking_count') rate_picking_backorders = fields.Integer(compute='_compute_picking_count') - barcode_nomenclature_id = fields.Many2one( - 'barcode.nomenclature', 'Barcode Nomenclature') - @api.one def _compute_last_done_picking(self): # TDE TODO: true multi diff --git a/addons/stock/views/stock_picking_views.xml b/addons/stock/views/stock_picking_views.xml index 5dbefbd384b..1d852bc3be2 100644 --- a/addons/stock/views/stock_picking_views.xml +++ b/addons/stock/views/stock_picking_views.xml @@ -45,7 +45,6 @@ -