diff --git a/addons/stock/__init__.py b/addons/stock/__init__.py index a07046e3fd4..66322ee14f3 100644 --- a/addons/stock/__init__.py +++ b/addons/stock/__init__.py @@ -17,20 +17,3 @@ def pre_init_hook(cr): ('model', 'like', '%stock%'), ('module', '=', 'stock') ]).unlink() - -def _create_warehouse(cr, registry): - """ This hook is used to add a warehouse on existing companies - when module stock is installed. - """ - env = api.Environment(cr, SUPERUSER_ID, {}) - company_ids = env['res.company'].search([]) - company_with_warehouse = env['stock.warehouse'].search([]).mapped('company_id') - company_without_warehouse = company_ids - company_with_warehouse - for company in company_without_warehouse: - company.create_transit_location() - env['stock.warehouse'].create({ - 'name': company.name, - 'code': company.name[:5], - 'company_id': company.id, - 'partner_id': company.partner_id.id - }) diff --git a/addons/stock/__manifest__.py b/addons/stock/__manifest__.py index a6c42ce4111..eacc673c9fc 100644 --- a/addons/stock/__manifest__.py +++ b/addons/stock/__manifest__.py @@ -78,5 +78,4 @@ 'application': True, 'auto_install': False, 'pre_init_hook': 'pre_init_hook', - 'post_init_hook': '_create_warehouse', } diff --git a/addons/stock/data/stock_data.xml b/addons/stock/data/stock_data.xml index cd79d573393..ecb0e11d14b 100644 --- a/addons/stock/data/stock_data.xml +++ b/addons/stock/data/stock_data.xml @@ -169,6 +169,9 @@ + + + diff --git a/addons/stock/models/res_company.py b/addons/stock/models/res_company.py index d7d4e6a1710..d44d40b5ef0 100644 --- a/addons/stock/models/res_company.py +++ b/addons/stock/models/res_company.py @@ -50,6 +50,22 @@ class Company(models.Model): 'value': 'stock.location,%d' % inventory_loss_location.id, }) + @api.model + def create_missing_warehouse(self): + """ This hook is used to add a warehouse on existing companies + when module stock is installed. + """ + company_ids = self.env['res.company'].search([]) + company_with_warehouse = self.env['stock.warehouse'].search([]).mapped('company_id') + company_without_warehouse = company_ids - company_with_warehouse + for company in company_without_warehouse: + self.env['stock.warehouse'].create({ + 'name': company.name, + 'code': company.name[:5], + 'company_id': company.id, + 'partner_id': company.partner_id.id, + }) + @api.model def create_missing_inventory_loss_location(self): company_ids = self.env['res.company'].search([]) @@ -65,7 +81,5 @@ class Company(models.Model): company.create_transit_location() company.sudo()._create_inventory_loss_location() - # mutli-company rules prevents creating warehouse and sub-locations - self.env['stock.warehouse'].check_access_rights('create') self.env['stock.warehouse'].sudo().create({'name': company.name, 'code': company.name[:5], 'company_id': company.id, 'partner_id': company.partner_id.id}) return company