diff --git a/models/__init__.py b/models/__init__.py index 26e4cbc..60833c6 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -2,3 +2,4 @@ from . import hr_employee from . import pos_config from . import pos_session from . import res_users +from . import product diff --git a/models/__pycache__/__init__.cpython-312.pyc b/models/__pycache__/__init__.cpython-312.pyc index 459921e..066e92c 100644 Binary files a/models/__pycache__/__init__.cpython-312.pyc and b/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/models/product.py b/models/product.py new file mode 100644 index 0000000..0d54f09 --- /dev/null +++ b/models/product.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from odoo import api, fields, models + +class ProductTemplate(models.Model): + _inherit = 'product.template' + + def action_archive(self): + if not self.env.su: + if hasattr(self.env.user, '_get_company_ids'): + allowed_companies = list(self.env.user._get_company_ids()) + else: + allowed_companies = self.env.user.company_ids.filtered('active').ids + self = self.with_context(allowed_company_ids=allowed_companies) + return super().action_archive() + + def write(self, vals): + if not self.env.su and 'active' in vals and not vals['active']: + if hasattr(self.env.user, '_get_company_ids'): + allowed_companies = list(self.env.user._get_company_ids()) + else: + allowed_companies = self.env.user.company_ids.filtered('active').ids + self = self.with_context(allowed_company_ids=allowed_companies) + return super().write(vals) + +class ProductProduct(models.Model): + _inherit = 'product.product' + + def action_archive(self): + if not self.env.su: + if hasattr(self.env.user, '_get_company_ids'): + allowed_companies = list(self.env.user._get_company_ids()) + else: + allowed_companies = self.env.user.company_ids.filtered('active').ids + self = self.with_context(allowed_company_ids=allowed_companies) + return super().action_archive() + + def write(self, vals): + if not self.env.su and 'active' in vals and not vals['active']: + if hasattr(self.env.user, '_get_company_ids'): + allowed_companies = list(self.env.user._get_company_ids()) + else: + allowed_companies = self.env.user.company_ids.filtered('active').ids + self = self.with_context(allowed_company_ids=allowed_companies) + return super().write(vals)