[FIX] point_of_sale: singleton error

Issue 1: fix singleton error if open pos session en batch
Issue 2: in large database to search all pos.session to get just one

closes odoo/odoo#80277

X-original-commit: 63500d6357f6f27724d1cda44db071aba968515a
Signed-off-by: Masereel Pierre <pim@odoo.com>
Co-authored-by: Joseph Caburnay (jcb) <caburnay.joseph@gmail.com>
This commit is contained in:
Florent de Labarre
2021-11-23 18:34:50 +00:00
co-authored by Joseph Caburnay
parent 37dd08d776
commit caf7eb2090
+2 -3
View File
@@ -259,9 +259,8 @@ class PosSession(models.Model):
if not session.start_at:
values['start_at'] = fields.Datetime.now()
if session.config_id.cash_control and not session.rescue:
last_sessions = self.env['pos.session'].search([('config_id', '=', self.config_id.id)]).ids
# last session includes the new one already.
self.cash_register_id.balance_start = self.env['pos.session'].browse(last_sessions[1]).cash_register_id.balance_end_real if len(last_sessions) > 1 else 0
last_session = self.search([('config_id', '=', session.config_id.id), ('id', '!=', session.id)], limit=1)
session.cash_register_id.balance_start = last_session.cash_register_id.balance_end_real if last_session else 0
values['state'] = 'opening_control'
else:
values['state'] = 'opened'