diff options
| author | Victor Feyens <vfe@odoo.com> | 2019-10-08 08:53:03 +0000 |
|---|---|---|
| committer | fw-bot <otis@odoo.com> | 2019-10-10 19:00:54 +0000 |
| commit | 1ef89f0928dafad25a0820cf08734fdd000a4bb0 (patch) | |
| tree | d3d83aa5b021831dba963939e44213b68b6e3256 | |
| parent | 75f2d8444e8f4b31fec96f2ddea7fc91220d3cc9 (diff) | |
[FIX] point_of_sale: use sudo instead of with_user(SUPERUSER_ID).
Since https://github.com/odoo/odoo/pull/34297, sudo() allows to keep
current user information when creating/modifying records.
There is no need anymore to use with_user(SUPERUSER_ID) to have sudo rights.
This commit ensures the user information is kept when creating pos sessions,
instead of having OdooBot as create_user.
closes odoo/odoo#38441
X-original-commit: aff1dc1ea68c345fb2632f9666dc298f685b8748
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
| -rw-r--r-- | addons/point_of_sale/models/pos_session.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py index d3d5775835a..2092baf0f3d 100644 --- a/addons/point_of_sale/models/pos_session.py +++ b/addons/point_of_sale/models/pos_session.py @@ -4,7 +4,7 @@ from collections import defaultdict from datetime import timedelta -from odoo import api, fields, models, SUPERUSER_ID, _ +from odoo import api, fields, models, _ from odoo.exceptions import UserError, ValidationError from odoo.tools import float_is_zero @@ -186,10 +186,10 @@ class PosSession(models.Model): if values.get('name'): pos_name += ' ' + values['name'] - uid = SUPERUSER_ID if self.env.user.has_group('point_of_sale.group_pos_user') else self.env.user.id - cash_payment_methods = pos_config.payment_method_ids.filtered(lambda pm: pm.is_cash_count) statement_ids = self.env['account.bank.statement'] + if self.user_has_groups('point_of_sale.group_pos_user'): + statement_ids = statement_ids.sudo() for cash_journal in cash_payment_methods.mapped('cash_journal_id'): ctx['journal_id'] = cash_journal.id if pos_config.cash_control and cash_journal.type == 'cash' else False st_values = { @@ -198,7 +198,7 @@ class PosSession(models.Model): 'name': pos_name, 'balance_start': self.env["account.bank.statement"]._get_opening_balance(cash_journal.id) if cash_journal.type == 'cash' else 0 } - statement_ids |= statement_ids.with_context(ctx).with_user(uid).create(st_values) + statement_ids |= statement_ids.with_context(ctx).create(st_values) values.update({ 'name': pos_name, @@ -206,7 +206,10 @@ class PosSession(models.Model): 'config_id': config_id, }) - res = super(PosSession, self.with_context(ctx).with_user(uid)).create(values) + if self.user_has_groups('point_of_sale.group_pos_user'): + res = super(PosSession, self.with_context(ctx).sudo()).create(values) + else: + res = super(PosSession, self.with_context(ctx)).create(values) if not pos_config.cash_control: res.action_pos_session_open() |
