diff --git a/addons/pos_sale/models/crm_team.py b/addons/pos_sale/models/crm_team.py index 54eed6c160b..341e275a791 100644 --- a/addons/pos_sale/models/crm_team.py +++ b/addons/pos_sale/models/crm_team.py @@ -3,6 +3,7 @@ from odoo import api, fields, models, _ from datetime import datetime +import pytz class CrmTeam(models.Model): @@ -41,13 +42,16 @@ class CrmTeam(models.Model): """ If the type of the sales team is point of sale ('pos'), the graph will display the sales data. The override here is to get data from pos.order instead of sale.order. """ + offset = datetime.now(pytz.timezone(self.env.user.tz or 'UTC')).utcoffset() + min_date = fields.Datetime.to_string(datetime.combine(start_date, datetime.min.time()) - offset) + max_date = fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()) - offset) if self.team_type == 'pos': result = [] if self.dashboard_graph_group_pos == 'pos': order_data = self.env['report.pos.order'].read_group( domain=[ - ('date', '>=', fields.Date.to_string(start_date)), - ('date', '<=', fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()))), + ('date', '>=', min_date), + ('date', '<=', max_date), ('config_id', 'in', self.pos_config_ids.ids), ('state', 'in', ['paid', 'done', 'invoiced'])], fields=['config_id', 'price_total'], @@ -63,8 +67,8 @@ class CrmTeam(models.Model): elif self.dashboard_graph_group_pos == 'user': order_data = self.env['report.pos.order'].read_group( domain=[ - ('date', '>=', fields.Date.to_string(start_date)), - ('date', '<=', fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()))), + ('date', '>=', min_date), + ('date', '<=', max_date), ('config_id', 'in', self.pos_config_ids.ids), ('state', 'in', ['paid', 'done', 'invoiced'])], fields=['user_id', 'price_total'], @@ -78,8 +82,8 @@ class CrmTeam(models.Model): # /!\ do not use en_US as it's not ISO-standard and does not match datetime's library order_data = self.env['report.pos.order'].with_context(lang='en_GB').read_group( domain=[ - ('date', '>=', fields.Date.to_string(start_date)), - ('date', '<=', fields.Datetime.to_string(datetime.combine(end_date, datetime.max.time()))), + ('date', '>=', min_date), + ('date', '<=', max_date), ('config_id', 'in', self.pos_config_ids.ids), ('state', 'in', ['paid', 'done', 'invoiced'])], fields=['date', 'price_total'], diff --git a/addons/sales_team/models/crm_team.py b/addons/sales_team/models/crm_team.py index 96ed4dcc942..f749d87fff2 100644 --- a/addons/sales_team/models/crm_team.py +++ b/addons/sales_team/models/crm_team.py @@ -177,7 +177,7 @@ class CrmTeam(models.Model): self.ensure_one() values = [] - today = date.today() + today = fields.Date.from_string(fields.Date.context_today(self)) start_date, end_date = self._graph_get_dates(today) graph_data = self._graph_data(start_date, end_date)