hr_multi_company_employee/models/pos_session.py

23 lines
820 B
Python

from odoo import models
class PosSession(models.Model):
_inherit = 'pos.session'
def _get_message_author(self):
"""Override to read employee partner with sudo() to avoid res.partner
access errors when the cashier's allowed companies don't include the
company_id set on work_contact_id (caused by hr_multi_company_employee
assigning employees to branch companies).
"""
if not self.employee_id:
return None
# Use sudo() to bypass multi-company partner rule when reading
# the employee's work_contact_id or user partner for message posting.
employee = self.employee_id.sudo()
if related_partners := employee._get_related_partners():
return related_partners[0]
return self.sudo().user_id.partner_id