# -*- coding: utf-8 -*- from odoo import fields, models, api from odoo.osv import expression from datetime import timedelta, datetime import pytz class PosOrder(models.Model): _inherit = 'pos.order' @api.model def search_paid_order_ids(self, config_id, domain, limit, offset): """Limit paid orders list loaded on POS frontend to today and the day before.""" user_tz_name = self.env.context.get('tz') or self.env.user.tz or 'UTC' try: user_tz = pytz.timezone(user_tz_name) except pytz.UnknownTimeZoneError: user_tz = pytz.UTC today_local = fields.Date.to_date(fields.Date.context_today(self)) yesterday_local = today_local - timedelta(days=1) yesterday_start_local = datetime.combine(yesterday_local, datetime.min.time()) yesterday_start_tz = user_tz.localize(yesterday_start_local) yesterday_start_utc = yesterday_start_tz.astimezone(pytz.UTC).replace(tzinfo=None) # Restrict domain so only orders from today and yesterday (local timezone start) are returned domain = expression.AND([domain, [('date_order', '>=', yesterday_start_utc)]]) return super(PosOrder, self).search_paid_order_ids(config_id, domain, limit, offset)