refactor: restrict POS paid order history to the current day instead of including yesterday
This commit is contained in:
parent
f8c59c560f
commit
69b6a8f3ea
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from odoo import fields, models, api
|
from odoo import fields, models, api
|
||||||
from odoo.osv import expression
|
from odoo.osv import expression
|
||||||
from datetime import timedelta, datetime
|
from datetime import datetime
|
||||||
import pytz
|
import pytz
|
||||||
|
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ class PosOrder(models.Model):
|
|||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def search_paid_order_ids(self, config_id, domain, limit, offset):
|
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."""
|
"""Limit paid orders list loaded on POS frontend to the current day."""
|
||||||
user_tz_name = self.env.context.get('tz') or self.env.user.tz or 'UTC'
|
user_tz_name = self.env.context.get('tz') or self.env.user.tz or 'UTC'
|
||||||
try:
|
try:
|
||||||
user_tz = pytz.timezone(user_tz_name)
|
user_tz = pytz.timezone(user_tz_name)
|
||||||
@ -18,13 +18,12 @@ class PosOrder(models.Model):
|
|||||||
user_tz = pytz.UTC
|
user_tz = pytz.UTC
|
||||||
|
|
||||||
today_local = fields.Date.to_date(fields.Date.context_today(self))
|
today_local = fields.Date.to_date(fields.Date.context_today(self))
|
||||||
yesterday_local = today_local - timedelta(days=1)
|
today_start_local = datetime.combine(today_local, datetime.min.time())
|
||||||
yesterday_start_local = datetime.combine(yesterday_local, datetime.min.time())
|
today_start_tz = user_tz.localize(today_start_local)
|
||||||
yesterday_start_tz = user_tz.localize(yesterday_start_local)
|
today_start_utc = today_start_tz.astimezone(pytz.UTC).replace(tzinfo=None)
|
||||||
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
|
# Restrict domain so only orders from the current day (local timezone start) are returned
|
||||||
domain = expression.AND([domain, [('date_order', '>=', yesterday_start_utc)]])
|
domain = expression.AND([domain, [('date_order', '>=', today_start_utc)]])
|
||||||
|
|
||||||
return super(PosOrder, self).search_paid_order_ids(config_id, domain, limit, offset)
|
return super(PosOrder, self).search_paid_order_ids(config_id, domain, limit, offset)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user